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.

[参考译文] CCS/MSP430F6779:EVM 板和 EMDC 程序入门-无法与 I2C 通信

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/968271/ccs-msp430f6779-getting-started-with-evm-board-and-emdc-program---cannot-communicate-with-i2c

器件型号:MSP430F6779
主题中讨论的其他器件:UNIFLASHEVM430-F6779MSP-TS430PEU128MSP-ISOMSP-EXP430F5529LPMSP430F5529、、、

工具/软件:Code Composer Studio

[从 TI 编辑]确保您使用的是最新的 EMDC 版本。 此外、对 v1.40文档进行了几次更新、以使与 v1.30文档相比、通信协议更加清晰。

大家好、

我在使用整个 TI 套件(MSP430、CCS、EMDC、UniFlash、所有这些!)方面是100%新手、 因此、请在我提出问题时向我请教、这些退伍军人似乎很容易回答这些问题。

无论如何、我在遵循此处的 EMDC 指南并获得所需结果时遇到了问题:
software-dl.ti.com/.../ch_designcenter.html

我正在使用
EVM430-F6779、它附带一个
焊接在上面的 MSP430-F67791A 芯片。
www.ti.com/.../EVM430-F6779

但是、对于生产、我们希望使用
MSP430-F6779 (无1A)、因为我们的产品不需要任何 AES 加密功能。
www.ti.com/.../MSP430F6779

我们购买了
MSP-TS430PEU128蛤壳式封装、可将芯片上的引脚破孔。
www.ti.com/.../MSP-TS430PEU128

我们有了 MSP-ISO 来隔离 EVM 上的高电压。
www.ti.com/.../MSP-ISO

我们购买了推荐的用于开始对器件进行编程的 LaunchPad 器件:
MSP-EXP430F5529LP
www.ti.com/.../MSP-EXP430F5529LP



现在、在 EVM 上、第一个位似乎可以正常工作。 我通过以下过程启动并运行 EVM:

1) 1)已安装 EMDC、CCS、UniFlash

2) 2)已连接 LaunchPad、并填充了所有跳线。 UniFled 将以下内容刷写到 LaunchPad 器件上的 MSP430F5529芯片中:
C:\ti\MSP\EnergyMeasurementDesignCenter_1.40.00.03\EnergyMeasurementDesignCenter\hidbridge \TI_MSP_HIDBRIDGE__1_00_04_00__MSP-EXP430F5529LP.txt

3) 3)将 LaunchPad 连接到 ISO - EVM、如下所示:



4) 4)已打开 EMDC。 打开了样本
MSP430F6779项目(EVM430-F6779_CT_3V_3C_60Hz)。 将芯片修改为
而是 MSP430F67791A 芯片。 填充了更换芯片后创建的所有空白。 已使用"generate"按钮创建完整的 CCS 工程。

5) 5)打开 CCS 并导入工程。 在调试模式下运行程序并按"play"继续程序。

6) 6)重新打开 EMDC。
已打开
我创建的 MSP430F67791A 项目。
通信->连接。
双击 GUI 中的 MSP430芯片。
转至"Calibration"选项卡。 单击"相位 A"->"增益"->"开始"->"停止"。
(为了强制程序开始与芯片通信、这似乎是必要的?)
转到"结果"选项卡。
这里的一切看起来都很好! 它会进行测量和报告。 将负载连接到 EVM 可更改读数。



现在...

当我尝试对 MSP430F6779本身执行相同的过程时、在一个蛤壳式结构中、这是我运气不好的地方。

我执行了以下操作:

a)将 LaunchPad 接线- ISO - MSP430F6779蛤壳状引脚、如下所示:



b)为重复上述步骤4、5、6
而是 MSP430F6779芯片。

