DIX9211 PCM5102A? PCM1792A?  2015/03/07  2016/08/07 追記
home


○眠っていたDIX9211を作ってテストしてみます。
まだまだ書きかけです。下のを見て再現されて、問題有っても責任は持ちません。


同時に切り替えたわけではないので、アレですが。。
PCM5102Aが、合計金額を考えるといいかもしれません。

PCM1792Aは、金額的に不利かもです。

別ページのTPA6130A2も金額的&部品点数を考えるといい感じかと思います。

両方ともケースに入れてみないと聞き比べてみましょう。

●DIX9211 PCM1792A 2016/08/07
少し前にケースに詰め込みました。
DIX9211 PCM1792a
DIX9211 PCM1792a



●PCM1792A 2015/04/29 DIX9211とPCM1792A,ヘッドホンアンプ
DIX9211 SCH
テスト中です。
上側は、コントローラーとヘッドホンアンプ。真ん中は電源。
基板的には、CN5のシルク間違え。コンデンサのシルク反対1コ間違い有り。


配線などには、問題ないと思います。小さい液晶しかつけていないので、チャンネル表示など見えない。
strawberry-linuxさんの液晶がどこかにあると思うので、探そう。

図面は、ココです。

●怪しくハコに 2015/03/28 DIX9211とPCM5102A,ヘッドホンアンプ
DIX9211 SCH

スイッチの手持ちがないので、やっつけで。

入力チャンネルとレジスタの変更が出来るようにしてあります。
チャンネル切り替えは、スイッチダイレクトで切り替えた方が便利でしょう。
変えることがないので、とりあえずはこのままで。

PIC16F1825を使用しています。


PICの新しいF1シリーズ、16F1823.16F1825,16F1829あたりが非常に使いやすく思えて
最近は、こればかりです。18F26k22も使いやすい。

古い物を処分?ヤフオクで安く出さないと、ICケースがいっぱいです。


●コントロール簡易版 PIC12F1822(8Pin)
これが大変シンプルで、イイかと。
テストでつないでいるのでアレですが、(クリックで大きくなります。)


液晶は、SB0802G。後、PIC12F1822

サンプリング周波数表示。白いスイッチで、入力切り替えのみ。

図面部品表プログラム一式。個人利用でご自由に。prg修正2015.05.04
SCLのところは、プログラムを書き込み保護気分で抵抗入れてます。

★★ PCM1792A(TI全般)も同じ感じで、書けると思います。★★

部品適当に変更してください。プログラムも。

いじくりながら使用していますが、とても使いやすいように思います。



●コントロール簡易版 PIC18F26k22 いろいろ追加しようとする方向け
試してみようと思われる方用に、VR,入力CH,サンプリング周波数取得のバージョンをおいておきます。
こちらです。←クリックで落とせます。個人利用でお願いします。 2015/03/08
元気有れば、コメントをもう少し入れます。

解凍後、作成したプロジェクトフォルダに入れて、ファイルを登録していただけると使用できます。

下の説明の白と緑SWで操作します。

コンローラー図面
ブレッドボードにコントローラーくんだもの


DIX9211の実態配線図?みたいな物もココに。字&絵が汚くアレですが。


●ボード
手作業で、コネコネ。基板頼むのが、ベターかも。
DIX9211 PCM1792A DAC回路

パスコン入れてください。


テスト中。
DIX9211 PIC 液晶 DAC回路


●図面
取説の49ページで組み立てます。ただし、上のFILT・VCC・AGNDのところ変です。気をつけてください。
DIR9001見たくつなげば、okです。

B0-3は、サンプリングを表示するように設定するので、バッファを入れてLEDでもつけてください。
液晶にも表示するので、必要はないですけど。レジスタ読めなかったときの確認用です。

I2C選択する為27PinをGNDに、アドレス23,26はGND。これで、0x80です。

リセットは適当なICを。私は、秋月のTCM809Rを使用しました。

●コントロール
とりあえず動かすには、
0x34 0b01000000 入力0選択,0用ampをenable。
0x6F 0b01010000 MPIO設定。サンプリング表示をportB。
0x74 0b10111010 port割り当て。0x6Fで決まってしまう?変更出来ない?
0x75 0b11011100 port割り当て。0x6Fで決まってしまう?変更出来ない?
0x79 0b11110000 port 出力指定。

これだけ書けば、問題ないです。

実際、には・・・(タイミングは47ページ)
mainに 上段:入力reg初期設定 下段:サンプリング周波数reg取得
writeDIX9211(DIX9211, 0x34, 0b01000000, TW_WRITE); // DIR Input Biphase Source Select, Coax Amplifier Control
sfsout = readDIX9211(DIX9211, 0x39, TW_READ); // Sampling Frequency
しておき。

別のところに
/**********************************************
* DIX9211 コマンドを送る
***********************************************/
void writeDIX9211(unsigned char chip_address, unsigned char address, unsigned char data, unsigned char rd_wr){
i2c_start(); //スタート条件出力
i2c_wait; //出力完了待ち
DataTrans( chip_address | rd_wr); //チップアドレスと制御データ出力
DataTrans( address ); //上位アドレス出力
DataTrans( data ); //下位アドレス出力
i2c_stop(); //ストップ条件出力
}
しておけば問題ないです。

読むには、
/**********************************************
* DIX9211 データ読む
***********************************************/
char readDIX9211(unsigned char chip_address, unsigned char address, unsigned char rd_wr){
char data;
i2c_start(); //スタート条件出力
i2c_wait; //出力完了待ち
DataTrans( chip_address | 0x00); //チップアドレスと制御データ出力
DataTrans( address ); //上位アドレス出力
i2c_repeat_start();
DataTrans( chip_address | rd_wr); //チップアドレスと制御データ出力
data = i2c_read_byte(0x00);
i2c_stop(); //ストップ条件出力
return(data);
}
こんな感じです。

このあたりは、他のチップをいじっている方は、全く問題ないと思います。

WM8741(WM8742)のところにも書いているので、不明であれば参考にしてください。
↑クリックで、飛びます。
ソースをそれぞれ用にいじれば、問題ないです。(怪しいところ直してね。)

まだ、私自身reg内容すべて確認していません。何が出来る?かは不明。
Tiのチップは、説明書はわかりやすいと思います。

とりあえず HEX です。2015/03/07
レジスタ番号は存在するところだけですが、R/Wは考慮していません。ReadOnlyでも、書きに行く。

動作確認的な感じです。バグったらリセットで解決。
リセットしても入力0(上記設定だと)に信号を入れておけば、何も問題なく(ノイズもなく)動きます。

ボードは先のWMのページを見てください。

●現在操作法(基本的に前のと同じ)

A.電源投入時。

B. CH SEL切り替え(白)
チャンネル番号が点滅。
UP(緑)orDOWN(ダイ)で、0-3選択。
その後もう一度CH SEL押すと確定。

C. UP(緑)もしくはDOWN(ダイ)
UP(緑)もしくはDOWN(ダイ)でINCとDEC
ココでChange(黄)を押すと

D. カーソルが出て、
UP(緑)orDOWN(ダイ)で、INC DEC。
もう一度押すと

E. 次に移動。再度UPorDOWN。
もう一度Change(黄)を押すとカーソルが消えて確定。

カーソルあるときにVR Downで、キャンセル(必要ないけど)。