ANALOG OUTPUT ② MKR WiFi 1010にDAC MCP4725
MKR WiFi 1010のI2Cバスに、外付けで12ビットD-AコンバータMCP4725を取り付けます。
●MCP4725のおもなスペック
- 分解能 12ビット
- 電源電圧 2.7~5.5V
- 付属機能 EEPROM
- 負荷 RL=5kΩ時、最大1000pF
- スルーレート 0.55V/us
- I2Cバス 100k~3.4MHz
- I2Cアドレス A0ピンをGND;0x60、A0ピンをVdd:0x61
ブレークアウト・ボードはebayで入手しました。
基板上のADDRで、GNDとはんだを盛ってショートしました。
●接続
MCP4725 ピン番号 |
MCP4725 機能 |
MKR WiFi 1010 |
---|---|---|
1 | Vout | - |
2 | Vss | GND |
3 | Vdd (Vcc) | Vcc 3.3V |
4 | SDA | 11 SDA |
5 | SCL | 12 SCL |
6 | A0 | GND |
●スケッチ
0xf0(3.3V*3840/4095=3.0945V)と0x00(=0V)を交互に送り出します。I2Cバスの転送速度は100kHzです。
#include <Wire.h>
#define MCP4725_address 0x60
void setup() {
Wire.begin();
Wire.setClock(100000);
Serial.begin(15200);
}
void loop() {
Wire.beginTransmission(MCP4725_address);
Wire.write(0b00001111);
Wire.write((byte)0x00);
Wire.endTransmission();
Wire.beginTransmission(MCP4725_address);
Wire.write(0b00000000);
Wire.write((byte)0x00);
Wire.endTransmission();
}
実行結果です。
I2Cバスの転送速度を100kHzから400kHzに上げます。
I2Cバスの転送速度は1.2MHzまで上げられました。それ以上のクロックでは波形が出ません。