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.

[参考译文] MSP430F5510:需要帮助确认 FLL 频率正确

Guru**** 2390755 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1068256/msp430f5510-need-help-confirming-fll-frequency-is-correct

部件号:MSP430F5510

我们使用 driverlib 对 UCS 和 Timer1_A3进行编程,以生成 PWM 输出。 我们预计 PWM 周期为200US,但当我们使用示波器检查 PWM 频率时,我们测量值为100US。 这表明计时器的计时速度是我们预期的两倍,您可以检查下面的驱动程序库呼叫。 如果这些问题看起来正确,请告诉我是否有办法在针脚处观察 SMCLK 以验证其频率。

UCS 安装代码:

    UCS_initClockSignal(
       UCS_FLLREF,
       UCS_REFOCLK_SELECT,
       UCS_CLOCK_DIVIDER_1);

    UCS_initClockSignal(
       UCS_ACLK,
       UCS_REFOCLK_SELECT,
       UCS_CLOCK_DIVIDER_1);

    UCS_initFLLSettle(
        16000000/1000,
        16000000/32768);

来自 CCS 的 UCS 寄存器:

PWM 设置代码:

    Timer_A_outputPWMParam initPwmParam = {0};
    initPwmParam.clockSource = TIMER_A_CLOCKSOURCE_SMCLK; 
    initPwmParam.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1;
    initPwmParam.compareOutputMode = TIMER_A_OUTPUTMODE_RESET_SET;
    initPwmParam.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1;
    initPwmParam.dutyCycle = 1600U; //default to 50% duty cycle
    initPwmParam.timerPeriod = 3200U; //200uS

    Timer_A_outputPWM(TIMER_A1_BASE, &initPwmParam);

来自 CCS 的 TimerA1寄存器:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我发现 SMCLK 可以在 P2.2上推出,P2.2在我们的设计中不可用,但在 RGC 评估套件中可用。 我们将在明天用一个范围来衡量这一点,以帮助缩小问题的范围。 如果我们错误地使用了列出的 driverlib 函数,请务必告知我们。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    图书馆似乎还可以,我已经检查了注册表。 您可以检查 SMCLK 波形。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在评估板上将 P2.2配置为 SMCLK,我正在测量32MHz,这说明了计时器周期错误的原因。 现在的问题是为什么我的 UCS 驱动程序库配置没有将 DCO 编程为16MHz? 请帮帮我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的,我已经解决了这个问题。 DCO 时钟频率增加一倍是 在配置 UCS 后,随后对 USB_setup()的调用导致的。 为了消除这一问题,我颠倒了这些操作的顺序,因此我首先调用了 USB_setup(),然后又调用了 UCS 驱动程序库调用。 我在 USB 磁带库程序员指南中没有看到关于这种依赖性的任何信息,因此我将在此处发布,以防其他人遇到类似的问题。