Other Parts Discussed in Thread: CC2640
Tool/software: TI-RTOS
Hi,
I have a strange problem that looks like a driver issue. I am working on a custom board connected to a BMS. The CC2640 comunicate
with the BMS over a SMBUS. As the CC26xx does not have an SMBUS driver I am working with the standard I2C drivers.. so far so good.
I am using the latest SDK, latest CCS etc... I2C Transaction is processed in blocking mode from within a task at 200ms intervals.
It seems that from time to time I get an I2C_Transfer fail (returns false)... Once this happens no mater what I did communication does
not resume. I have found that canceling, closing and re-initializing the I2C driver releases the error and communication resumes.
For some reason after some time (re-initializing, again and again...) the system crashes.
If I add lots of delays here and there it seems that it works smother, but that is not a way to do things.
It looks like a driver or I2C engine problem but I am not sure. Maybe I am doing something wrong here. Can any one suggest the correct way to
properly terminate the process and how to re-initialize the I2C drive.
I am running with TI-RTOS. The I2C driver is configured to work in blocking mode, single master, single slave.
In my system I have also a UART module using cyclic buffers and interrupts.. (call backs). Do I have to do something when the I2C and UART
work ?...
BR,
Noam.