C)在 EMDC 中打开"结果"窗格时、我什么都没有! 它是空的! 空白! “结果”选项卡中没有值:(

我尝试过:
-更换 MSP-ISO 和 MSP430 Clamshell 之间的跳线、
-检查我的焊点在蛤壳式上的导通性、
交换 RX 和 TX 线路、看看这是我出错的地方、
-暂停程序中间的调试器,只是为了确保它实际上已通电并正在运行(它似乎正在运行),

有什么想法吗?
帮助?

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

    我认为您是通过 UART 而不是 I2C 进行通信。

    2.我看不到您的连接有任何问题。 因为工具链与我们的 EVM 配合良好。 我认为问题可能发生在 F6779端。 我的建议是:

    a.检查 F6779 (AVCC、DVCC)的电源

    b.检查代码在 F6779上是否在调试模式下运行良好

    c.检查是否有从 F6779到 TXD 的数据输出

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

    在测试通信之前、我应该尝试哪些设置进行通信?

    EMDC 的 MSP-EXP430F5529LP 固件显示为黑盒、因此我不知道这是如何与 EVM 通信的。

    MSP430F6779是否应该与 EVM 具有相同的通信?

    由于项目文件中的所有 I2C 例程、我假设两个都使用 I2C。 默认情况下、它使用什么? 为什么 需要 MSP-EXP430F5529LP?

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

    有关 F5529和 F6779之间的通信协议、请参阅:  

    我认为这张图片可以帮助您了解 EMDC、F5529、F6779在系统中的工作原理。 需要 F5529的原因是 EMDC 只能识别 HID 设备、而不能识别 COM 端口设备。 这就是我们需要 F5529而不是 UART 转 USB 转换器的原因。

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

    您好、伊斯天、

    我检查了翻盖板上的(a)(b)和(c)项。
    AVCC 和 DVCC 正常(3.3V)、代码在调试模式下运行良好、但 TXD 不发送任何内容或对命令做出响应。 EMDC 应在哪些引脚上进行通信? 我假设是16和17、这是不是吗?
    我没有对 EMDC 生成的代码进行任何更改、它直接从 EMDC 进行编程。

    我返回到 F6779 EVM、在那里我知道它与 EMDC 程序通信正常、以查看我是否可以使用常规串行连接交换 HID。

    我在这里遵循了指南:
    e2e.ti.com/.../800439

    我已将此电缆插入 EVM:
    www.amazon.com/.../

    我向 EVM 施加3.3V 电压以启动芯片。 然后、打开 Serial Port Utility、其中包含:
    波特:250、000
    数据位:8.
    奇偶校验:无
    停止位:1.
    流类型:无

    根据其他指南、他们说要使用以下命令进行测试:

    从中删除 更改为 同步字节 空白字节 长度字节 ID 字节 命令字节 读取/写入 有效载荷(应用模式) 校验和 LSB 校验和 MSB
    EMDC 目标 0x55 0xAA 0x06 0x04 0x01 0x01 0x01 0x07 0x00

    现在、发送55 AA 06 04 01 01 07 00会产生意外结果。

    为什么这与手册的结构不匹配?

    我在理解最终的输出方面遇到了很多困难、如果有任何指导、我们将不胜感激。

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

    抱歉、图片未保存在帖子中。 尝试#2。

    这是串行端口实用程序的结果、我无法解释。

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

     我可以检查 COM 端口配置是否正确。  您能否捕获更多数据?

    关于指导、抱歉、我不想再多说了。

    数据看起来类似于此主题中发布的数据:

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

    好的、在这方面取得更多进展。

    问题1
    似乎只有一种方法可以将 HMI 置于"空闲"或"活动"模式、在这种模式下、我既不会接收任何内容、也不会不断接收新值。
    我是否可以发送任何命令、以便仅一次接收所有最新的测量结果? (不重复)?

    问题2:
    在发生故障时、如何保持最大电流的运行总电流?
    我似乎无法找到值正在得到主动更新的循环。

    问题3:
    如何在测量的字节表示中处理负值?
    例如、假设我有正瓦特和负瓦尔。 这是如何在字节表示中处理的、您能否举例说明如何将以下一些值转换为常规值?

    将内容放入记事本并将"55 AA"拆分为新行字符后、现在这似乎更清晰、但手册需要一些说明。

    首先、需要在某处提到、在命令数据包之前需要同步字节和空白字节(0x55、0xAA)。
    这在手册中并不清楚,在论坛上花了相当多的时间才找到。

    第二:我找不到数据包各部分描述的原因是、在下面的手动链接中、显示"0xB0"是用于 VRMS 等、此时应为"0x80"

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

    编辑 TI 内容:此内容已在 EMDC v1.40中更新。

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

    此外,我注意到一些奇怪的东西。

    EVM430-F6779上使用 EMDC 生成的代码时、在输入的"A 相"上插入一个电压为120V 的1288w 空间加热器、EMDC 在 A 相上仅显示2.61w 的功率

    一段时间后、我认为必须错误地转换字节。 不会!

    电压实际上在115伏时读数正确(这与我的万用表很好地连接在一起)、但功耗不是。

    我在这里的校准中错过了什么吗?
    来自默认 EMDC 项目的 CT 比率是否与实际 EVM430-F6779 器件不一致?
    当我看的时候,他们似乎是合理的。 这些比率是在哪里被编码的?
    如何修改 EMDC 项目中的这些销售因素?

    我尝试生成 EMDC 项目2次。 CT 比为2、000、负载电阻为13欧姆。 我再次尝试、比率为2、000、负载电阻为6欧姆(对于 A 相)。 为两个项目生成代码、然后在两个项目文件夹之间进行完整的文件夹比较、唯一更改的文件是"em_userConfig.c"、更改位于第78行:

           增益= SD24_B_GAIN_2、与
           增益= SD24_B_GAIN_1、

    使用 EMDC 的"Calibration"选项卡根本没有帮助。
    是否有关于如何使用程序的该部分获取正确增益的指南?
    在 EMDC 项目中、我可以在哪里设置近似增益系数、稍后将对这些增益系数进行微调?

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

    好的、我尝试了另外一件事:

    em_userConfig.c、在第180行、我修改了 g_emPhaseCalibration.currentSF 值。

    重新编译和重新编程、然后检查输出值、看起来没有任何影响。

    嗯、我不知道从哪里来。

    帮助?

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

    您好 Ben、

    我想您有太多问题。 您能逐个提出问题吗?

    我必须说我不是 EMDC 的真正专家。 我还需要像您一样检查代码和文档。

    问题1:是的、此 driverlib 用于电表、需要恒定数据。 如果您不希望这样做、我认为您需要查看代码并重建通信部分。

    问题2:软件并非完全开放源码。 我不确定它将如何处理错误数据。  

    问题3:您可以看到它是 int64_t 格式值。 它使用最后一位来表示正负。

    为了进行校准、您需要使用交流电源和交流负载来进行校准。