导航:首页 > 器材知识 > i2c设备如何修改硬件地址

i2c设备如何修改硬件地址

发布时间:2021-11-28 10:29:01

『壹』 主机如何确定IIC总线上的器件的地址

IIC总线上的器件都是只通过SCL和SDA这两条线连接到IIC总线上的吗?
是的

IIC上的每个器件都要一个地址寄存器来确定自己的地址吗?
不一定,很多器件都是通过硬件来确定地址的。
有的在出厂时地址就设置好了,用户不可以更改;
有的确定了几位,剩下几位由硬件确定(比如有三位由用户确定,就留有3个控制地址的引脚),此类较多;
还有的有地址寄存器。

"如果主机向从机发送地址,从机怎么知道这个地址就是主机的,这个地址是怎么计算出来的"
严格讲,主机不是向从机发送地址,而是主机往总线上发送地址(这个地址是某个从机的,而不是主机的,所以不存在“从机怎么知道这个地址就是主机的”的问题),所有的从机都能接收到主机发出的地址,然后每个从机都将主机发出的地址与自己的地址比较,如果匹配上了,这个从机就会向主机发出一个响应信号。主机收到响应信号后,开始向总线上发送数据,与这个从机的通讯就建立起来了。如果主机没有收到响应信号,则表示寻址失败。

“比如IIC总线上接了两块单片机,一块是主机,另一块是从机,如何定义从机的这个地址”
如果是带IIC的单片机,会有地址寄存器,寄存器里的值即为它作为从机时的地址。
以ATmega48为例,有TWI从机地址寄存器—TWAR,先要确定工作模式(主机模式或从机模式),若工作在从机模式,,TWI将根据这个地址进行响应。
如果是不带IIC的单片机,没有地址寄存器。所以一般不用做从机。以AT89C51为例,用它的普通IO口模拟IIC时序时,一般都是用作主机。特殊情况下51用作从机时,可以通过扫描总线的方式,若发现总线上出现某个地址信号便响应(严格来说,这种方式只是在IIC基础上z用户定义的通信方式)。

最常见的情况,如前面所说,主从器件的角色是确定的,也就是说从机一直工作在从机模式。它的地址确定方法我已经说过了。不同的器件定义地址的方式是不同的,有的是软件定义,有的是硬件定义。你找个数据手册看看就明白了,纸上谈兵很难说清楚。

『贰』 IIC(I2C)总线上的设备其地址如何定义

IIC总线
一般串行数据通讯都有时钟和数据之分,有异步和同步之别.
有单线,双线和三线等.

I2C肯定是2线的(不算地线).

I2C协议确实很科学,比3/4线的SPI要好,当然线多通讯速率相对就快了.

I2C的原则是:

在SCL=1(高电平)时,SDA千万别忽悠!!!

否则,SDA下跳则"判罚"为"起始信号S",SDA上跳则"判罚"为"停止信号P".

在SCL=0(低电平)时,SDA随便忽悠!!!(可别忽悠过火到SCL跳高)

每个字节后应该由对方回送一个应答信号ACK做为对方在线的标志.

非应答信号一般在所有字节的最后一个字节后.一般要由双方协议签定.

SCL必须由主机发送,否则天下大乱.

首字节是"片选信号",即7位从机地址加1位方向(读写)控制.

从机收到(听到)自己的地址才能发送应答信号(必须应答!!!)表示自己在线.

其他地址的从机不允许忽悠!!!(当然群呼可以忽悠但只能听不许说话)

读写是站在主机的立场上定义的.

"读"是主机接收从机数据,"写"是主机发送数据给从机.

重复位主要用于主机从发送模式到接收模式的转换"信号",由于只有2线,

所以收发转换肯定要比SPI复杂,因为SPI可用不同的边沿来收发数据,而I2C不行.

在硬件I2C模块,特别是MCU/ARM/DSP等每个阶段都会得到一个准确的状态码,

根据这个状态码可以很容易知道现在在什么状态和什么出错信息.

7位I2C总线可以挂接127个不同地址的I2C设备,0号"设备"作为群呼地址.

10位I2C总线可以挂接更多的10位I2C设备.

总之,只要掌握I2C的忽悠记,一般很容易掌控... 第一个字节(为slave address)由7位地址和一位R/W读写位组成的,这字节是个器件地址。
首先,你要知道:常用IIC接口通用器件的器件地址是由种类型号,及寻址码组成的,共7位。
如格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
1-器件类型由:D7-D4 共4位决定的。这是由半导公司生产时就已固定此类型的了,也就是说这4位已是固定的。

