广州围巾价格联盟

GPIO炫出高能的正确方式

只看楼主 收藏 回复
  • - -
楼主
NXP KL系列的MCU是Cortex-M0+内核,经常有人不清楚M0+和M0内核有什么区别,总体来说M0+内核相对M0内核除了能效比提高了30%,还有一个比较有特色的功能就是M0+内核增加了单周期快速GPIO功能。至于为什么叫单周期GPIO,下面且听我慢慢道来。

我们通常使用的GPIO一般来说都是挂载到内部总线上的(一般是AHB Bus),内核操作IO一般都是通过这个总线去读写控制的,而总线时钟往往都是小于内核时钟的,且总线也都是被很多外设共同占用的,由此带来的一个现象是往往我们的芯片主频很高(内核时钟),但是外部IO操作却跟不上,导致一些功能满足不了,比如快速刷屏(无拖影)或者一些时序模拟,M0+内核增加的单周期GPIO也叫RGPIO(Rapid GPIO)就可以解决这个问题。
如上图所示,RGPIO是直接挂载到内核总线上的,对其读写都是直接通过内核专用总线进行操作的,所以操作RGPIO的速度自然就比普通GPIO快啦。

单周期GPIO的优势很大,且使用方法也是非常简单的。NXP KL系列MCU将RGPIO命名为FGPIO(Fast GPIO),同时保留了传统的GPIO模块。

熟悉NXP Kinetis系列MCU的工程师对GPIO的使用一定是轻车熟路了,因为FGPIO的使用方法与普通GPIO的一样,两者寄存器的数量和对应功能都是一样的,唯一不同的就是寄存器名称不一样,FGPIO的每个寄存器都比普通GPIO的寄存器多一个F,但是操作的都是相同的IO管脚。

例如将PTA4引脚电平置高,普通GPIO的操作方法是:GPIOA->PSOR  |= 1 << 4,而FGPIO的操作方法是:FGPIO->PSOR  |= 1 << 4,引脚其它的功能配置操作也是一样的。下面附上普通GPIO和FGPIO引脚翻转测速的截图,其中系统时钟配置为48MHz,总线时钟配置为24MHz。
GPIO测速截图
FGPIO测速截图
注:图中波形不为标准方波是因为GPIO和FGPIO内部开关器件延迟导致,高频信号经过低频电路时出现失真,实际使用时应根据需求合理设置输出频率。

从图中可以清晰的看出,极限情况下,普通GPIO引脚的速度是16MHz,而FGPIO引脚的速度达到可怖的48MHz,这么高的速度我就问,还有谁!!!。

怎么样,FGPIO是不是简单实用又高效啊,那还等什么,赶紧来体验一下吧。

往期好文推荐


广州周立功单片机科技有限公司
zlg.sales@zlgmcu.com
400 888 2705
www.zlgmcu.com
点击
写留言
与小编沟通

举报 | 1楼 回复

友情链接