在Nucleo STM32F401RE上使用SPI DMA方式提高W5500傳輸速率
標(biāo)準(zhǔn) SPI 模式 &SPI DMA 模式的性能比較
下面相關(guān)數(shù)據(jù)的源代碼是用于loopback測(cè)試的例程??梢钥吹皆跇?biāo)準(zhǔn)SPI模式和SPI DMA模式中存在多大的性能差異。
標(biāo)準(zhǔn)SPI模式
在 spi_handler.h 中
#ifndef SPI_DMA
//#define SPI_DMA
#endif
如果你把“#define SPI_DMA” 行打上注釋,你將在標(biāo)準(zhǔn)SPI模式下操作。
如果你在Nucleo板上編譯之后下載了二進(jìn)制文件,并用WIZnet提供的AX1.exe上做了loopback的測(cè)試,隨后傳輸和接收就如下圖所示分別能達(dá)到 1.6Mbps,我們可知SPI全速傳輸速率高達(dá)3.2Mbps。
這里, SPI 時(shí)鐘是 24MHz,你可以清晰的看到在SPI數(shù)據(jù)間的空閑時(shí)間。
SPI DMA模式
#ifndef SPI_DMA
#define SPI_DMA
#endif
如上, 移去 “#define SPI_DMA”行注釋.
接下來, 如果你下載二進(jìn)制文件到 Nucleo, 然后你就能看到 SPI DMA 模式的傳輸速率。傳輸和接收的loopback測(cè)試性能可分別達(dá)到 4.3Mbps,并且 SPI全速傳輸速率超過 8Mbps。如果你使用自己的板子,并且有一個(gè)高速的外部時(shí)鐘來代替Nucleo 板, 隨之你就得到了更快的傳輸速率。
這里, 你可以看到無任何空閑時(shí)間的連續(xù)SPI通訊,如下圖。
評(píng)論