2-用户自定义地址码:D3-D1共3位。这是由用户自己设置的,通常的作法如EEPROM这些器件是由外部IC的3个引脚所组合电平决定的(用常用的名字如A0,A1,A2)。这也就是寻址码。
所以为什么同一IIC总线上同一型号的IC只能最多共挂8片同种类芯片的原因了。

3-最低一位就是R/W位。这位不用我多说了。
在现代电子系统中,有为数众多的IC需要进行相互之间以及与外界的通信。为了提供硬件的效率和简化电路的设计,PHILIPS开发了一种用于内部IC控制的简单的双向两线串行总线I2C。I2C总线支持任何一种IC制造工艺,并且PHILIPS和其他厂商提供了种类非常丰富的I2C兼容芯片。作为一个专利的控制总线,I2C已经成为世界性的工业标准。

每个器件都有一个唯一的地址,而且可以是单接收的器件(例如:LCD驱动器)或者可以接收也可以发送的器件(例如:存储器)。发送器或接收器可以在主模式或从模式下操作,这取决于芯片是否必须启动数据的传输还是仅仅被寻址。I2C是一个多主总线,即它可以由多个连接的器件控制。
基本的I2C总线规范于20年前发布,其数据传输速率最高为100Kbits/s,采用7位寻址。但是由于数据传输速率和应用功能的迅速增加,I2C总线也增强为快速模式(400Kbits/s)和10位寻址以满足更高速度和更大寻址空间的需求。
I2C总线始终和先进技术保持同步,但仍然保持其向下兼容性。并且最近还增加了高速模式,其速度可达3.4Mbits/s。它使得I2C总线能够支持现有以及将来的高速串行传输应用,例如EEPROM和Flash存储器。 在现代电子系统中,有为数众多的IC需要进行相互之间以及与外界的通信。为了提供硬件的效率和简化电路的设计,PHILIPS开发了一种用于内部IC控制的简单的双向两线串行总线I2C。I2C总线支持任何一种IC制造工艺,并且PHILIPS和其他厂商提供了种类非常丰富的I2C兼容芯片。作为一个专利的控制总线,I2C已经成为世界性的工业标准。

每个器件都有一个唯一的地址,而且可以是单接收的器件(例如:LCD驱动器)或者可以接收也可以发送的器件(例如:存储器)。发送器或接收器可以在主模式或从模式下操作,这取决于芯片是否必须启动数据的传输还是仅仅被寻址。I2C是一个多主总线,即它可以由多个连接的器件控制。
基本的I2C总线规范于20年前发布,其数据传输速率最高为100Kbits/s,采用7位寻址。但是由于数据传输速率和应用功能的迅速增加,I2C总线也增强为快速模式(400Kbits/s)和10位寻址以满足更高速度和更大寻址空间的需求。
I2C总线始终和先进技术保持同步,但仍然保持其向下兼容性。并且最近还增加了高速模式,其速度可达3.4Mbits/s。它使得I2C总线能够支持现有以及将来的高速串行传输应用,例如EEPROM和Flash存储器。

『叁』 请教一个修改I2C地址的问题

IIC上的每个器件是否都要一个地址寄存器来确定自己的地址:很多器件都是通过硬件来确定地址的。
有的在出厂时地址就设置好了,用户不可以更改,有的确定了几位,剩下几位由硬件确定(比如有三位由用户确定,就留有3个控制地址的引脚),此类较多;还有的有地址寄存器。
严格讲,主机不是向从机发送地址,而是主机往总线上发送地址,所有的从机都能接收到主机发出的地址,然后每个从机都将主机发出的地址与自己的地址比较,如果匹配上了,这个从机就会向主机发出一个响应信号。主机收到响应信号后,开始向总线上发送数据,与这个从机的通讯就建立起来了。如果主机没有收到响应信号,则表示寻址失败。
比如带IIC的单片机,会有地址寄存器,寄存器里的值即为它作为从机时的地址。
最常见的情况,主从器件的角色是确定的,也就是说从机一直工作在从机模式。它的地址确定方法我已经说过了。不同的器件定义地址的方式是不同的,有的是软件定义,有的是硬件定义。

『肆』 如何设置I2C的偏移地址为16位

