cvl-robot's diary

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

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を使わずに、こっちでベタに書いた方がすっきり綺麗かも。

今日のシャワー

シャワー苦手ですが、こんなの使うと楽しくなりそう。