2023年8月7日月曜日

BlackFinを使ってみるなり(7) DACを繋ぎましょう

こんにちわー.DSPを題材にしたポエムを連載しているひらりんです.

シリアルでDACを接続しましょう.

DACはPCM510xです.SCKは無くてもOKで、BCK,DIN,LRCKを与えれば動いてくれます.

ポエム1
BF706のどの機能を使って接続すればいいのでしょうか?

BF706評価ボードには、ADAU1761というAD/DAが載っています.
BF706のどのportに接続しているのかを回路図で探しますと、ここです.
SPT0なんちゃらがそれです.SPTというのは、SPORTというperipheralのことで、仕様の柔軟性のあるシリアルポートです.
↓SPT0_xxxの先は抵抗を介してADAU1761に接続されています.つまり、これらの抵抗を外してしまえば、ADAU1761を撤去することが可能で、代わりにPCM510xを接続できます.
でも抵抗を外すのも面倒です.
↓SPT0があるのならSPT1とか無いのかなぁと探したら、ありました.SPT1は何処にも接続されておらず、コネクタにて「どうぞご自由にお使いください」との仕様になっています.
↓というわけで、SPT1にDACを接続することになりました.DMAが好きです.

ポエム2
SPORTってどういう機能なのでしょうか?

hardware referenceを読むと、、、SPORTにはこのようなモードがあるんだそうです.
• Standard DSP Serial mode    ←わからん
• I2S mode  ←わかる
• Left-Justified mode   ←わかる
• Right-Justified mode  ←わかる
• Multichannel (TDM) mode  ←わからん
• Packed I2S mode   ←わからん

modeの説明が書かれてないみたいです.わからんー

SPORTのsample sourceで、openするところがあります.mode指定してます.
 adi_sport_Open(,,,,, ADI_SPORT_I2S_MODE,,,,,,);
そこで、ADが提供するSPORT driver sourceに、他にどんなmodeが定義されているのかを調べますと、、、3つしか定義されてないです.Left-Justified modeが無いのはちょっと不思議かな?
typedef enum
{
    /*! DSP serial mode */
    ADI_SPORT_SERIAL_MODE,    ←わからん、Standard DSP Serial mode
    /*! Multi channel Mode */
    ADI_SPORT_MC_MODE,    ←わからん、MCはMultiChannelの意味
    /*! I2S mode */
    ADI_SPORT_I2S_MODE    ←わかる
} ADI_SPORT_MODE;
判らんものは判らんままですっ飛ばして、I2Sを動かしてみますかねぇ?

ポエム3
Multichannel (TDM) modeの意味がたぶんわかった.このチャートに尽きるのでしょう.これだと5.1ch伝送になれる.こういうAD/DA ICを繋ぐ気は無いので忘れます.

Standard DSP Serial modeの意味はこれでした.こういうAD/DA ICを繋ぐ気は無いので忘れます.

お馴染みのI2Sはこれです.こういうAD/DA ICを繋ぎます.

#APIの扱いにてこずってるので次回へ続きます.to be continued.

6へ    8へ

かしこ

2 件のコメント:

  1. >LRCK
    この信号は、最近は「Word Select」と呼ばれるほうが多い気がしますが、私は、
    ・「Low」のときに「L ch」になる、と、覚えていました。
    (元々は、CP-340(IEC 60958に統合された) の用語)

    返信削除
    返信
    1. おはよーございます
      AD/DA ICはみんなこの手のシリアルになりましたね.1 chip マイコンにもIFがついてるのでお気楽です.

      削除