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.

MSPM0G1507: MSPM0G1507 - Frequency Out of Tolerance Issue

Part Number: MSPM0G1507
Other Parts Discussed in Thread: SYSCONFIG,

Tool/software:

Hello,

Clock sysconfig configuration:

1. Explanation of the Issue:

a. I am using the internal system oscillator (SYSOSC) at 80 MHz on the MSPM0G1507 and have configured a PWM with a period count for 2 kHz. However, I am observing unexpected frequency variations in the output waveform:

Single Initialization: The measured PWM frequency is 2025 Hz, which is higher than the expected 2000 Hz. This deviation suggests a high frequency tolerance issue.

Double Initialization (Calling Initialization Function Twice): The output frequency is now in the range of 2005-2015 Hz, which is much closer to the expected value.

Is it expected that MSPM0G1507 requires re-initialization to correct this issue, or is there an alternative way to ensure accurate PWM frequency on the first initialization?


2. Issue with FCL Application:
a. I tested logic and found that the DL_SYSCTL_enableSYSOSCFCLExternalResistor() function plays a major role in clock tolerance.
If I remove this function, I consistently get an out-of-tolerance frequency, around 2030 Hz (exceeding the 2020 ±20 Hz limit).
Even with two initializations, I still observe the same out-of-tolerance frequency.

b. When using DL_SYSCTL_enableSYSOSCFCLExternalResistor() for FCL, I still see inconsistent results:
i.On the first initialization, the frequency is 2025 Hz.
ii.On the second initialization, the frequency drops to around 2003 Hz.

This raises a doubt: Is FCL not applied during the first initialization but only on the second one? (Note: The FCL mode is enabled on the first attempt itself.)

  • Single Initialization: The measured PWM frequency is 2025 Hz, which is higher than the expected 2000 Hz. This deviation suggests a high frequency tolerance issue.

    Internal SYSOSC's accuray need to refer to Datasheet 7.9.1 System Oscillator (SYSOSC)

    Error = 25 is within spec.

    If high precision is required, please use an external crystal or use the Rosc function(FCL) of SYSOSC.

    Is it expected that MSPM0G1507 requires re-initialization to correct this issue, or is there an alternative way to ensure accurate PWM frequency on the first initialization?
    This raises a doubt: Is FCL not applied during the first initialization but only on the second one? (Note: The FCL mode is enabled on the first attempt itself.)

    Try add more delay before init.

    Or try give MSPM0 more charge time of Vcc.

    Rosc need to be a 0.1% 100kOhm resistor.

  • Hi, 

    Datasheet 7.9.1

    It is mentioned that from -40 to 85°C, the tolerance is -1.1% to 1.2% max, and I tested this at 25°C. So, I assume the tolerance should be lower, correct?

    If high precision is required, it is recommended to use an external crystal or the Rosc function (FCL) of SYSOSC.

    Arrow right️ Yes, I used the ROSC function and connected a 100kΩ (0.1%) resistor between the ROSC pin and GND.

    Regarding your suggestions:

    • "Try adding more delay before initialization" – Could you explain how much delay is recommended and why it helps?

    • "Try giving MSPM0 more charge time for Vcc" – Does this mean adding a delay after power-up before starting initialization? If so, how does it impact system stability?

  • It is mentioned that from -40 to 85°C, the tolerance is -1.1% to 1.2% max, and I tested this at 25°C. So, I assume the tolerance should be lower, correct?

    Correct.

    "Try adding more delay before initialization" – Could you explain how much delay is recommended and why it helps?

    Since your second reset can get a better clock accuracy, I recommend you to set a large delay such as 10ms or 1s, to eliminate the impact of power stability.

    "Try giving MSPM0 more charge time for Vcc" – Does this mean adding a delay after power-up before starting initialization? If so, how does it impact system stability?

    Same reason as the above one.

    try to release reset later than Vcc is ready, such as manually control the reset after powering up.

    Also, need to check the Rosc resistor accuracy, if you are using the customer PCB, need to please Rosc close to FCL pin.