S3C2440包含有兩個串行外圍設備接口(SPI口),每個SPI口都有兩個分別用於發送和接收的8位移位寄存器,在一次SPI通信當中數據被同步發送(串行移出)和接收(串行移入)。8位串行數據的速率由相關的控制寄存器的內容決定。如果只想發送,接收到的是一些虛擬的數據。另外,如果只想接收,發送的數據也可以是一些虛擬的“1”。結構框圖如下:
1、SPI接口特性:
- 與SPI接口協議v2.11兼容;
- 8位用於發送的移位寄存器;
- 8位用於接收的移位寄存器;
- 8位預分頻邏輯;
- 查詢、中斷和DMA傳送模式;
2、SPI接口操作:
通過SPI接口,S3C2440可以與外設同時發送/接收8位數據。串行時鐘線與兩條數據線同步,用於移位和數據采樣。如果SPI是主設備,數據傳輸速率由SPPREn寄存器的相關位控制。可以修改頻率來調整波特率寄存器的值。如果SPI是從設備,其他的主設備提供時鐘,向SPDATn寄存器中寫入字節數據,SPI發送/接收操作就同時啟動。某些情況下片選nSS要在向SPDATn寄存器中寫入字節數據之前激活。
3、傳輸格式:
4、接口控制寄存器:
- SPI控制寄存器(SPICONn)該寄存器控制SPI的工作模式。
- SPI狀態寄存器(SPSTAn)
- SPI發送時為單緩沖,這樣在前一次發送尚未完成之前,不能將新的數據寫入移位寄存器來發送過程中對數據寄存器進行寫入
- 操作時,DCOL位將為1以指示數據沖突。此前發送的數據就行發送,而後寫入的數據將丟失。
- SPI引腳控制寄存器(SPPINn)
- 當一個SPI系統被允許時,nSS之外的引腳的數據傳輸方向都由SPCONn的MSTR位控制,nSS引腳總是輸入。當SPI是一個主設備是,nSS引腳用於檢測多主設備錯誤(如果SPPIN的ENMUL位被使能),另外還需要一個GPIO 來選擇從設備。如果SPI被配置為從設備,nSS引腳用來被選擇為從設備。
- SPI發送數據寄存器(SPTDATn)發送數據寄存器中存放待SPI口發送的數據。
- SPI接收數據寄存器(SPRDATn)接收數據寄存器中存放SPI口接收到的數據。