28335的I2C通信问题

[复制链接]
2338|18
 楼主| CaLipton 发表于 2017-11-14 10:06 | 显示全部楼层 |阅读模式
现在用28335的I2C模块与eeprom  AT24C08进行通信,程序没有错误,但是用示波器不能测出SDA和SCL信号。例程里的从机地址是0x50,因为我这里用的是AT24C08,所以从机地址应该是0xA9,是不是只需要修改这个地址就可以了?
Rospiers 发表于 2017-11-14 10:36 | 显示全部楼层
上拉了没呢
Lewisnx 发表于 2017-11-14 10:52 | 显示全部楼层
地址对不对跟SDA和SCL有无信号没有联系。就算地址错了,SDA和SCL也会有相应的信号
CCompton 发表于 2017-11-14 11:04 | 显示全部楼层
地址的设置与A2脚的电平有关,仔细阅读AT24C08手册。
Richardd 发表于 2017-11-14 11:17 | 显示全部楼层
如果SDA和SCL没信号,首先看加了上拉没,阻值根据手册和I2C上挂的器件数量来算。然后看程序中I2C初始化,使能等等有没问题。
Mattheww 发表于 2017-11-14 11:28 | 显示全部楼层
我现在又出现了一个问题,在调试的过程中,如果没有
if (I2caRegs.I2CSTR.bit.BB == 1)
  {
      return I2C_BUS_BUSY_ERROR;
   }
这几句话,用示波器能显示我发送的数据,如果有这几句话,程序就一直认为bus busy!
Erichk 发表于 2017-11-14 16:54 | 显示全部楼层
建议看看程序里“I2caRegs.I2CSTR.bit.BB ”的定义,结合I2C协议看看相关判断的时序与逻辑机制。
Thorald 发表于 2017-11-14 17:20 | 显示全部楼层
用示波器捕捉I2C数据,记录每一位的值,填满相应的I2C帧,分析发送的数据是否有误。
Bjorn 发表于 2017-11-14 17:40 | 显示全部楼层
地址有问题。
Rollo 发表于 2017-11-14 17:50 | 显示全部楼层
28335的读写位是省略的,也就是说地址不是A9,而是去掉最低位,最高位补零,地址等于0x01010100 = 0x54
smilingangel 发表于 2017-11-15 19:37 | 显示全部楼层
I2C数据通讯的地址的问题的不复杂的
smilingangel 发表于 2017-11-15 19:39 | 显示全部楼层
根据资料进行设计的,实际的地址还有一个移位操作的,具体是跟I2C总线协议相关系的,记得不是很清了
qiufengsd 发表于 2017-11-15 22:44 | 显示全部楼层
是电压没有吗?
wengh2016 发表于 2017-11-15 22:44 | 显示全部楼层
Io的配置是否正常?
minzisc 发表于 2017-11-15 22:45 | 显示全部楼层
添加一个上拉电阻试试。
qiufengsd 发表于 2017-11-15 22:45 | 显示全部楼层
可能IO的驱动能力不足。
wengh2016 发表于 2017-11-15 22:45 | 显示全部楼层
输出信号的时候是否有波动?
minzisc 发表于 2017-11-15 22:45 | 显示全部楼层
可能iic的不能被驱动。
娄敬轩 发表于 2019-12-17 23:19 来自手机 | 显示全部楼层
楼主,我最近也在调试I2C通信,28335和EEPROM之间,Ti官方历程捎进去正常使用,整合到我的工程里却没有检测到SDA线上的信号,能否借鉴一下你的程序
您需要登录后才可以回帖 登录 | 注册

本版积分规则

126

主题

369

帖子

0

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