【嵌入式】GPIO引脚速度、翻转速度、输出速度区别

举报
LongYorke 发表于 2021/01/02 21:09:56 2021/01/02
【摘要】 GPIO引脚速度、翻转速度、输出速度区别

(1). GPIO 引脚速度: GPIO_Speed_2MHz (10MHz, 50MHz) ;

又称输出驱动电路的响应速度:(芯片内部I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制降低功耗的目的。)

可理解为: 输出驱动电路的带宽:即一个驱动电路可以不失真地通过 信号的最大频率

(如果一个信号的频率超过了驱动电路的响应速度,就有可能信号失真

如果信号频率为10MHz,而你配置了2MHz的带宽,则10MHz的方波很可能就变成正弦波。就好比是公路的设计时速,汽车速度低于设计时速时,可以平稳地运行,如果超过设计时速就会颠簸,甚至翻车。

关键是: GPIO的引脚速度跟应用相匹配速度配置越高噪声越大功耗越大

带宽速度高的驱动器耗电大噪声也大,带宽低的驱动器耗电小、噪声也小。使用合适的驱动器可以降低功耗和噪声。

比如:高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。关键是GPIO的引脚速度跟应用匹配(推荐10倍以上)。

比如:

① USART串口,若最大波特率只需115.2k,那用2M的速度就够了,既省电也噪声小。

② I2C接口,若使用400k波特率,若想把余量留大些,可以选用10M的GPIO引脚速度。

③ SPI接口,若使用18M或9M波特率,需要选用50M的GPIO的引脚速度。

(2). GPIO的翻转速度指:输入/输出寄存器的0 ,1 值反映到外部引脚(APB2上)高低电平的速度.手册上指出GPIO最大翻转速度可达18MHz

通过简单的程序测试,用示波器观察到的翻转时间: 是综合的时间,包括取指令的时间、指令执行的时间、指令执行后信号传递到寄存器的时间(这其中可能经过很多环节,比如AHB、APB、总线仲裁等),最后才是信号从寄存器传输到引脚所经历的时间。

如:有上拉电阻,其阻值越大RC延时越大,即逻辑电平转换的速度越慢功耗越大

(3).GPIO 输出速度:与程序有关,(程序中写的多久输出一个信号)。

1、GPIO口设为输入时输出驱动电路与端口是断开,所以输出速度配置无意义

2、在复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式

3、所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式

4、GPIO口的配置具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合直到下次芯片复位才能解锁

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。