[其他] HC32L136在模拟IIC上设置成开漏输出是不是不能读输入电平?

[复制链接]
17889|95
abotomson 发表于 2024-7-16 14:15 | 显示全部楼层
在I²C通信中,读取数据或ACK(确认)信号时,需要将引脚配置为输入模式。这通常是通过将引脚设置为浮空输入(有时称为高阻抗输入)来实现的。
janewood 发表于 2024-7-16 17:21 | 显示全部楼层
在HC32L136单片机上模拟IIC通信时,将SCL和SDA引脚配置为开漏输出是常见的做法。这样做的好处是可以方便地实现“线与”功能,即多个设备的SCL和SDA引脚可以直接相连,只有当所有设备都输出高电平时,总线才为高电平;只要有任意一个或多个设备输出低电平,总线就为低电平。
benjaminka 发表于 2024-7-16 20:27 | 显示全部楼层
当一个引脚被配置为开漏输出时,它本身并不能主动读取输入电平。
mikewalpole 发表于 2024-7-17 09:38 | 显示全部楼层
在读取电平状态时,需要确保外部上拉电阻的阻值适当,以确保总线在空闲状态时能够稳定在高电平。
lzbf 发表于 2024-7-17 13:04 | 显示全部楼层
当你需要发送数据时,可以将引脚设置为输出模式(推挽输出或其他适合的输出模式),并在发送完成后及时将引脚设置为输入模式,以便读取IIC总线上的数据。
burgessmaggie 发表于 2024-7-17 16:31 | 显示全部楼层
它不会主动拉高或拉低总线电平,而是依靠外部上拉电阻将总线保持在高电平。
plsbackup 发表于 2024-7-17 19:52 | 显示全部楼层
直接读取开漏输出引脚的状态并不反映总线的真实电平,因为你读取的是引脚内部的状态,而非总线上的状态。
febgxu 发表于 2024-7-18 20:09 | 显示全部楼层
模拟IIC(Inter-Integrated Circuit)通信中,当将HC32L136设置为开漏输出模式时,它不能同时读取输入电平。开漏输出模式允许微控制器将输出信号“拉低”到地(0V),但不能“推高”到电源电压(VCC)。这意味着,当微控制器试图输出高电平时,它实际上是将输出引脚置于高阻态,允许外部上拉电阻将引脚电压拉至高电平。
mmbs 发表于 2024-7-19 08:11 | 显示全部楼层
高电平则由外部上拉电阻提供。这种配置对于I²C总线是非常重要的,因为它允许多个设备共享同一总线而不至于产生冲突,同时支持时钟延展(clock stretching)特性。
suncat0504 发表于 2024-7-19 16:42 | 显示全部楼层
目标设备有上拉电阻的话,不算问题吧。
地瓜patch 发表于 2024-7-29 22:13 | 显示全部楼层
个人习惯用模拟iic
模拟iic比硬件iic好用
suncat0504 发表于 2024-7-30 07:42 | 显示全部楼层
算是踩坑了额,跟着学习经验。
suncat0504 发表于 2024-7-30 07:43 | 显示全部楼层
与外设有没有关系?比如比如外设的上拉电阻、寄生电容不一致,导致的结果不一样?
鹿鼎计 发表于 2024-8-1 14:47 | 显示全部楼层
我也觉得不能和stm一样,只是切换状态,
朝生 发表于 2024-8-2 23:59 | 显示全部楼层
当引脚被配置为打开泄漏输出时,它不会主动读取输入电平。
suncat0504 发表于 2024-8-5 08:50 | 显示全部楼层
有上拉电阻的话,就可以的吧。
Pretext 发表于 2024-8-5 17:08 | 显示全部楼层
泄漏模式不稳定,所以切换到推挽模式,
理想阳 发表于 2024-8-6 12:11 | 显示全部楼层
如果目标器件有上拉电阻,这不是问题。
LinkMe 发表于 2024-8-7 15:42 | 显示全部楼层
在开路泄漏模式下,可以认为该引脚处于高阻态
V853 发表于 2024-8-10 13:57 | 显示全部楼层
如果有上拉电阻就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部