Renew SRC4137は実現するか? 2022.5.27

AK4137は復活?でもSRC4137基板がない!

つい先日、最後の1枚のSRC4137基板を発送しました。それとほぼ同時に
AK4137の在庫がDIGIKEYに復活したとの情報をいただきました。

AK4137が復活したということは、旭化成での代替生産が起動に乗り始めたのかな?
それとも、たまたまDIGIKEYがまとまった在庫をどこかで見つけてきたのかな?

まあ、どちらにしてもAK4137はPCMとDSDと相互でフォーマット変換ができる
便利な素子なので復活はありがたいです。 でも、基板がない・・・・・。

で、最後の1枚の基板をみていて思ったのが、もうちょっと色々とできるようにしたいな〜
ということです。

そこで、SRC4137基板は廃盤にしてしまって、リニューアルできないかな〜と考えてしまいました。

AK4137の制御はどういう思想?

AK4137のデータシートを改めてみてみて、かなり独特な制御だな〜と思ってしまいます。
というのも、I2CあるいはSPIでレジスター制御ができるのですが、なぜかピンコントロールでしか
弄れないパラメータがあったりします。 また、それが結構重要です。

I2Cだけなら2線で済みますし、それも他の素子と共用できますから、マイコンのI/Oの消費も
少ないです。 それに対して、AK4137ではI2C以外にピンコントロールでの端子を使う必要があり、
細かい制御をしようとしたら全部で14本程度マイコンと接続する必要があります。


なぜかAK4137ではピンコントロールしかできない機能がたくさんあります。


折角I2Cでレジスター設定ができるのに、なんでこれだけ多くのピンコントロールを
残したのだろう? いったい設計者は何を意図したのかな? わからないなあ〜

28PinのPICで足りる?

SRC4137基板では、このピンコントロールが必要なことから、I/Oエクステンダをつかって
いましたが、今回は省略したいところです。 このICも結構入手が不安になったりしますからね。
いざ基板ができても、素子が手に入らないという事態にもなりかねません。

ところで、全体で何本のI/Oが必要になりそうか数えてみることにしました。

AK4137制御
  I2C ・・・ 2本
  リセット・・・ 1本
  ピンコントロール ・・8本(最低値)

周波数設定
 現状の回路・・・5本

その他
  LCD・・・6本
  スイッチ・・・4本

ということで、計26本必要です。28PinのPICで使えるI/Oは最大でも25本しかありませんから、
足りないです。40PinのPICを使う手もありますが、結構でかいのですよね〜。
ICソケットを使う前提だと、PICの下にある程度部品も配置できますが、それをやったら
デバッグが困りそう・・・・。

周波数の変更にPLLをつかうと?

SRC4137では発振回路は水晶を2個つかって、分周出力を選択してつかっていました。
そのためコントロールピンが5本必要なのですが、これをI2C制御のPLLにしてしまえば、
一気に5本減らすことができます。すなわち全体のIO数は21本になるのですが、
PLLはジッタが多いからなあ〜、かといってジッタクリーナ入れるとそれこそピン数が増えてしまいます。
できればSi514みたいなI2C制御できる、きわめてジッタが小さい素子がつかえれば、
実装面積の点でも有利なのですが、全然手にはいらないからな〜。

やっぱりPLLはやめておきましょう。 ここは素直に水晶発振器+分周器が入手の点でも
よさそうです。

まずはどんな機能にするか検討しましょう!

個別の問題はまず置いておいて、まずはどんなことができるようにするかを
検討しておきましょう。そうすれば、おのずとマイコンに必要なIO数も決まってきます。

入力(PCM9211を使う前提)
 ・PCM/DSD共用ポート × 2 (PCMとDSDは自動判定)
 ・SPDIF × 4 (同軸2、ディジタル2)
 ・アナログ × 1 (PCM9211のADCを使う)

出力
 ・PCM/DSD共用ポート × 2
  (内1つは、LRCKを反転させておいて、Renew DAC1704やDAC1860と接続できるように。
   すなわち、AK4137をディジタルフィルター代わりに使用)
 ・SPDIF × 1 (同軸およびディジタル)

必要電源
 ・5Vのみ

操作
 ・LCDとスイッチ使用(細かい制御が必要なのでシンプルモードは排除)

その他
 ・I2C出力 (他の機器との連携用)

こんな感じかな。
出力にSPDIFを設けたいので、DSD入力からSPDIF出力にすることも可能にできれば面白いかな〜。
というか、DSD入力でRenew DAC1704などのマルチビットDACを動かしてみたいというのもあります。

マスタークロックの可変幅は49.152MHz(48kHz系)と45.19MHz(44.1kHz系)の2通りとして、
最低がそれぞれの1/1、1/2、1/4、1/8、1/16までが選べれば十分でしょう。



全体の構成はこんなところかな. AK4137の出力をPCM9211に戻すことで、PCM信号ならSPDIFに変換できるようにします.

