打印
[其他]

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

[复制链接]
楼主: WT418995874
手机看帖
扫描二维码
随时随地手机跟帖
21
sheflynn| | 2024-7-10 21:08 | 只看该作者 回帖奖励 |倒序浏览
需要在模拟IIC通信中读取输入电平,您需要将输出引脚从开漏输出模式切换到输入模式。这通常是通过改变引脚配置寄存器中的相应位来实现的。

使用特权

评论回复
22
youtome| | 2024-7-11 00:11 | 只看该作者
即使在开漏模式下,你也可以读取HC32L136的输入引脚电平来监测IIC总线上的信号。

使用特权

评论回复
23
gygp| | 2024-7-12 09:06 | 只看该作者
开漏输出模式下,当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。这意味着,在开漏模式下,IO口的输入状态可能会受到外部电路的影响,而不完全取决于MCU的控制。

使用特权

评论回复
24
beacherblack| | 2024-7-12 12:17 | 只看该作者
在输入模式下,微控制器可以读取引脚上的电压水平,并根据需要进行相应的处理。

使用特权

评论回复
25
mattlincoln| | 2024-7-12 15:54 | 只看该作者
需要从总线上读取数据时,确保你的开漏输出设备已经在逻辑“1”状态下驱动了高电平,这样总线上的电平才会被上拉至高电平,你的HC32L136可以通过读取输入引脚来检测这个高电平。

使用特权

评论回复
26
uiint| | 2024-7-12 19:03 | 只看该作者
开漏输出(Open-Drain Output)的主要特点是无法直接输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻来完成对外驱动。当输出低电平时,N-MOS管导通,将输出电平拉低;而当需要输出高电平时,N-MOS管截止,此时输出电平由外部上拉电阻连接的电源电平决定。

使用特权

评论回复
27
sheflynn| | 2024-7-12 22:33 | 只看该作者
当你在HC32L136上模拟I²C并需要读取总线电平时,你应该暂时将相关的引脚配置为输入模式(如浮空输入)。完成读取后,再将引脚重新配置为开漏输出模式以继续控制总线。

使用特权

评论回复
28
digit0| | 2024-7-12 23:27 | 只看该作者
设置推挽输出没有问题,只有外接上拉电阻可用,因为peer iic是硬件接口,一般是开漏的。

使用特权

评论回复
29
qiufengsd| | 2024-7-13 09:58 | 只看该作者
将SCL和SDA引脚配置为开漏输出后,单片机仍然可以通过读取这些引脚的电平状态来获取总线上的数据。这是因为开漏输出模式下,引脚的电平状态是由外部电路(包括上拉电阻和连接的设备)共同决定的。

使用特权

评论回复
30
天天向善| | 2024-7-13 11:33 | 只看该作者
iic引脚是一个开路泄漏引脚,需要与一个拉电阻耦合

使用特权

评论回复
31
1988020566| | 2024-7-13 13:20 | 只看该作者
在使用HC32L136或其他微控制器通过GPIO模拟I²C(Inter-Integrated Circuit)总线协议时,通常会将相关的引脚配置为开漏输出模式。开漏输出模式允许引脚仅能驱动低电平(拉低),而高电平则由外部上拉电阻提供。

使用特权

评论回复
32
elsaflower| | 2024-7-13 16:25 | 只看该作者
需要在模拟IIC通信时读取输入电平,建议将引脚配置为输入模式,而不是开漏输出模式。这样可以确保IO口的状态能够被正确读取。

使用特权

评论回复
33
mnynt121| | 2024-7-13 19:47 | 只看该作者
当HC32L136的IIC接口设置为开漏输出时,你仍然可以通过读取输入引脚的电平来检测总线上其他设备的信号状态。开漏输出只是指输出引脚在逻辑“0”状态下不会驱动低电平,而是保持在高阻抗状态,此时输入引脚会反映外部上拉电阻和总线上其他设备共同决定的电平状态。

使用特权

评论回复
34
benjaminka| | 2024-7-14 10:00 | 只看该作者
在IIC通信中,需要能够检测到总线上的电平变化,以判断数据是否正在传输,或者是否有设备正在请求总线访问等。

使用特权

评论回复
35
belindagraham| | 2024-7-14 13:02 | 只看该作者
如果需要在读取输入电平时不受开漏输出的影响,可以考虑使用推挽输出配置,并在必要时切换到输入模式来读取电平。但是,这样做可能会违反IIC协议的规范,因为IIC总线上的设备通常期望SDA线在空闲时被上拉至高电平。

使用特权

评论回复
36
averyleigh| | 2024-7-14 16:04 | 只看该作者
HC32L136在模拟IIC上设置成开漏输出后,仍然可以读取输入电平。这是通过读取单片机内部的输入数据寄存器来实现的,而引脚的电平状态则是由外部电路(包括上拉电阻和连接的设备)共同决定的。

使用特权

评论回复
37
febgxu| | 2024-7-15 11:15 | 只看该作者
在模拟IIC通信中,通常使用开漏输出模式来实现多主设备之间的通信。这是因为开漏输出模式允许多个设备共享同一条数据线,并且可以通过外部上拉电阻来提供高电平。

使用特权

评论回复
38
i1mcu| | 2024-7-15 14:20 | 只看该作者
单片机可以通过其内部的输入数据寄存器(如GPIOx_IDR)来读取引脚的电平状态。这些寄存器会在每个时钟周期捕获I/O引脚上的数据。

使用特权

评论回复
39
abotomson| | 2024-7-16 14:15 | 只看该作者
在I²C通信中,读取数据或ACK(确认)信号时,需要将引脚配置为输入模式。这通常是通过将引脚设置为浮空输入(有时称为高阻抗输入)来实现的。

使用特权

评论回复
40
janewood| | 2024-7-16 17:21 | 只看该作者
在HC32L136单片机上模拟IIC通信时,将SCL和SDA引脚配置为开漏输出是常见的做法。这样做的好处是可以方便地实现“线与”功能,即多个设备的SCL和SDA引脚可以直接相连,只有当所有设备都输出高电平时,总线才为高电平;只要有任意一个或多个设备输出低电平,总线就为低电平。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则