mcp4725のEEPROMにwiringPiを通して書き込む方法
wiringPi-mcp4725ライブラリを介してEEPROMの書き込みをしようとして頑張ってみても上手くいかず、別の方法を調べてみたらこちらに書いてありました。
電源オンで出力50%が出てる、なんていう事態を避けるために、とりあえずEEPROMの値を0にしておきたい時のサンプルがこちらです。
60番と61番に2つのDACを繋いでいる想定です。
MCP4725 DAC with RPi « seafoid.org
#include <stdio.h> #include <unistd.h> #include <wiringPi.h> #include <wiringPiI2C.h> void setDACVoltage(int deviceid, int voltage, int writeToEEPROM) { int fd = wiringPiI2CSetup(deviceid); voltage = (voltage > 4095) ? 4095 : voltage; voltage = (voltage >> 4); if(writeToEEPROM) wiringPiI2CWriteReg16(fd, 0b01100000, voltage); else wiringPiI2CWriteReg16(fd, 0b01000000, voltage); close(fd); } int main(int argc, char* argv[]) { wiringPiSetupGpio(); setDACVoltage(0x60, 0, 1); setDACVoltage(0x61, 0, 1); return 0; }
wiringPi-mcp4725を使わずに、こっちでベタに書いた方がすっきり綺麗かも。