12625|36

60

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

非常奇怪的I2C地址问题,召唤达人! [复制链接]

如图片,这是我的芯片的I2C的地址说明。
我让芯片作为从,主机(STM32的I2C2)作为主。上面说了可以用:通用地址:0000000或者11XXXXHW,我把HW接高电平了,HW=1.
但是我试遍了11XXXX1,主机都得不到ACK,
用0000000曾经试通过,并且读到信息。现在又不通了。检查了芯片的连接,没有问题。
对了,I2C的广播地址是不是 0xFF.
以下为我的代码:
 I2C_GenerateSTART(I2C2, ENABLE);
  /* Test on I2C2 EV5 and clear it */
  while(!I2C_CheckEvent(I2C2, I2C_EVENT_MASTER_MODE_SELECT)); 
  /* Send I2C slave Address for write */
  I2C_Send7bitAddress(I2C2, MOTOR_WRITE_ADDRESS7, I2C_Direction_Transmitter);
   
  /* Test on I2C2 EV6 and clear it */
程序一直死在这里,等待不到ACK:  while(!I2C_CheckEvent(I2C2, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
  I2C_SendData(I2C2,Cmd_Byte);
  while(!I2C_CheckEvent(I2C2, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
I2C_GenerateSTOP(I2C2,ENABLE);
此帖出自stm32/stm8论坛

最新回复

                                 i2c连接注意事项,太需要注意了!   详情 回复 发表于 2008-7-3 11:31
点赞 关注
 

回复
举报

85

帖子

1

TA的资源

一粒金砂(初级)

沙发
 

很着急

这个问题搞了好几天了,
好费事啊,请达人给解决啊,急求。
此帖出自stm32/stm8论坛
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

请注意:I2C的地址是7位不是8位

                                  
此帖出自stm32/stm8论坛
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

4
 

回香水,我是用的是七位啊,

我用了0x00试过,曾经读过数据,现在不行了,
也试过别的,
你说的七位像上面的:11XXXXXHW,我用了11 1111 1(HW=1),它的十六进制值是不是应该是11 1111 1 0,就是0xFE,还是在前面加0,即0 11 1111 1 ,即0x7F??


对了,XXXXX是OTP4 OTP3 OTP2 OTP1 OTP0,
我在不知道OTP的情况下,该怎么设这个地方啊??
反正用0000 000现在是不行了。
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

5
 

电路上是如何接的?HW管脚接到哪里?4个OTP位是如何配置的

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

6
 

再回香水

OTP是要第一次与芯片通信之后才能写进芯片的ROM里面的。
我上次用OOOOOOO连接过,但还没有写OTP,
现在是无法连接了,
I2C广播地址是多少??用广播的方式可以实现对芯片的写不??
我是用EK的板子,因为没有额外的上拉电阻,所以用的是板子的上拉电阻,所以,I2C除了挂我的芯片以外,还挂着EK板子上的EEPROM.
按照应用例程,HW通过一个电阻连接到VBAT了,就是接高电平了。
上面那个关于地址的问题你帮我解答一下啊
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

7
 

I2C广播地址是00

你的I2C设备是否接收广播地址要看你的数据手册。

如果I2C线上有2个设备,请在板子的上拉电阻旁边再并联一个2~3K左右的上拉电阻。

为什么HW要通过一个电阻连接到VBAT?为什么不接到VDD?
此帖出自stm32/stm8论坛
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

8
 

这个是文档上给出的,有图,

为什么还要并联一个2~~3K的电阻,不是各有1个10K的上拉电阻分别与SDA和SCL相联了吗?
你能告诉我你平时是怎么用一个I2C器件的吗?
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

9
 

I2C使用的是开漏输出驱动电路

如果I2C总线上有多个设备,必须加大上拉电流,否则推不动。

平时是怎么用一个I2C器件? 请参考EK板的电路图和Demo程序。
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

10
 

香水,我就是照着Demo写的啊,

我觉得不是程序的问题,
就是从地址一直不对。
我访问EEPROM是可以的。
而且EK的I2C有些问题啊,
我挂通那天后,可以读数据,
但后来不行了,我一查,是I2C1的SCL对应的PB6坏了,
I2C有这么脆弱吗??
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 

我是找不到解决的办法了啊,

                                 急,
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

12
 

请问你的I2C设备工作电压是多少?I2C的电平是多少?

                                 从8楼的图上看,你的I2C设备的供电有8~29V,这个电压对于STM32太高了,可能芯片就是这么被你烧坏的。
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

13
 

香水,电压的问题。

那是供电电压,跟SDA和SCL没什么关系吧。
我量了下,不管是芯片,还是EK的SDA,SCL对应的引脚,
空载的时候电压都差不多,
都是高电平,都在3V左右。
我不知道你讲的8~29V跟这个有什么关系。
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

14
 

请检查一下你的I2C设备的高低电平识别电压

                                 它的供电电压是8~29V,对它来说有可能STM32的3.3V太低了,根本不能被识别。
此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

15
 

香水,你帮我看一下啊。电压不是问题

上面就说过了,我量过了,芯片SDA和SCL空载的时候的电压也是3.3伏左右。

现在问题是我发送从设备地址过去,
一直没有收到ACK啊。
我的主要问题是根据我上面贴的资料(我再贴一次吧),你帮我看一下这个芯片的地址到底是多少啊??我是怀疑地址不对。但我曾经用地址为0000 000试通过。现在不行了。

此帖出自stm32/stm8论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(中级)

16
 

如果没有对OTP编程,地址应该是1100001

如果以前已经有人对OTP编程,就不知道了。

请检查一下你的I2C设备的数据手册,它的高低电平识别电压是多少。它的供电电压是8~29V,对它来说有可能STM32的3.3V太低了,根本不能被识别。

这是个关键问题,不搞清楚有可能你永远做不出来!
 
此帖出自stm32/stm8论坛
 
 
 

回复

49

帖子

0

TA的资源

一粒金砂(初级)

17
 

香水,OTP问题,电压问题

我前天用000 0000试通过。我没有对OTP编程,所以OTP还是新的。

你说的地址 1100001,它的十六进制数是0xA2呢还是0x61。因为它不满8位嘛,前面补0,还是后面补0?

我查一下高低电平电压。

此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

18
 

不好意思,不是0xA2,是0xC2

不好意思,不是0xA2,是0xC2
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

19
 

香水,我贴个高低电平的图给你帮看一下。

就是下图:
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

20
 

香水,刚试过0xA2不行。

我看了电气参数,应该是够的。
用EEPROM的例程跑是通的,
我现在都不知道是什么原因了。

问一个:从设备上电后,它的SDA和SCL也是高电平吗?
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表