MCU引脚翻转测试
在使用STM32读取数字摄像头数据、写入TFT中时,涉及数据传输速率的问题,需要IO口快速翻转。所以,我做了这个实验,测试STM32的IO口最快翻转速率
测试共分三部分:
(1)通过IO口的翻转读取外部数据:
(2)纯粹的IO翻转速率:
(3)通过FSMC方式访问外部数据
测试条件:72MHz主频,FLASH_Latency_2
测试结果:
高等优化:
读数据:
IO翻转:
FSMC:
低等优化:
读数据:
IO翻转:
FSMC:
又配置了DMA进行数据传输,其传输速率与FSMC的速率基本完全一致。
同时,又使用飞思卡尔的MC9S12XS128处理器做了引脚翻转实验,在60MHz主频下,读数据速率为3.5MHz,IO翻转速度为5.4MHz,而且还可以再提升。
结果中可以看出:
虽然STM32的主频可达72MHz,但其引脚翻转速率并不能做到很快。尤其在flash中运行时,受FLASH_Latency的限制,只有在主频为36MHz时,FLASH_Latency才能达到0而稳定运行。此时的执行效率才能达到手册上宣称的1.25个百万指令周期每秒每兆赫兹。然而,这却并不是处理器的最高处理速度。但在主频72MHz时,又不能达到执行效率的最高。
高等速度优化可以显著提高引脚翻转速度(从反汇编来看,还可以继续提高)但最快的数据传输仍然是FSMC,而且,FSMC也是最有效的数据传输模式,因为它还包括相应的地址线输出,可以同时自动完成OE、CS、RS等信号的选择,这是IO模拟数据传输所不能的。
与其他处理器相比,(例如MC9S12XS128)STM32的数据传输并没有多大的优势(甚至有点慢)。当然S12已经超频50%了。STM32的高速数据传输要靠高等优化来完成,而这是比较危险的。所以,只能靠对C语言的了解,和对代码优化的经验,才能更好的使用STM32。
对于了解它的人,STM32绝对是他手中利器
MCU引脚翻 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)