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

描述

本期内容将由先楫技术官带您解锁如何利用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。

 

mcu

图 1. 系统架构框图

 

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

 

mcu

图2. FGPIO控制IO翻转代码

 

mcu

图3. 开启优化

 

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

 

mcu

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

 

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

 

mcu

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

 

mcu

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

 

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

 

mcu

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

 

3

GPIO管理器GPIOM介绍

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


 

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

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

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

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分