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.

[参考译文] MCF8316AEVM:为什么可以通过 GUI 来连续读取和写入 EEPROM?

Guru**** 2462330 points
Other Parts Discussed in Thread: MOTORSTUDIO

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1305316/mcf8316aevm-why-can-i2c-via-gui-continuously-read-and-write-eeprom

器件型号:MCF8316AEVM
主题中讨论的其他器件:MOTORSTUDIO

你(们)好!

我注意到勘误表8:电机旋转时、I2C 无法读取寄存器。 我已经验证了这一点、一旦我们写入了 DIGITAL_SPEED_CTRL (0xEC)来旋转电机、便可以再次写入寄存器、但 电机既不会执行新的速度命令、也不会再次 读取寄存器。  

但通过 Motor Studio、GUI 可以连续地控制 (0xEC)和监控电机(0xE2、0xE0)。 它不必写入0xEA 即可在影子寄存器和 EEPROM 之间进行复制。 因此、我捕获了它们的 I2C 通信的波形、如下所示。  

   

您能说明一下我为什么不能像 Motor Studio 那样操作 EEPROM 吗? 非常感谢。

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

    尊敬的 Xizi:

    请允许我看一下逻辑捕获、我会在第二天内回复您。

    此致、
    埃里克·C·

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

    尊敬的 Xizi:  

    感谢您在 e2e 电机驱动器论坛上发帖。

    我们的许多团队成员目前在美国假期期间不在办公室-但将在1月的第1周之前重新上任。

    请预计回复会延迟、请随时提供其他信息。
    此致、
    安德鲁

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

    尊敬的 Xizi:

    对延迟回复深表歉意。

    对于影子寄存器和 EEPROM、似乎存在一些困惑。

    • 影子寄存器(位于 RAM 内)
      • 在器件正常运行期间、算法会利用存储在影子寄存器中的值。
      • I2C 命令直接写入影子寄存器和从影子寄存器读取。
      • EEPROM 寄存器的副本、但位于 RAM 中
      • 由于它是 RAM、因此在下电上电后会丢失这些值  
      • 上电时、器件会将值从 EEPROM 寄存器复制到相应的影子寄存器中。
    • EEPROM 寄存器
      • 该存储器 仅用于在下电上电期间存储寄存器设置
      • 值为非易失性值、在整个下电上电周期内
      • 必须使用寄存器0xEA 写入 EEPROM
      • 将0x8A500000写入寄存器0xEA 时、器件会将影子寄存器中的值复制到 EEPROM 寄存器中。
      • 将0x40000000写入寄存器0xEA 时、器件会将 EEPROM 寄存器中的值复制到影子寄存器中

    在 MotorStudio 中更改设置时、您直接修改影子寄存器、所做的更改立即生效。 除非您希望器件根据您的设置上电、否则不需要写入 EEPROM。

    根据您的描述、您的 I2C 写入函数中可能存在一个错误、该错误会导致器件的 I2C 总线在初始写入后被锁定。 您能否使用 此 E2E 常见问题解答中的示例工程 作为参考、以检查您的 I2C 实现是否存在潜在错误?

    此致、
    埃里克·C·