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.

Migrating code from MSP430F5308 to MSP430F5309

Other Parts Discussed in Thread: MSP430F5308, MSP430F5309

Hi everyone,

I am now doing a product on MSP430F530X.

The MCU I used to use is MSP430F5308.

For a new batch of the product, I change it to MSP430F5309 because MSP430F5308 is out of stock.

And from the documents provided by TI, they should be pin to pin compatible.

However, the product with MSP430F5309 doesn't work well.

Is there anything I should take care of or not taken into consideration?

(I've changed the project setting in IAR compiler form MSP430F5308 to 5309 of course)

Thanks in advance.

  • At first glance, the only difference between the two is the additional 8k of flash the 5309 has.

    However, the two might have different silicon revisions. You should compare the errata sheets. Maybe your 5309 has older silicon with an erratum that causes the problem and was already fixed in your 5308.

  • Okay folks,

    I narrow down the problem scope to the exit of low power mode.

    If I disable the low power mode, MSP430F5309 works fine.

    Is there any problem on MSP430F5309 to exit low power mode(LPM3) through UART interrupt?

  • Older silicon versions had a problem in the UART, keeping the UART clock source (e.g. SMCLK) active even if an LPM was entered that was intended to switch it off. Newer silicon shuts the clock down. Hwoever, on higher baudrates, this measn the clock is off (and requires soem tiem to go online again) when the receiver detects a start bit. As a result, the receiver might miss the first data bit(s) and maybe even cripple the whole communication (by being off by some bits, which can't recover if the data has an unlucky pattern)

    So don't enter an LPM that shuts the UART's clock source off, if the UART receive is active. (SPI or I2C won't have a problem, as you're either master and provide the clock to the slave, or get the clock from external master)