iic是用半双工的方式,由两个串口一个sda和scl,一个数据一个时钟
其他spi,UASRT的需要(ch340)电平转换芯片,如果用iic不需要电平转换,硬件实现简单。支持多设备
mcu一个挂载数据一个挂载时钟,都是共用两根信号线,而且可链接多个iic设备,最多可链接127个iic设备。速度不是很快
主机相当于一个mcu,而从机相当于设备
一个iic总线只使用两条总线线路,一条串行数据线(sda)用于表示数据,串行时钟线(scl)用于数据收发。每个设备都有独立地址
主机可以利用设备地址进行不同设备直接访问
(通过独立地址)
总线接上拉电阻接到vcc,sda和scl都是链接到vcc
如果iic空闲时候,会输出高阻态(可以借鉴gpio的四种输出模式1.开漏2.推挽这两个都是用mos管也是类似高阻态)(相当于断路,由于电阻过大,电流过不去)
当所有设备都空闲时,都会输出高阻态,由上拉电阻把总线拉成高电平
多个主机同时使用总线时,为了防止数据冲突,会使用仲裁方式决定哪个设备占用总线
仲裁方式可以比如单片机里的中断优先级,看哪个比较优先
三种传输模式:标准传输为100kb/s,快速模式为400kb/s,高速模式为3.4mb/s,大部分不支持高速模式
硬件iic和软件iic有什么区别?
硬件iic:对于芯片外设有驱动电路,有的原理图芯片标注串口,a9和a10=uart1,有的引脚对应的驱动电路
软件iic:使用普通gpio口,模拟iic的功能
硬件效率比软件快,软件是可以通过gpio口,软件模拟寄存器的工作方式,从而不受引脚限制
而硬件不行,但是硬件iic是直接通过内部寄存器进行配置,实际io口可以看芯片手册,固件iic端口是固定的
区分硬件iic和软件iic:
硬件iic用法比较复杂一些,模拟iic更加清晰
硬件iic比模拟iic快,并且可以用dma
模拟iic用非指定引脚,而硬件iic只能指定引脚
版权声明:本文为CSDN博主「编程小白日常」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_67033140/article/details/122926872
iic是用半双工的方式,由两个串口一个sda和scl,一个数据一个时钟
其他spi,UASRT的需要(ch340)电平转换芯片,如果用iic不需要电平转换,硬件实现简单。支持多设备
mcu一个挂载数据一个挂载时钟,都是共用两根信号线,而且可链接多个iic设备,最多可链接127个iic设备。速度不是很快
主机相当于一个mcu,而从机相当于设备
一个iic总线只使用两条总线线路,一条串行数据线(sda)用于表示数据,串行时钟线(scl)用于数据收发。每个设备都有独立地址
主机可以利用设备地址进行不同设备直接访问
(通过独立地址)
总线接上拉电阻接到vcc,sda和scl都是链接到vcc
如果iic空闲时候,会输出高阻态(可以借鉴gpio的四种输出模式1.开漏2.推挽这两个都是用mos管也是类似高阻态)(相当于断路,由于电阻过大,电流过不去)
当所有设备都空闲时,都会输出高阻态,由上拉电阻把总线拉成高电平
多个主机同时使用总线时,为了防止数据冲突,会使用仲裁方式决定哪个设备占用总线
仲裁方式可以比如单片机里的中断优先级,看哪个比较优先
三种传输模式:标准传输为100kb/s,快速模式为400kb/s,高速模式为3.4mb/s,大部分不支持高速模式
硬件iic和软件iic有什么区别?
硬件iic:对于芯片外设有驱动电路,有的原理图芯片标注串口,a9和a10=uart1,有的引脚对应的驱动电路
软件iic:使用普通gpio口,模拟iic的功能
硬件效率比软件快,软件是可以通过gpio口,软件模拟寄存器的工作方式,从而不受引脚限制
而硬件不行,但是硬件iic是直接通过内部寄存器进行配置,实际io口可以看芯片手册,固件iic端口是固定的
区分硬件iic和软件iic:
硬件iic用法比较复杂一些,模拟iic更加清晰
硬件iic比模拟iic快,并且可以用dma
模拟iic用非指定引脚,而硬件iic只能指定引脚
版权声明:本文为CSDN博主「编程小白日常」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_67033140/article/details/122926872
暂无评论