stm32 SPI 接口
SPI 是英語(yǔ)Serial Peripheral interface的縮寫(xiě),顧名思義就是串行外圍設備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在 EEPROM,FLASH,實(shí)時(shí)時(shí)鐘,AD轉換器,還有數字信號處理器和數字信號解碼器之間。SPI,是一種高速的,全雙工,同步的通信總線(xiàn),并且在芯片的管腳上只占用四根線(xiàn),節約了芯片的管腳,同時(shí)為PCB的布局上節省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,現在越來(lái)越多的芯片集成了這種通信協(xié)議,STM32也有SPI接口。
SPI接口一般使用4條線(xiàn):
MISO 主設備數據輸入,從設備數據輸出。 MOSI 主設備數據輸出,從設備數據輸入。 SCLK時(shí)鐘信號,由主設備產(chǎn)生。 CS從設備片選信號,由主設備控制。
SPI主要特點(diǎn)有:可以同時(shí)發(fā)出和接收串行數據;可以當作主機或從機工作;提供頻率可編程時(shí)鐘;發(fā)送結束中斷標志;寫(xiě)沖突保護;總線(xiàn)競爭保護等。
SPI總線(xiàn)四種工作方式 SPI 模塊為了和外設進(jìn)行數據交換,根據外設工作要求,其輸出串行同步時(shí)鐘極性和相位可以進(jìn)行配置,時(shí)鐘極性(CPOL)對傳輸協(xié)議沒(méi)有重大的影響。如果CPOL=0,串行同步時(shí)鐘的空閑狀態(tài)為低電平;如果CPOL=1,串行同步時(shí)鐘的空閑狀態(tài)為高電平。時(shí)鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進(jìn)行數據傳輸。如果CPHA=0,在串行同步時(shí)鐘的第一個(gè)跳變沿(上升或下降)數據被采樣;如果CPHA=1,在串行同步時(shí)鐘的第二個(gè)跳變沿(上升或下降)數據被采樣。SPI主模塊和與之通信的外設備時(shí)鐘相位和極性應該一致。

從選擇(NSS)腳管理
有2種NSS模式:
圖211● 軟件NSS模式:可以通過(guò)設置SPI_CR1寄存器的SSM位來(lái)使能這種模式(見(jiàn))。在這種模式下NSS引腳可以用作它用,而內部NSS信號電平可以通過(guò)寫(xiě)SPI_CR1的SSI位來(lái)驅動(dòng)
● 硬件NSS模式,分兩種情況:
─ NSS輸出被使能:當STM32F10xxx工作為主SPI,并且NSS輸出已經(jīng)通過(guò)SPI_CR2寄存器的SSOE位使能,這時(shí)NSS引腳被拉低,所有NSS引腳與這個(gè)主SPI的NSS引腳相連并配置為硬件NSS的SPI設備,將自動(dòng)變成從SPI設備。 當一個(gè)SPI設備需要發(fā)送廣播數據,它必須拉低NSS信號,以通知所有其它的設備它是主設備;如果它不能拉低NSS,這意味著(zhù)總線(xiàn)上有另外一個(gè)主設備在通信,這時(shí)將產(chǎn)生一個(gè)硬件失敗錯誤(Hard Fault)。
─ NSS輸出被關(guān)閉:允許操作于多主環(huán)境。
● NSS:從設備選擇。這是一個(gè)可選的引腳,用來(lái)選擇主/從設備。它的功能是用來(lái)作為“片選引腳”,讓主設備可以單獨地與特定從設備通訊,避免數據線(xiàn)上的沖突。從設備的NSS引腳可以由主設備的一個(gè)標準I/O引腳來(lái)驅動(dòng)。一旦被使能(SSOE位),NSS引腳也可以作為輸出引腳,并在SPI處于主模式時(shí)拉低;此時(shí),所有的SPI設備,如果它們的NSS引腳連接到主設備的NSS引腳,則會(huì )檢測到低電平,如果它們被設置為NSS硬件模式,就會(huì )自動(dòng)進(jìn)入從設備狀態(tài)。當配置為主設備、NSS配置為輸入引腳(MSTR=1,SSOE=0)時(shí),如果NSS被拉低,則這個(gè)SPI設備進(jìn)入主模式失敗狀態(tài):即MSTR位被自動(dòng)清除,此設備進(jìn)入從模式
評論