主題:EM9287利用SPI總線配置SSD1322的OLED屏 共有45297人關注過本帖 |
---|
MS |
1樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
EM9287利用SPI總線配置SSD1322的OLED屏 Post By:2015-8-7 14:51:00 [只看該作者]
當利用EM9287的SPI總線配置SSD1322時,wince調用上層API讀寫SSD1322時,循環1萬多次讀寫發現數據傳輸速度過慢,從而導致OLED屏刷屏過慢(SPI總線需要對SSD1322進行1萬多次讀寫RAM才能刷屏)。
請問:是不是因為當上層應用程序調用WINCE里的SPI驅動的讀寫函數速度過慢導致的,SPI總線雖然可達10MHz頻率,但事實上調用API函數之后的讀寫速度大大降低,遠遠沒有10MHz的速率。 請問:是否可以改進SPI的讀寫驅動,提高讀寫速率? |
單帖管理 | 引用 | 回復 |
客人 |
2樓 |
Post By:2015-8-7 17:06:00 [只看該作者]
EM9287的SPI最高可以20Mbps的波特率進行數據傳輸,且可以實驗多字節數據DMA傳輸,所以按理不應該慢。請試試DMA方式通訊
可以參考這個鏈接 http://www.huochepiao123.com.cn/case/case2014673.html 注:該方法是WinCE6.0系統上有效,不適用與linux系統,請確認你的系統是否是CE,如果是,則可以參考 |
|
單帖管理 | 引用 | 回復 |
x10 |
3樓 |
Post By:2015-8-8 8:26:00 [只看該作者]
應當用DeviceIoControl的多數據結塊的tranfer方式,效率就很高。在Linux版本肯定是支持這個模式的,CE6我要查一下,如果沒有支持,我們會盡快加上。請留一個能的郵箱,以便我們發新內核給你,謝謝!
|
|
單帖管理 | 引用 | 回復 |
MS |
4樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2015-8-10 9:48:00 [只看該作者]
|
單帖管理 | 引用 | 回復 |
zxw |
5樓 |
Post By:2015-8-10 11:27:00 [只看該作者]
你好!
CE6系統支持這種讀寫方式,給你的網頁連接中也說過該方式的使用方法。 在光盤中的EM9280_SPIDemo例子程序中也有代碼可以參考 你的郵件中,我把SPI應用方法的文章也再次發給你了,可以先看看。具體那里不清楚,可以提的更明確一些更好! 混合型SPI操作需要用到以下數據結構:
pTxBuff:SPI輸出數據BUFF指針
注意,EM9280的SPI接口僅支持半雙工操作,因此在上述結構中,只能有一個buffer指針為有效指針,另一個必須為NULL。dwBufLength的定義與單向讀寫的定義一致。具體的傳輸是通過DeviceIoControl來實現的,舉例說明,本例首先進行發送1個字節(8-bit SPI),然后接收2個字節。
SPITransfer Trans[2];
在上述調用中需要注意的是,DeviceIoControl()輸入參數中的buffer長度必須是數據結構SPITransfer大小的整倍數,否則將被視作無效參數。 |
|
單帖管理 | 引用 | 回復 |