1.概述
目前網(wǎng)絡(luò)上使用stm32 spi的nss,基本上都使用的是nss的軟件管理模式。對于nss的硬件管理模式,程序的配置以及對nss的軟件管理模式與硬件管理模式的說明,真的少之又少。這可能跟stm32官方文檔對nss的描述不清也有很大關(guān)系吧,下面就帶大家理解理解nss,當(dāng)然了這篇文章是筆者閱讀了stm32 spi官方文檔再結(jié)合網(wǎng)友的一些文章,最終以自己個人對nss理解來編寫的,如果有錯誤之處,還請指正。
2.nss的管理模式
nss的管理模式分為:硬件管理和軟件管理。nss的管理模式由SSM決定。
nss其實(shí)分為外部引腳和內(nèi)部引腳的。外部nss引腳就是芯片上肉眼可見的與GPIO復(fù)用的引腳;內(nèi)部nss引腳就是stm32芯片里集成的spi模塊引腳,肉眼不可見。換句話說,真正與spi通信控制器連接的是內(nèi)部nss引腳,外部nss引腳不能直接連到芯片內(nèi)部的spi模塊,而是先連接內(nèi)部nss引腳,通過內(nèi)部nss引腳作用spi模塊。
3.nss的管理模式配置
SSM在SPI_CR1控制器里,默認(rèn)為0。
SSM可以控制內(nèi)部nss引腳與SSI(一個寄存器,軟件模式)相連,還是與外部nss引腳(真正的STM32引腳,硬件模式)相連。真正起作用的是內(nèi)部nss引腳(內(nèi)部nss引腳才真正連接到SPI通信控制器上)。
當(dāng)SSM=0:說明使用硬件管理模式,內(nèi)部nss引腳與外部nss引腳相連,忽視SSI位,對SPI_CR1的SSI位的寫操作無效;
當(dāng)SSM=1:說明使用軟件管理模式,內(nèi)部nss引腳與SSI相連,忽視外部nss引腳,我們可以把外部nss引腳當(dāng)做普通IO口;
4.spi從模式配置(MSTR=0)
(1).nss硬件模式(SSM=0)
當(dāng)外部nss引腳為低電平時,內(nèi)部nss也為低電平,相當(dāng)于片選該從器件,此時spi可以傳輸數(shù)據(jù)。外部nss引腳需要配置為復(fù)用功能。
(2).nss軟件模式(SSM=1)
SSM=1并且SSI=0,STM32芯片讓內(nèi)部nss引腳為低電平,相當(dāng)于片選該從器件,此時spi可以傳送數(shù)據(jù)。
外部nss引腳被釋放,可做普通IO作為其他用途使用。
5.spi主模式配置(MSTR=1)
(1).nss硬件模式(SSM=0)
在spi主模式下,nss硬件模式又分為輸入模式和輸出模式,由SSOE位決定。
a.輸入模式(SSOE=0)
在外部nss引腳為高電平,內(nèi)部nss引腳也為高電平,此時才能進(jìn)行數(shù)據(jù)傳輸。如果要使能從設(shè)備,還需要一個GPIO引腳。
在此情況下,外部nss要是被接低電平,則會進(jìn)入主模式故障,MSTR會清零,由主模式進(jìn)入從模式。
外部nss引腳需要配置為復(fù)用功能,并且外部nss引腳必須接入一個高電平,它才能維持主模式狀態(tài)。stm32官方手冊spi章節(jié)有說明,也就一句話,如果你不注意,可能就無法發(fā)現(xiàn),如下圖:

Snipaste_2020-09-01_11-14-17
b.輸出模式(SSOE=1)
當(dāng)使能spi模塊時,外部nss引腳會被芯片自動輸出低電平,使能從設(shè)備,進(jìn)行數(shù)據(jù)傳輸,不需要額外的GPIO引腳就能片選從設(shè)備(輸出模式時,貌似不需要遵循上圖框出來的內(nèi)容,那段話可能就是針對輸入模式寫的,輸出模式是spi模塊控制內(nèi)部nss引腳,因此也就不必遵循那段話)。
外部NSS引腳需要配置為復(fù)用功能,再把此引腳連接到從器件的CS引腳,因此外部NSS引腳就相當(dāng)于片選引腳了。
(2).nss軟件模式(SSM=1)
SSM=1,并且SSI=1,將內(nèi)部nss引腳設(shè)置為高電平,這樣隨時可以傳輸數(shù)據(jù)(這句話遵循上圖框出來的內(nèi)容)。當(dāng)然多數(shù)情況還需要一個GPIO引腳輸出低電平,來使能從設(shè)備,讓從設(shè)備可以接收數(shù)據(jù)。
綜上所述,nss引腳就是片選CS引腳是很不負(fù)責(zé)任的說法。
審核編輯:劉清
-
STM32
+關(guān)注
關(guān)注
2309文章
11162瀏覽量
373464 -
SPI
+關(guān)注
關(guān)注
17文章
1885瀏覽量
101259 -
IO口
+關(guān)注
關(guān)注
3文章
170瀏覽量
25721 -
NSS
+關(guān)注
關(guān)注
0文章
6瀏覽量
6623
原文標(biāo)題:stm32 spi nss-一篇文章帶你了解
文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
STM32 SPI——(2)NSS
[轉(zhuǎn)載]stm32 spi nss 大揭秘
STM32的SPI特性及架構(gòu)資料分享
STM32/STM32L151硬件SPI相關(guān)資料分享
SPI_NSS是什么意思
對STM32的SPI部分NSS的理解
STM32F4 SPI NSS硬件模式配置及使用
SPI的基本知識(偏向STM32中的SPI)
通俗理解STM32 SPI通信(主從雙機(jī)SPI通信)
STM32 SPI 軟件NSS和硬件NSS解讀
關(guān)于SPI通信協(xié)議的NSS
STM32 SPI的NSS引腳配置
STM32的SPI相關(guān)知識
STM32CbueMX之SPI NSS
一文詳解stm32 spi nss相關(guān)知識
評論