だいぶ前に買ったけど部品入れの肥やしになっていたAK4495EQを使えるようにしました。
DAC自作には夢がありますけど、考慮しないといけない部分があまりにも多すぎて挫折しますね…
(データシートの分析、試作、プログラム開発、基板設計、アナログ部分etc)
今回はあっさりいけたので良かったです。
AK4495EQをI2Cで制御できたので備忘録です。
I2CのデバッグはRaspberry pi 2で本番制御はArduino Pro Miniです。
Arduinoは秋月電子様のAE-ATMEGA328-MINIです。
(これ安くて小さくて便利なのでお勧め)
5V系から3.3V系へのI2CのレベルシフトはPCA9306モジュールを使いました。
DAIはWM8805を使いました。こっちも自作基板。
作りたい仕様
AK4495EQを2個使ってデュアルMONO動作で、バランス出力も付ける。
11/19追記。とりあえずできました。
以下備忘録
前準備
電源投入時はPDN pinをLOWにしてください。
Highのまま電源投入すると起動しません。
起動の流れは下記のとおり
電源投入(PDN pinはLow)
最低150nsec待ってからPDN pinをHigh
以下I2Cなどで制御します。
PDN pinをHighのまま起動してもI2C操作を受け付けますが、音が出ないのではまります。
AK4495のロジック電圧は3.3Vです。
多くのArduinoでは直接操作できないので注意してください。(3.3V機種の除く)
私は2N7002でレベルシフト回路を作りました。
パワーオンとフォーマットセレクト
パワーオンとPCMフォーマットの選択は同じレジスタにあります。
Raspberry piのI2C機能で起動する場合は下記コマンドとなります。
※フォーマットはI2S 24bit
i2cset -y 1 0x10 0x00 0x07 b
特殊な例ですが2パラする場合は下記のようになります。
i2cset -y 1 0x10 0x00 0x07 b
i2cset -y 1 0x11 0x00 0x07 b
CAD0とCAD1でチップアドレスが決まります。
CAD0とCAD1がLowの場合は0x10
CAD0がHighの場合は0x11
プルアップする場合は1k程度の抵抗でプルアップしたほうがいいでしょう。
I2Cで使用するときはI2Cピンのプルアップを忘れないこと。
パラレル制御関連のピンについてはGNDに落とすこと。
モノラル動作
0x10を左チャンネル、0x11を右チャンネルにする場合
左出力の場合
MONO bit 1
SELLR bit 0
コマンド:i2cset -y 1 0x10 0x02 0x08 b
右出力の場合
MONO bit 1
SELLR bit 1
コマンド:i2cset -y 1 0x11 0x02 0x0A b
-
最近の投稿
最近のコメント
アーカイブ
カテゴリー
メタ情報