你见过的MCU最高GPIO翻转频率是多少?

嵌入式ARM 2021-12-27 12:00

大家好,我是痞子衡,今天给大家介绍的是i.MXRT1010上的普通GPIO与高速GPIO极限翻转频率

在上一篇文章 《聊聊i.MXRT1xxx上的普通GPIO与高速GPIO差异及其用法》中,我从原理上介绍了 i.MXRT1xxx 系列里普通 GPIO 和 HSGPIO 差异,今天我们就来实测它们的极限翻转频率,看看它们实际表现差别到底有多大。

本次选择的测试芯片是 i.MXRT1010,这颗芯片从功能上来说是目前 i.MXRT1xxx 系列里的小兄弟,但别小看它,因为是后面推出的型号,恩智浦的设计团队为它在某些方面做了特殊的性能优化,包括 HSGPIO 性能。话不多说,开测:

一、测试准备工作

1.1 测试板卡及测试点

选定的板卡是恩智浦官方 MIMXRT1010-EVK,板卡上连接 LED 灯的是 GPIO_11,翻看芯片参考手册,这个 PAD 既可以配到普通 GPIO(GPIO1[11]) 也可以配到 HSGPIO(GPIO2[11]),正是理想的 PAD,我们就选择这个 PAD 做测试。此外,最终 I/O 输出波形形态跟外围驱动电路也有关联,所以这里也有必要交待清楚:

1.2 I/O 翻转测试代码

测试工程我们可以直接在 \SDK_2.11.0_EVK-MIMXRT1010\boards\evkmimxrt1010\driver_examples\gpio\led_output 例程上修改,为了尽力展示 GPIO 极限性能,不受其他瓶颈因素干扰,这里选择代码执行性能最高的工程 build(即代码段在 ITCM 里,数据段在 DTCM 里)。

I/O 初始化代码很简单,在 《普通GPIO与高速GPIO差异及其用法》 文章里都介绍清楚了。这里仅有一点注意,为了统一最终 I/O 输出效果,不管是用于普通 GPIO 还是 HSGPIO,我们都直接将测试 PAD 配置到最快的 200MHz 运行频率(PAD 支持的 50/100/150/200MHz 运行频率配置不同有何影响,文章最后会交待):

void io_test_init(bool useNormalGpio)
{
    gpio_pin_config_t led_config = {kGPIO_DigitalOutput, 0, kGPIO_NoIntmode};
    CLOCK_EnableClock(kCLOCK_Iomuxc);      
    IOMUXC_SetPinMux(IOMUXC_GPIO_11_GPIOMUX_IO11, 0U); 
    // Fast Slew Rate, R0/6, 200MHz
    IOMUXC_SetPinConfig(IOMUXC_GPIO_11_GPIOMUX_IO11, 0x70F9U);
    if (useNormalGpio)
    {
        // GPIO1
        IOMUXC_GPR->GPR26 &= ~(1u << 11);
        GPIO_PinInit(GPIO1, 11, &led_config);
    }
    else
    {
        // GPIO2
        IOMUXC_GPR->GPR26 |= (1u << 11);
        GPIO_PinInit(GPIO2, 11, &led_config);
    }
}

在 GPIO 模块里跟电平输出控制相关的寄存器有两个,一个是 DR 寄存器,另一个是 DR_TOGGLE 寄存器,都可用于实现输出电平翻转。有如下代码所示的三种常见电平翻转方法,在低翻转频率情况下,这三种方法是等效的,但是在极限翻转频率情况下,这三种方法表现不完全一致,下一节实测结果会告诉你:

void io_test_run(void)
{
    io_test_init(false);
    while (1)
    {
        // 电平翻转方法一:异或位操作
        //GPIO2->DR ^= 0x800;

        // 电平翻转方法二:直接切换位
        //GPIO2->DR = 0x800;
        //GPIO2->DR = 0x000;

        // 电平翻转方法三:利用 TOGGLE 位
        GPIO2->DR_TOGGLE = 0x800;
    }
}

