28335的I2C通信问题

[复制链接]
1078|9
 楼主| Soraka 发表于 2017-2-26 16:03 | 显示全部楼层 |阅读模式
现在用28335的I2C模块与EEPROM  AT24C08进行通信,程序没有错误,但是用示波器不能测出SDA和SCL信号。例程里的从机地址是0x50,因为我这里用的是AT24C08,所以从机地址应该是0xA9,是不是只需要修改这个地址就可以了?
Garen2 发表于 2017-2-26 16:13 | 显示全部楼层
上拉了没
Ryze 发表于 2017-2-26 16:22 | 显示全部楼层
地址对不对跟SDA和SCL有无信号没有联系。就算地址错了,SDA和SCL也会有相应的信号。地址的设置仔细阅读AT24C08手册,与A2脚的电平有关。
Varus 发表于 2017-2-26 16:31 | 显示全部楼层
如果SDA和SCL没信号,首先看加了上拉没,阻值根据手册和I2C上挂的器件数量来算。然后看程序中I2C初始化,使能等等有没问题。
Snow7 发表于 2017-2-26 16:42 | 显示全部楼层
你好!哪位有没有这样的问题问题,在调试的过程中,如果没有
if (I2caRegs.I2CSTR.bit.BB == 1)
  {
      return I2C_BUS_BUSY_ERROR;
   }
这几句话,用示波器能显示我发送的数据,如果有这几句话,程序就一直认为bus busy!
android2 发表于 2017-2-26 16:53 | 显示全部楼层
建议看看程序里“I2caRegs.I2CSTR.bit.BB ”的定义,结合I2C协议看看相关判断的时序与逻辑机制。
拉克丝 发表于 2017-2-26 17:08 | 显示全部楼层
用示波器捕捉I2C数据,记录每一位的值,填满相应的I2C帧,分析发送的数据是否有误
309030 发表于 2017-2-26 17:19 | 显示全部楼层
28335的读写位是省略的,也就是说地址不是A9,而是去掉最低位,最高位补零,地址等于0x01010100 = 0x54
迪卡 发表于 2017-2-26 17:47 | 显示全部楼层
地址不能应该是0x54
zhangmangui 发表于 2017-2-26 21:11 | 显示全部楼层
学习啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

178

主题

865

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部