0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

快到离谱!?这才是我见过的GPIO翻转频率最高的MCU!

先楫半导体HPMicro 2022-08-16 09:30 次阅读

本期内容将由先楫技术官带您解锁如何利用HPM6700系列做到高达400Mhz的GPIO 翻转频率,往下翻即可了解详情!

--------- “解锁之旅 ”由此开启 ---------

(本期测试开发板为:HPM6750EVK2)


1

GPIO模块特点简介

HPM6700/6400系列的MCU输入输出提供PA~PZ共8组最多195个GPIO功能复用引脚,每个GPIO都可以由2个GPIO控制器和2个快速GPIO控制器控制,由GPIO管理器GPIOM指定。提到的2 个快速 GPIO 控制器 FGPIO,作为处理器私有的 IO 快速访问接口,处理器因此可以零等待周期来访问FGPIO控制器。

2

GPIO控制器介绍

本节将介绍HPM6700/6400系列的通用输入输出控制器(General Purpose Input Output),GPIO 控制器包括:2 个 GPIO 控制器(GPIO0,GPIO1), 2 个快速 GPIO 控制器(FGPIO0, FGPIO1)。

2.1 通用GPIO控制器控制

GPIO 控制器与快速 GPIO 控制器功能基本相同,可以按照 IO 端口 Port 读取输入,配置IO作为输入或者输出,设置 IO 输出,或者同时把一个或者多个 IO 输出设置高,设置低或者翻转。GPIOx 和 FGPIOx 可以控制通用 IO(PA, PB, PC, PD, PE, PF)。

2.2 快速 GPIO 控制器

快速GPIO控制器属于处理器的私有外设,如图1所示,处理器因此可以零等待周期来访问FGPIO控制器。当IO由FGPIO控制时,IO最大翻转率可达CPU主频的一半,以HPM6750 CPU运行在816MHz为例,IO翻转频率可408MHz。

94123b80-1ae4-11ed-9ade-dac502259ad0.png

图1. 系统架构框图

通过在程序中选用FGPIO0或者FGPIO1这两个控制器来控制IO,将IO配置为输出后,可以使用DO【TOGGLE】寄存器,令这个IO循环反复做一个翻转,部分代码如图2所示:将PD16配置完成。需要注意的是,在测试波形之前,需要在Project的选项中打开优化设置,如图3所示:将Optimization Level设定为Level 2 for speed。

94253294-1ae4-11ed-9ade-dac502259ad0.png

图2. FGPIO控制IO翻转代码

943cb8ba-1ae4-11ed-9ade-dac502259ad0.png

图3. 开启优化

设定完成后,就可以使用示波器连接到此IO后,得到的波形如图4.1所示,测量峰-峰值,此时的频率为409.7MHz, 的确达到了CPU主频的一半。

94689e58-1ae4-11ed-9ade-dac502259ad0.png

图4. 1 FGPIO控制IO的翻转波形

由于FGPIO控制IO的情况下,IO的翻转频率为主频的一半,那么修改当前的主频频率,还可以测出其他几种频率的翻转波形,如图4.2与4.3所示,分别是200Mhz和100Mhz频率的翻转波形,它们对应的主频分别是400Mhz与200Mhz。

949790c8-1ae4-11ed-9ade-dac502259ad0.png

图4. 2 FGPIO控制IO下200mhz波形

94cb8928-1ae4-11ed-9ade-dac502259ad0.png

图4. 3 FGPIO控制IO下100mhz波形

HPM6700/6400系列MCU中的普通GPIO控制器控制IO时,也可以有5.8Mhz左右的翻转频率,图4.4为GPIO0控制IO时,用示波器抓取的波形。

94f88982-1ae4-11ed-9ade-dac502259ad0.png

图4.4 GPIO控制IO下的翻转波形

3

GPIO管理器GPIOM介绍

GPIO管理器是一个能为任一IO指定GPIO配置生效的模块,管理器的主要特点如下:


可以为IO分配指定的GPIO控制器,作为一个管理权限,可以从两个GPIO控制器和FGPIO控制器里任意选择。

可以配置IO输入是否对特定的GPIO控制器可见。

可以锁定一个IO的对应寄存器

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16254

    浏览量

    345649
