Hi all,
I have a custom board with an MSP430FR5575 and a CC1101. In my app, he MSP is basically in LPM3 with a LF crystal doing some timekeeping and the CC1101 is sleeping as well most of the time. We've measured that the current consumed when both chips are sleeping is around 160uA @3V when should be much lower (around 10uA). I've cut the supply track and now I've attached two multimeters, one to measure the current through the MSP and the other for the CC1101. I can see that the current through the CC1101 is what datasheets says that it should (around 0.5uA) but the current being consumed by the MSP430, doesn't even matter if I enter LPM3 or LPM4, is much higher.
After playing around with the code, I've solved this scenario by, after sending the SLEEP command to the CC1101, resetting the eUSCI SPI module by setting UCSWRST and clearing it in the next instruction. Doing this the current goes down to around 10uA in LPM3. OK, I found a workaround, but I'd like to find an explanation of what I'm doing wrong. The code has been ported from another MSP430 with USCI instead of eUSCI that also drove a CC1101. There are some minor differences between USCI and eUSCI but none of them being meaningful to me.
SPI is working at 4MHZ, the TX/RX function uses polling and I check for UCTXIFG to be set before writing to UCA0TXBUF, for UCRXIFG before reading UCA0RXBUF and wait for UCBUSY to be clear before leaving the function.
Any guess?
Many thanks in advance.
Regards