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

如果有上拉电阻就可以了。
页: 1 2 [3] 4 5
查看完整版本: HC32L136在模拟IIC上设置成开漏输出是不是不能读输入电平?