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.

[参考译文] MCT8316A:从影子 RAM 到 EEPROM 的条件写入和读取

Guru**** 2447070 points
Other Parts Discussed in Thread: MCT8316A

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1372887/mct8316a-condition-writing-and-reading-from-shadow-ram-to-eeprom

器件型号:MCT8316A

工具与软件:

大家好、支持团队所有人。

我们收到了客户的以下咨询。
我们感谢您的合作。

1.从影子 RAM 保存到 EEPROM 的条件有哪些?

从 E2E 的信息可以看出状态必须是"moter_idle (06h)"、但它是否完全不可能处于任何其他状态?
如果除状态之外还有任何其他情况、请告诉我。

2.从 EEPROM 读取到影子 RAM 的条件是什么?

这方面没有明确的信息。
我们已确认无法在"system_idle (00h)"状态下进行读取。
条件是否与写入时相同?

此致、

Higa

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

    尊敬的 Higa-San:

    1. MCT8316A 允许在电机未旋转的情况下进行 EEPROM 写入和读取操作。 因此、如果存在故障标志、并且电机未旋转、用户仍可触发 EEPROM 写入操作。
    2.  当电机未旋转时、通过将0x40000000写入寄存器0xE6来触发 EEPROM 读取操作。 该条件与写入 EEPROM 相同、不同的是写入寄存器0xE6的位

    此致、
    Eric C.

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

    您好、Eric San

    我们检查 SYS_STATUS2以确定可以对 EEPROM 进行写入或读取的状态。
    我们需要通过 I2C 通信来了解电机何时不旋转、这是否是正确的方法?

    如果正确、在什么状态下 SYS_STATUS2可以进行写入和读取?

    当您所说的电机不旋转状态时、我认为可以在 system_idle 或 morator_BRAKE 状态下进行写入、但实际上并非如此。

    目前、我们遇到了很多无法写入 EEPROM 的情况、存在失去业务的风险。

    我们感谢您的合作。

     此致、

    Higa

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

    尊敬的 Higa-San:

    轻微更正、仅当器件未主动驱动任何 内部 FET 时、EEPROM 读取/写入操作才能成功完成。 当器件处于 MOTOR_BRAKE 状态时、它会导通全部3个高侧 FET 或全部3个低侧 FET、因此无法进行 EEPROM 读取/写入。

    不过、我们之前已经看到过一个问题、如果在器件 EEPROM 中意外设置了 STL_ENABLE 位、器件在上电时可能会卡在 MOTOR_BRAKE 状态下。 在这种情况下、需要从器件 EEPROM 中清除 STL_ENABLE 位、以防止器件卡在 MOTOR_BRAKE 中。 请参阅此帖子: https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1122918/mct8316aevm-device-not-work-after-write-register-value-to-eeprom/4166206#4166206

    问题:
    如果 EEPROM 中的[BRAKE_INPUT]= 00b 且[STL_ENABLE]= 1b、则器件将在上电后卡在 MOTOR_BRAKE 模式下。

    修复:
    要清除[STL_ENABLE]位、请执行以下操作:

    1. 设置 [BRAKE_INPUT]= 10b
    2. 设置[STL_ENABLE]= 0b
    3. 将寄存器写入 EEPROM
    4. 下电上电
    5. 将[BRAKE_INPUT]设置回00b
    6. 再次将寄存器写入 EEPROM

    当算法处于空闲待机模式时、STATE 寄存器应报告 MOTOR_IDLE、而不是 SYSTEM_IDLE。 当客户观察到[State]= SYSTEM_IDLE 时、您能帮助他们吗?

    此致、
    Eric C.

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

    您好、Eric San

    很抱歉、我按下了"错误解决"按钮。
    我还有一个问题。

    -如果我不使用制动硬接线端输入,是否不需要步骤4、5和6 ?

     -进入系统空闲状态的条件是什么?

    此致、

    Higa

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

    尊敬的 Higa-San:

    1. 如果您不使用硬件引脚制动输入、则无需执行步骤4、5、6、并且您可以将 BRAKE_INPUT 保留为10b。 最后3个步骤 只需将 BRAKE_INPUT 恢复为其之前的值00b。
    2. 我本人没有观察到器件处于 system_idle 状态。  我认为 system_idle 是器件启动前的状态。 加电后、器件在启动时立即初始化某些关键变量。

      这就是我想知道器件报告 system_idle 是哪种情况的原因? 您在给器件上电后看到此问题了吗? 您的器件是否曾进入 MOTOR_IDLE 状态?

    此致、
    Eric C.

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

    您好、Eric San

    我们已经附上了我们从上电后读取地址 EAh 获得的数据。
    当我们获得该数据时、状态未从 system_idle 变化。
    为了进行比较、我们还在另一个选项卡中的 MOTOR_IDLE 中共享了来自另一个单元的数据、因此请参阅。

    是否有可能我们错误地写入了一个不应该写入到配置文件中的注册表,我们在另一天发送给您?
    据我们所知、我们没有访问任何不应根据数据表进行写入的寄存器。

    让我再次问一下、进入 system_idle 的条件是什么?

    这个问题极其重要、是继续大规模生产的主要障碍。

    此致、

    Higa

    e2e.ti.com/.../SYSTEM_5F00_IDLE-data.xlsx

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

    尊敬的 Higa-San:

    我已经向我们的固件团队确认 system_idle 是固件初始化期间的默认状态。 初始化后、固件将在准备好接收速度命令时进入 MOTOR_IDLE 状态。

    我不知道有任何用户寄存器会导致器件卡在 SYSTEM_IDLE 状态。 请让我与我们的固件和系统团队进一步讨论、我会尽快回复您。

    此致、
    Eric C.

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

    尊敬的 Higa-San:

    器件卡在 system_idle 中 似乎是我们之前未遇到的异常行为。 这会表明设备固件无法完成基本初始化。 您有多少个器件卡在 system_idle 中?

    我不记得您之前发送过的配置文件、能否再次分享?

    您是否也可以读取卡在 system_idle 中的器件上的所有寄存器值、并将整个器件寄存器设置发送给我(寄存器地址 +值)?

    谢谢。

    此致、
    Eric C.

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

    您好、Eric San

    我们收到了客户的注册信息。
    这是所有显示 SYSTEM_IDLE 状态的地址的寄存器信息。

    此致、

    Higa

    {
      "signature": "oneui-register-data",
      "data": [
        [
          {
            "idx": 0,
            "id": "isd_config",
            "value": "0x64738C20"
          },
          {
            "idx": 1,
            "id": "motor_startup1",
            "value": "0x28200000"
          },
          {
            "idx": 2,
            "id": "motor_startup2",
            "value": "0x0B6807D0"
          },
          {
            "idx": 3,
            "id": "closed_loop1",
            "value": "0x2306600C"
          },
          {
            "idx": 4,
            "id": "closed_loop2",
            "value": "0x0D3201B5"
          },
          {
            "idx": 5,
            "id": "closed_loop3",
            "value": "0x1BAD0000"
          },
          {
            "idx": 6,
            "id": "closed_loop4",
            "value": "0x00000000"
          },
          {
            "idx": 7,
            "id": "const_speed",
            "value": "0x00000000"
          },
          {
            "idx": 8,
            "id": "const_pwr",
            "value": "0x3EC80106"
          },
          {
            "idx": 9,
            "id": "150_deg_two_ph_profile",
            "value": "0x00000000"
          },
          {
            "idx": 10,
            "id": "150_deg_three_ph_profile",
            "value": "0x00000000"
          },
          {
            "idx": 11,
            "id": "trap_config1",
            "value": "0x000D0000"
          },
          {
            "idx": 12,
            "id": "trap_config2",
            "value": "0x00000000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "fault_config1",
            "value": "0x70D00888"
          },
          {
            "idx": 1,
            "id": "fault_config2",
            "value": "0x00000000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "gd_config1",
            "value": "0x1C450100"
          },
          {
            "idx": 1,
            "id": "gd_config2",
            "value": "0x14200000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "pin_config1",
            "value": "0x00000000"
          },
          {
            "idx": 1,
            "id": "pin_config2",
            "value": "0x00101462"
          },
          {
            "idx": 2,
            "id": "device_config",
            "value": "0x4000F00F"
          },
          {
            "idx": 3,
            "id": "peri_config",
            "value": "0x41C01F00"
          }
        ],
        [
          {
            "idx": 0,
            "id": "ana_trim3",
            "value": "0x48004800"
          },
          {
            "idx": 1,
            "id": "ana_trim4",
            "value": "0x00000000"
          },
          {
            "idx": 2,
            "id": "ana_trim5",
            "value": "0x000003EF"
          },
          {
            "idx": 3,
            "id": "ana_trim6",
            "value": "0x00000000"
          },
          {
            "idx": 4,
            "id": "ana_trim7",
            "value": "0x00000000"
          },
          {
            "idx": 5,
            "id": "ana_trim8",
            "value": "0x00000A32"
          },
          {
            "idx": 6,
            "id": "ana_trim9",
            "value": "0x00A5E860"
          },
          {
            "idx": 7,
            "id": "ana_trim10",
            "value": "0x536CF03B"
          }
        ],
        [
          {
            "idx": 0,
            "id": "algo_reserved1",
            "value": "0x00000000"
          },
          {
            "idx": 1,
            "id": "algo_reserved2",
            "value": "0x2433407D"
          },
          {
            "idx": 2,
            "id": "algo_reserved3",
            "value": "0x000001A7"
          }
        ],
        [
          {
            "idx": 0,
            "id": "gate_driver_fault_status",
            "value": "0x00000000"
          },
          {
            "idx": 1,
            "id": "controller_fault_status",
            "value": "0x00000000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "sys_status1",
            "value": "0x00000000"
          },
          {
            "idx": 1,
            "id": "sys_status2",
            "value": "0x00010000"
          },
          {
            "idx": 2,
            "id": "sys_status3",
            "value": "0x536CF03B"
          }
        ],
        [
          {
            "idx": 0,
            "id": "device_ctrl",
            "value": "0x00000000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "algo_ctrl1",
            "value": "0x00000000"
          }
        ]
      ]
    }
    
    

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

    尊敬的 Higa-San:

    请允许我复查寄存器设置、然后我将回过头来回过头来。

    您是否能够向客户确认有多少设备在上电后卡在 system_idle 中?

    此致、
    Eric C.

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

    您好、Eric San

    12个单元。

    此致、

    Higa

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

    您好、Eric San

    您有更新吗?

    我们收到客户关于此问题的投诉。
    如果我们不能快速找到解决方案、我们可能会失去这一重要的业务机会。

    此致、

    Higa

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

    尊敬的 Higa-San:

    上面提供的寄存器映射仍启用了 STL_ENABLE 位。

    当我将客户的寄存器设置写入 MCT8316EVM 时、我可以看到由于上一个问题、器件状态卡在 MOTOR_BRAKE 状态、但我不观察 SYSTEM_IDLE 状态。 在我使用上述步骤清除了 STL_ENABLE 位后、该器件会返回至 MOTOR_IDLE 状态。

    您能否确保他们已经根据我提供的上一条指令禁用了 STL_ENABLE 位?

    我还咨询了我们的固件工程师、他开发了 MCT8316A 的算法、但没有想到会出现会导致器件卡在 system_idle 中的情况。

    如果您能够确认未设置 STL_ENABLE 位、而 STATE 仍卡在 SYSTEM_IDLE 中、是否可在性能良好的电路板和性能不良的电路板之间进行 ABA 交换、然后查看问题是否出在 IC 或 PCB 上?

    此致、
    Eric C.

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

    您好、Eric San

    我们已与客户确认。

    即使禁用了 STL_ENABLE、也没有变化。

    下面是我们迄今已确认的内容的摘要。

    我们还在这里检查了一些其他内容。

    ①确认 system_idle 时的状态
    ・DRVOFF=H:系统在 DRVOFF 输入上拉的情况下上电(由电路固定)。
    μ・器件设置为出厂设置(无对影子 RAM 或 EEPROM 的写访问)
    12个器件中发生了・μ s

    ②器件(以①为单位)从 SYSTEM_IDLE 更改为 MOTOR_IDLE 时的状态
    ・DRVOFF=L:系统在 DRVOFF 输入下拉的情况下上电(由电路固定)。
    ・器件设置保持出厂设置(无对影子 RAM 或 EEPROM 的写访问)

    有一个问题。

    1.在 DRVOFF=H 下打开电源是否存在问题? 如果有问题、请告诉我原因。
    (数据表中未做说明)

    2.在某些情况下、在 DRVOFF=H 下上电时器件无法从 SYSTEM_IDLE 转换

    器件是否真的没有进入 SYSTEM_IDLE 的条件?

    除了 DRVOFF 将输出设置为 HIZ 之外、数据表中没有其他解释、因此很难猜测这种关系。

    3.启动时它变成 system_idle 是一个问题吗?

    在大多数器件中、正常启动时状态似乎从 SYSTEM_IDLE 变为 MOTOR_IDLE。

    4.您是否知道从 system_idle 更改为 motor_idle 所需的大致时间?

    目前、它似乎需要大约100ms 至几百 ms。

    5.请告诉我收货状态下 EEPROM 的数据。

    此致、

    Higa

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

    尊敬的 Higa-San:

    我向您发送了一封电子邮件、让您离线执行后续步骤。

    此致、
    Eric C.