2023年8月22日火曜日

BlackFinを使ってみるなり(20) BlackFinにADCをつなぐには?

BlackFin DSPにADCを繋ごうとしているひらりんです.

BF706のSPORTのI2S modeでAD/DAを接続するのですが、信号の入出力関係がよくわかんないので調査しました.

SPORTをI2Sモードで使います.
 SPORT1のA Tx DAC
 SPORT1のB Rx ADC
FB706評価ボードの、SPORTの接続場所を確認します.(回路図はこちら
DACの線とADCの線として使える場所はこうなっていると思われます.
 SPT1_xCLK  →BCK
 SPT1_xFS  →LRCK
 SPT1_xD0  →DATA

↓現在はDACのみ繋いでいまして、ADCは未接続です.配線はこうなっています.
・源発振は外部XTAL(25MHz)で内部PLLで100MHzにupしてI2Sのclkになっている
・I2S内部で適宜分周する.ぴったり96kHzにはならない.
・I2Sが出力側
・DACが入力側

これにADCを追加するにはどうするか?
↓これが1つの解と思われます.
・BF706のXTALが源発振
・ADCはslaveである(BCK,LRCKを入力される側)
・ADCにとって、BCK/XTALが非同期で構わないとの前提 ※
※ADCのXTALはdigital演算用の512fsとかのclockです.BCKと非同期でもOKなのかどうかはdatasheetから読み取れてません.旭化成のAK4495などのDACでは非同期でもOKなんです.

↓2つ目の解はこうです.
・ADCがmasterであり、ADCのXTALが全てを支配する
・すっきりして気持ちイイ
・配線が少し増えるが、こっちの方が確実

I2SのBCKを入力に切り替えるには?
赤字のところが切り替えです.
true: BCKは出力
false: BCKは入力
adi_sport_ConfigClock(hDev, 0u,false,false,false)

I2SのLRCKを入力に切り替えるには?
赤字のところが切り替えです.
true: LRCKは出力
false: LRCKは入力
adi_sport_ConfigFrameSync(hDev, 31u, true, false, false, false, false, false);

この調査結果で円満にADCを追加できると思うのですが、現物を動かしてみなくちゃ油断は禁物なのよね.

PCM1803のプリント基板はJLCPCBが製造中です.

19へ    21へ

かしこ

0 件のコメント:

コメントを投稿