TI论坛
直播中

孙燕冉

7年用户 328经验值
私信 关注
[问答]

请问CC2541的I2C接口驱动支持AT24Cxx系列的串行EEPROM吗?

请问,C:Texas InstrumentsBLE-CC254x-1.3.2ComponentshaltargetCC2541ST这个目录下的hal_i2c.h和hal_i2c.c文件是否支持AT24Cxx系列的串行EEPROM ?谢谢!

回帖(4)

李新美

2019-10-10 09:14:07
我正好做项目中用到,这两个文件完全支持AT24xx的EEprom,这是通用的IIC底层驱动,一般IIC器件都支持IIC的读写规范,所以这两个没有问题。对于256K以下的EErom,可直接用hal_sensor,h中的bool HalSensorWriteReg(uint8 addr, uint8 *pBuf, uint8 nBytes),和bool HalSensorReadReg(uint8 addr, uint8 *pBuf, uint8 nBytes) 来进行Epprom的读写即可。但对于at24c256 或 512 ,存储地址是两个字节,需要对这两个函数修改后才能用。
举报

刘婷婷

2019-10-10 09:55:10
你好!
        我用硬件I2C对EEROM读取也遇到一个问题就是,只使用一次HalSensorWriteReg()这个函数是可以的,但是如果我连续使用HalSensorWriteReg()这个函数发现只有第一个语句,内容被写入,后面的没有写入。
比如说
HalSensorReadReg(CURRENT_POSITION_ADDR,eerom_data_1,4 );
HalSensorReadReg(START_POSITION_ADDR,eerom_data_2,4 );
只有eerom_data_1这个数组被写入,请大神门在这一块指点一下!
举报

王鹏

2019-10-10 10:10:16
不知道你的是哪款芯片,我是有24C02测试的,也是有这样的问题,调试发现当写完延时它又能写进去第二个的;但当写完一个,如果立即读或者写时,启动信号没有应答,导致读或者写都会失败,不知道你的问题现在解决了没有?
举报

刘婷婷

2019-10-10 10:28:04
引用: K_Ming 发表于 2019-10-10 12:40
不知道你的是哪款芯片,我是有24C02测试的,也是有这样的问题,调试发现当写完延时它又能写进去第二个的;但当写完一个,如果立即读或者写时,启动信号没有应答,导致读或者写都会失败,不知道你的问题现在解决了没有? ...

你好!
        你要仔细研读一下,24C02的datasheet。存储芯片也是需要时间的,手册里面会提到时序,和步骤的细节。要循环判断好像是 发送启示信号ACK??现在记不清楚了。
        不要直接用2451上面例程上面的。总之要研读24C02哦,加油。用示波器观察I2C的信号,也可以把它记录下来,看一下,翻一下数据。
       加油!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分