だいぶ前に買ったけど部品入れの肥やしになっていた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
-
最近の投稿
最近のコメント
アーカイブ
- 2020年1月
- 2019年1月
- 2017年1月
- 2016年11月
- 2016年10月
- 2016年7月
- 2016年6月
- 2016年3月
- 2015年10月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2014年12月
- 2014年11月
- 2014年10月
- 2014年7月
- 2014年6月
- 2014年5月
- 2013年11月
- 2013年7月
- 2013年6月
- 2013年1月
- 2012年11月
- 2012年10月
- 2012年8月
- 2012年5月
- 2012年4月
- 2011年11月
- 2011年10月
- 2011年9月
- 2011年8月
- 2011年7月
- 2011年6月
- 2011年3月
- 2011年2月
- 2011年1月
- 2010年12月
- 2010年8月
カテゴリー
メタ情報