Raspberry Pi, Jetson Nano向けオーディオ入出力ボードの作成(AK4558EN編)

[前回](https://qiita.com/kmitsu76/items/c04f5ef883a57bd3b9c5)作成したコーデックボードをスペックアップさせて、旭化成のAK4558ENを採用したい。
AK4558ENはADCとDACが1パッケージで400円程度とコストパフォーマンスが高い。

前回までで作成したコーデックボードの持っているチップスペックと、AK4558ENが持つチップスペックを比較する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/b23f11ac-f6b8-da0b-8503-046a1b576047.png)

既存のADCだけがビット数が24bitだったところが、ADC,DACともに32bitで処理できる。
これは音声データの活用を考えたときに理想的なのではないか。

AK4558ENを動かすための調査を行っていくと、以下のポイントがあった。

１、リセット回路
２、サンプリングレートの設定他、コンフィグ設定方法
３、出力バッファと電源回路

##１、リセット回路
AK4558ENを確認すると、多彩な設定ができるI2Cシリアルモードと、pinのアップ・ダウンで設定するパラレルモードがある。I2C設定がいらないパラレルモード前提で進める。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/9d09429d-0ca8-58f5-6af9-4d98b16f37d1.png)

パラレル/シリアルモードAK4558はPS pin = “H”に設定することで、I2Cを使用しないパラレルモードに対応されます。パラレルモードの動作は、CKS3-0pinsによって設定されます。PS pin=“L”のとき、I2Cが有効になります。動作中は、PSpin の切り替えはできません。

また、今回、I2Sに必要なBCK,LRCKはコーデックボード側が出すため、マスタモードにする必要がある。
データシートを確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/1508814a-34ed-46f5-340e-782287f406dd.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/7cca0107-3ec7-4efc-a15a-8e351eb29a86.png)

PDN　pinを電源を入れてしばらくは“L”にしておく必要がある。
データシートには“150ns以上の”L“でリセットがかかる”とのこと。

AK4558ENの評価ボード回路図を参考にリセット生成回路を組む。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/e9e5740e-653d-c5fa-81c6-88dd38cb2924.png)

このような形にしてみた。SN74LVC1G17というシュミットトリガ・バッファを使い、コンデンサが充電されるまでの間”L”を維持する。

##２、サンプリングレートの設定他、コンフィグ設定方法
サンプリングレートの設定の仕方。CKS1,CKS0でサンプリングレートを設定できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/b2e2188a-45e7-d935-b10d-91de480a64d0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/3b38ace4-c22d-a56f-f74e-eee706247089.png)
対応する設定は下記の通りとなる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/2ee47028-04d1-bfca-ca52-350fdeaeb612.png)

■モノラル／ステレオ切り替えPMADL, PMADR  bitの設定によりADCのモノラル／ステレオ動作を切り替えることができます。ADCのモノラル／ステレオ動作を切り替える場合には、PMADL = PMADR = “0”を経由してください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/3713f72d-6cc4-4aac-1fe6-b0a099e7aa3e.png)

■ポップ音低減回路
LOPS bit ="1"として、PMDAL/R　bitsでパワーダウンのON/OFFを行うと、Lch,Rch個別にON/OFF時に発生するポップ音を低減することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/92f47605-27df-1655-4dd2-33d586c0db1b.png)

上記から、コンフィグ端子は下記のように設計した。DIPスイッチで設定する形にした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/35aa5219-665e-7c53-fce3-709fff51705e.png)

##３、出力バッファと電源回路
AK4558ENの出力インピーダンスは5kオーム。
サウンドテスト、音楽リスニングに直接イヤホンを突っ込めるようにバッファ回路を組む。

下記の出力のバッファ回路を参考にさせてもらい、設計。
https://www.keshikan.net/make_2706.html
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/92b530c0-7f88-5e3c-4ef2-c4018b3fc557.png)

オペアンプはオーディオスペックのOPA1612AIDRを選定。

OPA1612AIDRは動作電圧範囲が±2.25Vとのことだが、5Vだとあまり余裕がないので、7.5Vをかけたい。手元には5VのLDOしかないので以下のようにかさ上げ回路を組んだ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/ff3443e3-d110-e696-f5a0-7e80a7f4a393.png)
全体の回路図は下記の通り。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/f52fafaa-bed5-f452-1f75-426b57047de2.png)
基盤を起こし以下のように完成した。(プロトタイプの撮影で抵抗が浮いているが修正済)LEDがまぶしすぎた。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/387653/41f10cc3-14ee-0514-4ac8-f259f169d831.png)