Hi,
I posted a similar question 2 years ago, but have not been able to look into it again until now.
I am using a USB-I2C dongle to communicate with the EVM430-FR6047. Since my dongle together with LabView use approx. 2.5ms from the COMM_IRQ line goes low until it start read, I get a timeout. When examine this using an oscilloscope, I could see the COM_IRQ got low, then back to high before starting up the cycles on the COMM_SLK line.
I got the advice from Dennis Lehmann to change the timeout settings in i2cslave_defs.h. The original source code was
//*****************************************************************************
#define I2CSLAVE__TIMEOUT_ENABLE (true)
#define I2CSLAVE__REQ_TIMEOUT_CYCLES (66)
#define I2CSLAVE__TXFR_TIMEOUT_CYCLES (264)
//*****************************************************************************
and I changed it to
//*****************************************************************************
#define I2CSLAVE__TIMEOUT_ENABLE (true)
#define I2CSLAVE__REQ_TIMEOUT_CYCLES (512)
#define I2CSLAVE__TXFR_TIMEOUT_CYCLES (512)
//*****************************************************************************
I recompiled the code and flashed the board.
When I now write the following command to the board:
0x55 0xAA 0x09 0x04 0x97 0x01 0x00 0x00 0x00 0x00 0x9C 0x00
0x55 0XAA 0x09 0x04 0x99 0x00 0x00 0x00 0x00 0x00 0x9D 0x00
the COMM_IRQ goes low and USS reads 0x09 0x04 0x99 0x01 0x01 0x00 0x00 0x00 0x9F 0x00. The COMM_IRQ goes low again and it reads 0x09 0x04 0xA0 0x01 0x00 0x00 0x00 0x00 0xA5 0x00.
When I use USS, the response from the board is as follows. The IRQ goes low (and before it goes back up) I read 0x09 0x04 0xA0 0x01 0x00 0x00 0x00 0x00 0xA5 0x00. Then the IRQ goes low again and I read the same response 0x09 0x04 0xA0 0x01 0x00 0x00 0x00 0x00 0xA5 0x00.
Any idea what is going on ?
All the best
Ole