1.3 芯片系统时钟配置

《普通GPIO与高速GPIO差异及其用法》 一文里曾讲过,普通 GPIO 时钟源是 IPG Bus,而 HSGPIO 时钟源是 AHB Bus,因此测试工程里 AHB/IPG 时钟配置会影响最终 I/0 翻转极限频率。

下图是 i.MXRT1010 内核结构里的 HSGPIO 通路,它和 i.MXRT1060/1170 内核结构里 HSGPIO 通路其实有点小区别,这也是 i.MXRT1010 上的优化之处。

led_output 例程里的默认系统时钟配置,AHB/Core 时钟来自于 PLL6 - 500MHz,AHB_PODF 设 0 (即不分频),而 IPG Bus 时钟源固定来自于 AHB/Core,且只能在其基础上做 1/2/3/4 分频,我们知道 IPG Bus 最高仅支持 150MHz,因此在这种情况下 IPG_PODF 只能设 3(四分频),IPG 时钟实际是 125MHz,显然 HSGPIO 访问可以得到最优性能,但普通 GPIO 达不到最优性能。

为了测试普通 GPIO 的最优性能,我们需要同时再测试一种新的系统时钟配置,AHB/Core 时钟源选用 PLL2_PFD3,将这个源配置为 452.6 MHz,AHB_PODF 依旧设 0,这样 IPG_PODF 设 2(三分频)可以得到 150.8MHz 的 IPG 时钟,这时普通 GPIO 访问可以得到最优性能,不过 HSGPIO 访问就要损失点性能了。

二、测试波形结果

准备工作都做完了,现在就是示波器连上板卡开始实测了,根据组合,一共有时钟配置(x2)* I/O 类型(x2)* 翻转方法(x3)总计 12 个结果,这里仅贴出 HSGPIO 在 500MHz AHB/Core 时钟频率下的三种翻转方法所得到的波形结果,全部测试结果见最后一节。

首先是 GPIO->DR 寄存器异或位操作得到的波形结果,为了减少 while(1) 的执行对翻转频率的影响(毕竟这一句指令也是要消耗 CPU 周期的),我们在 while(1) 里加十次翻转代码,统计结果时也是取 10 个波形周期,最终得到翻转频率为 22.946 MHz,效果似乎一般。汇编窗口来看,这句 C 代码异或操作被翻译成了三条指令,先 LDR 指令读出 GPIO->DR 寄存器当前值,然后 EOR 指令做异或操作,最后再 STR 指令写入 GPIO->DR 寄存器,应该是 LDR 回读指令耗时较长。

再来看 GPIO->DR_TOGGLE 置位操作和 GPIO->DR 的直接写入操作结果,实测下来发现这两种方法得到的翻转频率是一样的(从汇编窗口来看两种翻转方法都是仅一条 STR 指令搞定),都是 250MHz,效果虽好,但有点过头,因为波形里看到的不是标准幅值的方波(受200MHz带宽示波器限制),而是减半幅值的正弦波,也不排除 PAD 最大运行速度是 200MHz,它只能保证在低于 200MHz 的情况下有很好的电压幅值响应表现,超过这个频率,波形频率值不受影响,但电压幅值响应表现不能保证。

三、完整结果统计

现在我们来看一下全部的结果,因为三种 I/O 翻转方法里有两种效果是一样的,所以我们省略了 GPIO->DR 直接写入这种方法的结果,最终得到了 8 个结果。根据实测结果,我们得到了如下结论:

  • 总结1:PAD配置里的运行频率并不限制最终输出翻转频率,只是无法保证超过设置频率后的波形幅值响应表现
  • 总结2:置位 GPIO->DR_TOGGLE 寄存器可获得最佳 I/O 翻转性能
  • 总结3:普通 GPIO 最大翻转频率是 20.614MHz,约是时钟源 IPG Bus 的 1/7.5
  • 总结4:HSGPIO 最大翻转频率是 250MHz,约是时钟源 AHB Bus 的 1/2

四、一个有趣的问题

