有读者问:gpio配置不同输出速度会有什么影响?
1、写在前面
这个问题看起来比较简单,我相信很多人都能说出答案。
但是,很多人都只是停留在表面,没有在项目中经历过,也没有更深入的去了解。
很早之前年的单片机可能没有输出速度这个配置选项,但是这后面的单片机基本都有配置速度的选项,下面结合stm32来简单介绍一下。
2、gpio输出速度
不管标准外设库,还是stm32cubemx配置gpio输出引脚,都会有速度gpio_initstruct.speed这个选项。
类似如下:
gpio_initstruct.pin = gpio_pin_5; gpio_initstruct.mode = gpio_mode_output_pp; gpio_initstruct.pull = gpio_nopull; gpio_initstruct.speed = gpio_speed_freq_low; hal_gpio_init(gpioa, gpio_initstruct);
根据不同mcu型号,速度选项,有些有3个,有些有4个。一般定义在xxx_gpio.h文件中。
#define gpio_speed_2mhz gpio_speed_level_1 /*!< i/o output speed: low 2 mhz */ #define gpio_speed_10mhz gpio_speed_level_2 /*!< i/o output speed: medium 10 mhz */ #define gpio_speed_50mhz gpio_speed_level_3 /*!< i/o output speed: high 50 mhz */#define gpio_speed_freq_low (0x00000000u) /*!< low speed */ #define gpio_speed_freq_medium (0x00000001u) /*!< medium speed */ #define gpio_speed_freq_high (0x00000002u) /*!< high speed */ #define gpio_speed_freq_very_high (0x00000003u) /*!< very high speed */
对于普通输出gpio,使用stm32cubemx配置,默认配置低:
当然,如果配置成其他模式,有可能是中,或高。
比如:配置uart、can引脚,速度会是高。
提问:你想过为什么会是低、高吗?
3、实验:测量gpio输出波形
不知道大家用示波器测量过gpio输出波形没有,特别是在高速(单位m)的时候。
我以前经常测量mco引脚输出时钟,测量过的人应该都知道,如果输出速度高于配置速度,会明显看到波形不正常。
波形会出现不完整,幅度低等失真现象。
相信不用我说,有一定常识的人都能理解。
4、具体原因
速度的配置,就是决定io口驱动电路的响应速度。
我们需要结合实际情况配置速度,不同速度会有不同的影响。
高低速差异:
配置高速:输出频率高,噪音大,功耗高,电磁干扰强;
配置低速:输出频率低,噪音小,功耗低,电磁干扰弱;提高系统emi(电磁干扰)性能;
看到差异,相信很多人就能理解了。
实际情况中,比如:低功耗的产品,你会考虑功耗。
环境不好的场合,通信不稳定,你会考虑电磁干扰等。
举例:
如果你使用9600波特率uart通信,建议速度配置为低。
所以,如果你想使产品更加完美,速度配置也是关键的一项。
半导体市场供不应求 材料锗或进一步加大需求量
电机软起动 电机软启动器
三星Galaxy S21系列机型上配备最新的Exynos 2100芯片
移位寄存器的特点_移位寄存器工作原理
锂电池采购招标项目主要应用在哪里?
GPIO配置不同输出速度会有什么影响
瑞典也延迟5G牌照的拍卖,为了电信网络国家安全
在无线传输领域中低功耗CO2传感技术的应用
我国低轨通信卫星发展进入战略机遇期
ROHM | 在桥式结构中的注意事项 — 探头的CMRR
OPPO宣布放弃自研芯片,ZEKU全部解散!国产芯任重道远!
中国95%以上的高端PLC和工业网络协议被国外厂商垄断,工业数据采集能力薄弱
在车圈大玩长期“价值”,极狐是懂点“经济学”的!
智能产品需“适老化”改造
LTC4425应用电路 (恒定电流/恒定电压线性充电器)
荣耀代工厂商为深科技和比亚迪电子
为何苹果在智能电视竞争中掉队
SystemVerilog相比于Verilog的优势
超高性价比 从设计到APP全面升级——埃微i6HR手环
面向工业互联网场景的确定性IP网络发布,具有重大意义