ESM335x提供了1路4線制全雙工SPI接口,可設(shè)置的波特率從1.5KHz到48MHz,ESM335x(WEC7)標準的SPI驅(qū)動采用IO模式進行數(shù)據(jù)收發(fā),在大數(shù)據(jù)量通訊時,IO模式傳輸速度較慢,并且會占用相當多的CPU資源,進而影響整個系統(tǒng)的運行效率。
為了滿足SPI大數(shù)據(jù)量傳輸?shù)膽?yīng)用,我們對SPI的驅(qū)動進行了更新,升級后的SPI驅(qū)動程序通過DMA控制數(shù)據(jù)收發(fā)。經(jīng)過對比測試,同樣的傳輸過程,當在IO模式下CPU占用率接近100%時,采用DMA方式傳輸?shù)腃PU占用率僅在10%左右。ESM335x SPI接口采用DMA傳輸方式的數(shù)據(jù)傳輸率可達到每秒2MBytes。
升級后的驅(qū)動與原來的驅(qū)動程序提供的用戶API函數(shù)接口完全相同,在應(yīng)用程序中配置SPI參數(shù)時增加MCSPI_CHCONF_DMAR_ENABLE 和 MCSPI_CHCONF_DMAW_ENABLE宏定義即使能DMA傳輸,否則采用原來的IO方式時行數(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時序模式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ù)傳輸有錯,錯誤處理...
}
cleanUp:
if( hSPI != INVALID_HANDLE_VALUE )
{
SPIClose(hSPI);
}
return 0;
}
ESM335x SPI接口同樣支持4種標準的SPI通訊模式,下圖是ESM335x主芯片數(shù)據(jù)手冊中對SPI各個模式的定義說明。
此次驅(qū)動升級針對ESM335x和EM335x系列的WEC7工控主板,需要更新SPI驅(qū)動的用戶可與我們聯(lián)系升級。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6101瀏覽量
36306
發(fā)布評論請先 登錄
DEKRA德凱成為沙特通信和信息技術(shù)設(shè)備技術(shù)法規(guī)認證機構(gòu)
科普|信創(chuàng)是什么?一文讀懂“信息技術(shù)應(yīng)用創(chuàng)新”戰(zhàn)略

STM32H7ZGT6使用SPI+DMA方式驅(qū)動屏幕,使用DMA方式會花屏,為什么?
龍芯中科榮獲2024年度信息技術(shù)應(yīng)用創(chuàng)新工作委員會卓越貢獻成員單位
芯盛智能榮獲2024年信息技術(shù)應(yīng)用創(chuàng)新工作委員會卓越貢獻成員單位
飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕
有方科技參編的信息技術(shù)團體標準發(fā)布
龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦
AM335x和AMIC110 Sitara?處理器技術(shù)參考手冊

DMA是什么?詳細介紹
中科創(chuàng)達榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)
AM335x Sitara?處理器數(shù)據(jù)表

評論