This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EVM430-FR6047: EVM430-FR6047: Communication with EVM430-FR6047 using I2C

Part Number: EVM430-FR6047

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

  • Hi Ole,

    I do not have any more ideas about this. Usually, change the delay time should not change the receiving process. However, it seems it has an impact from your test result. Have you tried to disable the timeout function here? Just define I2CSLAVE__TIMEOUT_ENABLE as false.

    Best regards,

    Cash Hao

  • Hi Cash,

    Thanks for coming back to me.

     

    Yes I have tried to set I2CSLAVE__TIMEOUT_ENABLE = false without any luck.

     

    Maybe I just have to dive further down in the source code to look for clues.

     

    Thanks anyway.

     

    All the best

    Ole

**Attention** This is a public forum