iic的介绍

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

生成海报
点赞 0

编程小白日常

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

GD32利用CubeMX构建代码的测试

前言 近期搞到一块GD32F103c8t6的开发板,号称是和STM32F103C8T6 Pin To Pin兼容的,查了一些资料,很多老哥也搞过类似的测试,多半结果是不兼容&#xff0c

rt-thread使用segger_rtt打印,节约串口

串口,是单片机上一种非常重要的资源。 rt-thread的finsh功能(就是msh了)是非常重要的调试打印接口。 rt-thread默认使用一个串口去实现finsh的功能,然而实际产品

STM32 C++编程系列一:STM32 C++编程介绍

一、STM32及其他单片机开发现状 在目前绝大部分的单片机开发当中,C语言占据着主流的地位,但由于C语言本身是一种面向过程的语言,因此在当前利用面向对象思想构建可复用代码为主流的今天显得比较麻烦&#x