Processor: MSP430F5310 IPT rev. C
I am trying to make sure I understand the proper way to recover from an XT1 oscillator fault when ACLK's source is XT1. The User's Guide (SLAU208J) page 128 says:
"The crystal oscillator fault bits XT1LFOFFG, XT1HFOFFG, and XT2OFFG are set if the corresponding crystal oscillator is turned on and not operating properly. Once set, the fault bits remain set until reset in software, regardless if the fault condition no longer exists. If the user clears the fault bits and the fault condition still exists, the fault bits are automatically set, otherwise they remain cleared.
When using XT1 operation in LF mode as the reference source into the FLL (SELREF = {0}), a crystal fault automatically causes the FLL reference source, FLLREFCLK, to be sourced by the REFO. XT1LFOFFG is set."
"If a fault is detected for the oscillator sourcing ACLK, ACLK is automatically switched to the DCO for its clock source (DCOCLKDIV) for all clock sources except XT1 LF mode. If ACLK is sourced from XT1 in LF mode, an oscillator fault causes ACLK to be automatically switched to the REFO for its clock source (REFOCLK). This does not change the SELA bit settings. This condition must be handled by user software."
Page 130 says:
"NOTE: Fault logic
Please note that as long as a fault condition still exists, the OFIFG remains set. The application must take special care when clearing the OFIFG signal. If no fault condition remains when the OFIFG signal is cleared, the clock logic switches back to the original user settings prior to the fault condition."
I'm using a 32.768 kHz crystal as XT1. If a fault condition occurs but is then removed, my understanding based on the above quotes is that I will have:
SFRIFG1: OFIFG is set; UCSCTL6: SELA is 000 (XT1CLK); UCSCTL7: XT1LFOFFG is set; ACLK is actually using REFO.
Then (again, assuming fault condition no longer exists) if I clear XT1LFOFFG, then clear OFIFG, ACLK will return to using XT1 instead of REFO.
Am I correct? Or do I need to manually set SELA to REFOCLK then back to XT1CLK?