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.

[参考译文] MCF8329A-Q1:由于故障、无法成功执行写入 EEPROM

Guru**** 2815505 points

Other Parts Discussed in Thread: MCF8329A-Q1, MCF8329RRYEVM, MCF8329A

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1605891/mcf8329a-q1-can-not-perform-write-eeprom-successfully-due-to-faults

器件型号: MCF8329A-Q1
主题中讨论的其他器件: MCF8329RRYEVMMCF8329A

尊敬的 TI 专家:

目前、我的工程将 MCF8329A-Q1 用于电机控制应用。 我们首先使用 MCF8329RRYEVM 评估模块进行测试。 在我的应用中、4 个 MCF8329A-Q1 器件使用同一条 I2C 总线。 因此、我需要配置 MCF8329A-Q1 的目标地址、以区分总线上的器件。
我按以下顺序执行目标地址:
1、设置 DRV_OFF = HIGH 以禁用驱动器输出、SPEED / WAKE = HIGH 以唤醒器件。
2、通过将 0x30000000 写入寄存器 0xEA (ALGO_CTRL1) 来清除故障。 (I2C 命令成功)
执行步骤 2 后、不会设置故障标志。
3、使用新的目标地址写入寄存器 0xA6 (DEVICE_CONFIG1)、其他字段不会改变。 (I2C 命令成功)

4、将 0x8A500000 写入寄存器 0x0000EA、以将影子寄存器 (0x000080-0x0000AE) 值写入 EEPROM。 (I2C 命令成功)
5、等待延迟一段时间 (>1s)
6、当我回读寄存器 0x0000EA 时、该值仍为 0x8A500000(无论我们必须等待多长时间)
7、设置速度/ WAKE = LOW、等待几秒钟、然后设置速度/ WAKE = HIGH。
但在序列之后、目标地址无法更新、我只能使用默认地址 (0x1) 与 MCF8329A-Q1 通信。
当我检查故障状态寄存器时、仅设置 MPET_BEMF_FAULT。 我尝试通过步骤 2 通过标志清除故障、但无法清除。 我认为一些错误的步骤可能会导致故障、然后导致 EEPROM 写入失败。
请帮助我回顾我需要如何检查和执行序列。

谢谢、此致、
Dung Nguyen Duc

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

    检测 MCF8329A 的 nFAULT 引脚时、 电源恢复后、它会保持高电平几秒钟、然后自动切换到低电平。 (不使用任何 I2C 命令的 MINITOR nFAULT)

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

    尊敬的 Dung:

    器件是否配置为睡眠模式运行 (DEVICE_CONFIG2→DEV_MODE = 1)? 请注意、如果 DEVICE_CONFIG2→DEV_MODE = 0、降低 SPEED/WAKE 引脚不会启动睡眠模式。

    在 DEVICE_CONFIG2→DEV_MODE = 0 条件下、所有四个器件保持连接到主机时、EEPROM 写入操作将无法正常工作。

    器件从睡眠模式唤醒后、请执行以下步骤:
    1.通过设置 ALGO_DEBUG1→SPEED_OVER_RIDE = 1 来停止电机运行
    2.执行 EEPROM 写操作序列

    谢谢、

    Dhinesh

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

    您好 Dhinesh、
    感谢您的反馈。
    我再次执行了测试。
    读取  DEVICE_CONFIG2 时、我看到 DEV_MODE = 1 ->器件处于睡眠模式。
    我再次执行了该序列:

    1、设置 DRV_OFF = HIGH 以禁用驱动器输出、SPEED / WAKE = HIGH 以唤醒器件。
    2、 通过设置 ALGO_DEBUG1→SPEED_OVER_RIDE = 1 停止电机运行
    3、通过将 0x30000000 写入寄存器 0xEA (ALGO_CTRL1) 来清除故障。 (I2C 命令成功,无故障标志)
    4、使用新的目标地址写入寄存器 0xA6 (DEVICE_CONFIG1)、其他字段不会改变。 (I2C 命令成功,无故障标志)

    5、将 0x8A500000 写入寄存器 0x0000EA、以将影子寄存器 (0x000080-0x0000AE) 值写入 EEPROM。 (I2C 命令成功,无故障标志)

    当我回读寄存器 0x0000EA 时、该值仍为 0x8A500000(无论我们需要等待多长时间)
    6 等待延迟一段时间 (>1s)
    7、设置速度/ WAKE = LOW、等待几秒钟、然后设置速度/ WAKE = HIGH。
    完成该序列后、我仍然无法使用新地址与 MCF 通信。 默认地址通信良好。
    在序列完成后、我看到 nFAULT 引脚处于低电平(由于 MPET_BEMF_FAULT)。
    我认为写入 EEPROM 失败会导致故障、我只能通过重新为 EVM 电路板供电来清除故障。
    请帮助我查看、并告诉我是否还有其他可以检查的内容。

    谢谢、此致、
    Dung Nguyen Duc