1. SPI介紹
1) 串行外圍設備接口(Serial Peripheral Interface),是Motorola公司推出的三線同步通信接口。
2) 特點:高速、全雙工、同步通信 四根管腳利於PCB佈局節省空間
① 同步:有同步時鐘
② 異步:無同步時鐘,同行有起始位和終止位來同步傳輸數據(字符與字 符之間之間的時間間隔可變,不需嚴格限制時間關係)
③ 主從通訊:採用主從模式(Master Slave)架構;支持多slave模式應 用,一般僅支持單Master。
3) 組成(4根線):由CS(片選)、SCLK(時鐘)、MOSI(主機發送/從機接收)、MISO(主機接收/從機發送)構成。
4) 工作模式:4種,時鐘信號的相位與極性,使用廣泛的是SPI0,SPI3
如果 CPOL=0,串行同步時鐘的空閒狀態爲低電平;如果 CPOL=1,串行同步時鐘的空閒狀態爲高電平。時鐘相位(CPHA)能夠配置用於選擇兩種不同的傳輸協議之一進行數據傳輸。如果 CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數據被採樣;如果 CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數據被採樣。
5) 用途:EEPROM、FLASH、實時時鐘、AD轉換等
2. STM32_103-SPI
1) 特點:可以當主機或從機工作,可以同時發送或接收串行數據;提供頻率可編程時鐘;衝突保護-寫衝突保護、總線競爭保護。
2) STM32板上的SPI控制器---作爲主機---控制---外擴FALSH-W25Q6。
3) 結構圖:
原理:兩個移位寄存器在同步時鐘信號下進行移位,互換數據(先發高位)
內部環形結構
4) 物理層連接
PA5 : SCK -- 輸出 : 複用推輓
PA6 : MISO ---輸入 : 浮空輸入
PA7 : MOSI ---輸出 : 複用推輓
PB0 : CS --輸出 : 推輓輸出 --I/O引腳直接驅動
原理圖:
5) SPI主模式配置步驟
① 設置 BR[2:0] 位以定義串行時鐘波特率(參見 SPI_CR1 寄存器)。
② 選擇 CPOL 和 CPHA 位,以定義數據傳輸和串行時鐘之間的關係
③ 設置 DFF 位,以定義 8 或 16 位數據幀格式
④ 配置 SPI_CR1 寄存器中的 LSBFIRST 位以定義幀格式
⑤ 如果 NSS 引腳配置成輸入,在 NSS 硬件模式下, NSS 引腳在整個 字節發送序列期間都連接到高電平信號;在 NSS 軟件模式下,將 SPI_CR1 寄存器中的 SSM 和 SSI 位置1。如果 NSS 引腳配置成輸 出,只應將 SSOE 位置 1。
⑥ 將 SPI_CR2 中的 FRF 位置 1,以選擇 TI 協議進行串行通信。
⑦ MSTR 和 SPE 位必須置 1