mini2440硬件篇之SPI
硬件原理
1.1.1.協(xié)議概括
SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,需要至少4根線,事實(shí)上3根也可以(單向傳輸時(shí))。也是所有基于SPI的設(shè)備共有的,它們是SDI(數(shù)據(jù)輸入)、SDO(數(shù)據(jù)輸出)、SCLK(時(shí)鐘)、CS(片選)。
(1)SDO–主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出;
(2)SDI–主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入;
(3)SCLK–時(shí)鐘信號,由主設(shè)備產(chǎn)生;
(4)CS–從設(shè)備使能信號,由主設(shè)備控制。
其中,CS是控制芯片是否被選中的,也就是說只有片選信號為預(yù)先規(guī)定的使能信號時(shí)(高電位或低電位),對此芯片的操作才有效。這就允許在同一總線上連接多個(gè)SPI設(shè)備成為可能。
接下來就負(fù)責(zé)通訊的3根線了。通訊是通過數(shù)據(jù)交換完成的,這里先要知道SPI是串行通訊協(xié)議,也就是說數(shù)據(jù)是一位一位的傳輸?shù)?。這就是SCLK時(shí)鐘線存在的原因,由SCLK提供時(shí)鐘脈沖,SDI,SDO則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過SDO線,數(shù)據(jù)在時(shí)鐘上升沿或下降沿時(shí)改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少8次時(shí)鐘信號的改變(上沿和下沿為一次),就可以完成8位數(shù)據(jù)的傳輸。
要注意的是,SCLK信號線只由主設(shè)備控制,從設(shè)備不能控制信號線。同樣,在一個(gè)基于SPI的設(shè)備中,至少有一個(gè)主控設(shè)備。這樣傳輸?shù)奶攸c(diǎn):這樣的傳輸方式有一個(gè)優(yōu)點(diǎn),與普通的串行通訊不同,普通的串行通訊一次連續(xù)傳送至少8位數(shù)據(jù),而SPI允許數(shù)據(jù)一位一位的傳送,甚至允許暫停,因?yàn)镾CLK時(shí)鐘線由主控設(shè)備控制,當(dāng)沒有時(shí)鐘跳變時(shí),從設(shè)備不采集或傳送數(shù)據(jù)。也就是說,主設(shè)備通過對SCLK時(shí)鐘線的控制可以完成對通訊的控制。SPI還是一個(gè)數(shù)據(jù)交換協(xié)議:因?yàn)镾PI的數(shù)據(jù)輸入和輸出線獨(dú)立,所以允許同時(shí)完成數(shù)據(jù)的輸入和輸出。不同的SPI設(shè)備的實(shí)現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時(shí)間不同,在時(shí)鐘信號上沿或下沿采集有不同定義,具體請參考相關(guān)器件的文檔。
最后,SPI接口的一個(gè)缺點(diǎn):沒有指定的流控制,沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。
SPI的片選可以擴(kuò)充選擇16個(gè)外設(shè),這時(shí)PCS輸出=NPCS,說NPCS0~3接4-16譯碼器,這個(gè)譯碼器是需要外接4-16譯碼器,譯碼器的輸入為NPCS0~3,輸出用于16個(gè)外設(shè)的選擇。
2.芯片手冊
3.mini2440電路圖
mini2440沒有外交SPI設(shè)備,只留出引腳上拉。
4.S3C2440寄存器
SPCON控制寄存器
選擇SPI模式,DMA、中斷、輪詢、主從、促發(fā)方式。
SPSTA狀態(tài)寄存器
傳輸完成標(biāo)志,只讀。
SPPIN引腳控制寄存器
SPPRE工作頻率
SPTDAT發(fā)送數(shù)據(jù)寄存器
SPRDAT接收數(shù)據(jù)寄存器