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

評(píng)論