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.

[FAQ] [参考译文] [常见问题解答] MSP430F6779:通过 UART 将 EMDC 与另一个 MCU 连接

Guru**** 1135610 points
Other Parts Discussed in Thread: MSP430F6779, MSP-FET, EVM430-F6779
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/725083/faq-msp430f6779-interfacing-emdc-with-another-mcu-over-uart

器件型号:MSP430F6779
主题中讨论的其他器件: MSP-FETEVM430-F6779

您好!  

在通过 UART 连接 EMDC 与另一个 MCU 方面是否有任何帮助。

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

    您能否分享有关您想要构建的应用程序的更多详细信息?
    是否要使用 EMDC GUI 配置 MSP430F6779、然后将 MSP430F6779与另一个 MSP430连接? 或者、是否要将 EMDC 与 MSP430F6779不同的 MSP430配合使用?
    请告诉我您需要帮助的情景。

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

    链接 www.ti.com/.../
    显示了一个带有流程图、项目文件、源代码等内容的 UART 转 UART 桥接器。

    如果您的 EMDC 基于 MSP430F6779、则您的选项将取决于您所连接的 MCU。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。

    我们正在努力实现以下目标。

    使用电能测量设计中心(EMDC) GUI 设计电能测量解决方案。
    使用 JTAG 生成代码并按原样部署(完全没有代码更改)。
    通过 UART 连接另一个 MSP430 (让我们称之为主机)。
    读取主机 MCU 上的气象学值。
    将校准参数从主机 MCU 写入 EMDC。

    问题
    1) 1)我研究了 EMDC 的文档-我的理解是、EMDC 默认在 UART 上暴露气象值和更新校准参数的方法。 请确认正确。

    2) 2) ID、如一些有关如何从主机 MCU 上的 EMDC 读取和写入数据的帮助。 代码会很有帮助。 它不必是非常详细的基本意愿。

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

    您好 Bilal、

    感谢您关注 EMDC 的使用。 首先、我建议您从初始版本 v1.20.00更新到最新版本 v1.30.00。 这里是一些反馈。

    [引用 user="Bilal.m.Ahmad "]使用电能测量设计中心(EMDC) GUI 设计电能测量解决方案。[/quot]

    很棒! 我们提供了多个预先配置的 EMDC 示例项目、这些项目与我们支持的 EVM 相匹配。 但是、您始终可以将这些内容用作设计的起点、方法是将项目保存为自定义项目、然后进行更改、而不是从头开始新项目。

    Bilal.m.Ahmad 说:
    使用 JTAG 生成代码并按原样部署(完全没有代码更改)。

    您可以使用提供的与 EMDC 示例项目相匹配的示例固件映像对 EVM430-F6779进行编程。 只要您使用匹配的 EMDC 项目、就无需生成代码、也无需更改任何内容。 如果您愿意、您可以使用 EMDC 示例项目来生成代码、导入 CCS 或 IAR、然后使用 MSP-FET 通过 JTAG 对 EVM430-F6779进行编程。

    [引用 user="Bilal.m.Ahmad "]通过 UART 连接另一个 MSP430 (让我们将其称为主机)。[/quot]

    只要 UART 协议和状态机匹配、就可以实现这一点。 请记住、协议数据包会根据您的项目配置发生变化-如果不需要结果、则不会包含这些数据包以保持协议传输更简单。

    [引用 user="Bilal.m.Ahmad ]*读取主机 MCU 上的气象值。 [/报价]

    绝对有可能。 见上文的评论。

    [引用 user="Bilal.m.Ahmad "]从主机 MCU 向 EMDC 写入校准参数。[/quot]

    如果您遵循 EMDC 技术指南中描述的流程、也可以执行此操作。

    现在、请回答您的其他问题。

    1) 1)我研究了 EMDC 的文档-我的理解是、EMDC 默认在 UART 上暴露气象学值和更新校准参数的方法。 请确认其正确。

    是的、没错。

    [引用 user="Bilal.m.Ahmad ]2) ID 类似于有关如何在主机 MCU 上从 EMDC 读取和写入数据的一些帮助。 代码会很有帮助。 它不必是非常详细的基本意愿。 [/报价]

    您是否有机会通读EMDC 技术指南中的"通信协议规范"一章? 更具体地说、"协议概述"部分显示了 EMDC GUI 如何与目标 MSP430器件通信。 如下图(在 此处)所示、在目标 MSP430器件上运行的应用代码会切换模式以开始向 EMDC GUI 发送结果(同样、这取决于代码生成前在 EMDC 配置中选择的结果)。 如果您的主机 MCU 遵循相同的流程并使用相同的协议和波特率、则您将能够使用主机 MCU 从 MSP430读取数据。

    有关数据包结构的更多详细信息、请参阅EMDC 技术指南中的"MSP430 EM 设计中心数据包结构"部分。

    我希望这对您有所帮助!

    此致、

    James

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

    我的目标是将由 EMDC 生成的代码部署到 MSP430F6779 EVM 上。


    默认波特率是多少?


    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通常为9600或115200、1个停止且无奇偶校验。
    值得一试。
    请观看示例和25美分的流量表(我的第一篇文章中的链接)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Bilal.m.Ahmad ]I 目的是将由 EMDC 生成的代码部署到 MSP430F6779 EVM 上。 [/报价]

    很棒!

    [报价用户="Bilal.m.Ahmad "]默认波特率是多少?

    默认波特率为250kbaud。 我不确定我们是如何错过了将其添加到文档中的。 我将在下一个版本中添加它。

    此致、

    James

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好。
    我发现一件事:当我监控串行端口活动时、我在 MSP 设计中心 ID 字节之前观察到3个额外字节、它们是0x55、0xAA 和0x0A。 这些字节未在规格中说明。 它们是如何出现在线路上的? 此外、是否在评估板中检查了 CRC?

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

    您好 Oleg、

    你完全是对的。 这我们的 CapTIvate 和电能测量设计中心在 GUI 和 MSP430之间的通信协议使用的三字节报头。 您观察到的是:

    • [字节0]同步位置0处的字节、等于0x55
    • [字节1]位置1处的空白字节、不等于0x55 (通常使用0xAA)
    • [字节2]位置2处的长度字节、等于该字节之后的所有内容的校验和、最多两个校验和字节
    • [字节3] MSP 设计中心 ID 字节、对于 EMDC、始终为0x04、在下面的 EMDC 数据包结构中表示为位置[0]
    • [字节4]命令 ID 字节、指定命令类型、在 下面的 EMDC 数据包结构中表示为位置[1]
    • [字节5]读取/写入命令字节、指定读取或写入操作、在 下面的 EMDC 数据包结构中表示为位置[2]
    • [字节6]有效载荷字节0、在 下面的 EMDC 数据包结构中表示为位置[3]
    • (笑声)
    • [字节 N+6]有效载荷字节 N、在 下面的 EMDC 数据包结构中表示为位置[N+1]
    • [字节 N+7]校验和 LSB 字节、在 下面的 EMDC 数据包结构中表示为位置[N+2]
    • [字节 N+8]校验和 MSB 字节、在 下面的 EMDC 数据包结构中表示为位置[N+3]

    有关数据包的更多信息、请 参阅CapTIvate 技术指南。它在文档中看起来相当隐蔽、因此我将添加此反馈并请求 在 EMDC 技术指南中更新整个数据包结构

    我希望这对您有所帮助!

    此致、

    James

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

    我们要将默认波特率从250K 更改为115200。

    如果我们更改由 EMDC 生成的代码以更改波特率。 EMDC 软件是否支持115200波特率。 我们这样做的原因是、我们要使用的器件不支持250K 波特率。

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

    您应该能够在位于 CCS 项目> DesignCenter > commm > drivers 文件夹下的'UART_defs.h'文件中更改波特率。 但是、请记住、无法更改 PC 上运行的 EMDC GUI 的波特率。 假设您生成 EMDC 代码并且您计划与另一个主机 MCU 连接、则您始终可以使用较低的波特率、协议或不同类型的接口(例如 I2C、SPI 等)。 正如我可能已经提到的、EMDC 的一个目标是让用户专注于应用端、其中包括通信、而不是尝试找出所有计量代码。

    //
    //
    //! DEF UART__SAMPLING_MODE 定义了 eUSCI_A LF 或 HF 模式。
    //
    //! DEF UART__prescaler 定义了 eUSCI_A 预分频器。
    //
    //! DEF UART_FIRST_STEP_MOD 定义了 eUSCI_A 第一级调制。
    //
    //! DEF UART__second_stage_MOD 定义了 eUSCI_A 第二级调制。
    ////
    *****************
    #define UART__SAMPLING_MODE(EUSCI_A_UART_OPAMPLING_BAUDRATE_GEN)
    
    
    #IF (EM_SMCLK_FREQ_IN_Hz = 25165824)
    
    /250K 波特率@ 25MHz
    #define UART_预 分频器 (0x06)
    #define UART_FIRST_STAGE MOD (0x03)
    #define UART__second_stage_MOD (0x02)
    
    #Elif (EM_SMCLK_FREQ_IN_Hz = 16777216)
    
    /250K 波特率@ 16MHz
    #define UART__prescaler (0x04)
    #define UART_FIRST_STAGE MOD (0x03)
    #define UART__second_stage_MOD (0x00)
    
    #Elif (EM_SMCLK_FREQ_IN_Hz = 8388608)
    
    /250K 波特率@ 8MHz
    #define UART__prescaler (0x02)
    #define UART_FIRST_STAGE MOD (0x01)
    #define UART__second_stage_MOD (0x02)
    
    #else
    
    #error "UART 驱动程序不支持 SMCLK 频率"
    
    #endif 

    但愿这对您有所帮助。

    此致、

    James