微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MCU引脚翻转测试

MCU引脚翻转测试

时间:11-24 来源:互联网 点击:
STM32的IO口速率可达50MHz,但IO口作为读写信号读写数据时,翻转速率没有那么快。

在使用STM32读取数字摄像头数据、写入TFT中时,涉及数据传输速率的问题,需要IO口快速翻转。所以,我做了这个实验,测试STM32的IO口最快翻转速率

测试共分三部分:
(1)通过IO口的翻转读取外部数据:
GPIOD->BSRR=1<5;
i=PDi;
GPIOD->BRR=1<5;
(2)纯粹的IO翻转速率:
GPIOD->BSRR=1<5;
GPIOD->BRR=1<5;
(3)通过FSMC方式访问外部数据
FIFO_DATA=1;

测试条件:72MHz主频,FLASH_Latency_2
测试结果:
程序运行在flash中 程序运行在ram中

高等优化:
读数据: 4.8MHz 3.6MHz
IO翻转: 10MHz 7.2MHz
FSMC: 8MHz 6.5MHz

低等优化:
读数据: 2MHz 2.666MHz
IO翻转: 3.1MHz4MHz
FSMC: 5.1MHz 4.8MHz

又配置了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绝对是他手中利器


上一篇:ARM·Nand Flash的控制
下一篇:c51闹钟程序

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top