工具/软件:
尊敬的团队:
客户在多主模式下的 MSPM0G1107 中遇到 I2C/SMBus 总线问题。
在一条总线上:
- 2 个主设备:主机 M0 和带有智能电池系统的电池
- 1 从:电池充电器
电池自动将充电参数传输到充电器。 主机 M0 每秒从电池和充电器读取一次电流条件。 通信本身在大多数时间都正常工作。 但是、M0 会不时读取完全无意义的数据、在下次读取时这些数据已经是正确的。
逻辑分析仪显示、错误的读数是 M0 通信与在电池侧传输的同时启动造成的。 在多主器件中、此类行为是可以接受的、但问题是 M0 控制器无法始终处理此类情况。 我们使用中断、并不总是发出相应的标志 Arbitration Lost(仅有时)。 我们还在开始 M0 传输之前检查总线忙标志。
SDK 中有几个驱动程序不支持多主模式、但我假设其他驱动程序支持多主模式。
使用“DL_I2C_enableMultiControllerMode"初“初始化 I2C 时、启用 I2Cx.MCR.MMST 寄存器。
您能否就该总线上要检查的其他事项提供一些指导?
BR、
-rt