This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/MSP430F248: MSP430F248 oscillator error problem

Part Number: MSP430F248

Tool/software: Code Composer Studio

Hi,

    

A strange problem was found. The MSP430F248 chip for a product was connected with 2M crystal oscillator. During operation, the program would turn off the crystal oscillator and enter the low power mode, waking up the crystal oscillator every 1s.

In the test, it was found that the crystal oscillator of several products could not be activated, and the reset signal given by the external watchdog every 30 seconds did not work. The voltage of passive crystal oscillator at both ends was about 1V, and there was no waveform. If the power is turned on after the power is cut off, it can be restored to normal.

Questions:

1. When will crystal vibration fail to start? Many products have been produced (1000), only a few examples.

2. How to judge whether the crystal oscillator is out of order or whether the microcontroller can not reset and initialize?

3. When the MCU receive a reset signal, will it  give the crystal oscillator an excitation signal?

Thank you very much!!! 

Kevin

  • Hi Kevin,

    Do you happen to know what value the XT2Sx bits in the BCSCTL3 register are set to?
    I see you have 22pF caps and 1M resistor in the circuit.
    Is this what the crystal manufacturer recommends?
  • Hi Dennis,
    Thank you for your reply.
    The caps and resistor is manufacturer recommends. I connect the crystal to XT1 and config is as follows:
    BCSCTL1 = 0xc8; //2M

    BCSCTL2 = 0xc0; //2M

    BCSCTL3 = 0x10;

    do
    {
    IFG1 &= ~OFIFG; // Clear OSCFault flag
    delay(1000);
    }
    while (IFG1&OFIFG); // OSCFault flag still set?

    Kevin
  • Hi,
    Any suggestions? Thanks.
    Kevin
  • Hi Dennis,
    Now a new discovery is that when I turn on the power and write watchdog whthout right security key, a PUC is generated, and because the PUC switches the LFXT1 to LF mode, so crystal oscillation does not start. And power consumption is the same size as in case of mentioned earlier。
    But I still don't know why the program doesn't continue to execute, but repeatedly in puc.

    Kevin
  • Hi Kevin,

    As you mentioned - the PUC signal can turn off your crystal oscillator as mentioned in page 33, section 2.2.13 of the MSP430Fx2xx Family User's Guide:

    "The oscillator fault signal warns of a possible error condition with the crystal oscillator. The oscillator fault

    can be enabled to generate an NMI interrupt by setting the OFIE bit. The OFIFG flag can then be tested

    by NMI the interrupt service routine to determine if the NMI was caused by an oscillator fault.

    A PUC signal can trigger an oscillator fault, because the PUC switches the LFXT1 to LF mode, therefore

    switching off the HF mode. The PUC signal also switches off the XT2 oscillator."

     

    -Chris

  • Hi Chris,
    Thank you for reply.

    What perplexed me was the condition which PUC would occur repeatedly. I've checked the conditions as follows in section 2.1 of the MSP430Fx2xx Family User's Guide:

    A POR is a device reset. A POR is only generated by the following three events:
    • Powering up the device(1)
    • A low signal on the RST/NMI pin when configured in the reset mode(2)
    • An SVS low condition when PORON = 1.(3)
    A PUC is always generated when a POR is generated, but a POR is not generated by a PUC. The
    following events trigger a PUC:
    • A POR signal(4)
    • Watchdog timer expiration when in watchdog mode only(5)
    • Watchdog timer security key violation(6)
    • A Flash memory security key violation(7)
    • A CPU instruction fetch from the peripheral address range 0h to 01FFh(8)

    And i have check the condition as follows:
    (1)The power supply is stable.
    (2)External Watchdog takes effect every 30 seconds(give a reset signal).
    (3) And there is no flash operation.
    (4) Enough time for variable initialization.
    (5)The first instruction of the main function is "WDTCTL = WDTPW + WDTHOLD; "(after cstartup.s43)

    Is there a condition that cause PUC repeatedly? And only poweroff can return to normal?


    Kevin

  • Hi Kevin,

    Have you tried using the WDTIFG flag to determine if the watchdog caused the device to reset? Check out 10.2.4 of the MSP430x2xx Family User's Guide

    -Chris

**Attention** This is a public forum