cvl-robot's diary

研究ノート メモメモ https://github.com/dotchang/

raspberryPi2/3に(オーディオ用では無い)複数の普通のDAコンバータmcp4725を接続して5V出力を得る方法

電子工作の基本としてAD/DAコンバータは直ぐに使えるようにしておきたいですね。
ちょっとした試作で便利に使えるRaspberryPiを使ってアナログ出力を取り出そうとしたら、意外にもDA出力が備わっていませんでした。
外付けして対応しようと調べてもオーディオ用DACの情報ばかりで欲しい情報が直ぐに手に入らなかったので、汎用DAコンバータの接続方法をまとめておきたいと思います。
(PWM出力をRCフィルタに掛けてDA代わりにするのがよく使われているようですが、このページでは普通にDA出力を取ります。)

回路図

f:id:cvl-robot:20160714140331p:plain
RaspberryPiのGPIOのI2Cピン3,5は、内部でpullupされているそうなので、2.7kΩの抵抗二つは取り除いた方が良いようです。

今は、汎用DAコンバータで入手しやすいチップがすごく少ないようです。
インターフェースとしては、SPI接続(MCP4922-E/P等)またはI2C接続(MCP4725,MCP4726等)が一般的です。
入手のしやすさから、秋月のmcp4725モジュールを使うことにしました。

RaspberryPi2/3のGPIO出力からDAコンバータを接続します。
RaspberryPiのGPIO出力は3.3Vなのでmcp4725を直付けすると、出力も最大3.3Vまでしかとることができません。
mcp4725は電源電圧までレールトゥレールで出力電圧をとれるので、2.7-5.5Vまで電源電圧を調整することで最大出力電圧を変更できます。
出力電圧を5Vとして設計します。
そのため、I2Cの信号レベルも3.3Vから5Vに変換してやる必要があります。

mcp4725のEEPROMにwiringPiを通して書き込む方法 - cvl-robot's diary
に続く。

[1] 電子部品使い方:マイコンのD/A変換
[2] MCP4725搭載D/Aコンバータモジュール(I2C通信)
[3] Adafruit MCP4725 Breakout Board - 12-Bit DAC w/I2C Interface [ADA935] by Adafruit [並行輸入品]
[4] MCP4725 EEPROM搭載12ビットD/Aコンバータモジュール: 半導体 秋月電子通商 電子部品 ネット通販