in this product a TI MICRO (Mfgr part#: MSP430F2132IRHBR; HW part# 300-02087LF) is used that I am using on my prototype as well. Actually my part is not a QFN package but is rather a TSOP package (Mfgr part #: MSP430F2132IPW; HW part# 300-05158), other than that the two TI MICROs are similar.
Via debugger I noticed that a problem using this MICRO wherein I am unable to set the SMCLK from the external XTAL of about 4.9MHz (LFXT1). The MCLK seems to be running fine though.
SMCLK is configured to clock the timers and since SMCLK is unable to run the timers are not running. I was wondering if you could feedback and/or direct this e-mail to a person who has experience using this MICRO? I am attaching a section of my code to show how my clocks are set-up. I am also in touch with a TI FAE but so far no success on this issue. I look forward to your reply. -Thanks
void main(void)
{
unsigned char k;
//WDTCTL = WDT_ARST_250; // initialize WD Time interval
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
//pkat – Via BCSCTL1 set LFXT1 mode to High-frequency mode since XTAL is 4.9MHz
// Also set the ACLK divider to 1
BCSCTL1 |= XTS; // intialize clock registers
//pkat – Via BCSTL2 set MCLK to LFXT1CLK (4.9MHz XTAL) and its divider to 1.
// Also set SMCLK (that feeds the counter) to LFXT1CLK and it's divider to 1
BCSCTL2 |= SELS + SELM1 + SELM0; //pkat
//pkat – Via BCSCTL3 set the XTAL's frequency range (3MHz-16MHz option) &
//specifiy the XCAPx capacitance since XTS=1 (high frequency mode specified in BCSCTL1)
BCSCTL3 |= LFXT1S_2; // pkat set BSCTL3 for 4.9MHz crystal
// while(IFG1 & OFIFG) IFG1 &= ~OFIFG; //pkat Orig code commented out
do
{
IFG1 &= ~OFIFG; //pkat – Clear OSCFault flag
for (int i=0xFF;i>0;i–); //pkat – give time for flag to set
} while(IFG1 &OFIFG); //pkat OSCFlag fault still set?
//pkat Now that the OSCFault flag is clear it is safe to select MCLK's source next
// BCSCTL2 |= SELS+SELM1+SELM0; //pkat commented out original code
BCSCTL2 |= SELS; // pkat- Set SCLK = LFXT1 (safe) again
BCSCTL2 |= SELM_3; // MCLK = LFXT1 (safe)
Jason Guo:
BCSCTL2 |= SELS + SELM1 + SELM0; //pkat
please remove the above code and try again.
Alternatively ,you can try the following example code.
if still not work, please check your HW design