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.

[参考译文] MCT8329A:调整 MSP430 I²C EEPROM MCT8329A 编程器–始终获得红色 LED(写入失败)

Guru**** 2893300 points

Other Parts Discussed in Thread: MSP-EXP430FR2355, MCF8316A, MCT8329A, MCT8329EVM

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1636834/mct8329a-adapting-msp430-i2c-eeprom-programmer-for-mct8329a-always-getting-red-led-write-fail

器件型号: MCT8329A
主题中讨论的其他器件: MSP-EXP430FR2355MCF8316AMCT8329EVM

您好、

我正在尝试调整 Eric Chen 发布的基于 MSP430 的 EEPROM 编程固件:
“[常见【常见问题解答】使用 MSP430 LaunchPad 通过 I2C 对 MCx BLDC 电机驱动器进行编程“。

从该页面下载了 2273.EEPROM_Program_MCF8316A-Q1 MSP-EXP430FR2355.zip。

我的工程使用 MCT8329A、而不是为示例固件编写的 MCF8316A。 常见问题解答指出、如果更新了以下内容、相同的 μ I²C 编程方法应该适用于其他 MCx 器件(包括 MCT8329A):

I2C_TARGET_ADDR

原始:0x01

我的设备:0x60

EEPROM_ARRAY_SIZE

Original: 24

我的设备:39

EEPROM_regmap[]

我将其替换为从 MCT8329A _GUI v1.1.3 导出的寄存器映射。

我更新了所有这些设置、并将固件编程到 MSP‑MSP-EXP430FR2355 中。

当我将 LaunchPad 连接到应用板并按 S1 时、我始终会收到红色 LED、指示出现故障。 电路板本身正常 — 我可以使用 MCT8329EVM 和 GUI 成功对其进行编程。

在查看代码时、我还发现设置了以下代码块:

和中的 EEPROM_WRITE + EEPROM_WRITE_ACCESS_KEY

DEV_CTRL 中的 EEPROM_Read

还需要为 MCT8329A 修改。 我也更新了这些、但每次都能看到红色 LED。

是否有人成功将此 MSP430 固件与 MCT8329A 配合使用?  
是否还有我可能错过的其他寄存器、时序要求或特定于器件的更改?

如果能提供任何帮助、我们将不胜感激:我们现在正在投入生产、使用可靠的编程方法可以真正加快工作速度。

提前感谢。

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

    你(们)好  

    S1 是 MCT8329 EVM 上的拨动开关、可制动或运行电机。
    如果出现故障、EEPROM 中的配置将不正确。 您能否再次确认?
    对于第一项测试、对固件进行编程后、连接 GUI 并等待显示“Hardware Connected“消息。
    EVM 上的 LED D13 将闪烁、表示 GUI 连接成功。
    然后尝试使用“读取所有寄存器“在寄存器模式下读取寄存器(确保 I2C 地址为 0x60)。
    如果一切正常、我们应该会看到寄存器正在更新。
    请勿连接电机。 只需测试 GUI 连接并确认、然后继续电机测试。

    谢谢、此致

    Venkatadri S.

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

    尊敬的  Venkatadri:

    感谢您的答复。 此处讨论的 S1 开关位于 LaunchPad 板上。 如我在上一条消息中所述:“我正在尝试修改 Eric Chen 发来的基于 MSP430 的 EEPROM 编程固件:“[常见【常见问题解答】使用 MSP430 LaunchPad 通过 I2C 对 Mcx BLDC 电机驱动器进行编程“。

    我只提到了 MCT8329EVM、以便说明我相信我的设计可以正常工作、并可以通过 I2C 进行编程。 同样、根据我前面的消息“ 我可以使用 MCT8329EVM 和 GUI 成功对其进行编程“。

    我们这里要讨论的是、必须如何修改设计用于对 MCF8316 进行编程的 Eric Chen 固件才能对 MCT8329A 进行编程。

    从我的上一条消息:-

     常见问题解答指出、如果更新了以下内容、相同的 μ I²C 编程方法应该适用于其他 MCx 器件(包括 MCT8329A):

    I2C_TARGET_ADDR

    原始:0x01

    我的设备:0x60

    EEPROM_ARRAY_SIZE

    Original: 24

    我的设备:39

    EEPROM_regmap[]

    我将其替换为从 MCT8329A _GUI v1.1.3 导出的寄存器映射。

    我更新了所有这些设置、并将固件编程到 MSP‑MSP-EXP430FR2355 中。

    当我将 LaunchPad 连接到应用板并按 S1 时、我始终会收到红色 LED、指示出现故障。“

    如果我修改 Launchpad 固件中的 regmap、使其与芯片中的 EEPROM 内容完全匹配、就会亮起绿灯。 如果更改 LaunchPad 固件中的 regmap、会出现红灯。

    这会告诉我固件的“读回“部分已成功将影子寄存器的内容从 MCT8329A 读取到 LaunchPad。 如果我在电机运行时使用 Launchpad 发送设置、这些设置会得到更新。 例如、我可以在 i2c 速度控制和模拟速度控制之间切换、MCT8329A 响应正确。

    这表明 I2C 从 Launchpad 到 MCT8329A 的传输正在正常工作。

    我唯一无法正常工作的部分是从影子 RAM 传输到 EEPROM。 我在电机停止且无故障处于活动状态的情况下进行此尝试。

    同样、根据我前面收到的消息、“是否有人成功将这款 MSP430 固件与 MCT8329A 配合使用?  
    我是否还错过了其他寄存器、时序要求或特定于器件的更改?“

    这个问题与 EVM 电路板无关、而是关于如何修改 Eric Chen 的文章:“[常见【常见问题解答】使用 MSP430 LaunchPad 通过 I2C 对 Mcx BLDC 电机驱动器进行编程“。

    此致、

    James

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

    您好、 James:

    谢谢你的澄清,我将重新研究这一点,并得到你.

    谢谢、此致

    Venkatadri S.

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

    尊敬的  Venkatadri:

    我想知道你是否有机会再看看这个?

    此致、

    James Spadavecchia

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

    您好、James:

    我还没有验证这一点。 请允许我一天的时间,我会回来给你。

    谢谢、此致

    Venkatadri S.

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

    尊敬的 Venkatadri:

    您是否在这方面取得了任何成功? 如果您认为这样会有所帮助、我可以与您分享我的代码。

    此致、

    James

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

    您好、James:

    您是对的。 MCT83xx 器件的 EEPROM 写入命令寄存器不同。 寄存器地址必须为 0xE6 而不是 0xEA。

    执行 EEPROM 写入操作时、器件必须处于空闲状态。 因此、在发出 EEPROM 写入命令之前、请通过配置寄存器 0xE8 (DEVICE_CTRL) 中的速度覆盖位将器件设置为空闲状态。

    在 EEPROM 写入操作之后、请在执行 EEPROM 读取操作之前实现 750ms 的延迟。

    谢谢、

    Dhinesh

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

    尊敬的 Dhinesh:

    感谢您的答复。 正如我在上一条消息中所述、我已经在代码中修改了该值。

    我通过提供 0 伏模拟控制电压来停止电机。 如果按照您的建议、我通过“配置寄存器 0xE8 (DEVICE_CTRL) 中的速度覆盖位“来执行此操作、则该设置将传输到 EEPROM、并且器件将不再响应模拟速度控制、因此任何想要使用不同速度控制方法的人都不能选择该选项。

    您是否 按照上述方式修改了 Eric Chen 的代码、并使用它成功地对 MCT8329A 芯片进行编程? 请共享修改后的代码。

    此致、

    James

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

    您好、James:

    DEVICE_CTRL(地址= 0xE8)是 RAM 寄存器;该寄存器数据不会写入 EEPROM 存储器。

    如果在现有配置中启用了睡眠模式、则向器件引脚施加 0V 电压可以强制器件进入睡眠模式。 请在 SPEED 引脚上保持 3.3V。

    我将处理示例代码、并在几天内为您提供更新的版本。  

    谢谢、

    Dhinesh

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

    尊敬的 Dhinesh:

    非常感谢您的帮助、谢谢。

    此致、

    James

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

    您好、James:

    你有试过我的建议吗? 我将向您分享更新后的源代码。

    谢谢、

    Dhinesh

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

    您好、James:

    请查看随附的更新程序。 我已通过对 MCT8329 EEPROM 存储器进行编程来验证此代码。

    我添加了目标器件 I2C 地址检测功能和逻辑、用于标识连接的器件类型 (MCT 或 MCF)。

    e2e.ti.com/.../4784.main.c

    谢谢、

    Dhinesh