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.

[参考译文] AM6442:使用 SysConfig 选择 UART 波特率

Guru**** 2416110 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1526626/am6442-uart-baud-rate-selection-with-sysconfig

器件型号:AM6442
主题:SysConfig 中讨论的其他器件

工具/软件:

你好。

我要将 USART1 的 UART 波特率设置为 5Mbaud。 根据 TRM 中的表 12-470、这应该可以通过使用 160MHz 的时钟源、分频器 1 且波特率倍数设置为 x16 来实现。 我使用  SysConfig (1.14.0+2667) 来配置处理器。 使用上述参数我收到了错误:

 我玩了一会儿,并提出了以下设置:

根据这些参数、我看到 UART 通信(使用示波器测量)为 5Mbaud。 没关系、但从文档中我无法理解为什么这些值会导致 5M 的波特率。 不知何故,它感觉不对。 我在 TRM 中找到了以下图纸:

  

您能给我一些关于如何进行计算的更多见解吗? 提前感谢。

BR Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“658343" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1526626/am6442-uart-baud-rate-selection-with-sysconfig

     我玩了一会儿,并提出了以下设置:

    [/报价]

    您是说在上述配置下、波形上的波特率为 5000000 吗?

    此致、

    Vaibhav

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

    是的、没错。 我拍摄了 RX(和 TX)信号的快照。 位的持续时间为 200ns。 UART 连接到 FPGA。  Sitara 和 FPGA 之间的通信正常@5MHz。

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

    那么、问题是您设置了 80MHz 频率和 3MHz 的波特率、但波特率最终是 5MHz。 这是一种奇怪的行为。

    让我们一步一步地探究。

    请检查您的应用程序和我们调用的函数:system_init ()-> Module_clockSetFrequency ()

    在这个过程中、我们会在这里设置 UART 的频率、能否检查是否正确设置了 UART 的 80MHz 频率?

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    自动生成的文件 ti_power_clock_config.c 包含 Module_clockSetFrequency () 使用的以下结构:
    SoC_ModuleClockFrequency gSocModuleClockFrequency[]=

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

    您好、

    通过查看 AM64x 的时钟树工具、我可以看到 80MHz 频率可以通过以下组合实现、如下图所示。

    我假设根据您的流程正确设置了时钟。

    关于时钟分频器值、您能帮我解决这个问题吗?

    您需要转到 API 调用 UART_configInstance 并在以下位置放置断点:

    /*计算 params.baudrate 的 Divisor 值*/
    DivisorVal = UART_DivisorValCompute (hUartInit->inputClkFreq、
    hUartInit->baudrate、
    hUartInit->operMode、
    UART_MIR_OVERSAMPLING_RATE_42);

    请与我分享从这个计算的 DivisorVal。

    此致、

    Vaibhav

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

    hUartInit->operMode、 [/报价]

    您好、

     UART_configInstance (UART_V0.c) 中的代码行看起来有所不同。 我使用的是 MCU_PLUS_SDK_am64x_08_01_00_36:

      /*计算 params.baudrate 的 Divisor 值*/
      DivisorVal = UART_DivisorValCompute (attrs->inputClkFreq
                        PRMs->baudrate
                        PRMs->operMode
                        UART_MIR_OVERSAMPLING_RATE_42);
    attrs->inputClkFreq = 48000000
    PRMs->baudrate = 3000000
    PRMs->operMode = 0 (UART_OPER_MODE_16X)
    DivisorVal = 1
    奇怪的是  inputClkFreq 设置为 48000000。
    BR
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    奇怪的是  inputClkFreq 设置为 48000000。

    这就是我想要确认的内容。 看起来像一个基本的 SDK 错误、该错误在后续版本中被处理过。

    我正在使用 MCU_PLUS_SDK_am64x_08_01_00_36:

    任何理由坚持旧版本,有许多缺陷修复自 8.1 以来. 请参阅发行说明: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_00_00_15/exports/docs/api_guide_am64x/RELEASE_NOTES_PAGE.html

    此致、

    Vaibhav

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

    我们将在不远的将来更新 SDK 版本。 因此、无需坚持使用旧版本。 请务必了解我们的 UART 设置是否在规格范围内。 我知道、SysConfig 的配置会令人困惑、因为一个 SDK 错误在较新的版本中得到解决、但  源自.syscfg 文件的实际设置是有效的。 请您确认一下。 非常感谢您的帮助。

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

    您好、

    我先尝试一下我的设置。

    请告诉我您是否以这种方式测量波特率:

    要通过波形测量 UART 波特率、您需要  确定单个位的持续时间、然后计算波特率为该持续时间的倒数 。  具体来说、测量 UART 发送 (TX) 线路上两次连续转换(上升到下降或下降到上升)之间的时间。  波特率等于 1 除以这个测量时间

    请注意、上面的代码片段不是来自我的逻辑分析仪、而是一个在线图像。

    此致、

    Vaibhav

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

    这就是我确定波特率的方式。

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

    谢谢、我将把您的配置放入最新版本之一、检查我是否看到相同的波特率。

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

    您好、

    我已将逻辑分析仪连接到 UART2 TXD、并看到如下所示的波形:

    如果仔细阅读、它将发送以下字符串:“这是 UART 回显测试阻塞模式\r\n 接收 8 个字符、然后回显。 请输入。“

    我现在将测量波特率、检查它是否默认为 115200、然后发布此信息、我将提供您的配置、并检查是否看到波特率不匹配。

    感谢您的耐心。

    Vaibhav

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

    您好、

    只需快速更新:

    对于配置了 115200 的示例应用、我看到 波形中的波特率为 115,207.37、这是正常的。

    现在转到您的配置:

    请根据下图告诉我波特率是多少?

    我做了一些改变,反映了设置的 16x,波特率:3000000 和频率: 80MHz。 从上图中、请告诉我波特率是多少、如果您需要更多指导、也请告诉我。

    期待您的答复。

    此致、

    Vaibhav