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:通过 I2C 读取时 MCT8329A 零星的寄存器值冻结

Guru**** 2933540 points

Other Parts Discussed in Thread: MCT8329A, MCF8329HS

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1651371/mct8329a-mct8329a-sporadic-register-value-freeze-when-reading-via-i2c

器件型号: MCT8329A
主题中讨论的其他器件: MCF8329HS

尊敬的 TI 支持团队:

我在采用 BLDC 电机和微控制器的应用中使用 MCT8329A。

微控制器通过 I2C、DRVOFF 和 WAKE 连接到 MCT8329A。

I2C 通信以 400kHz 的频率运行、并且针对 MCT8329A 的数据读取和写入实施了 100µs 字节间延迟。

微控制器运行线程 (10ms)、发送速度命令(寄存器 0xE8)并读取故障寄存器 (0xE0 和 0xE2) 以及状态寄存器 (0xEA 和 0xEC)。 此外、为了清除故障、微控制器在需要时写入寄存器 0xE6。

通常、通信可以、但在某些情况下、从故障和状态寄存器读取的值会突然冻结、直到我对 MCT8329A 执行下电上电。

当值读取冻结发生时、MCT8329A 仍会响应发送到寄存器 0xE8 的速度命令、并且成功执行 I2C 读取操作。 问题似乎与从电机控制器器件向芯片的 I2C 部分提供数据的机制有关。

我有两个问题:

  1. 除了执行下电上电以在读取时脱离值冻结之外、还有其他方法吗?
  2. 这是已知问题吗? 如果是、如何避免读取值冻结? 与 Gemini 的快速聊天表明、我的应用是对故障和状态寄存器进行“过度轮询“。

此致、

Peter Einramhof-Grama.

 

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

    您好、Peter:

    我们 在连续 I2C 读取/写入操作中发现了此问题。 请按照以下说明将器件从这种情况中恢复。

    在系统中、定期读取寄存器地址 0x6DE 的内容。 读取之间的等待时间–必须至少为 200ms。

    如果 0x6DE (MEM_SEC = 0x0、MEM_PAGE = 0x0、MEM_ADDR = 0x6DE) 读取的值(16 位)超过 200(十进制)、则器件状态不会更新、CLR_FAULT 命令将不会生效。

    检测到第 2 个中提到的场景后、给出以下 I2C 帧来恢复器件:

    步骤 3a:读取以下地址的内容:MEM_SEC = 0x8、MEM_PAGE = 0xD、MEM_ADDR = 0x0 并存储它(假设存储的值名为 VAR1)。

    步骤 3b:(或)带有 0x0001 的存储值 (VAR1) 并存储在另一个变量中、例如 VAR2

    步骤 3c:将 VAR2 中的值写入同一地址

    步骤 3D:等待至少 100 毫秒

    步骤 3e:将原始存储值 VAR1 写回同一地址

    谢谢、

    Dhinesh

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

    您好、Peter:  

    您能分享电机最终应用和电机参数吗?  

    我们有一款类似的电机驱动器器件、具有无传感器 FOC 集成 (MCF8329HS)、并且与 MCT8329A 硬件兼容。

    谢谢、

    Dhinesh

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

    尊敬的 Dinesh:

    关于应用程序信息、我必须就机密性问题与客户核实。

    我们使用的电机参数为:

    #define BLDC_CONFIG_ISD_CONFIG                0x37404D02
    #define BLDC_CONFIG_MOTOR_STARTUP1            0x21A983C4
    #define BLDC_CONFIG_MOTOR_STARTUP2            0x0551D58D
    #define BLDC_CONFIG_CLOSED_LOOP1              0x0EE20222
    #define BLDC_CONFIG_CLOSED_LOOP2              0x020600ED
    #define BLDC_CONFIG_CLOSED_LOOP3              0x34C92007
    #define BLDC_CONFIG_CLOSED_LOOP4              0x601AC9D5
    #define BLDC_CONFIG_CONST_SPEED               0x2FF16009
    #define BLDC_CONFIG_CONST_PWR                 0x36B00640
    #define BLDC_CONFIG_150_DEG_TWO_PH_PROFILE    0x24DB7200
    #define BLDC_CONFIG_150_DEG_THREE_PH_PROFILE  0x48DB6946
    #define BLDC_CONFIG_REF_PROFILES1             0x032184A6
    #define BLDC_CONFIG_REF_PROFILES2             0x34C80AFC
    #define BLDC_CONFIG_REF_PROFILES3             0x4787D70C
    #define BLDC_CONFIG_REF_PROFILES4             0x000C9932
    #define BLDC_CONFIG_REF_PROFILES5             0x1F6BF200
    #define BLDC_CONFIG_REF_PROFILES6             0x00708000
    #define BLDC_CONFIG_FAULT_CONFIG1             0x77681324
    #define BLDC_CONFIG_FAULT_CONFIG2             0x37E6E40A
    #define BLDC_CONFIG_PIN_CONFIG1               0x2E700004
    #define BLDC_CONFIG_PIN_CONFIG2               0x1E002093
    #define BLDC_CONFIG_DEVICE_CONFIG             0x27100806
    #define BLDC_CONFIG_GD_CONFIG1                0x000601A6
    #define BLDC_CONFIG_GD_CONFIG2                0x00000000
    

    此致、

    彼得。

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

    尊敬的 Dinesh:

    感谢您提供此信息!

    在 连续 I2C 读取/写入操作期间、无论读取和/或写入频率如何、或者是否具有“安全“读取频率和写入频率、此问题是否无法避免?

    此致、

    彼得。

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

    您好、Peter:

    建议为 MCT8329A 实现此权变措施、以避免出现此 I2C 问题。

    我们有一个较新的型号 MCF8329HS(与 MCT8329A 硬件兼容)、其中包含集成的无传感器 FOC 算法。 您能否建议客户将 MCF8329HS 用于 其应用?

    谢谢、

    Dhinesh

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

    尊敬的 Dhinesh:

    恐怕在工程的这个后期阶段无法切换到 MCF8329HS。

    我已经实施了解决方法 — 这是有效的。 谢谢!

    我谦卑地认为,这个问题和相关的修复应该记录在一些官方勘误表中 — 或者它是荒谬的,我只是错过了它?

    此致、

    彼得。

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

    您好、Peter:

    感谢您的更新!

    我们将记录此权变措施并发布相同的内容。

    此致、

    Dhinesh