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.

MSP-EXP430FR2433: I2C not issuing a start

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

USCI_B0 initialized as I2C master.  Port pins have been configured for I2C peripheral and external pullups have been installed. Configured to use auto stop. The associated ISR has been set up to write data to the transmit buffer.  The following sequence is being used:

Assert UCSWRST.

Set UCB0TBCNT to number of data bytes to transmit.

Set slave address

deassert UCSWRST

Set UCTR and UCB0STT to initiate the transaction.

I have a logic analyzer attached to the bus.  Nothing else.  The analyzer is set up to trigger on the falling edge of SDA. I would expect to see the start followed by the slave address and R/W low and then the transaction to end due to slave NACK.  There is no recorded activity.

I have put a breakpoint in the code to be able to view the register contents after the attempted transmission.  There is no bus busy asserted to impede the transaction. All of the configuration register contents reflect the setup and UCTXSTT is set. UCTXIFG is not set.

What am I missing to start the transmission?

  • Hi Jan,

    Did you configure the corresponding port pins as I2C pins using PSEL1.2 and PSEL1.3 registers?

    Refer to table 16-7 in the MSP430FR2433 datasheet for details.

  • Yes. P1SEL0 shows 0x0C when I poked in it after configuration and stopping at a breakpoint. That's the value I would expect. I used the following statement during initialization:
    P1SEL0 = (I2C_SCL | I2C_SDA); // set to I2C
    I2C_SCL and I2C_SDA are #define aliases for those pins.
  • Ok, then did you disable the GPIO power-on default high imdepance mode after setting the P1SEL0 bits?

       // Disable the GPIO power-on default high-impedance mode to activate

       // previously configured port settings

       PM5CTL0 &= ~LOCKLPM5;

    If you are using CCS, you can find some i2c example code for this device by selecting from the menu Help>Getting Started then click on the browse examples icon.

    You should see a directory named "Software".  Click on the MSP430Ware, then devices, then select MSP430FR2433, peripheral examples, register level, msp430fr243x_euscib0_i2c_...

    There are several i2c examples that may be helpful to you.

    If you don't have CCS you can download the MSP430Ware separately.

  • Thank you Dennis,

    That fixed the problem of why I was not getting any bus activity.  It also took care of the issue where I thought the first launchpad board had defective port 1 pin driving capability. I now see the I2C address byte output followed by a NAK (because there is no other device on the bus) followed by SCL low.

    On to troubleshooting the rest of my code.

**Attention** This is a public forum