ESM335x提供了1路4線制全雙工SPI接口,可設(shè)置的波特率從1.5KHz到48MHz,ESM335x(WEC7)標(biāo)準(zhǔn)的SPI驅(qū)動采用IO模式進(jìn)行數(shù)據(jù)收發(fā),在大數(shù)據(jù)量通訊時(shí),IO模式傳輸速度較慢,并且會占用相當(dāng)多的CPU資源,進(jìn)而影響整個(gè)系統(tǒng)的運(yùn)行效率。
為了滿足SPI大數(shù)據(jù)量傳輸?shù)膽?yīng)用,我們對SPI的驅(qū)動進(jìn)行了更新,升級后的SPI驅(qū)動程序通過DMA控制數(shù)據(jù)收發(fā)。經(jīng)過對比測試,同樣的傳輸過程,當(dāng)在IO模式下CPU占用率接近100%時(shí),采用DMA方式傳輸?shù)腃PU占用率僅在10%左右。ESM335x SPI接口采用DMA傳輸方式的數(shù)據(jù)傳輸率可達(dá)到每秒2MBytes。
升級后的驅(qū)動與原來的驅(qū)動程序提供的用戶API函數(shù)接口完全相同,在應(yīng)用程序中配置SPI參數(shù)時(shí)增加MCSPI_CHCONF_DMAR_ENABLE 和 MCSPI_CHCONF_DMAW_ENABLE宏定義即使能DMA傳輸,否則采用原來的IO方式時(shí)行數(shù)據(jù)傳輸。下面是示例代碼:
#include "stdafx.h"
#include "mcspi.h"
#define XCH_SIZE (0x2000)
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hSPI;
BOOL rc;
BYTE TxBuf[XCH_SIZE];
BYTE RxBuf[XCH_SIZE];
DWORD dwSpiConf;
DWORD dwSpiCount, dwWorldSize, dwWL;
DWORD i;
hSPI = SPIOpen( _T("SPI1:"));
if( hSPI == INVALID_HANDLE_VALUE )
goto cleanUp;
dwWL = 8;//8-bits SPI,有效的設(shè)置為4-bits至32-bits
dwSpiConf =
MCSP1_MODE0 |//SPI時(shí)序模式0
/* Enable DMA, Maximum buffer is 0x4000 Bytes */
MCSPI_CHCONF_DMAR_ENABLE | MCSPI_CHCONF_DMAW_ENABLE|
MCSPI_CHCONF_WL(dwWL);
rc = SPIConfig( hSPI, 8000000, dwSpiConf);//波特率8MHz
if( !rc )
goto cleanUp;
if( dwWL > 16 )
dwWorldSize = sizeof(UINT32);
else if(dwWL > 8 )
dwWorldSize = sizeof(UINT16);
else
dwWorldSize = sizeof(UINT8);
dwSpiCount = 2000;
for(i=0; i
{
TxBuf[i] = i;//初始化數(shù)據(jù)收發(fā)buffer
RxBuf[i] = 0;
}
dwSpiCount *= dwWorldSize;//傳輸?shù)淖止?jié)數(shù)
rc = SPIWriteRead( hSPI, TxBuf, RxBuf, dwSpiCount );
if( !rc )
{
//數(shù)據(jù)傳輸有錯(cuò),錯(cuò)誤處理...
}
cleanUp:
if( hSPI != INVALID_HANDLE_VALUE )
{
SPIClose(hSPI);
}
return 0;
}
ESM335x SPI接口同樣支持4種標(biāo)準(zhǔn)的SPI通訊模式,下圖是ESM335x主芯片數(shù)據(jù)手冊中對SPI各個(gè)模式的定義說明。

此次驅(qū)動升級針對ESM335x和EM335x系列的WEC7工控主板,需要更新SPI驅(qū)動的用戶可與我們聯(lián)系升級。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6107瀏覽量
37097
發(fā)布評論請先 登錄
CW32L052 DMA直接內(nèi)存訪問介紹
龍芯中科成功舉辦2025信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)教融合交流會
CW32F030 芯片 SPI DMA BULK發(fā)送問題,是什么原因?qū)е碌模?/a>
龍芯中科助力2025教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦
誠邁科技信創(chuàng)電腦助力2025第二屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿收官
寶馬南京信息技術(shù)有限公司開業(yè)
【六岳微LY-F335開發(fā)板試用體驗(yàn)】芯片數(shù)據(jù)手冊解讀
GD32的串口DMA收發(fā)數(shù)據(jù)失敗怎么解決?
SPI主機(jī)/從機(jī)接收發(fā)送都開啟DMA通信
佛瑞亞如何通過信息技術(shù)推動業(yè)務(wù)增長
Texas Instruments CC335x SimpleLink?雙頻Wi-Fi? 6配套IC數(shù)據(jù)手冊
飛騰主板為信創(chuàng)產(chǎn)業(yè)發(fā)展提高硬實(shí)力
DEKRA德凱成為沙特通信和信息技術(shù)設(shè)備技術(shù)法規(guī)認(rèn)證機(jī)構(gòu)
科普|信創(chuàng)是什么?一文讀懂“信息技術(shù)應(yīng)用創(chuàng)新”戰(zhàn)略
英創(chuàng)信息技術(shù)ESM335x SPI驅(qū)動DMA數(shù)據(jù)收發(fā)介紹
評論