找回密码
 立即注册
查看: 760|回复: 5

关于IIC的地址

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

积分
1326
发表于 2024-2-18 00:16:18 | 显示全部楼层 |阅读模式
请问下各位佬,我这边使用89c51和32G扫描IIC地址从0x00 到 0x127 来扫描挂载在总线的一个AT24C256。得到的地址是0xa0. 然后我使用Arduino nano对这个IIC重新进行扫描,得到的地址是0x50.
Nano的可以正常读取和写入。 32G和C51的可能存在点问题,有时候可以正常读取有时候不能。 我用STM32 也读取了这个0xa0 也是有时候可以有时候不可以。 0x50是绝对不可以在STM32上的。但是可以在Nano上或者esp32上。
有没有大佬知道这到底是一个什么情况。


自信就会温和,温和就会坚定!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-05-02 21:17:31
已绑定手机
已实名认证

110

主题

2223

回帖

5464

积分

版主

积分
5464
发表于 2024-2-18 01:41:40 | 显示全部楼层
首先你要明白,iic的有效地址是高七位。
这里就产生了一个问题,如何表示这个地址
有将地址放在高七位,最低位补零的。也有把地址放在低七位,最高位补零的。
比如说你的这个0xa0,换算二进制是10100000,显然是高七位存法
同样的,0x50则是01010000,相比上面的向右移动了一位,是低七位存法。
本质上这两个没什么区别
具体使用为什么不行呢?是因为上面两种存法转换成读地址和写地址的算法过程不一样,当然是不能乱用的了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-2-18 08:06:37 | 显示全部楼层
1.“我这边使用89c51和32G扫描IIC地址从0x00 到 0x127 来扫描挂载在总线的一个AT24C256”,这里的设备地址应该是0-127扫描,不应该会到16位的地址吧
2.至于地址0X50和0XA0,  IIC的地址是如下定义的
截图202402180804239299.jpg

实际上发送的第一个字节的前面七位就是设备地址,最后一个读写位,0XA0是 0x50<<1 | 0的结果了,器件地址是0X50(七位二进制数),但是这个七位要放到高七位,所以左移一下,最后一位写0是写入器件,写1是读取器件
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:454
  • 最近打卡:2025-05-03 00:18:42
已绑定手机

13

主题

1257

回帖

2979

积分

金牌会员

积分
2979
发表于 2024-2-18 09:04:45 | 显示全部楼层
IIC的有效地址或者协议中规定的地址是7位,8位地址(7位标准地址左移1位再加读写位)是不规范的说法。
所以,猜测 “使用89c51和32G扫描AT24C256得到的地址是0xa0”,这里的0xa0就是不规范的8位地址,扫描结果没问题。这个可以从代码分析出来。

至于32G和C51读写这个AT24C256不稳定,可能和时序有关,可以调整晶振频率或代码中的延迟试试,最好是用逻辑分析仪看时序。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

积分
1326
发表于 2024-2-18 19:47:35 | 显示全部楼层
电子DI*** 发表于 2024-2-18 08:06
1.“我这边使用89c51和32G扫描IIC地址从0x00 到 0x127 来扫描挂载在总线的一个AT24C256”,这里的设备地址 ...

谢谢老师
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

积分
1326
发表于 2024-2-18 19:48:10 | 显示全部楼层
21cns*** 发表于 2024-2-18 09:04
IIC的有效地址或者协议中规定的地址是7位,8位地址(7位标准地址左移1位再加读写位)是不规范的说法。
所以 ...

我抓一下详细分析下
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 00:53 , Processed in 0.118462 second(s), 90 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表