有些特殊的外設(shè)會使用基于SPI模式,發(fā)送連續(xù)比特流來傳輸數(shù)據(jù)。本文主要介紹對于Renesa RA,如何使用SPI來實現(xiàn)高速比特流的發(fā)送。
注意,此方式僅針對搭載了支持該工作模式SPI外設(shè)的RA產(chǎn)品,使用前請在硬件手冊中確認(rèn)這一點。
靈活的Renesas Advanced(RA)32位MCU是采用Arm Cortex-M33、-M23、-M4和-M85處理器內(nèi)核,并經(jīng)過PSA認(rèn)證的、行業(yè)領(lǐng)先的32位MCU。RA可提供更為強(qiáng)大的嵌入式安全功能、卓越的CoreMark性能和超低的運(yùn)行功率,相比競爭對手的Arm Cortex-M MCU具有重大優(yōu)勢。PSA認(rèn)證可為客戶提供信心和保障,幫助其快速部署安全的物聯(lián)網(wǎng)端點和邊緣設(shè)備,以及適用于工業(yè)4.0的智能工廠設(shè)備。
RSPI在正常的配置模式下,如果發(fā)送4個字節(jié),總線上波形如下圖所示。在每兩個字節(jié)之間都有delay的插入。
點擊可查看大圖
手冊上關(guān)于這部分的描述如下:
t1是從SSLn生效到第一個clock的延時
t2是最近一個CLK結(jié)束到SSLn失效的延時
t3是SSLn再次使能之前的延時
但是這樣會造成比特流不連續(xù),無法滿足某些特定應(yīng)用的要求。
SPI實際上還提供了Burst功能,用于產(chǎn)生連續(xù)的比特流,該功能尚未在FSP界面中支持,當(dāng)前可通過手動修改R_SPI代碼實現(xiàn),把寄存器位SSLKP和BFDS置位。更新代碼如下所示:
點擊可查看大圖
修改代碼后,測試波形結(jié)果如下圖:
點擊可查看大圖
細(xì)心的小伙伴會發(fā)現(xiàn),最后一個字節(jié)沒有發(fā)送完成。仔細(xì)檢查發(fā)現(xiàn),在最后一個字節(jié)發(fā)送的過程中,RSPCK上缺少兩個clock,實際上程序也沒有進(jìn)入發(fā)送完成中斷。
所以光這樣還不行,還需要在發(fā)送中斷程序中做一下處理。
在rafspsrc _spi _spi.c的函數(shù)r_spi_transmit函數(shù)中增加一個判斷,在發(fā)送最后一個字節(jié)前,重新把SSLKP清零:
點擊可查看大圖
這是修改后的時序,字節(jié)間已經(jīng)沒有插入delay,保證了比特流的連續(xù)性。
點擊可查看大圖
需特別注意的是,假如生成連續(xù)比特流,則不支持通過DMA/DTC進(jìn)行SPI傳輸。
另外,如果不切換FSP的版本,對于源碼的修改,RA文件夾中可以保留,但是ra_cfg和ra_gen文件夾中的內(nèi)容會被FSP重寫。如果切換FSP的版本,則三個文件夾(ra,ra_cfg和ra_gen)中的內(nèi)容均會被FSP重寫。
對該功能的支持已加入FSP的開發(fā)計劃,屆時無需手動修改,僅需在FSP Stack中配置即可。
-
處理器
+關(guān)注
關(guān)注
68文章
19100瀏覽量
228813 -
mcu
+關(guān)注
關(guān)注
146文章
16885瀏覽量
349914 -
SPI
+關(guān)注
關(guān)注
17文章
1688瀏覽量
91202 -
RA
+關(guān)注
關(guān)注
0文章
18瀏覽量
24657 -
比特流
+關(guān)注
關(guān)注
0文章
10瀏覽量
8101
原文標(biāo)題:關(guān)于使用RSPI來發(fā)送連續(xù)比特流的方法
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論