MCU引腳翻轉測試
在使用STM32讀取數字攝像頭數據、寫(xiě)入TFT中時(shí),涉及數據傳輸速率的問(wèn)題,需要IO口快速翻轉。所以,我做了這個(gè)實(shí)驗,測試STM32的IO口最快翻轉速率
本文引用地址:http://dyxdggzs.com/article/201611/320969.htm測試共分三部分:
(1)通過(guò)IO口的翻轉讀取外部數據:
(2)純粹的IO翻轉速率:
(3)通過(guò)FSMC方式訪(fǎng)問(wèn)外部數據
測試條件:72MHz主頻,FLASH_Latency_2
測試結果:
高等優(yōu)化:
讀數據:
IO翻轉:
FSMC:
低等優(yōu)化:
讀數據:
IO翻轉:
FSMC:
又配置了DMA進(jìn)行數據傳輸,其傳輸速率與FSMC的速率基本完全一致。
同時(shí),又使用飛思卡爾的MC9S12XS128處理器做了引腳翻轉實(shí)驗,在60MHz主頻下,讀數據速率為3.5MHz,IO翻轉速度為5.4MHz,而且還可以再提升。
結果中可以看出:
雖然STM32的主頻可達72MHz,但其引腳翻轉速率并不能做到很快。尤其在flash中運行時(shí),受FLASH_Latency的限制,只有在主頻為36MHz時(shí),FLASH_Latency才能達到0而穩定運行。此時(shí)的執行效率才能達到手冊上宣稱(chēng)的1.25個(gè)百萬(wàn)指令周期每秒每兆赫茲。然而,這卻并不是處理器的最高處理速度。但在主頻72MHz時(shí),又不能達到執行效率的最高。
高等速度優(yōu)化可以顯著(zhù)提高引腳翻轉速度(從反匯編來(lái)看,還可以繼續提高)但最快的數據傳輸仍然是FSMC,而且,FSMC也是最有效的數據傳輸模式,因為它還包括相應的地址線(xiàn)輸出,可以同時(shí)自動(dòng)完成OE、CS、RS等信號的選擇,這是IO模擬數據傳輸所不能的。
與其他處理器相比,(例如MC9S12XS128)STM32的數據傳輸并沒(méi)有多大的優(yōu)勢(甚至有點(diǎn)慢)。當然S12已經(jīng)超頻50%了。STM32的高速數據傳輸要靠高等優(yōu)化來(lái)完成,而這是比較危險的。所以,只能靠對C語(yǔ)言的了解,和對代碼優(yōu)化的經(jīng)驗,才能更好的使用STM32。
對于了解它的人,STM32絕對是他手中利器
評論