扫描关注一起学嵌入式,一起学习,一起成长
现在的单片机资源越来越丰富了,其中我们常用的串口也是内部集成了多个,关键功能也越来越强了。
我们有些应用可能会用到串口自动识别波特率,今天就来讲讲MCU串口自动识别波特率底层的常见的原理,以及MCU的案例。
自动识别波特率常见原理
串口自动识别波特率(Auto Baud Rate Detection,简称ABR)的底层原理主要基于串口通信中数据的传输特性和设备间的交互机制。
以下是几种常见的自动波特率识别原理。
MCU硬件串口自动识别波特率
现在市面上很多新推出的MCU都有波特率自动识别的功能,这里以瑞萨RA系列单片机为例,配合e2 studio给大家讲讲串口自动识别波特率的配置。
UART1配置
由于是做波特率自适应,属性页面中关于Baud的配置可以忽略。
GPT配置
由于需要通过定时器来做start bit的时间间隔测量,可以选用GPT/AGT使用one-shot/Periodic模式并留足够Period值余量来确保start bit在低速下不会溢出。
P402管脚配置为IRQ4
波特率计算和相关寄存器配置
取得波特率实际值后,通过硬件手册上的相关的方程式就能够反推出几个控制波特率的寄存器的配置需要值 (brr, semr , cks等)。
并将相关计算出的数值修改到FSP SCI1的全局变量结构体内 (g_uart1_baud_setting)。
然后将P402管脚修改为UART功能,并启动 UART_Open() 函数,设置波特率已配置标志。
上述方法只需通过底层寄存器配置就能使简单快速做波特率侦测、计算和配置。
来源:瑞萨嵌入式小百科
文章来源于网络,版权归原作者所有,如有侵权,请联系删除。
关注【一起学嵌入式】,回复“加群”进技术交流群。
觉得文章不错,点击“分享”、“赞”、“在看” 呗!