簡(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是通過CS片選信號(hào)來選擇從機(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ī)通過該信號(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ī)選中,開始準(zhǔn)備與主機(jī)通信。⑥ 處 NSS信號(hào)由低變高,是SPI通信的停止信號(hào),表示本次通信結(jié)束,從機(jī)的選中狀態(tài)被取消。
軟件編程
配置SPIx需要的GPIO為復(fù)用功能。
通過配置ISPI_INITSTRUCT初始化I2Cx,包括時(shí)鐘分頻,主機(jī)或從機(jī)模式,相位模式等等。
按需求配置中斷,并配置IRQ_HANDLER;
調(diào)用收發(fā)接口,并處理數(shù)據(jù)
SPI常見問題解析
Q1主從通信時(shí),先開從機(jī),然后再給主機(jī)上電,通信正常,但是同時(shí)上電,即便是給主機(jī)加了延時(shí)都通信異常。
A:首先應(yīng)排查硬件上的問題,如芯片間的去耦電容是否正常,電源是否穩(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ī)的通信速率盡量不要超過從機(jī)SPI的最大速率
2,CRC校驗(yàn):如果工作環(huán)境較為惡劣,有較大的噪聲干擾,推薦開啟CRC校驗(yàn)
3,硬件片選:雖然從理論上講,只有主機(jī)和從機(jī)片選開不開無所謂,但是經(jīng)過向多名開發(fā)者驗(yàn)證和我的多次測(cè)試,開啟硬件片選可以大大提升SPI通信穩(wěn)定性。
審核編輯 黃宇
-
mcu
+關(guān)注
關(guān)注
147文章
18387瀏覽量
378916 -
調(diào)試
+關(guān)注
關(guān)注
7文章
618瀏覽量
35219 -
SPI
+關(guān)注
關(guān)注
17文章
1835瀏覽量
98664
發(fā)布評(píng)論請(qǐng)先 登錄
?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)試

AS32X601系列MCU硬件最小系統(tǒng)設(shè)計(jì)與調(diào)試方案探析
調(diào)試工具:Eclipse調(diào)試工具欄與窗口的深入分析

使用BLE(CYW20829)作為SPI slave和MCU(TC387)作為SPI master,調(diào)試SPI通信時(shí)遇到的問題求解
AS32系列MCU芯片I2C模塊性能解析與調(diào)試

硬件調(diào)試:JLink 驅(qū)動(dòng)配置與調(diào)試技巧

如何解決Air780EPM開發(fā)中的調(diào)試難題?深度解析高效調(diào)試方法

RISC-V JTAG:開啟MCU 芯片調(diào)試之旅

【斯丹麥德電子】常見問題解答:干簧繼電器在測(cè)試與測(cè)量中的應(yīng)用
mac的常見問題解決方法
電路設(shè)計(jì)常見問題解答

評(píng)論