通过I²C写入EEPROM失败

时间:2011-09-21 10:16:45

标签: i2c eeprom

我正试图通过I²C从用户空间写入EEPROM。我正在使用/dev设备文件以及openreadwriteioctl函数。阅读工作没有问题,但当我使用相同的代码进行编写(只是用write替换read)时,它就失败了。 EEPROM没有写保护(回显到EEPROM驱动器的设备文件中)。

我的代码如下。

if ((fd = open(write_destination, O_RDWR)) < 0) {
    goto error;
}

if (ioctl(fd, I2C_SLAVE_FORCE, 0x50) < 0) {
    goto error_fd;
}
while((n = write(fd, self->fields[i].buf, self->fields[i].size)) != self->fields[i].size) 
    perror("");

我在俯瞰什么?

1 个答案:

答案 0 :(得分:1)

有些EEPROM只允许少量写入,然后等待,然后写更多。检查数据表以确定。另外,我建议使用逻辑分析仪检查I²C的正确命令 - 我喜欢www.salae.com上的分析仪。

相关问题