STM32微控制器 | MCU单片机 | 意法半导体STM
STM意法半导体MCU GPIO开漏输出_OUT_OD 模式工作原理
GPIO开漏输出模式的工作原理图
当CPU 在编号1 端通过“位设置/ 清除寄存器”或“输出数据寄存器”写入数据后
该数据位将通过编号2的输出控制电路传送到编号4 的I/O端口。
如果CPU 写入的是逻辑“1 ”,则编号3 的N-MOS管将处于关闭状态
此时I/O 端口的电平将由外部的上拉电阻决定
如果CPU 写入的是逻辑“0 ”,则编号3的N-MOS管将处于开启状态
此时I/O端口的电平被编号3 的N-MOS管拉到了“地”的零电位。
在图中的上半部,施密特触发器处于开启状态
这意味着CPU 可以在“输入数据寄存器”的另一端,随时可以监控I/O端口的状态
通过这个特性,还可以实现了虚拟的I/O端口双向通信:假如CPU 输出逻辑“1 ”
由于编号3 的N-MOS管处于关闭状态,I/O 端口的电平将完全由外部电路决定
因此,CPU 可以在“输入数据寄存器”读到外部电路的信号,而不是它自己输出的逻辑“1 ”
GPIO口的输出模式下,有3 种输出速度可选(2MHz 、10MHz和50MHz)
这个速度是指GPIO口驱动电路的响应速度,而不是输出信号的速度
输出信号的速度与程序有关(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路
用户可以根据自己的需要选择合适的驱动电路)。
通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。
高频的驱动电路,噪声很高
当我们的项目不需要比较高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI 性能。
当然如果我们的项目要求输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到比较失真的输出信号