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