收藏 人收藏

    评论

    相关推荐

    STM8 GPIO翻转速度只有1.1MH这是为什么呢?

    , GPIO_Pin_2, GPIO_Mode_Out_PP_Low_Fast); while (1) { GPIOB->ODR ^= GPIO_Pin_2; } } 实现测量GPIO
    发表于 05-16 06:19

    请问如何提高STM32 GPIO输出速度?

    由于应用需要,用GPIO输出高低电平产生脉冲,通过软件控制GPIO输出翻转。用的是STM32F412, APB2最高达到100M,可实际GPIO
    发表于 04-12 06:05

    MCU启动失败竟因GPIO先上电?

    由于 RT1060 上 GPIO_AD_Bx 和 GPIO_Bx 两组 PAD 供电均来自于 NVCC_GPIO,当其中任何一个 GPIO 有电压时,均可能会漏电到 NVCC_
    发表于 03-28 10:32 291次阅读
    <b class='flag-5'>MCU</b>启动失败竟因<b class='flag-5'>GPIO</b>先上电?

    请问STM32H743ZIT6使用GPIO输出翻转电平如何达到4Mhz?

    由于设计原因,所在引脚无法复用定时器PWM功能,只能用定时器在定时中断手动翻转引脚电平,但需要输出4MHz以上的时钟信号给其他芯片使用。听说GPIO翻转50MHz,但实际1Mhz都不到。这需要如何做呢?
    发表于 03-15 06:02

    GD32 MCU如何将烧录口配置为GPIO使用?

    如果大家在进行GD32 MCU开发时发现GPIO引脚使用不足,可以尝试将烧录口配置为GPIO使用,这样就可以多出几个引脚使用,但使用的时候如何配置以及有哪些注意事项,本视频将会为大家进行解答。
    的头像 发表于 02-20 10:18 1069次阅读
    GD32 <b class='flag-5'>MCU</b>如何将烧录口配置为<b class='flag-5'>GPIO</b>使用?

    instance是何时翻转的?每次有多少instance在翻转

    在run dynamic vectorless IR时,instance是何时翻转的?每次有多少instance在翻转
    的头像 发表于 01-26 09:31 328次阅读
    instance是何时<b class='flag-5'>翻转</b>的?每次有多少instance在<b class='flag-5'>翻转</b>?

    MCU复位时GPIO是什么状态?#MCU #单片机 #电子工程师 #GPIO

    单片机mcu
    聚沃科技
    发布于 :2024年01月20日 09:35:51

    MCU复位时GPIO是什么状态?

    大家一定遇到过上电或者复位时外部的MOS电路或者芯片使能信号意外开启,至此有经验的工程师就会经常关心一个问题,MCU复位时GPIO是什么状态?什么电路需要外部加上下拉?
    的头像 发表于 01-19 10:36 1093次阅读
    <b class='flag-5'>MCU</b>复位时<b class='flag-5'>GPIO</b>是什么状态?

    MCU微课堂 | CKS32F4xx系列产品GPIO口配置

    MCU微课堂 | CKS32F4xx系列产品GPIO口配置
    的头像 发表于 10-24 15:14 554次阅读
    <b class='flag-5'>MCU</b>微课堂 | CKS32F4xx系列产品<b class='flag-5'>GPIO</b>口配置

    STM32H7时钟I/O响应频率和定时器最高频率的测试方法

    对需要测试的引脚进行电平翻转并输出波形,从示波器显示的波形结果来看,验证结果表明I/O响应的时钟频率受时钟源最高频率的限制,能够达到时钟源所规定的最高频率。文中给出了STM32Cube
    的头像 发表于 10-24 14:51 1325次阅读
    STM32H7时钟I/O响应<b class='flag-5'>频率</b>和定时器<b class='flag-5'>最高频率</b>的测试方法

    通用GPIO和外部中断EXTI

    高达83个多功能的双向GPIO口其中73个为5V容忍引脚 GPIO口分配为6组 (GPIOA..GPIOF) 通过BSRR寄存器可以实现对GPIO口的位操作 GPIO口使用AHB总线最
    发表于 09-12 07:08

    STM32F0 GPIO介绍

    总线,使得最高翻转速度高达12MHz 输出斜率可配置,高达50MHz 端口A和B上的引脚配置可通过LCKR寄存器锁定 55个引脚都可以配置成外部中断(可同时使能16个)来把MCU从停止模式唤醒
    发表于 09-12 06:06

    CH32V307/CH32V203 IO极限翻转测试

    本帖最后由 l爱学习 于 2023-8-30 14:16 编辑 记录RISC-V MCU CH32V307/CH32V203 在144MHz主频、-Os优化下,IO极限翻转频率GPI
    发表于 08-30 14:13

    请问STM32H743ZIT6使用GPIO输出翻转电平如何达到4Mhz?

    由于设计原因,所在引脚无法复用定时器PWM功能,只能用定时器在定时中断手动翻转引脚电平,但需要输出4MHz以上的时钟信号给其他芯片使用。听说GPIO翻转50MHz,但实际1Mhz都不到。这需要如何做呢?
    发表于 08-05 06:01

    MATLAB | 这是见过离谱的转置操作

    注:此转置操作与 t-product 积相对应,在其他类型张量运算中的转置操作可能有不同的定义方式,请注意区分。
    的头像 发表于 07-21 11:50 597次阅读
    MATLAB | 这是<b class='flag-5'>我</b><b class='flag-5'>见过</b>最<b class='flag-5'>离谱</b>的转置操作