I use I2C using eUSCI_B using SMCLK. But if I enter LPM3 (to blink an LED) which uses the RTC using VLO to wake up. Afterwards I2C seems to stop working. And CS_getSMCLK() returns 0, which seems to say that the SMCLK is no longer available. I know that SMCLK is stopped in LPM3, but do I have to do something to restart it afterwards?
I configure the eUSCI_B to use SMCLK on every I2C transaction. Using DriverLib, which in most examples and in my code calls CS_getSMCLK() to set the bit rate. If CS_getSMCLK() returns 0, it is not configuring eUSCI correctly. I wonder whether SMCLK would be started when the eUSCI requested it, and it is just the call to CS_getSMCLK() (which occurs before SMCLK is active) that is flawed?
I don't configure the clocks after POR, just use the default configuration after reset clock. I don't think it is pertinent, but I am also using LPM4.5, and the I2C is to an external RTC chip to wake the processor from LPM4.5