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.

MSP430FR2433: Inquires about I2C slave function

Part Number: MSP430FR2433
Other Parts Discussed in Thread: MSP-EXP430FR2433

Hi Experts,

Our customer is evaluating I2C slave function with MSP-EXP430FR2433 LanchPad (sample code: msp430fr243x_eusci_i2c_standard_slave.c or msp430fr243x_euscib0_i2c_11.c). customer is connecting this LanchPad to RaspberryPi3(I2C master). However, it does not seem it worked.

When the 1-byte Read operation is executed by Raspberry Pi, customer said that MSP430 seems to drive Low on CLK line and freeze. Therefore, I received some inquires as follows. (I suppose MSP430 may do "Clock stretching".) Can I have your expert's advice/comments on them, please?

===

  1. Does the interrupt affect the judgment of returning ACK?
  2. Even if the I2C interrupt flag is not cleared, Is it possible to do I2C communication? For example, although customer is referring to msp430fr243x_euscib0_i2c_11.c, Is it not necessary to clear "UCSTPIFG"?
  3. Regarding the data-stored timing of "UCB0TXBUF", if it is set at the beginning of the main(), does it always return a fixed value?

===

I'm requesting customer to refer User's Guide(24.3.5.1 Slave Mode) and I'm requesting customer to capture this I2C(SCL/SDA) access

Best regards,

Miyazaki

  • Hello,

    Are they using pull-up resistors? I don't think the MSP-EXP430FR2433 LanchPad has them populated on the board. If they are using jumper wires, I would recommend low-value pull-up resistors (perhaps less than 4.7-kOhm) to ensure proper communication with higher capacitance present on the bus.

    Besides the user's guide, I would also recommend that they refer to the Solutions to Common eUSCI and USCI Serial Communication Issues on MSP430 MCUs app note. Honestly, the user's guide should answer these questions.

  • Hi James,

    Thank you for your comments. it seems, customer used pull-up resistors.

    Customer noticed the following description in User's guide (24.3.5.1.2 I 2C Slave Receiver Mode).

    ===

    If the previous data was not read from the receive buffer UCBxRXBUF at the end of a reception, the bus is stalled by holding SCL low. As soon as UCBxRXBUF is read, the new data is transferred into UCBxRXBUF, an acknowledge is sent to the master, and the next data can be received.

    ===

    Therefore, customer fixed sample code like above description.

    Thank you and best regards,

    Miyazaki