結局必要なIO数は?

再度見積もり直しです。
 I2C・・・2本
 AK4137リセット 1本
 AK4137ピンコントロール 8本
 PCM9211リセット 1本
 LCD+スイッチ 10本
 DSD/PCM判定 3本
 周波数選択   6本

合計で31本ですね。こりゃ、やっぱりIOエクステンダーは最低1個は載せないとだめだなあ〜。
40PinのPICを使うかな〜? 悩んでしまいます.
ただ、40PinのPICをつかうと、IO線をやたら引き回さないといけない可能性があります.
その点、IOエクステンダなら必要となるICの近くに配置すれば、エクステンダ自体はI2Cなので
2本の配線で済むメリットがあります.

まずは回路図を書いてみるかなあ〜.

まずはドラフト版

回路図を書いて必要となる部品を洗い出してみましょう。
思ったよりPICの足が余ってしまいました。
将来的に他の機器との連携もできるように赤外線リモコンやボリューム、エンコーダなども取り付けらる端子を
外だししておけるかもしれません。


こんな感じかな〜

このくらいなら標準サイズの基板に納まるかなあ?

標準サイズで納まりそう

まずは必要になりそうな部品を並べてみましょう.


標準サイズの基板でも納まりそうです.

なんとかおさまりそうですね.
配線しながら、部品配置はまだまだ変ってきますが、
案外余裕があるかもしれません、いやないかもしれませんが.

さて、一気にパターンを書きたいところですが
週明けからの出張のための準備もしないといけないなあ〜.
まあ、まだお尻に火がついてついていないからいいか!(笑

コメントいただきました

さっそく下記のコメントをいただきました。



なかなかすべてを検討することは難しいですが、コメントを頂くのはありがたいことです。
気づきになる点もありますからね。

で、4のAK4137をバイパスする機能というのはおもしろそうです。ただ、単純に考えるとセレクタICを入れて選択するのが
方法とシンプルですが配線量が大幅に増えます。なんせ、PCM9211の出力を最終段まで引き延ばさなくてはなりません。
一番簡単なのはAK4137にSRCをバイパスする機能もあるのでそれをつかうことですが、同時にAK4137のマスタクロックを
切り替えるだけで動作するのだろうか?ちょっと心配だなあ〜。
ちょっと変則的ですが、PCM9211のポートは入力にも出力になるBポートがあるのでこれをAK4137の出力につないで、
AK4137の出力を止めるためのゲートICを配置するのが、まずはわかりやすそうな案です。

ということで回路図をすこし変更してみました。


AK4137を完全にバイパスできるように考えてみました。そのため、PCM9211からの出力ポートのコネクタは省略しました。

これで配線できそうかな?

配線してみました 2022.5.29

まずは、パターンを描いてみました。最初の部品配置からだいぶ変ってしまいました。


まずはパターンを描いてみました。

さて、この後は再度回路図をパターン実績で書き直して、
パターンのチェック、そしてGNDベタパターンを作成です。


久しぶりの作業再開 2022.6.29

ちょうど1か月ぶりの作業再開です。
で、何をしていたかを思い出すためにHPを読み返します。
そうそう、AK4137のスルーモードを実現するために、
AUXIN2をAUXOUTとして使うことを考えていたのですね。

でも、このやり方は初めてなのでまずはどのコマンドで動くか確認しておきましょう。

AUXIN2をAUXOUTで動かす

調べてみると、1行のコマンドで済みそうです。
AUXIN2はMPIO_Bのグループなのですが、MPIO_BをAUXOUTにするためには
0x6Fレジスタを弄るだけで済みそうです。


 0x6fレジスタの1ビットを変更するだけでMPIO_BはAUXOUTに変更できます。

念のため実物で確認しておきましょう。
近くにRenew DAI9211基板があったので、これで試してみましょう。
Bluetooth基板がのっかっていますが、とりあえず何かあって壊してしまうことが無いように
一度取り外しておきます。


この基板をつかいましょう。Bluetooth基板はとりあえず外しておきます。


ソフトをすこし変更して、AUXIN2がAUXOUTになるかの確認です。

ソフトの修正は極めて簡単です。下記の一行を付け足すだけです。
i2c_dataout(I2C_PCM,0x6f,0b01001000); //MPIO_B for AUXOUT

修正後にオシロで端子を確認すると、ちゃんと出力端子として振舞っているようです。

 
LRCK信号がちゃんとでています(48kHz)


DATAもちゃんと出ていますね。

動作確認できたので、これでパターンの最終チェックをしていきましょう。

パターン完成!

パターンチェックしてベタを塗って完成です.

こんな感じでパターンが描けました.

最後に回路図をパターン実績にあわせて修正です.
RenewSRC4137_SCH.pdf

さてさて、製作に出せるのはいつになるだろう?

(つづく?)