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.

[参考译文] MSP430G2553:用于在标准 UART 波特率下实现可接受误差的时钟选项

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/952368/msp430g2553-clocking-options-to-achieve-acceptable-error-at-standard-uart-baud-rates

器件型号:MSP430G2553

在尝试确保 USCI (UART 模式)以115200波特进行无错误通信时、未清除为该器件计时的选项。 我们还需要帮助解释 UG 表15-4和15-5

DCO 表(数据表(SLAS735J)的第30页)显示了整个温度范围内的+/-3%误差。 添加到用户指南(SLAU144J)表15-4和15-5中显示的-0.8/+0.6%或0/+1.6%(取决于过采样模式)的数字误差中、我们得到的累积误差为位时间(开始+ 8数据+奇偶校验+停止)的~35%。 对于线路另一端的理想时钟器件、这可能是正常的。 但是、这似乎意味着两个"G2xx3器件可能存在问题(假设它们在相反的方向上关闭)。

三个问题...

1.对于 UG 表15-4和15-5、该误差是否表示为"在整个字符中累积的位数的百分比"? (我们*认为*这正是上一段试图说明的内容)

2.在上述字符上的~35%的位错误是否正确?

如果是、以允许 UART 在两个"G2xx3"之间连接 UART 的方式为该器件计时的解决方案是什么? (对于32768以外的晶振、LFXT1不支持 HF 模式、LF 模式不具有特征(大概不支持))

谢谢。。。 Jim

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

    两个选项:

    我认为1.843MHz 的外部振荡器是一个选项。

    使用32KHz LFXT 来控制 DCO。

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

    David、

    因此、添加一个我得到的振荡器(这将花费大约为 MSP 成本的50%)。

    但是、通过"使用32KHz LFXT 来控制 DCO "、您是说使用32.768kHz、还是我可以使用一个值将会多倍的晶体来提供所需的确切频率、从而使 SMCLK 恰好是波特率的16倍?

    在前一种情况下(32.768kHz 晶振)、UG 的表15-4显示9600波特时的误差非常高、这意味着您不能再升高。 在后来的情况下(32.768kHz 以外的晶振)、DS 仅显示32768作为"典型"晶振值、这意味着没有表征其他值?

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

    TI 在某处有一个文档、描述了如何使用 LFXT 和 DCO 构建软件锁频环。 基本上、您使用一个计时器来对 MCLK 进行计数并累加计数。 另一个计时器从 ACLK/LFXT 运行。 您会根据 ACLK 定期检查 DCO 的总计数。 如果 DCO 离线、则根据需要扭转 DCO 上的旋钮。

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

    我想 David 是指示例 msp430g2xx3_DCO_flashcal.c、该示例(如所写)使用 ACLK (标称32kHz 晶体)重新计算 DCO 常数 、并将其写入 InfoA。  

    http://dev.ti.com/tirex/explore/node?node=APXSlUhYWYfUi-lBT1UjXA__IOGqZri__LATEST

    该技术实际上是一种使用 ACLK 捕捉(CCI0B)的 FLL、但它具有侵入性、因此您需要找到一种方法来将其与使用计时器的功能集成。

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

    不,我指的是 slaa336。 我用了一段时间才把那个从我的记忆中把它从我的记忆中挖出来,因为我用它已经有一段时间了。

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

    感谢大家、添加晶体并定期执行校准对于我们来说似乎是一个可行的解决方案。

    TI 对这些表格的解释没有任何回应。 对于我们的非一级客户、我们有时会看到 TI 的面孔、或者至少有一条通过 dist'ys FAE 返回工厂的路径。 此时、我甚至担心在线支持。  

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

    您好,

     在上述字符中~35%的位错误是否正确? 否

    这是在 FR4133上测试的内部晶体的结果、您可以将其作为参考。 原因是,如果温度相同,则两个器 件之间的频率误差将小于-0.8/+0.6%或0/+1.6%。 从我的角度来看、-0.8%发生在-40C、+0.6%发生在85C。

    但是、如果您想要获得高精度时钟、则不应选择内部晶体。 也可以使用相同的时钟信号来控制两个器件。 顺便说一下、如果 UART 波特率的误差低于3.75%、则通信是稳定的。

    很抱歉、最近我 非常疲于处理离线客户支持和内部业务。

    伊斯天

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

    伊斯天

    在我们的情况下、RS485连接上的两点可能是温度变化很大的。 它是一个机载系统、其中一个单元位于操作员附近的调节区域、另一个单元受外部环境影响。 该增量可以是40-50C。

    因此、在查看可能的错误时、我希望确保我正确理解 TI 信息。 0.8/+0.6 (或0/+1.6%) I *相信*是一个字符上的累积误差,这是因为基-10 DCO 频率不能完全匹配115200;而 DCO 误差(~+/-3%)将在该字符上累积。 因此、我认为总误差约为[(3% x 11位)+ 1.6%]、同时假设 MSP 通信时具有完美的、0%误差、115200波特源。 这似乎是正确的吗? 如果不是、查看这两个误差源的正确方法是什么?

    谢谢。。。 Jim

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

    11位有点长。 重要的采样时间发生在起始位和之后8个数据位的中心。 因此、这将是8.5位时间。 (停止位被检查、但是如果你没有检查组帧错误、那么它们无论如何也无关紧要。)