[APM32F0] Uart波特率能达到多高?

[复制链接]
 楼主| liqingfeng123 发表于 2022-4-10 11:55 | 显示全部楼层 |阅读模式
本帖最后由 liqingfeng123 于 2022-4-10 12:00 编辑

      很多工程师们在选型的时候不清楚如何查看和配置uart的波特率,这对uart有特殊应用的产品选型造成一定困难,特此描述:             我们以M0+产品为例:如何粗略算出MCU最高波特率?            1.型号:APM32F030C8T6;
      2.查看系统框图,找到uart的时钟源:
                1648015507(1).jpg
         从框图中可以清晰找到Uart1/2是挂在APB桥接上。
      3.查看并分析时钟树:
            ea1279f79e4cf5163e969cc1dc5c692.png
         从uart1上可以看出,主要时钟是从PCLK1上来的。
        4.综上查找道APB最高主频为48Mhz,不管是外部时钟还是内部时钟,PCLK1则为APB分频得出,这里取1分频,相当于PCLK1为48Mh,
          作为uart1的时钟源。
        5.公式计算:M0+的时钟源计算方式:
           波特率分频系数(USARTDIV)是一个 16 位的数字,包含 12 位整数部分和 4 位
          小数部分。它与系统时钟的关系:
              波特率=PCLK1/[16×(USARTDIV)]
              USART1的系统时钟为 PCLK1;(操作注意事项:必须在时钟控制单元使能系统时钟之后再使能 USART)         5.USARTDIV解释:也有说法是 波特率寄存器(USART_BR) ,实际上是USART_BR包含了USARTDIV,具体解释如下:
           USART_BR(32bit)= 高16bit(保留自用)+USARTDIV(低16bit);
           USARTDIV(低16bit)= IBR(15:4bit) +FBR(3:0bit);
           IBR(15:4bit) = 整数,取最大值就是2进制12位:0b 1111 1111 1111 ,转10进制:1;
           FBR(3:0bit) = 小数,取最大值就是2进制4位:0b 1111,转10进制:16;USARTDIV最小为:1;

          当然这个是理论值,实际操作值建议在:(与配置和误码率相关)
           Baud Rate  在 123 Bits/s and 500 KBits/s.






7f0af7aa8a26c405e108cbc8f37ad38.png
guijial511 发表于 2022-4-11 07:57 来自手机 | 显示全部楼层
UART实际上也不会跑到很高的频率
linfelix 发表于 2022-4-27 20:17 | 显示全部楼层
才500k吗   
phoenixwhite 发表于 2022-4-27 20:26 | 显示全部楼层
可以到1.5Mhz的  
abotomson 发表于 2022-4-27 20:41 | 显示全部楼层
115200  
myiclife 发表于 2022-4-27 21:02 | 显示全部楼层
这个波特率还是不高  
fengm 发表于 2022-4-27 21:31 | 显示全部楼层
还是使用总线吧   
dzfansman 发表于 2022-4-27 21:59 | 显示全部楼层
手册中并没有直接说明最高可以达到多少
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:极海半导体
简介:珠海极海半导体有限公司是一家致力于开发工业级/车规级微控制器、模拟与混合信号IC及系统级芯片的集成电路设计型企业。极海团队拥有20年集成电路设计经验和嵌入式系统开发能力,可为客户提供核心可靠的芯片产品及方案,实现准确感应、安全传输和实时控制,助力客户在智慧家居、高端消费电子、工业控制、汽车电子、智慧能源以及通信设施等领域的拓展创新。

10

主题

56

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部