Tool/software:
Hi Dear TI Engineer:
I asked TI about this last month, and see the link below:
Please see the customer's reply below, and record the data!
We looked in to your recommendation to make sure that we are following the SMBUS spec,
We changed the pull-ups to 6.8k and reduced the clock speed to 20kHz. This improved reliability but we still get the occasional bad reading.
We left a unit on overnight constantly reading the various I2C slaves and the BMS IC. Here is an example of one of the failures:
[00:50:15.493,164] <dbg> BMS_DATA: bms_data_thread: Operation Status: 0x00FFFFFF
[00:50:15.496,185] <dbg> BMS_DATA: bms_data_thread: Temperature Sensor: 27
[00:50:15.510,284] <dbg>
[00:50:15.521,636] <dbg>
[00:50:15.526,611] <dbg>
[00:50:15.526,611] <err> BMS_DATA: BMS Permanent Failure detected[00:57:08.105,957] <dbg> BMS_DATA: bms_data_thread: Operation Status: 0x00000020
[00:57:08.108,917] <dbg> BMS_DATA: bms_data_thread: Temperature Sensor: 27
[00:57:08.122,406] <dbg>
[00:57:08.134,887] <dbg>
[00:57:08.139,862] <dbg>
[00:57:08.139,862] <err> BMS_DATA: BMS Permanent Failure detected.
See the full log attached.
Peter checked – the I2C controller on the NRF does indeed support clock stretching.
Do you have any more ideas as to how we can improve the reliability of the communication?