AD5380からアナログ電圧をマルチチャンネルを出力する方法は下記の2つある。
## 接続図
直流電源(6V)をEVAL-AD5380のJ9に接続する。
(接続図)を掲載
## EVAL-5380のピン配置
ピン配置は[マニュアル](https://www.analog.com/media/en/technical-documentation/user-guides/EVAL-AD5380SDZ_5382SDZ_UG-757.pdf)の6ページのデフォルト配置のままでよい。
Terminal No. | Position | Terminal No. | Position |
— | — | — | — |
LK1 | A | LK7 | B |
LK2 | A | LK8 | B |
LK3 | Removed | LK9 | A |
LK4 | Removed | LK10 | B |
LK5 | Removed | LK11 | Removed |
LK6 | B | LK12 | B |
## ソフトウェアの使い方
EVAL-5380の[マニュアル](https://www.analog.com/media/en/technical-documentation/user-guides/EVAL-AD5380SDZ_5382SDZ_UG-757.pdf)に詳細があるので、これに従うことで各チャンネルに電圧を出力することができる。
## 問題点
Pythonなどで制御する方法がわからない。
# マイコンからI2C通信で制御する方法
—
上述のようにSDP-BをPythonなどで制御する方法がわからない。そこでAD5380をマイコン(Arduino UNO)でI2C通信し、Arduino UNOとPCはUART通信でシリアル通信することでPythonなどで制御可能であると考えた。以下に簡単に方法を示す。
## 準備するもの
- D/Aコンバータ([AD5380](https://www.analog.com/jp/products/ad5380.html))の評価用ボード:[EVAL-AD5380](https://www.analog.com/jp/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-ad5380.html) - マイコン:[Arduino UNO R3](https://store-usa.arduino.cc/products/arduino-uno-rev3?selectedStore=us) - 直流電源(6V出力) - ブレッドボード - ジャンパー線:複数 - 抵抗(1kΩ):2本 - (可能ならば)オシロスコープ
## I2C通信
Philips社が提唱した通信インターフェースで、Inter-Integrated Circuitの略である。後で具体的なタイムチャートを示すが、クロックに同期させてデータを伝送するシリアル通信である。具体的には、クロック(SLC)とデータ(SDA)の2本の信号線を用いる。そして通信はマスターとスレーブの役割があり、マスターからスレーブに送受信の指示をする。
接続図
プルアップ回路も
## 出力電圧と14ビット信号の関係
今回用いるD/Aコンバータは14ビットのダイナミックレンジがあるので出力電圧$V_{OUT}$は以下の式で与えられる。
$$ V_{OUT}=5 \times \frac{x}{16384} $$
出力電圧の式の詳細はAD5380の[マニュアル](https://www.analog.com/media/jp/technical-documentation/data-sheets/AD5380_JP.pdf)に譲るが、上式ではゲイン係数$m$ やオフセット係数$c$ をデフォルトのまま($m=1, c=0$)にしている(デフォルトになっているかどうかを、AD538xで設定にし、電圧が制御できるかは試した方がよい)。$x$ は14ビットの設定値で0から16383の値をとる。また、レジスタに書き込む14ビットの2進数$a_n$との関係は
$$ x=\sum_{n=0}^{13} a_n \cdot 2^n $$
である。代表例を下記に示す。
2進数(14ビット) | 10進数 |
— | — |
11 1111 1111 1111 | 16383 |
10 0000 0000 0001 | 8193 |
10 0000 0000 0000 | 8192 |
01 1111 1111 1111 | 8191 |
00 0000 0000 0000 | 0 |
## EVAL-5380のピン配置
マイコンを用いてI2C通信してレジスタに書き込むためには、評価ボードの各ピン配置をデフォルトから下記に変更する必要がある。各ピンの意味は[マニュアル](https://www.analog.com/media/en/technical-documentation/user-guides/EVAL-AD5380SDZ_5382SDZ_UG-757.pdf)の6ページを参考にすること。
(下記表はアドレスビットが00のとき)
Terminal No. | Position | Terminal No. | Position |
— | — | — | — |
LK1 | A | LK7 | B |
LK2 | A | LK8 | B |
LK3 | A | LK9 | A |
LK4 | Removed | LK10 | A |
LK5 | Removed | LK11 | B |
LK6 | B | LK12 | B |
## Arduino IDEによる書き込み
[Arduino IDEのインストールと設定 (Windows, Mac, Linux対応)](https://www.indoorcorgielec.com/resources/arduinoide%E8%A8%AD%E5%AE%9A/arduino-ide%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A8%E8%A8%AD%E5%AE%9A/)