簡(jiǎn)介
AS32X601內(nèi)置的I2C模塊提供了支持全雙工的同步串行通信。該接口可配置為主機(jī)或從機(jī)模式,配置為主機(jī)模式時(shí),它可為外部從器件提供通信時(shí)鐘(SCK),6個(gè)SPI每個(gè)都支持8個(gè)從機(jī)。
SPI 協(xié)議是由摩托羅拉公司提出的通訊協(xié)議(Serial Peripheral Interface),即串行外圍設(shè)備接口,是一種高速全雙工的通信總線。它被廣泛地使用在 ADC、 LCD 等設(shè)備與 MCU 中,要求通訊速率較高的場(chǎng)合。
1.信號(hào)線:SPI具有SCK,MOSI,MISO ,CS線
2.尋址方式:SPI是通過(guò)CS片選信號(hào)來(lái)選擇從機(jī)
3.通信速率:SPI速率較快(可達(dá)fPCLK/2),一般用于高速設(shè)備之間通信。AN32X601上SPI速率最快可達(dá)45MHz。
硬件設(shè)計(jì)
SPI通信使用 3 條總線及片選線,3條總線分別為SCK、MOSI、 MISO,片選線為CS0。
SPI時(shí)序
CS0、SCK、MOSI信號(hào)都由主機(jī)控制產(chǎn)生,而 MISO的信號(hào)由 從機(jī)產(chǎn)生,主機(jī)通過(guò)該信號(hào)線讀取從機(jī)的數(shù)據(jù)。MOSI 與 MISO的信號(hào) 只在 NSS為低電平 的時(shí)候才有效,在 SCK的 每個(gè)時(shí)鐘周期,MOSI 和 MISO 傳輸一位數(shù)據(jù)。
① 處 NSS信號(hào)由高變低,是SPI通信的起始信號(hào)。NSS是 每個(gè)從機(jī)各自獨(dú)占的信號(hào)線,當(dāng)從機(jī)在自己的 NSS線檢測(cè)到起始信號(hào)后,就知道自己被主機(jī)選中,開(kāi)始準(zhǔn)備與主機(jī)通信。⑥ 處 NSS信號(hào)由低變高,是SPI通信的停止信號(hào),表示本次通信結(jié)束,從機(jī)的選中狀態(tài)被取消。
軟件編程
配置SPIx需要的GPIO為復(fù)用功能。
通過(guò)配置ISPI_INITSTRUCT初始化I2Cx,包括時(shí)鐘分頻,主機(jī)或從機(jī)模式,相位模式等等。
按需求配置中斷,并配置IRQ_HANDLER;
調(diào)用收發(fā)接口,并處理數(shù)據(jù)
SPI常見(jiàn)問(wèn)題解析
Q1主從通信時(shí),先開(kāi)從機(jī),然后再給主機(jī)上電,通信正常,但是同時(shí)上電,即便是給主機(jī)加了延時(shí)都通信異常。
A:首先應(yīng)排查硬件上的問(wèn)題,如芯片間的去耦電容是否正常,電源是否穩(wěn)定,如果確定了硬件沒(méi)有問(wèn)題,就使用硬件片選試試,非常穩(wěn)定,主從同時(shí)上電即使主機(jī)不加延時(shí)也不會(huì)引起通信異常。
Q2:使用的DMA收發(fā),單獨(dú)測(cè)試一切正常,但是只要跟其他DMA同時(shí)使用就死機(jī)
A: 嘗試增大堆棧,MCU死機(jī)很大一部分原因是堆棧溢出(DMA是要用到堆棧的)
SPI穩(wěn)定性優(yōu)化
1,通信速率:主機(jī)的通信速率盡量不要超過(guò)從機(jī)SPI的最大速率
2,CRC校驗(yàn):如果工作環(huán)境較為惡劣,有較大的噪聲干擾,推薦開(kāi)啟CRC校驗(yàn)
3,硬件片選:雖然從理論上講,只有主機(jī)和從機(jī)片選開(kāi)不開(kāi)無(wú)所謂,但是經(jīng)過(guò)向多名開(kāi)發(fā)者驗(yàn)證和我的多次測(cè)試,開(kāi)啟硬件片選可以大大提升SPI通信穩(wěn)定性。
審核編輯 黃宇
-
mcu
+關(guān)注
關(guān)注
146文章
17915瀏覽量
362567 -
調(diào)試
+關(guān)注
關(guān)注
7文章
611瀏覽量
34612 -
SPI
+關(guān)注
關(guān)注
17文章
1791瀏覽量
95221
發(fā)布評(píng)論請(qǐng)先 登錄
硬件調(diào)試:JLink 驅(qū)動(dòng)配置與調(diào)試技巧

C2000常見(jiàn)問(wèn)題解答

電路設(shè)計(jì)常見(jiàn)問(wèn)題解答

Keystone EDMA常見(jiàn)問(wèn)題解答

Keystone NDK常見(jiàn)問(wèn)題解答

TVP51xx產(chǎn)品系列-常見(jiàn)問(wèn)題解答

TFPxxx常見(jiàn)問(wèn)題解答

RS-232常見(jiàn)問(wèn)題解答

MSP MCU上Σ-Δ ADC的常見(jiàn)問(wèn)題解答

采用MSP430FR604x MCU的水流和燃?xì)饬髁坑?jì)量超聲波傳感技術(shù)的常見(jiàn)問(wèn)題解答(FAQ)

數(shù)字電源的低壓調(diào)試和高壓調(diào)試
C2000 MCU JTAG 連接調(diào)試

關(guān)于UCC25640x LLC諧振控制器的常見(jiàn)問(wèn)題解答

OMAPL138/C6748 ROM引導(dǎo)加載程序資源和常見(jiàn)問(wèn)題解答

TMP LM 75比較常見(jiàn)問(wèn)題解答

評(píng)論