是这样的,我们一般的I2C协议的数据格式是这样的
主机:W(I2C
Slaver
Adder
W/R),
I2C设备的偏移量
I2CData;但有些I2C设备的偏移地址是16位的
假如
W(36)
80
40
00
80
40就是偏移量即0x8040

『伍』 linux中i2c总线中从机地址怎么设置

S3C2410X集成了一个LCD控制器(支持STN和TFT带有触摸屏的液晶显示屏)、SDRAM控制器、3个通道的UART、4个通道的DMA、4个具有PWM功能的计时器和一个内部时钟、8通道的10位ADC。S3C2410还有很多丰富的外部接口,例如触摸屏接口、I2C总线接口、I2S总线接口、两个USB主机接口、一个USB设备接口、两个SPI接口、SD接口和MMC卡接口。在时钟方面S3C2410X也有突出的特点,该芯片集成了一个具有日历功能的RTC和具有PLL(MPLL和UPLL)的芯片时钟发生器。MPLL产生主时钟,能够使处理器工作频率最高达到203MHz。这个工作频率能够使处理器轻松运行WIN CE、LINUX等操作系统以及进行较为复杂的信息处理。
S3C2410X芯片相关数据:
? 203MHz ARM920T 内核,0.18um工艺,超低功耗,272 pin BGA封装
? 带MMU,16KB指令缓存,16KB数据缓存
? 1.8V内核电源,3.3V I/O电压,兼容1.8,2.5,3.3V内存电压
? 内含SDRAM控制器
? 117个GPIO,24个外部中断
? 内置LCD控制器,可接真彩色,大屏幕TFT液晶
? 丰富的外部接口:4通道DMA,3个串口,一个SPI口,一个IIC接口,一个USB device口,一个USB host口
? 8通道10-bit AD,4通道PWM输出
? 内置RTC,PLL
? 内置SD,MMC,Smart Media等存储卡接口
? 支持从SmartMedia (Nand Flash)中启动系统
请采纳答案,支持我一下。

『陆』 如何获取I2C总线上多个设备的地址

I2C是有统一定义的,不会冲突。
24LC16B.html">24LC16B地址datasheet上肯定说了,仔细看吧。

有些器件会有一个或几个IO来改变I2C的地址。

象24LC16就有A2,A1,A0可以有8个不同的I2C地址。

因此可以同时接8个一样的器件而不冲突。

24LC16的I2C地址为1010xxx,xxx即为A2,A1,A0,所以A0-AF都是。最低位为读写控制。

『柒』 I2C总线中的从设备如何知道自己的地址

每个I2C器件在出厂时都会固化自己的I2C地址的,也有通过硬件引脚选择I2C地址的;而且I2C器件内部有MCU,可以识别总线上的信号并根据信号作出相应的处理;在接收到总线上的地址位后,会与自身的地址比较,一旦相同,则发出应答信号;

总之一条,I2C器件内部的MCU是知道自己的地址的,这是I2C规范

『捌』 如何设置 stm32 为硬件 i2c 外设的从设备

STM32F10x_硬件I2C主从通信(轮询发送,中断接收):
http://blog.csdn.net/ybhuangfugui/article/details/52250074

关于专STM32技术博客属:
http://blog.csdn.net/ybhuangfugui

『玖』 怎样知道i2c设备的地址是什么

看芯片的datasheet,然后看硬件电路图或是问硬件设计者芯片的地址引脚配置,因为I2C设备的地址有的是固定的,有的是可以配置的。

阅读全文

与i2c设备如何修改硬件地址相关的资料

热点内容
用什么仪器检测电镀中锡的含量 浏览:967
空调为什么要有制冷制热呢 浏览:544
机械车位设置于地下车库什么位置好 浏览:4
好看日本推理片 浏览:390
五菱宏光1点2分离轴承什么型号 浏览:873
你喜欢的大胸部电影 浏览:833
巨鑫五金制品厂 浏览:94
地暖管阀门坏了怎么更换 浏览:862
燕秀工具箱快捷键哪里修改 浏览:663
前度2 浏览:208
安禄山与杨贵妃电影 浏览:434
B超设备IU22与西门子哪个好 浏览:243
数控机床切削圆弧怎么编码 浏览:24
卡布奇诺免费观看 浏览:657
铸造件怎么有缝 浏览:34
姜恩惠所有电影作品 浏览:976
机械灌注桩直径最小多少钱 浏览:883
未删除的电影 浏览:745
旧阀门什么公司能用 浏览:877
山东中小型精酿啤酒设备哪个火 浏览:413