最后再留一个开放问题,在《以GPIO模块为例谈谈中断处理函数(IRQHandler)的标准流程》 里提到过  ARM Errata 838869 ,即在 Cortex-M4/7 上,如果 CPU 执行速度远远高于 GPIO 外设寄存器写入速度,如果代码逻辑里涉及 GPIO 寄存器回读,一般需要在 GPIO 寄存器写入操作后额外插入 DSB 指令来保证同步。

我们现在在 500MHz AHB/Core 时钟频率下 HSGPIO 翻转代码里额外插入 DSB 指令,看看有什么影响,结果翻转频率从 250MHz 一下子降到了 35.8MHz。

至此,i.MXRT1010上的普通GPIO与高速GPIO极限翻转频率便介绍完毕了,掌声在哪里~~~


END

作者:痞子衡
来源:痞子衡嵌入式

版权归原作者所有,如有侵权,请联系删除。

推荐阅读
单片机ADC常用的十大滤波算法
美国核弹发射井的软件50年没有更新?
一个月薪12000的北京程序员的真实生活

→点关注,不迷路←
嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论 (0)
  • 引言:工业安全与智能化需求的双重驱动在工业安全、环境保护及家庭安防领域,气体泄漏引发的安全事故始终是重大隐患。随着传感器技术、物联网及语音交互的快速发展,气体检测报警器正朝着智能化、低成本、高可靠的方向演进。WT588F02B-8S语音芯片,以“离在线语音更换+多协议通信”为核心优势,为气体检测报警器提供了一套高效、灵活的低成本语音解决方案,助力开发者快速响应市场需求。产品功能与市场需求1. 核心功能:从监测到预警的全流程覆盖实时气体监测:支持一氧化碳、臭氧、硫化氢等多种气体浓度检测,精度可达p
    广州唯创电子 2025-04-22 09:14 68浏览
  • 据国际精益六西格玛研究所(ILSSI)成员大卫·哈钦斯(David Hutchins)的回忆,在“六西格玛”名称出现前,摩托罗拉组建了约100个质量改进团队,接受朱兰博士制作的16盘录像带培训,名为《朱兰论质量改进》(Juran on Quality Improvement),为了推广这种严谨的分析方法(朱兰博士视频中的核心内容),摩托罗拉前首席执行官鲍勃·加尔文创造了“六西格玛”这一标签,用以表彰这种“最顶尖"的方法。大卫·哈钦斯(David Hutchins)是朱兰博士的好友,也为他的工作做
    优思学院 2025-04-22 12:03 66浏览
  •   电磁兼容(EMC)故障诊断系统软件解析   北京华盛恒辉电磁兼容故障诊断系统软件是攻克电子设备电磁干扰难题的专业利器。在电子设备复杂度攀升、电磁兼容问题频发的背景下,该软件于研发、测试、生产全流程中占据关键地位。以下为其详细介绍:   应用案例   目前,已有多个电磁兼容故障诊断系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁兼容故障诊断系统。这些成功案例为电磁兼容故障诊断系统的推广和应用提供了有力支持。   一、软件核心功能   干扰与敏感分析:深度剖析电磁干
    华盛恒辉l58ll334744 2025-04-22 14:53 70浏览
  •   北京华盛恒辉基于GIS的电磁态势可视化系统软件是将地理空间信息与电磁态势数据相结合,通过图形化手段直观展示电磁环境态势的系统。这类软件在军事、通信、无线电管理等领域具有广泛应用,能够辅助用户进行电磁频谱分析、干扰监测、态势研判和决策支持。以下是关于此类系统的详细介绍:   应用案例   目前,已有多个电磁态势可视化系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁态势可视化系统。这些成功案例为电磁态势可视化系统的推广和应用提供了有力支持。   一、系统功能   电磁
    华盛恒辉l58ll334744 2025-04-22 11:44 68浏览
  • 4 月 19 日,“增长无界・智领未来” 第十六届牛商大会暨电子商务十大牛商成果报告会在深圳凤凰大厦盛大举行。河南业之峰科技股份有限公司总经理段利强——誉峰变频器强哥凭借在变频器领域的卓越成就,荣膺第十六届电子商务十大牛商,携誉峰变频器品牌惊艳亮相,以十几年如一日的深耕与创新,书写着行业传奇。图 1:誉峰变频器强哥在牛商大会领奖现场,荣耀时刻定格牛商大会现场,誉峰变频器强哥接受了多家媒体的专访。面对镜头,他从容分享了自己在变频器行业二十年的奋斗历程与心路感悟。谈及全域营销战略的成功,誉峰变频器强
    电子与消费 2025-04-22 13:22 80浏览
  •   电磁干扰抑制系统平台深度解析   一、系统概述   北京华盛恒辉电磁干扰抑制系统在电子技术快速发展、电磁环境愈发复杂的背景下,电磁干扰(EMI)严重影响电子设备性能、稳定性与安全性。电磁干扰抑制系统平台作为综合性解决方案,通过整合多元技术手段,实现对电磁干扰的高效抑制,确保电子设备稳定运行。   应用案例   目前,已有多个电磁干扰抑制系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁干扰抑制系统。这些成功案例为电磁干扰抑制系统的推广和应用提供了有力支持。   二
    华盛恒辉l58ll334744 2025-04-22 15:27 59浏览
  •   卫星通信效能评估系统平台全面解析   北京华盛恒辉卫星通信效能评估系统平台是衡量卫星通信系统性能、优化资源配置、保障通信服务质量的关键技术工具。随着卫星通信技术的快速发展,特别是低轨卫星星座、高通量卫星和软件定义卫星的广泛应用,效能评估系统平台的重要性日益凸显。以下从技术架构、评估指标、关键技术、应用场景及发展趋势五个维度进行全面解析。   应用案例   目前,已有多个卫星通信效能评估系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润卫星通信效能评估系统。这些成功案例为卫
    华盛恒辉l58ll334744 2025-04-22 16:34 59浏览
  •   北京华盛恒辉机场保障能力评估系统软件深度解析   在航空运输业快速发展的背景下,机场保障任务愈发复杂,传统人工评估方式已无法满足高效精准的管理需求。机场保障能力评估系统软件作为提升机场运行效率、保障飞行安全的关键工具,其重要性日益凸显。   应用案例   目前,已有多个机场保障能力评估系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润机场保障能力评估系统。这些成功案例为机场保障能力评估系统的推广和应用提供了有力支持。   一、系统功能模块   数据采集与整合模块  
    华盛恒辉l58ll334744 2025-04-22 10:28 85浏览
  • 近期,金融界消息称,江西万年芯微电子有限公司申请一项名为“基于预真空腔体注塑的芯片塑封方法及芯片”的专利。此项创新工艺的申请,标志着万年芯在高端芯片封装领域取得重要突破,为半导体产业链提升注入了新动能。专利摘要显示,本发明公开了一种基于预真空腔体注塑的芯片塑封方法,方法包括将待塑封的大尺寸芯片平铺于下模盒腔体内的基板并将大尺寸芯片的背向表面直接放置于基板上以进行基板吸附;将上模盒盖合于下模盒形成塑封腔,根据基板将塑封腔分为上型腔以及下型腔;将下型腔内壁与大尺寸芯片间的空隙进行树脂填充;通过设置于
    万年芯 2025-04-22 13:28 66浏览
  •   电磁兼容故障诊断系统平台深度解析   北京华盛恒辉电磁兼容(EMC)故障诊断系统平台是解决电子设备在复杂电磁环境下性能异常的核心工具。随着电子设备集成度提升与电磁环境复杂化,EMC 问题直接影响设备可靠性与安全性。以下从平台架构、核心功能、技术实现、应用场景及发展趋势展开全面剖析。   应用案例   目前,已有多个电磁兼容故障诊断系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁兼容故障诊断系统。这些成功案例为电磁兼容故障诊断系统的推广和应用提供了有力支持。  
    华盛恒辉l58ll334744 2025-04-22 14:29 63浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