簡介
AS32X601內(nèi)置的I2C模塊提供了支持全雙工的同步串行通信。該接口可配置為主機(jī)或從機(jī)模式,配置為主機(jī)模式時,它可為外部從器件提供通信時鐘(SCK),6個SPI每個都支持8個從機(jī)。
SPI 協(xié)議是由摩托羅拉公司提出的通訊協(xié)議(Serial Peripheral Interface),即串行外圍設(shè)備接口,是一種高速全雙工的通信總線。它被廣泛地使用在 ADC、 LCD 等設(shè)備與 MCU 中,要求通訊速率較高的場合。
1.信號線:SPI具有SCK,MOSI,MISO ,CS線
2.尋址方式:SPI是通過CS片選信號來選擇從機(jī)
3.通信速率:SPI速率較快(可達(dá)fPCLK/2),一般用于高速設(shè)備之間通信。AN32X601上SPI速率最快可達(dá)45MHz。
硬件設(shè)計(jì)
SPI通信使用 3 條總線及片選線,3條總線分別為SCK、MOSI、 MISO,片選線為CS0。

SPI時序

CS0、SCK、MOSI信號都由主機(jī)控制產(chǎn)生,而 MISO的信號由 從機(jī)產(chǎn)生,主機(jī)通過該信號線讀取從機(jī)的數(shù)據(jù)。MOSI 與 MISO的信號 只在 NSS為低電平 的時候才有效,在 SCK的 每個時鐘周期,MOSI 和 MISO 傳輸一位數(shù)據(jù)。
① 處 NSS信號由高變低,是SPI通信的起始信號。NSS是 每個從機(jī)各自獨(dú)占的信號線,當(dāng)從機(jī)在自己的 NSS線檢測到起始信號后,就知道自己被主機(jī)選中,開始準(zhǔn)備與主機(jī)通信。⑥ 處 NSS信號由低變高,是SPI通信的停止信號,表示本次通信結(jié)束,從機(jī)的選中狀態(tài)被取消。
軟件編程
配置SPIx需要的GPIO為復(fù)用功能。
通過配置ISPI_INITSTRUCT初始化I2Cx,包括時鐘分頻,主機(jī)或從機(jī)模式,相位模式等等。

按需求配置中斷,并配置IRQ_HANDLER;
調(diào)用收發(fā)接口,并處理數(shù)據(jù)
SPI常見問題解析
Q1主從通信時,先開從機(jī),然后再給主機(jī)上電,通信正常,但是同時上電,即便是給主機(jī)加了延時都通信異常。
A:首先應(yīng)排查硬件上的問題,如芯片間的去耦電容是否正常,電源是否穩(wěn)定,如果確定了硬件沒有問題,就使用硬件片選試試,非常穩(wěn)定,主從同時上電即使主機(jī)不加延時也不會引起通信異常。
Q2:使用的DMA收發(fā),單獨(dú)測試一切正常,但是只要跟其他DMA同時使用就死機(jī)
A: 嘗試增大堆棧,MCU死機(jī)很大一部分原因是堆棧溢出(DMA是要用到堆棧的)
SPI穩(wěn)定性優(yōu)化
1,通信速率:主機(jī)的通信速率盡量不要超過從機(jī)SPI的最大速率
2,CRC校驗(yàn):如果工作環(huán)境較為惡劣,有較大的噪聲干擾,推薦開啟CRC校驗(yàn)
3,硬件片選:雖然從理論上講,只有主機(jī)和從機(jī)片選開不開無所謂,但是經(jīng)過向多名開發(fā)者驗(yàn)證和我的多次測試,開啟硬件片選可以大大提升SPI通信穩(wěn)定性。
審核編輯 黃宇
-
mcu
+關(guān)注
關(guān)注
147文章
18917瀏覽量
397870 -
調(diào)試
+關(guān)注
關(guān)注
7文章
646瀏覽量
35635 -
SPI
+關(guān)注
關(guān)注
17文章
1885瀏覽量
101187
發(fā)布評論請先 登錄
串口調(diào)試助手跟變頻器怎么通訊
電機(jī)軟起動器的調(diào)試技巧
變頻器使用過程中的參數(shù)調(diào)試
匯總開關(guān)電源調(diào)試的常見問題
芯源mcu的常見問題解答
FreeRTOS 在 AS32系列RISC-V 架構(gòu)MCU電機(jī)驅(qū)動中的應(yīng)用實(shí)踐與優(yōu)化
?STMicroelectronics AEK-MCU-SPC5LNK 編程調(diào)試器技術(shù)解析
?MPLAB? PICkit? Basic調(diào)試器技術(shù)解析與應(yīng)用指南
如何實(shí)現(xiàn)Infineon TRAVEO T2G系列MCU的安全調(diào)試
如何實(shí)現(xiàn)NXP S32K3系列MCU安全調(diào)試
調(diào)試工具:Eclipse調(diào)試工具欄與窗口的深入分析
使用BLE(CYW20829)作為SPI slave和MCU(TC387)作為SPI master,調(diào)試SPI通信時遇到的問題求解
硬件調(diào)試:JLink 驅(qū)動配置與調(diào)試技巧
RISC-V JTAG:開啟MCU 芯片調(diào)試之旅
AS32系列MCU調(diào)試教程 SPI調(diào)試的常見問題解析
評論