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-F6779: Questions about using the I2C interface

Part Number: EVM430-F6779
Other Parts Discussed in Thread: MSP430F6779

Hello.

Working with EVM430-F6779 in I2C mode I have encountered 3 issues which I didn't know about from datasheets or any other resources:

1. For I2C one more connection is needed to indicate that the board is ready to send data.

2. MCU pins of EVM are not configured to work in I2C mode. So I add neccessary pin configuration steps to make I2C works.

3. Packet format from EVM differs from the one sent to EVM (no sync bytes).

Is there any other features in the firmware of the EVM that should be tuned to make the communication work correctly or perhaps a document describing I2C communication mode for this evaluation module?

Looking forward to your reply,

Oleg

  • Hello Oleg,

    I'm assuming that you're using the legacy Energy library code rather than the newer recommended Energy Measurement Design Center (EMDC) and software library. While EMDC features UART communication, you can modify the application-level code to add I2C functionality.

    If you'd like to implement I2C communication, your best references will be the I2C code examples and the MSP430F6779's user's guide.

    Regards,

    James

  • Hello James,
    No we are not using legacy energy library. We generated code using EMDC application, changed code in comm_config.h line 79 from #define COMM_SERIAL_INTERFACE (COMM_UART) to #define COMM_SERIAL_INTERFACE (COMM_I2CSLAVE).

  • Hello,

    While there's an option for selecting I2C as the communication interface in 'comm_config.h', I2C support wasn't implemented throughout the EMDC-generated code, only UART. Thus, you'll have to modify the application code accordingly to support I2C. However, the EMDC APIs can be used with whatever communication protocol that you choose.

    I would start with 'hmi.c'. There, I see the "Comm_setup()" function that initializes the communication in 'comm.c'. There are most likely several layers where you'll need to modify the code.

    Keep in mind that I2C won't work with the EMDC GUI, so you'll need to implement the calibration process manually on both the host and slave MCUs as well. At the moment, we don't have any documentation about how the calibration is performed by the GUI and are recommending that users leverage the GUI for that. The best reference would be looking through the code and getting familiar with how the GUI performs calibration.

    Regards,

    James

**Attention** This is a public forum