新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MCU引腳翻轉(zhuǎn)測(cè)試

MCU引腳翻轉(zhuǎn)測(cè)試

作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò) 收藏
STM32的IO口速率可達(dá)50MHz,但I(xiàn)O口作為讀寫(xiě)信號(hào)讀寫(xiě)數(shù)據(jù)時(shí),翻轉(zhuǎn)速率沒(méi)有那么快。

在使用STM32讀取數(shù)字?jǐn)z像頭數(shù)據(jù)、寫(xiě)入TFT中時(shí),涉及數(shù)據(jù)傳輸速率的問(wèn)題,需要IO口快速翻轉(zhuǎn)。所以,我做了這個(gè)實(shí)驗(yàn),測(cè)試STM32的IO口最快翻轉(zhuǎn)速率

本文引用地址:http://m.butianyuan.cn/article/201611/320969.htm

測(cè)試共分三部分:
(1)通過(guò)IO口的翻轉(zhuǎn)讀取外部數(shù)據(jù):
GPIOD->BSRR=1<<5;
i=PDi;
GPIOD->BRR=1<<5;
(2)純粹的IO翻轉(zhuǎn)速率:
GPIOD->BSRR=1<<5;
GPIOD->BRR=1<<5;
(3)通過(guò)FSMC方式訪問(wèn)外部數(shù)據(jù)
FIFO_DATA=1;

測(cè)試條件:72MHz主頻,F(xiàn)LASH_Latency_2
測(cè)試結(jié)果:
程序運(yùn)行在flash中 程序運(yùn)行在ram中

高等優(yōu)化:
讀數(shù)據(jù): 4.8MHz 3.6MHz
IO翻轉(zhuǎn): 10MHz 7.2MHz
FSMC: 8MHz 6.5MHz

低等優(yōu)化:
讀數(shù)據(jù): 2MHz 2.666MHz
IO翻轉(zhuǎn): 3.1MHz4MHz
FSMC: 5.1MHz 4.8MHz

又配置了DMA進(jìn)行數(shù)據(jù)傳輸,其傳輸速率與FSMC的速率基本完全一致。

同時(shí),又使用飛思卡爾的MC9S12XS128處理器做了引腳翻轉(zhuǎn)實(shí)驗(yàn),在60MHz主頻下,讀數(shù)據(jù)速率為3.5MHz,IO翻轉(zhuǎn)速度為5.4MHz,而且還可以再提升。

結(jié)果中可以看出:
雖然STM32的主頻可達(dá)72MHz,但其引腳翻轉(zhuǎn)速率并不能做到很快。尤其在flash中運(yùn)行時(shí),受FLASH_Latency的限制,只有在主頻為36MHz時(shí),F(xiàn)LASH_Latency才能達(dá)到0而穩(wěn)定運(yùn)行。此時(shí)的執(zhí)行效率才能達(dá)到手冊(cè)上宣稱(chēng)的1.25個(gè)百萬(wàn)指令周期每秒每兆赫茲。然而,這卻并不是處理器的最高處理速度。但在主頻72MHz時(shí),又不能達(dá)到執(zhí)行效率的最高。


高等速度優(yōu)化可以顯著提高引腳翻轉(zhuǎn)速度(從反匯編來(lái)看,還可以繼續(xù)提高)但最快的數(shù)據(jù)傳輸仍然是FSMC,而且,F(xiàn)SMC也是最有效的數(shù)據(jù)傳輸模式,因?yàn)樗€包括相應(yīng)的地址線輸出,可以同時(shí)自動(dòng)完成OE、CS、RS等信號(hào)的選擇,這是IO模擬數(shù)據(jù)傳輸所不能的。


與其他處理器相比,(例如MC9S12XS128)STM32的數(shù)據(jù)傳輸并沒(méi)有多大的優(yōu)勢(shì)(甚至有點(diǎn)慢)。當(dāng)然S12已經(jīng)超頻50%了。STM32的高速數(shù)據(jù)傳輸要靠高等優(yōu)化來(lái)完成,而這是比較危險(xiǎn)的。所以,只能靠對(duì)C語(yǔ)言的了解,和對(duì)代碼優(yōu)化的經(jīng)驗(yàn),才能更好的使用STM32。


對(duì)于了解它的人,STM32絕對(duì)是他手中利器




關(guān)鍵詞: MCU引腳翻

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