【LPC55 系列】LPC55S69 开发之 GPIO 翻转速度测试

一 、概述

        该篇章主要测试 GPIO 的翻转速度,通过使用不同 API 函数,以及配置底层寄存器的方式,在 Flash 运行和放在 RAM 上运行的不同方式测试 IO 翻转速度。

二、使用工具

  1. 开发工具:MCUXpresso IDE
  2. 硬件:LPC55S69-EVK
  3. 测试工具:逻辑分析仪


三、在Flsah 中运行代码,使用不同方式测试 IO 翻转速度

这里系统时钟使用 100MHz, GPIO 配置为普通输出模式,Pull up模式,转换速率配置为 fast。

  1. GPIO_PinWrite() 翻转 IO,在 while(1) 直接写高写低操作,具体波形如下,高电平是 270ns ,低电平 310ns ,频率为 72MHz
     
      2. 直接操作寄存器翻转 IO 口(GPIO->B[por][pin]),在 while(1) 直接写高写低操作,具体波形如下,高电平是 50ns ,低电平 40ns ,频率为 11.11MHz

     
      3. 使用翻转 IO API 函数翻转(GPIO_PortToggle), 在 while(1) 直接写高写低操作,具体波形如下,高电平是 250ns ,低电平 250ns ,频率为 2MHz

     
      4. 使用翻转 IO 寄存器翻转(GPIO_PortToggle), 在 while(1) 直接写高写低操作,具体波形如下,高电平是 90ns ,低电平 90ns ,频率为 5.56MHz


三、在RAM 中运行代码,使用不同方式测试 IO 翻转速度


       这里系统时钟使用 100MHz, GPIO 配置为普通输出模式,Pull up模式,转换速率配置为 fast。



      1. GPIO_PinWrite() 翻转 IO,在 while(1) 直接写高写低操作,具体波形如下,高电平是 330ns ,低电平 640ns ,频率为 56MHz


      2. 直接操作寄存器翻转 IO 口(GPIO->B[por][pin]),在 while(1) 直接写高写低操作,具体波形如下,高电平是 50ns ,低电平 40ns ,频率为 11.11MHz


      3. 使用翻转 IO API 函数翻转(GPIO_PortToggle), 在 while(1) 直接写高写低操作,具体波形如下,高电平是 270ns ,低电平 270ns ,频率为 1.85MHz



      4. 使用翻转 IO 寄存器翻转(GPIO_PortToggle), 在 while(1) 直接写高写低操作,具体波形如下,高电平是 90ns ,低电平 90ns ,频率为 5.56MHz


四. 总结
  1. 使用 GPIO 寄存器对具体引脚操作的时间是最短的
  2. 使用翻转 IO 组的寄存器操作 IO 的翻转时间比操作具体 IO 引脚寄存器的时间要长
  3. LPC55S69 Flash & RAM 在同一组总线下,实际操作 IO 翻转的测试,Flash 运行的时间测到的会更快,目前只是翻转IO ,没有其他的逻辑和计算,仅仅是对于翻转 IO 实验,后续会综合对 Flash & RAM 运行的效率进行一个综合的测试


五.参考

  1. SDK 包 SDK_2_12_0_LPCXpresso55S69

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论