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.

[参考译文] MSP430FR2311:TimerB PWM 和比较器

Guru**** 2551110 points
Other Parts Discussed in Thread: MSP430FR2311

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/591335/msp430fr2311-timerb-pwm-and-comparator

器件型号:MSP430FR2311

大家好、

我使用 MSP430FR2311 LaunchPad 进行了实验

当我只使用 TB0或 TB1输出 PWM 波形时、它会像我想的那样正常工作

下一步、启用 eCOMP 来监控外部信号、可以发现 PWM 信号受 eCOMP 输出的影响、如下所示

蓝色一个是 eCOMP 输出、红色一个是 timerB PWM 输出

您是否遇到了相同的问题?

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

    请您分享原理图和测试代码、以便我重现您的问题吗?

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

    我使用 MSP430FR2311 LaunchPad 进行了实验
    并修改上图的说明:蓝色一个是 eCOMP 输入(C0)、红色一个是 timerB PWM 输出(TB1.1)
    我已经检查了 eCOMP 输出(将 P2.0更改为 COUT)、它工作正常

    代码如下所示


    int main (空)

    WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器
    PM5CTL0 &=~LOCKLPM5; //禁用 GPIO 上电默认高阻抗模式
    //激活先前配置的端口设置

    PMMCTL0_H = PMMPW_H;
    PMMCTL2 |= INTREFEN_1;
    PMMCTL0_H = 0;


    initCS(); // MCLK 运行在16MHz、SMCLK 为16MHz

    /*GPIO 初始化*/
    P2REN &=~0b11;//禁用 P2.0、P2.1拉
    P2DIR |= 0b11;//输出方向
    P2SEL0 |= 0b11;// TB1输出
    P2SEL1 &=~0b11;


    /*eCOMP 初始化*/
    P1REN &=~0x01;//禁用 P1.0拉
    P1SEL0 |= 0x01;// C0输入
    P1SEL1 |= 0x01;

    CPDACDATA =(7 << 8)| 50;
    CPDACCTL = CPDACBUFS_0 | CPDACREFS_1 | CPDACEN_1;

    CPCTL0 = CPPSEL_0 | CPNSEL_6 | CPPEN | CPNEN;
    CPCTL1 = CPINV_0 | CPIES_0 | CPFLT_1 | CPFLTDLY_3 | CPMSEL_0 | CPEN_1 | CPHSEL_3 | CPIE_0 | CPIIE_0;


    /*定时器初始化*/
    TB1CTL = MC_0 | TBCLR;
    TB1EX0 = 0;
    TB1CTL = TBIFG_0 | TBIE_0 | ID_0 | TBSSEL_2 | CNTL_0 | TBCLGRP_0;
    TB1CCR0 = 1999;

    TB1CCTL1 = CCIFG_0 | COV_0 | OUT_0 | CCIE_0 | OUTMOD_7 | CAP_0 | CLLD_0 | SCS_1 | CCIS_0 | CM_0;
    TB1CCTL2 = CCIFG_0 | COV_0 | OUT_0 | CCIE_0 | OUTMOD_3 | CAP_0 | CLLD_0 | SCS_1 | CCIS_0 | CM_0;

    TB1CCR1 = 0;
    TB1CCR2 = 0;

    TB1CTL |= MC_3;


    for (;;);



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

    LAN、

    检查输出是否冲突?

    PWM 输出 P2.0 P2.1

    eCOMP 输出 P2.0


    BR、

    灵  

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

    当我检查 COUT 函数时、我已将 P2.0更改为 COUT 并测量 TB1.2 (P2.1) PWM 信号、因此它没有冲突
    即使使用 TB0、该现象也会存在。


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

    尝试使用 TB0并查看该现象是否仍然存在?

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

    您好、Ling、

    将 PWM 信号更改为 P1.6、P1.7、波形如下所示

    红色一个是 PWM 信号(P1.6)、蓝色一个是 COUT (P2.0)

    您是否观察到同样的不可预测现象?

    BR

    Ian

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

    尝试添加
    " SYSCFG2 |= TB0TRGSEL;"
    源代码中。

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

    谢谢!