首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“i2c检测器”命令显示单个设备的多个从地址

“i2c检测器”命令显示单个设备的多个从地址
EN

Stack Overflow用户
提问于 2022-06-21 06:55:01
回答 1查看 168关注 0票数 0

我正在进行一个项目,在那里我需要通信我的从设备EEPROM (从地址为0x54)。但是当我给出i2cdetect -r -y 10命令时,它会显示单个硬件的8个不同地址。我已经按设备地址为0x54配置了硬件。但它显示0x50到0x57。有人能提出这种行为的原因吗?

代码语言:javascript
复制
$ sudo i2cdetect -r -y 10
...
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --
EN

回答 1

Stack Overflow用户

发布于 2022-06-23 15:11:39

I2C协议只允许寻址7或10位。默认的(并且主要使用)是7位地址.这意味着第一个字节有地址和R/W位。现在,每个I2C地址都可以在EEPROM中有一个实际地址,即8位,这意味着可寻址长度为256个字节(这样做很可能是为了简化硬件部分)。因此,我们有256个字节,这就是单个I2C设备在总线上的最大内存大小。这就是为什么我们的想法是解决更大的EEPROM,并将它们表示为I2C总线上的几个地址。因此,每个地址是256字节的内存。对于您的情况,它有8个地址,EEPROM的大小很可能是2千字节。

这将在EEPROM数据表的第3.6章设备寻址中进行描述。

在相同的数据表中,表8-1: PIN函数表解释了为什么您没有成功地将其移动到另一个地址(TL;DR: PIN没有连接)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72696456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档