[硬件笔记] IIC通讯、浮空输出、上拉电阻
IIC原理超详细讲解—值得一看 https://blog.csdn.net/as480133937/article/details/105366932
GPIO常见名词——推挽、开漏、浮空、上拉、下拉、高阻态 https://blog.csdn.net/weixin_45920495/article/details/134074327
- 在此记下
IIC
关键笔记, 方便检漏;
- 没有片选,只有数据线
SDA
,和时钟线SCL
;数据线需要兼顾输出与接收; - 每条指令开头伴随设备地址,类似
Modbus
协议,使用地址码区分设备. 而且该地址码一般出厂设定后不允许修改的. SDA
与SCL
输出时需要配置为浮空输出
,并配置上拉电阻
.很关键!!!- 开漏输出: 低电平时接地, 高电平时断路 (高阻态,输入,怎么理解?);高电平电压就有上拉电阻决定;不通讯时也是设定为高组态,不影响其他设备通讯;
- 上拉电阻: 不能太大!!!查看模块手册!!!
实例: 原本pcb上,模块与单片机直接考得挺近,没有过孔直连.上拉电阻配置10K电阻,通讯没有问题;后来改pcb,将模块与单片机隔远了一点,还加了几个过孔走线.结果死活通讯不上,使用示波器查看,通讯时序和电平也没啥问题,最后发现原来是上拉电阻的问题,将上拉电阻改为5.1K后就正常了.所以特地写个帖子提醒自己!!!
- 通讯时序, 根据模块手册搭配示波器来就好了,盲调凭感觉,太不科学.如果延时不够就加延时,如果延时过大就减少函数嵌套直接寄存器操作;
iic
通讯速率比spi
通讯速率低.