2026 / 07 / 22
RA SPI实现单线半双工模式

RA系列的芯片无论是从入门级别的RA2E1或者到目前最高端的RA6M5, 都集成了功能强大的SPI通讯接口, 能够实现高速的全双工同步通讯(Full-duplex)。

但有些情况由于产品设计的要求或者接线数目的限制, 外设会使用3线的连接方式来做高速的串行数据通讯,SDI/SDO,SCLK,GND。这种方式在相同的连接线的基础上,比UART更具备稳定的通讯能力和更高速的数据传输量。RA的SPI外设, 虽然在硬件手册上表明通讯模式只支持Full-duplex or Transmit only。但其实通过软件上的使用技巧,是完全能够做到单线半双工(Single Wire Half-duplex)的通讯模式的。


硬件连接:通常情况下MCU端只需要把MOSI和MISO管脚短接, 但需要考虑MOSI实际输出能力和设备端的输出电平状态因素, 建议串接一个电阻避免由于双方同时输出不同的高低电平造成的短路现象。


演示的例程中采用的是EK-RA2E1评估板, SPI接口使用P101(MOSI),P100(MISO)P102(SCLK)


FSP配置:只需要按照实际通讯模式的要求做配置就可以。DTC功能和中断回调函数等的配置也是按照FSP的手册说明来做就可以。


由于SPI本身是采用全双工运行的, 就算调用函数 (R_SPI_Read) 在MISO做接收数据时, MOSI也是会有同步输出的。但在单线的情况下, 这样就会干扰到Slave端的数据输出, 甚至造成数据线上的短路情况。所以需要在接收数据前将MOSI的管脚配置改为GPIO 功能, 并且配置为输入状态, 这样MOSI管脚就不会在接收的过程中制造干扰。在接收完毕后将MOSI管脚的配置还原为外设功能的MOSI状态。


发送数据:直接调用函数R_SPI_Write()或者R_SPI_WriteRead().


切换到接收状态并接收数据:


还原MOSI状态:


通过以上的软件配置流程,单线半双工模式的SPI通讯就能够正常运行。

文件下载
隐私条款

一、接受条款 使用者(也称"您")在访问或使用本网站及其服务时,即已经表示同意并不加修改地接受本《用户协议》、本网站的《隐私声明》、《法律声明》以及其关或相链接的网页和网站的条件和条款的规定。我们强烈建议:在您阅读和接受本《用户协议》时,也应阅读并接受本《用户协议》中所提到《隐私声明》、《法律声明》及其相关或相链接网页或网站所包含的资料,因为《隐私声明》、《法律声明》及其它相关网页或网站可能包含对您适用的进一步规定。(请注意:点击划有底线的词句即可链接到上述《隐私声明》、《法律声明》及其它相关或相链接的网页和网站。

 

二、使用者的资格要求 在本网站中"使用者"指的是浏览、阅读、使用本网站信息或服务的任何个人或组织。本网站的服务仅适用于根据相关法律的规定具有签订有约束力的合同的个人或组织并仅由其使用。本网站的服务不向18周岁以下的个人使用者提供,也不向临时被本网站中止或取消使用者资格的使用者提供。如果使用者不符合本条规定,请停止使用本网站或本网站的服务。

样品
申请

应用
资源

微信