Zynq-7000系列SPI控制器簡介
掃描二維碼
隨時隨地手機看文章
簡介
SPI 總線控制器支持與各種外設(shè)通信,例如存儲器、溫度傳感器、壓力傳感器、模擬轉(zhuǎn)換器、實時時鐘、顯示器和任何支持串行模式的SD卡等等。
SPI 控制器可以在主模式、從模式或多主模式下工作。Zynq-7000 器件包括兩個 SPI 控制器,該控制器基于 Cadence SPI 內(nèi)核。
在主模式下,控制器驅(qū)動串行時鐘和從選擇,并提供支持 SPI 多主模式的選項。串行時鐘源自 PS 時鐘子系統(tǒng),控制器使用最多 3 個可外部擴展的獨立從站選擇 (SS) 輸出信號啟動消息,控制器通過向 32 位讀/寫數(shù)據(jù)端口寄存器寫入字節(jié)來讀取和寫入從設(shè)備。
在多主模式下,控制器在控制器未激活時將其輸出信號設(shè)為三態(tài),并在啟用時檢測錯誤。通過復(fù)位 SPI 使能位,輸出立即變?yōu)槿龖B(tài),中斷狀態(tài)寄存器指示模式故障。
在從機模式下,控制器從外部設(shè)備接收串行時鐘,并使用SPI_Ref_Clk同步數(shù)據(jù)捕獲,從模式包括一個可編程的啟動檢測機制,當控制器被啟用而 SS 被斷言時。
讀和寫 FIFO 在 SPI I/O 接口和通過 APB 從接口為控制器提供服務(wù)的軟件之間提供緩沖, FIFO 用于從設(shè)備和主設(shè)備 I/O 模式
控制器有什么特點
每個 SPI 控制器都是獨立配置和控制的,它們包括以下功能:
-
四線總線 – MOSI、MISO、SCLK 和 SS
- 多達 3 個從選擇用于主模式
-
全雙工操作提供同步接收和發(fā)送
-
通過 APB 從接口進行 32 位寄存器編程
-
用于 Rx/Tx FIFO 的存儲器映射讀/寫數(shù)據(jù)端口(字節(jié)寬)
-
128 字節(jié)讀取和 128 字節(jié)寫入 FIFO
-
可編程 FIFO 閾值狀態(tài)和中斷
-
主 I/O 模式
-
手動和自動啟動數(shù)據(jù)傳輸
-
手動和自動從選擇 (SS) 模式
-
從站選擇信號可直接連接從站設(shè)備或外部擴展
-
可編程 SS 和 MOSI 延遲
-
從機 I/O 模式
- 可編程啟動檢測模式
-
多主 I/O 能力
-
如果控制器未啟用,則將 I/O 緩沖器驅(qū)動為三態(tài)
-
當檢測到另一個主機時產(chǎn)生模式故障中斷
-
當 I/O 信號路由到 MIO 引腳時,50 MHz SCLK 時鐘頻率
- 當 I/O 信號通過 EMIO 接口路由到 PL 引腳時為 25 MHz SCLK
-
可編程時鐘相位和極性(CPHA、CPOL)
-
可編程中斷驅(qū)動設(shè)備或輪詢狀態(tài)
系統(tǒng)視圖
SPI 控制器的系統(tǒng)視點圖如圖所示。
SPI接口控制器
有兩個獨立的 SPI 接口控制器(SPIx;其中 x = 0 或 1),每個獨立控制器的 I/O 信號可以路由到 MIO 引腳或 EMIO 接口,每個控制器也有單獨的中斷信號到 PS 中斷控制器和一個單獨的復(fù)位信號, 每個控制器都有自己的一組控制和狀態(tài)寄存器。
時鐘
PS 時鐘子系統(tǒng)為 SPI 控制器提供參考時鐘,SPI_Ref_Clk時鐘用于控制器邏輯并由波特率發(fā)生器用于為主模式創(chuàng)建 SCLK 時鐘。
MIO-EMIO
SPI I/O 信號可以路由到 MIO 引腳或 EMIO 接口到 PL。
功能模塊框圖
SPI 控制器的功能框圖如圖所示。
APB 從機接口
32 位 APB 從接口響應(yīng)寄存器讀取和寫入,包括用于從 FIFO 讀取和寫入命令和數(shù)據(jù)的數(shù)據(jù)端口,所有寄存器事務(wù)都是 32 位的,數(shù)據(jù)端口使用這些端口的位 [7:0]。配置和狀態(tài)寄存器列在附錄 B,寄存器詳細信息中。
SPI 主模式
當控制器工作在主模式時,它驅(qū)動SCLK時鐘和最多3個從選擇輸出信號,MOSI上的SS和傳輸開始可由軟件手動控制或由硬件自動控制。
SPI 從模式
當控制器在從模式下運行時,它使用單個從選擇輸入 (SS 0), SCLK 與控制器參考時鐘 (SPI_Ref_Clk) 同步。
Tx 和 Rx FIFO
每個 FIFO 為 128 字節(jié),軟件使用寄存器映射的數(shù)據(jù)端口寄存器讀取和寫入這些 FIFO。
FIFO 橋接兩個時鐘域, APB 接口和控制器的SPI_Ref_Clk,軟件寫入 APB 時鐘域中的 TxFIFO,控制器讀取SPI_Ref_Clk域中的 TxFIFO。
控制器填充SPI_Ref_Clk域中的 RxFIFO,軟件讀取 APB 時鐘域中的 RxFIFO。
小結(jié)
本文簡單介紹了Zynq的SPI控制器、支持的SPI協(xié)議以及如何路由到MIO或EMIO,SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡單易用的特性,越來越多的芯片集成了這種通信協(xié)議





