您好!
我有一个 MCT8316A 电机驱动器、通过 I2C 使用 PIC32MM 微控制器进行控制。 我尝试 使用数据表中显示的默认配置写入 EEPROM。 配置如下:
为了实现这一点、我将按照数据表的"8.6.2 I2C 串行接口"部分中的详细说明对每个寄存器进行写入。 例如、要将数据0x6EC4C100写入对应于 ISD_CONFIG 的影子寄存器、我将通过 I2C 发送以下内容:
请注意、如数据表所示、每个字节事务之间存在100us 的延迟。 请确认此 I2C 命令是否正确。 我将对所有其他影子寄存器重复相同的过程。
完成该操作后、我将值0x8000000写入寄存 器0x0000E6、以便将影子寄存器传输到 EEPROM。 这是与该命令对应的 I2C 事务:
之后、我只需等待几秒钟、然后关闭电源。 然后、我再次为驱动器供电、并读取 EEPROM。
为了读取 EEPROM、我将值 0x40000000写入寄存器0x0000E6。 这是与该命令对应的 I2C 事务:
之后、我等待200ms、然后开始读取每个影子寄存器。
为了读取每个影子寄存器、我 执行以下 I2C 事务(读取 ISD_CONFIG 寄存器的示例):
从该示例中可以看到、我从 ISD_CONFIG 寄存 器读取的值为0x64738C20、预期值为0x6EC4C100。 这意味着 EEPROM 不会写入我配置的影子寄存器。
我的程序是否有问题?
谢谢!