电子产业一站式赋能平台

PCB联盟网

搜索
查看: 59|回复: 0
收起左侧

单片机IO配置为啥需要配置速度,它们有啥区别?

[复制链接]

424

主题

424

帖子

4371

积分

四级会员

Rank: 4

积分
4371
发表于 2024-8-28 11:50:00 | 显示全部楼层 |阅读模式
关注+星标公众,不错过精彩内容
作者 | strongerHuang
微信公众号 | strongerHuang
这是一个初学者不会去了解的问题,但,会使老司机掉坑的问题。
这也是最近在技术交流群看到的一个问题,所以,就出来简单分享一下。
概述
这个问题看起来比较简单,我相信很多人都能说出答案。
但是,很多人都只是停留在表面,没有在项目中经历过,也没有更深入的去了解。

kb352hhntfq64018652544.jpg

kb352hhntfq64018652544.jpg

很早之前年的单片机可能没有输出速度这个配置选项,但是这后面的单片机基本都有配置速度的选项,下面结合STM32来简单介绍一下。
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   /*!#define GPIO_Speed_10MHz GPIO_Speed_Level_2   /*!#define GPIO_Speed_50MHz GPIO_Speed_Level_3   /*!
  • #define  GPIO_SPEED_FREQ_LOW        (0x00000000u)  /*!#define  GPIO_SPEED_FREQ_MEDIUM     (0x00000001u)  /*!#define  GPIO_SPEED_FREQ_HIGH       (0x00000002u)  /*!#define  GPIO_SPEED_FREQ_VERY_HIGH  (0x00000003u)  /*!
    对于普通输出GPIO,使用STM32CubeMX配置,默认配置低:

    siugnyi5b0p64018652644.png

    siugnyi5b0p64018652644.png

    当然,如果配置成其他模式,有可能是中,或高。
    比如:配置UART、CAN引脚,速度会是高。
    提问:你想过为什么会是低、高吗?
    测量GPIO输出波形
    不知道大家用示波器测量过GPIO输出波形没有,特别是在高速(单位M)的时候。
    我以前经常测量MCO引脚输出时钟,测量过的人应该都知道,如果输出速度高于配置速度,会明显看到波形不正常。
    波形会出现不完整,幅度低等失真现象。
    相信不用我说,有一定常识的人都能理解。
    差异原因
    速度的配置,就是决定IO口驱动电路的响应速度。
    我们需要结合实际情况配置速度,不同速度会有不同的影响
    高低速差异:配置高速:输出频率高,噪音大,功耗高,电磁干扰强;
    配置低速:输出频率低,噪音小,功耗低,电磁干扰弱;提高系统EMI(电磁干扰)性能;
    看到差异,相信很多人就能理解了。
    实际情况中,比如:低功耗的产品,你会考虑功耗。
    环境不好的场合,通信不稳定,你会考虑电磁干扰等。
    举例:如果你使用9600波特率UART通信,建议速度配置为低。
    所以,如果你想使产品更加完美,速度配置也是关键的一项。------------ END ------------

    wo1flizxd2f64018652744.gif

    wo1flizxd2f64018652744.gif

    ●专栏《嵌入式工具●专栏《嵌入式开发》●专栏《Keil教程》●嵌入式专栏精选教程
    关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。
    点击“阅读原文”查看更多分享。
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表