主题中讨论的其他器件: MCF8316A
工具与软件:
您好!
我正在开发一个电机控制平台、使用4个 MCT8316A 器件、全部在同一条 I2C 总线上、并使用 I2C 多路复用器单独与每个器件通信。 速度为100KHz。
我的基本测试软件使用一些锯齿流运行全部4个电机:将速度(通过 I2C、而不是 GPIO)提高到某个最大值、减小到0、改变方向并再次运行、依此类推。
要提高/降低速度、我要使用读取-修改-写入将速度写入 DEVICE_CTRL 寄存器。
在多次写入/读取中、我可以看到读取操作失败。
当降低 I2C 总线速度时、我可以看到故障率也会降低。
我有2个问题:
1.找到此勘误页面- https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1066777/faq-production-device-information
勘误表#8说"在电机运行期间、请勿从器件读取寄存器"。
它是否仍然相关?
2. I2C 写入/读取速度–在数据表的第8.6.2章中、有一条注释:"为了实现可靠的通信、应在通过 I2C 总线传输的每个字节之间使用100-µs 延迟"。
但是、在 SDA/SCL 交流特性表中、我没有看到对此延迟的任何要求。
我正在使用 STM32器件控制驱动程序、我的代码使用 ST HAL I2C 函数、这些函数可以写入整个字节流、而无需在字节之间留出100us 中断(1个器件地址+ 3个控制字+ 4个寄存器数据)。
我是否应该将此延迟添加到代码中?
谢谢!
达根
--读/写操作的示波器捕获@100KHz