電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 104|回復(fù): 0
收起左側(cè)

單片機(jī)SPI還能實(shí)現(xiàn)單線(xiàn)半雙工模式?

[復(fù)制鏈接]

359

主題

359

帖子

3318

積分

四級(jí)會(huì)員

Rank: 4

積分
3318
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-10-4 20:04:00 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)注+星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容
來(lái)源 | 瑞薩嵌入式小百科
SPI:Serial Peripheral Interface,串行外設(shè)接口。
SPI是嵌入式項(xiàng)目中常用的一種通信接口,正常情況下,SPI都是“雙線(xiàn)”全雙工模式。但有些情況由于產(chǎn)品設(shè)計(jì)的要求或者接線(xiàn)數(shù)目的限制, 外設(shè)會(huì)使用單線(xiàn)半雙工模式。
SPI半雙工原理
SPI單線(xiàn)半雙工,指少一根數(shù)據(jù)線(xiàn),即只有SDI/SDO,SCLK,GND 三根線(xiàn)。這種方式在相同的連接線(xiàn)的基礎(chǔ)上,比UART更具備穩(wěn)定的通訊能力和更高速的數(shù)據(jù)傳輸量。
硬件連接方式:通常情況下MCU端只需要把MOSI和MISO管腳短接, 但需要考慮MOSI實(shí)際輸出能力和設(shè)備端的輸出電平狀態(tài)因素, 建議串接一個(gè)電阻避免由于雙方同時(shí)輸出不同的高低電平造成的短路現(xiàn)象。

單片機(jī)實(shí)現(xiàn)SPI半雙工
現(xiàn)在絕大部分單片機(jī)都集成了 SPI 外設(shè),而且?guī)缀醵贾С秩p工模式。但是,通過(guò)一定設(shè)置,還是可以支持半雙工模式。
本文以瑞薩 RA 系列單片機(jī)為例,給大家講述一下實(shí)現(xiàn)方法。
FSP配置:只需要按照實(shí)際通訊模式的要求做配置就可以。DTC功能和中斷回調(diào)函數(shù)等的配置也是按照FSP的手冊(cè)說(shuō)明來(lái)做就可以。

由于SPI本身是采用全雙工運(yùn)行的, 就算調(diào)用函數(shù) (R_SPI_Read) 在MISO做接收數(shù)據(jù)時(shí), MOSI也是會(huì)有同步輸出的。但在單線(xiàn)的情況下, 這樣就會(huì)干擾到Slave端的數(shù)據(jù)輸出, 甚至造成數(shù)據(jù)線(xiàn)上的短路情況。所以需要在接收數(shù)據(jù)前將MOSI的管腳配置改為GPIO 功能, 并且配置為輸入狀態(tài), 這樣MOSI管腳就不會(huì)在接收的過(guò)程中制造干擾。在接收完畢后將MOSI管腳的配置還原為外設(shè)功能的MOSI狀態(tài)。
發(fā)送數(shù)據(jù):直接調(diào)用函數(shù)R_SPI_Write()或者R_SPI_WriteRead().

切換到接收狀態(tài)并接收數(shù)據(jù):

還原MOSI狀態(tài):

通過(guò)以上的軟件配置流程,單線(xiàn)半雙工模式的SPI通訊就能夠正常運(yùn)行。
------------ END ------------


瑞薩RA8系列教程 | RA8輸出PWM實(shí)現(xiàn)方法


Cortex-M3與M85單片機(jī)的SysTick使用上有區(qū)別嗎?


嵌入式在邊緣AI的技術(shù)優(yōu)勢(shì)

發(fā)表回復(fù)

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表