2026 / 07 / 21
RA UART实现串口波特率自适应

介绍

RA系列的开发环境中的FSP能够以最简单的GUI的方式来配置外设并生成封装好的底层驱动代码。但如果外设需要做动态功能上的切换,例如串口<->IRQ接收等功能,就需要手动通过寄存器配置来做动态修改。下面的例子是一个简单的通过RXD管脚首先通过IRQ中断触发来侦测接收数据的start Bits时间,计算出实际波特率,然后做动态波特率配置。这样就能够实现波特率自适应(侦测)的功能。


内容

演示的例程采用EK-RA2E1评估板,UART1 (P401, P402) 分别配置为TXD1 & RXD1。程序启动后,首先将RXD1脚切换到IRQ4的中断触发模式(both Falling & Rising Edge trigger),然后等上位机发送波特率标识数据(LSB=1),这样IRQ4分别两次触发GPT(Start->Stop)就能够捕捉start bit的间隔时间,从而计算出上位机发送数据的波特率. 然后将IRQ4管脚切换到RXD,并开始UART通讯。


EK-RA2E1评估套件可通过瑞萨电子的灵活软件包(FSP)和e2 studio IDE,帮助用户轻松评估RA2E1 MCU产品组的特性,并开发嵌入式系统应用程序。用户可利用丰富的板载功能以及自选的热门生态系统插件来将丰富创意变为现实。


EK-RA2E1:https://www.renesas.cn/cn/zh/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra2e1-evaluation-kit-ra2e1-mcu-group


具体配置

1 UART1配置

UART1的配置只需要按照应用要求来做就可以,但必须留意所选的RXD脚必须跟IRQ是复用的,以便做软件切换。由于是做波特率自适应,属性页面中关于Baud的配置可以忽略。


2 GPT配置

由于需要通过定时器来做start bit的时间间隔测量,可以选用GPT/AGT使用one-shot/Periodic模式并留足够Period值余量来确保start bit在低速下不会溢出。


3 P402管脚配置为IRQ4

将SCI1串口默认的(RXD)P402管脚改为IRQ4,并添加中断入口函数。1


中断入口函数里面首先判断是否发生了下降沿触发,然后启动定时器,等再次中断进入后,停止定时器,并取得定时器计数值,通过跟默认已知的系统时钟参数相除,就能得到确切的波特率数值。


4 波特率计算和相关寄存器配置

取得波特率实际值后,通过硬件手册上的相关的方程式就能够反推出几个控制波特率的寄存器的配置需要值 (brr,  semr , cks等),并将相关计算出的数值修改到FSP SCI1的全局变量结构体内 (g_uart1_baud_setting)。


5 修改P402管脚配置为UART-RXD

然后将P402管脚修改为UART功能,并启动 UART_Open() 函数,设置波特率已配置标志。


6 这样主函数就能够直接通过已侦测到的波特率直接发送数据和开始接收数据。


上述方法只需通过底层寄存器配置就能使简单快速做波特率侦测、计算和配置。通过这种方式,只要芯片系统时钟符合范围要求,任何非通用或者极高速/超低速的波特率也是能使实现侦测并配置使用。

文件下载
隐私条款

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

 

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

样品
申请

应用
资源

微信