Hello,
I have a MSP430FR5969 platform with a 430BOOST-SHARP69 module. I modified the grlib driver to use the DMA controller to update the display via SPI. (Clock source SPI is SMCLK ).
The application uses the 2 push buttons on the board to switch to different power modes going from active mode -> LPM0 -> LPM1 -> LPM2 -> LPM3 -> LPM4. Every time a new power mode is entered, the DMA is triggered to update the LCD so that the power mode is printed on the LCD.
The thing is that in "Free run", the LCD gets updated properly, and the application keeps functioning properly (though I cannot confirm in which LPM mode the CPU is since I can't use EnergyTrace++).
When I run in debug mode, I can keep switching between active mode and LPM0 but once I go into a higher LPM mode, things can go wrong. When it goes wrong and I pause the CPU, I see that the instruction pointer is at 0x0004.
I would like to see the activity of the DMA and the clocks in each mode in the EnergyTrace++ but so far, that is not possible. Is there anything I can do to "debug" my problem, ( = why the CPU jumps to address 0x0004 ).
As I described my setup, am I doing "illegal" things like jumping into a LPM when the DMA/SPI is active?
Thanks in advance.
Sam.
Edit: I just found that DMA11 in the errata list http://www.ti.com/lit/er/slaz473h/slaz473h.pdf might be relevant. But this still doesn't explain correct behaviour in "Free Run" mode...