I2C LCDの電源のOn/OffはMOS-FETで行うつもりだったが、秋月のAQM0802は1mAしか消費しないのでPSoCのGPIOで直接駆動することにした。
LCDの電源実測値
電圧: 3.28Vちょっと怖い感じもするが、実測では0.15mAしか流れていなかった。PSoCのPinの設定は「Strong Drive」で正負両方FETでドライブされている。
電流: 0.15mA
PSoCの駆動周波数
Github:
https://github.com/ryood/I2S_FG/tree/master/PSoC/I2S_FG/PrototypingKit_FG_Test.cydsn
PSoC CreatorのTopDesign
PCM5102aのサンプリングレートを382kHzにするために48MHz駆動させていたが、演算が追いつかないようだ。
20MHzの水晶で80MHzに逓倍した場合と40MHzに逓倍した場合を比較してみた。サンプリングレートはどちらも
40MHz(I2Sコンポーネントに入力したクロック) / 32bit / 2ch / 2 = 312,500Hz出力に2000pF/470Ωの1次RC-LPFを入れている。
80MHz駆動
ch1:LPF通過後 ch2:LPF通過前
40MHz駆動
40MHzの方はときどき出力レベルの更新が間に合っていないようで波形が崩れている。
出力波形
ch1:LPF通過後 ch2:LPF通過前
10kHz程度でも1次LPFだけでは波形のガタガタがわかる→正弦波の歪になる。外付けにするにしてもう少しスパっと切れるLPFは必要かな?
メモ:
DMAのバッファの更新をL/RでPing Pongで書き換えすれば48MHzでも間に合う?
L/R出力して、LのDMA転送終了でバッファを書き換えてRを使えば間に合う?
CPUは内蔵クロックで80MHz駆動してI2Sのクロックだけ外付けのクリスタルで生成できないか?(非同期)
<追記:2016.02.24>
非同期作戦はI2SコンポーネントがUDBで作られているのでMaster Clockと同期していないとダメと怒られてBuildできなかった。
PSoC Creatorをだまして96MHz駆動させるのは成功。(10MHz水晶を使う設定で80MHz駆動させて実は12MHzの水晶を使って96MHz駆動させる)
長時間動かして壊れたらいやなので完成してから実験する予定。
</追記>
0 件のコメント:
コメントを投稿