CS8416をソフトモードで使用するDAIです。 32kHzから192kHzまで対応します。
入力は8chあり、ロータリースイッチを接続して切替が出来ます。
16文字×2行の液晶パネルを接続して、再生中の入力チャネル、再生周波数、エンファシス状態を表示します。
エンファシスされた入力データの場合は、自動でディエンファシスします。
3個の押しボタンスイッチを操作して、CS8416のレジスタ設定値を変更できます。 変更した設定値は、1チップマイコンのEEPROMに保存します。
基板サイズは100mm×40mmです。四隅の3mm内側に、3mmのネジ穴を空けています。
数量 | 種類 | 値 | ロケーション | 備考 |
---|---|---|---|---|
1 | DAI | CS8416 | U1 | |
1 | 1チップマイコン | ATTINY26L | U2 | プログラム書き込み済み |
1 | 出力バッファ | 74HC245 | U3 | DIP品。74HCT245でも良い |
1 | LCDパネル | SC1602BS-B | LCD1 | バックライト付きも可 |
1 | 三端子レギュレータ | TA48M033F | IC1 | 5V→3.3Vレギュレータ。秋月で@100円 |
1 | 水晶発振器 | DOC-49S3 | X1 | 11.776MHzオシレータ。秋月で5個100円 |
3 | 押しボタンSW | MITSUMI_SOA | BIT,CHANGE,REG | タクトスイッチ。秋月 |
1 | 半固定抵抗 | 10k | VR1 | LCDパネルのコントラスト調整 |
1 | 抵抗 | 3k | R3 | CS8416のPLL用。他の値は不可 |
1 | 抵抗 | 10k | R4 | |
2 | 抵抗 | 47k | R1,R2 | |
9 | コンデンサ | 0.01u | C1,C2,C3,C4,C5,C7,C9,C12,C14 | |
8 | コンデンサ | 0.1u | C6,C8,C11,C15,C16,C17,C18,C20 | |
1 | コンデンサ | 0.022u | C13 | CS8416のPLL用。他の値は不可 |
1 | コンデンサ | 1000p | C10 | CS8416のPLL用。他の値は不可 |
1 | 電解コンデンサ | 33u | C21 | |
1 | 電解コンデンサ | 100u | C19 | 適当な容量で良い |
12 | ピンヘッダ | PINHEADER_1X2 | 1,2,3,4,5,6,7,8,POW,TX1,TX2,TX3 | |
2 | ピンヘッダ | PINHEADER_1X6 | OUT1,OUT2 | |
1 | ピンヘッダ | PINHEADER_1X3 | CHSEL | |
1 | ピンヘッダ | ISP_CONNECTOR | CN1 |
適宜、ICソケットやケーブル用物品をそろえてください。
8chセレクタと10kΩくらいの抵抗で、下図のセレクタを作成して CHSEL 端子に接続してください。
+5VとGNDを、POW端子に接続します。
LCDパネルが外側に伸びる向き(ATtiny26Lに重ならない向き)に接続します。 延長ケーブルを作成する場合は、結線に注意してください。
OUT1とOUT2は同じものです。
MCKがシステムクロック(256fsなど)、BCKがシリアルクロック(64fsなど)、LRCKがフレームシンク(1fs)、DATAがシリアルデータです。
以下の結線をします。 入力は1から8まで8系統あり、同様の接続とします。
CS8416のTXは3系統あり、レジスタ設定で内容を変更できます。 詳細は、CS8416のデータシートで、レジスタ0x02,0x03、Table 3. 「GPO Pin Configurations」を参照してください。
コンデンサの取り付けは、以下を参考にしてください。
三端子レギュレータ、水晶発振器の向きは以下を参考にしてください。
[REG] [BIT] [CHANGE]の3個のボタンを搭載しています。このボタンの操作を操作して、CS8416の動作を変更します。
電源投入後は通常モードで起動しますが、REGボタンを押すとEDITモードへ移行します。
左上に入力チャネル、右下にそのチャネルの周波数を表示します。
入力チャネルは、入力セレクタの操作によって選択できます。
右上に、エンファシスされた入力の場合は「EMPH」と表示します。 また、デフォルト設定では自動的にディエンファシスを行います。
再生周波数は、32 / 44.1 / 48 / 88.2 / 96 /176.4 / 192 kHzに対応します。入力が無い場合は 「No signal」を表示します。 ただし、176.4kHzと192kHzは、手持ちで送り出せる機器が無いため動作確認が出来ていません。
CS8416で設定可能なレジスタは0x00〜0x09の10個あり、それぞれ8bitのレジスタです。
[REG]を押すと、設定中のレジスタ(左上にREG:XXとして表示)を次のレジスタに移動します。0x00→0x01→・・・→0x09→0x00とループします。
[BIT]を押すと、設定中のビット(左下にBIT:XXとして表示)を次のBITに移動します。7→6→・・・→0→7とループします。また、BIT位置に「↑」を表示します。
[CHANGE]を押すと、[REG][BIT]で選択したビットの設定値を変更します。「値を1にセット」→「値を0にセット」→「何もしない」の3種類をループします。 なお、白地に黒文字(非反転表示)の1または0は「何もしない」設定で、現在CS8416に設定されている値を示します。 黒地に白文字(反転表示)の1または0は、上書き設定を意味します。
下の例では、レジスタ0x04、ビット2を選択しています。 また、ビット7は1、ビット6は0で固定的に上書きされます。 ビット5〜0は特に何も操作しません。
レジスタ4のビット5〜3はRXSEL2〜0、ビット2〜0はTXSEL2〜0で、それぞれには入力チャネルセレクタで選択したチャネルが設定されます。 なお、1または0を上書き設定している場合は、入力チャネルセレクタの値が設定された上から1または0が上書き設定されます。 また、EDITモードで入力チャネルセレクタを操作しても、これらのビットへの反映は行いません。
EDITモードからの復帰はボタン操作では行えません。電源を一旦切って、再度電源投入をしてください。
CS8416のレジスタ情報は、CS8416データシートを参照してください。
以下に、デフォルト設定を示します。
アドレス | 機能 | CS8416の デフォルト値 | 本プログラムの デフォルト値 |
00 | Control 0 | 0000_0000 | 0000_0000 |
01 | Control 1 | 0000_0000 | 0000_0000 |
02 | Control 2 | 0000_0000 | 0100_0000 |
03 | Control 3 | 0000_0000 | 0000_0000 |
04 | Control 4 | 0000_0000 | 1000_0000 |
05 | Serial Audio Data Format | 0000_0000 | 1000_1000 |
06 | Receive Error Mask | 0000_0000 | 0000_0000 |
07 | Interrupt Mask/td> | 0000_0000 | 0000_0000 |
08 | Interrupt Mode MSB | 0000_0000 | 0000_0000 |
09 | interrupt Mode LSB | 0000_0000 | 0000_0000 |
レジスタ0x04:ビット6,5,4は「EMPH_CNTL2」「EMPH_CNTL1」「EMPH_CNTL0」で、エンファシスされた入力の場合に自動的にディエンファシスを行うよう100を設定します。
レジスタ0x04:ビット7は「RUN」で、通常運用のために1を設定します。
レジスタ0x04:ビット6は「RXD」で、RMCKを出力にするために0を設定します。
レジスタ0x05:ビット7は「SOMS」で、マスターモードにしてOSCLKとOLRCKを出力にするために1を設定します。
レジスタ0x05:ビット6は「SOSF」で、OSCLKの出力周波数を64*Fsにするために0を設定します。。
レジスタ0x05:ビット5,4は「SORES」で、24bitモードにするために00を設定します。
レジスタ0x05:ビット3は「SOJUST」で、右詰め出力にするために1を設定します。
レジスタ0x05:ビット2は「SODEL」で、SDOUTデータのMSBをOLRCKのエッジの後の最初のOSCLKとするために0を設定します。
レジスタ0x05:ビット1は「SOSPOL」で、SDOUTデータのサンプルをOSCLKの立ち上がりエッジとするために0を設定します。
レジスタ0x05:ビット0は「SOLRPOL」で、OLRCKがhighの時に左チャネルデータとするために0を設定します。
上記で0を設定している部分は、デフォルト値と同じですので設定する必要はありませんが、動作を明確にするために敢えて設定してみました。
設定値を初期化して本プログラムのデフォルト値に戻したい場合は、通常モードで[CHANGE],[BIT],[REG]の順で3個のボタンをすべて押すことで実施できます。
バージョン1.2です。