This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] msp432p401y:了解波特率计算

Guru**** 2609285 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/654665/msp432p401y-understanding-the-baudrate-calculation

部件号:MSP432P401Y

MSP432p手册(第915页)说明了如何获取参考时钟频率和波特率目标以及计算波特率寄存器值。

为了验证我是否理解正确的说明,我想我会在uartecho的硬件设置中查看表,以确保获得相同的值。

对于12MHz时的11.52万波特配置,我希望得到以下信息:

 {
       .outputBaudrate = 11.52万,
       .inputClockFreq = 1200万,
       .prescalar = 6,
       .hwRegUCBRFx = 8,
       .hwRegUCBRSx = 0x11,// 17
       超额采样= 1
   },

根据文档,SX字段在表24-4中查找F/波特的其余部分,在本例中为0.1666。

ODD是SX的UART回波示例中的值为32。  在24MHz参考时钟,我希望SX值为0x49,但示例代码使用37。

您能帮我看看我对波特率配置计算的误解吗?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    作为后续操作,我想确定92.16万波特所需的配置。 当我按照手册说明操作时,我会收到以下条目:

    {92.16万,24000000,1,10,0xb5, 1},
    {92.16万,12000000,0,13,0, 0},

    我已将固件设置为强制电源级别3,这意味着SMCLK为24MHz。 我通过调用获取时钟频率来验证此情况。

    92.16万波特的条目使我的波特率接近89.3万波特率。 我的测量结果是从O形范围中起飞的,因此不准确。 但是,它与92.16万的目标相差很远。

    我错过了什么吗?

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    有趣的是,这可能是由于DCO容差造成的。 您正在使用哪个版本的SDK?? 同时,让我运行几个测试,我会给您回复。

    谢谢!

    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    simplelink_msp432p4_sdk_1_60_00_12
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Marc,

     通过使用MSP432波特率计算器确定了波特率分压器:

    software-dl.ti.com/.../index.html

    并且UCBRSx值为32 (0x20),因为计算器中的查找表。

    N 104.1667

    在这种情况下,N的分数部分为0.1667 ,0.1667 小于0.1670 且大于0.1430 ,因此UBRSx = 0x20。

    Marc Singer98 说:
    在24MHz参考时钟,我预计SX值为0x49,但示例代码使用37。[/QUOT]

    这与此情况相同,在24MHz时:

    N 208.3333

    N的分数部分为0.3333 ,0.3333小于0.3335 且大于0.3000 ,因此UBRSx = 0x25。

     希望这能有所帮助。

       David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Marc,

     对于92.16万和24MHz,我获得:

    {92.16万,24000000,1,10,0, 1}, 

    不确定您是如何获得0xB5的??

    N 26.416.6667万

    N的分数部分是0.416.6667万 ,因此UBRSx =0。 请您尝试一下,如果您的目标接近92.16万,请告诉我。

      此致,

        David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我现在看到,我误解的部分是,SX值的计算涉及向下舍入到表中的下一个最小值,而不是最接近的值。 因此,0.1666 向下舍入到0.1430 ,而不是向上舍入到0.1670。