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: I2C: SDA and SCL signals are not generated

Part Number: MSP430FR2433
Other Parts Discussed in Thread: MSP430WARE

Hi There,

I am working with MSP430FR2433 using msp430ware Version 3.80.14.01, curious about how I2C works,

so checked in Oscilloscope for pin P1.3, P1.2 in debug mode by resuming, both are not seen in oscilloscope. 

as shown in below image:

I was wondering why clock and data signals are not generated. 

This is carried out when slave is not connected, 

When suspended in debug mode, it was running following instruction of "eusci_b_i2c.c" file

 

Fullscreen
1
2
//Poll for transmit interrupt flag.
while (!(HWREG16(baseAddress + OFS_UCBxIFG) & UCTXIFG)) ;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

The example (eusci_b_i2c_ex3_masterTxMultiple) code which i have used in this as follows:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Demo - EUSCI_B0 I2C Master TX multiple bytes to MSP430 Slave
#define SLAVE_ADDRESS 0x48
//*****************************************************************************
//
//Target frequency for SMCLK in kHz
//
//*****************************************************************************
#define CS_SMCLK_DESIRED_FREQUENCY_IN_KHZ 1000
//*****************************************************************************
//
//SMCLK/FLLRef Ratio
//
//*****************************************************************************
#define CS_SMCLK_FLLREF_RATIO 30
// Pointer to TX data
uint8_t TXData = 0;
uint8_t TXByteCtr;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

After this checked with MasterTxSingle example there also SCL(clock) is not generated.

Looking for insights for the above.

Thanks and regards,

Ajaykumar V

  • I don't see any pullup resistors on P1.2/.3. The Launchpad doesn't supply these. Many/most commercial I2C-slave boards do supply them (which is handy). For this experiment, you could use the internal pullups by adding  (before the calls to GPIO_setAsPeripheralModuleFunctionInputPin) something like:

    > GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_UCB0SCL, (GPIO_PIN_UCB0SCL|GPIO_PIN_UCB0SDA)); // We "know" they're both on P1

    ---------

    Unsolicited: It looks like your scope is on Auto, so you might miss the SCL even if it appears. Try triggering on the SCL Falling edge (maybe even "Single-Shot" if you have it).

**Attention** This is a public forum