1.ADコンバーターデバイスの選択
ADコンバーターを製作する際に、まず重要なことはどのようなデバイスを選択するかということです。ADコンバーターの基本的な回路は、集積回路化されて半導体デバイスとして販売されています。
今回の選択はかなりアバウトなアプローチなので、他に良いデバイスがあるかも知れません。まず、よく利用している秋月電子通商の通販サイトで探してみました。音声信号処理用のΔΣ型で分解能が24ビット程度、ステレオでサンプリング周波数が96kHzといった目安で探すと、PCM1808PWRが見つかりました。価格は182円と格安で問題なし。
しかし、5mm角のパッケージ両側に各7本のピンがあり、ピンピッチは0.65mm。現在の視力では、拡大鏡の力を借りてもとてもハンダ付けできそうにありません。ところが、DIP化キットがあり(写真下・左、中)、これならブレッドボードや同じ2.54mmホール間隔のプリント板で容易に取り扱うことができます。
念のためにPCM1808について調べると、使いやすいことで定評があることが分かり、「PCM1808PWR DIP化キット」を注文しました。また、周辺回路まで組み込んだAD変換ボードがあることも分かりました(写真下・右)。海外の通販サイトで安く入手できるので、AliExpressに3個を発注、単価はUS $3.87でした。ただこのボード、本来は[FMT]であるはずのAudio-interface format selectピンの表示が、到着したものでは[FMY]になっているモノ。心配していましたが、問題なく動作しました。正式名称は「Leory CJMCU-1808 PCM1808」で、写真はそのカタログページに掲載されているものです。
2.PCM1808のスペックと設定
PCM1808はTexas Instrumentsの24ビットΔΣ(デルタシグマ)方式ステレオA/Dコンバーターです。下記のリンクからデータシートやユーザー・ガイドなどを入手できます。
『シングルエンド入力、99dB SNR、ステレオ ADC 技術資料』①PCM1808の構造
PCM1808がどんな構造になっているか、技術資料『データシート』に記載されているブロックダイアグラムを見ておきましょう。
入力されたアナログ信号は、アンチエイリアス・ローパスフィルターによって折り返し雑音を除去するために、ナイキスト周波数より大きい周波数成分をカットします。それがデルタシグマ変調器に送られてデジタル信号に変換され、64倍のオーバーサンプリングと広域通過フィルターで直流成分を除去して、デジタル信号をシリアルインターフェイスに送出しています。
また、シリアルインターフェースで、マスター/スレーブ・モードとデータ・フォーマットを制御できるようになっています。電源はアナログ用とデジタル用の2電源、それに必要なら外部クロックを供給するようになっています。
このように多くの機能がパッケージされていて、わずか14ピンでAD変換や入出力制御ができるので、使いやすいと定評になっているのがうなずけます。
②主なスペック
PCM1808の主なスペックは以下の通りです。
・ビット数:24ビット
・サンプリング周波数:8~96kHz
・入力:シングルエンド
・ダイナミックレンジ:99dB
・64倍オーバーサンプリング
・システムクロック:
256fs:2.048~24.576MHz
384fs:3.072~36.864MHz
512fs:4.096~49.152MHz
・オーディオデータインターフェース:I2S
・電源電圧:アナログ部 DC5V / デジタル部 3.3V
・パッケージ:TSSOP 14ピン 0.65mmピッチ
③PCM1808のピンと機能
次の図はPCM1808パッケージのトップビューです(前記『データシート』より)。
それぞれのピンの機能は次表の通りです。
ピン | 名称 | I/O | 説 明 |
1 | Vref | - | 基準電圧デカップリング |
2 | AGND | - | アナログGND |
3 | Vcc | - | アナログ電源 5V |
4 | Vdd | - | デジタル電源 3.3V |
5 | DGND | - | デジタルGND |
6 | SCKI | I | システムクロック入力 256/384/512fs |
7 | LRCK | I/O | オーディオ・データラッチ対応入力または出力 |
8 | BCK | I/O | オーディオ・データのビットクロック入力または出力 |
9 | DOUT | O | オーディオ・データのデジタル出力 |
10 | MD0 | I | オーディオ・インターフェイス モード選択0 |
11 | MD1 | I | オーディオ・インターフェイス モード選択1 |
12 | FMT | I | オーディオ・インターフェイス フォーマット選択 |
13 | VinL | I | アナログ入力 左チャンネル |
14 | VinR | I | アナログ入力 右チャンネル |
●インターフェイスモード選択
MD1(Pin 11)とMD0(Pin 10)の組み合わせでマスター/スレーブモードを設定できます。マスターなら
PCM1808から通信のタイミングクロックを提供し、スレーブなら外部からタイミングを受信します。
MD1 (Pin11) | MD0 (Pin10) | インターフェイス・モード |
Low | Low | スレーブ・モード |
Low | High | マスター・モード(512 fs) |
High | Low | マスター・モード(384 fs) |
High | High | マスター・モード(256 fs) |
●データフォーマット選択
FMT(Pin 12)でデータフォーマットを設定します。
Format No. | FMT (Pin12) | フォーマット |
0 | Low | I2S、24ビット |
1 | High | 左詰、24ビット(512 fs) |
3.PCM1808AD変換ボードの仕様
TI社は先の『データシート』において、PCM1808でAD変換をする場合の典型例として次のような「代表的な回路図」を掲げています。
図の青色の点線枠は、回路の中核を示すために書き込んだものです。
今回注文した「Leory CJMCU-1808 PCM1808」、または「CJMCU-1808」と称する類似のAD変換ボードについては回路図が入手できてないのですが、コンデンサーや抵抗器の配置から推察して、この点線枠の部分が34x28mmの基板上に組み付けられているように思われます。
到着した「Leory CJMCU-1808 PCM1808」は、これ。端子名[FMY]は[FMT]と読み替えてください。
写真のようにPCM1808のピンは、さらに次のように整理されています。
・音声信号入力は上部にRIN(右側入力)、-(GND)、LIN(左側入力)としてまとめられている。
・データフォーマットとインターフェイス設定は、左側上部にまとめられている。
・GNDと電源(3.3Vと5V)は左側下部にまとめられ、デジタル用は右側下部にも設置されている。
・I2S用のBCK、OUT、LRCが右側上部にまとめられている。
・マスターモードで運用するにはSCKにシステムクロックを供給すればよい。
下の写真は、それぞれ「PCM1808PWR DIP化キット」と「Leory CJMCU-1808 PCM1808」ボードを汎用プリント基板に組み立てたものです。ボードを使うと小型化できると期待していたのですが、クリスタルオシレータや半固定ボリュームが大きいのでこのような形になりました。今回の実際の製作では、できるだけコンパクトにしたいので「Leory CJMCU-1808 PCM1808」をRaspberry Pi Zeroサイズのユニバーサル基板に組み付けます。
4.ADコンバーターの製作
①サンプリング周波数とシステムクロックの決定
製作に先だって要件を整理しておきます。I2Sを使いたいので「FMT=Low」に設定します。PCM1808はマスターにするので「MD0=MD1=High」に設定。こうすると動作モードは256 fsになります。マスターとして動作させるにはシステムクロックを供給する必要があります。ここでデータシートの「サンプリング周波数とシステムクロック周波数」を見ると次のようになっています。
サンプリング周波数を最高の96kHzとすると、256 fsではシステムクロックとして24.576MHzで動作させればよいことがわかります。これで製作のための要件が出そろいました。
②オシレータと入力ゲイン調整
システムクロック用にEPSONのクリスタルオシレーター(24.576MHz)SG-8002DC(5V)を使うことにしました(下図・左)。Pin-8に5Vを与えてPin-4をGNDに接続すると、Pin-5から出力を得ることができます。
また、このADコンバーターに接続するマイクは、第4章で作成した「高感度アンプ付きコンデンサーマイク」を予定しているので、入力部に下図・右のような簡単なゲイン調整回路を設置することにしました。先の写真で基板上に見える水色の四角いのは、この10kΩの半固定ボリュームです。
③使用部品
今回は以下の部品類を使用します。名称をクリックすると詳細情報を参照できます。
No. | 名 称 | 数量 | 参考単価 | 備 考 |
1 | CJMCU-1808 Stereo ADC Single-Ended 24bit .... Module | 1 | US $3.87 | AliExpress、eBayなど |
2 | クリスタルオシレータ EPSON 24.576MHz SG-8002DC | 1 | \300 | |
3 | 丸ピンICソケット (8P) | 1 | \15 | |
4 | 半固定ボリューム 10kΩ | 2 | \40 | |
5 | ロープロファイルピンヘッダ(低オス)1 x 8 (8P) 9.54mm | 1 | \40 | |
6 | ピンソケット(メス) 1 x 6 (6P) | 1 | \20 | |
7 | カーボン抵抗 1/4W 22kΩ | 2 | 100本 \100 | |
8 | Raspberry Pi Zero用ユニバーサル基板 | 1 | \100 | |
9 | 配線用ワイヤ | 少々 |
④組立・配線
1) まず、CJMCU-1808に付属しているピンヘッダーを、CJMCU-1808ボードにハンダ付けします。
2) 写真・下左を参考にしてユニバーサル基板の上下を正しく置き、部品全体の配置を決めてください。
3) オシレーター用の丸ピンソケットをハンダ付けします。切れ込みが上になるよう向きに気をつけてください。
4) 基板上にCJMCU-1808のピンヘッダーをハンダ付けします。
5) 半固定ボリューム2つとカーボン抵抗22kΩ2本を、入力ゲイン調整回路を構成しやすいようにハンダ付けします。
6) 6Pのピンソケットと、ロープロファイルピンヘッダーを半分に折って4Pにしたものをハンダ付けします。
・ピンソケットにはマイク入力の左、GND、右をそれぞれ2Pづつ割り当てています。
・その隣りに配置したピンヘッダーには、左右を1本ずつ、そして真ん中の2本をGNDに割り当てています。
・写真・下右のように配線し、ゲイン調整側のGNDはCJMCU-1808の入力側GNDとジャンパー線で溶接します。
・②の入力ゲイン調整回路のように配線し、PCM1808側はCJMCU-1808ボードのRIN/LINと裏面で配線します。
7) CJMCU-1808ボード内の配線をします。
・[FMT]を同じ側の[GND]に裏面で接続します(ハンダ付けします、以下同様)。これでI2S選択が完了。
・[MD1]と[MD0]を接続し、同じ側の[3.3]と裏面で接続します。これでマスターモード(256 fs)設定が完了。
・[SCK]をクリスタルオシレーターのPin-5と裏面で接続します。
・[+5V]と[GND]をそれぞれクリスタルオシレーターのPin-8とPin-4に裏面で接続します。
8) CJMCU-1808ボードの電源系統とI2S系統にPi Zero接続用のジャンパーワイヤーをハンダ付けします。
ここではジャンパーワイヤー(メス-オス)20cm 40本のオス側を切断してハンダ付けしました。
・電源系統[+5V]: 赤色
・電源系統[3.3]: 橙色
・電源系統[GND]: 茶色
・I2S系統[BCK]: 黄色
・I2S系統[OUT]: 緑色
・I2S系統[LRC]: 青色
9) 最後に、クリスタルオシレーターを丸ピンソケットに差し込みます。方向に気をつけてください。
以上のように配線は簡単なのですが、ちょっとしたミスがあるとまったく動作しません。テスターを使って誤配線やショートが起きていないかチェックしておきましょう。
これで、ジャンパーワイヤーをRaspberry Pi Zeroに繋げば動作するはずですが、その前になお準備が必要になります。次回は、高感度アンプ付きコンデンサーマイクを、すこしマイクらしく工作してみるつもりです。そして悪戦苦闘した設定のことなどをまとめます。お楽しみに!