308127255 发表于 2023-11-20 22:02:55

求助:高速异步PWMB同步PWMA遇到问题

1、文档中是否有错误(标红处);2、单独测试PWMA 、PWMB (TI1/5上升沿外部触发)均正常,就是PMWB触发PWMA(既:“用外部信号同步的触发两个 PWM”)A无法工作,B正常


PWM初始化程序如下

//配置高速PWM时钟源
                                CLKSEL = 0xC0;//第一步:选择 PLL 输出时钟,选择 PLL 的 144M 作为 PLL 的输出时钟1100,0000                                                         
                                USBCLK |= 0x20;//第二步:设置分频/2
                                USBCLK |= 0x80; //第三步:使能 PLL 倍频       
                                delay();                                                
                                HSCLKDIV = 0;   //第四步:HSPWM/HSSPI 时钟 源不分频
                                                                      
                                delay();
                                //配置高速PWMA       
              HSPWMA_CFG = 0x07; //使能 PWMA 相关寄存器异步访问功能               
                          WritePWMA((char)&PWMA_CCMR2, 0x70); //OC2REF 输出 PWM2(CNT<CCR 时输出有效电平 1)
                                WritePWMA((char)&PWMA_CCER1, 0x50); // 使能 CC2/CC2N 上的输出功能
                                WritePWMA((char)&PWMA_ENO, 0x04); // 使能 PWM 信号输出到端口
                                WritePWMA((char)&PWMA_BKR, 0x80); // 使能主输
                                WritePWMA((char)&PWMA_CCR2H, PWM_Circle>>8); // 设置输出 PWM 的占空比
                                WritePWMA((char)&PWMA_CCR2L, PWM_Circle);
                                WritePWMA((char)&PWMA_ARRH, PWM_Circle>>8); // 设置输 出 PWM 的周期
                                WritePWMA((char)&PWMA_ARRL, PWM_Circle);
                                WritePWMA((char)&PWMA_CR1, 0x84); //10000101溢出产生更新事件,并产生中断,UIF置1CEN=0,
                                WritePWMA((char)&PWMA_IER, 0x00); //关PWMA中断
                                                                                       
                                //配置高速PWMB
                                HSPWMB_CFG = 0x07; //使能 PWMB 相关寄存器异步访问功能,允许中断
                                WritePWMB((char)&PWMB_CCMR2, 0x70); //OC6REF 输出 PWM6(CNT<CCR 时输出有效电平 1)       
      WritePWMB((char)&PWMB_CCER1, 0x50); // 使能 CC6 上的输出功能
      WritePWMB((char)&PWMB_ENO, 0x04);   // 使能 PWM 信号输出到端口
                                WritePWMB((char)&PWMB_BKR, 0x80);   // 使能主输                               
                                WritePWMB((char)&PWMB_CCR6H, PWM_Circle>>8); // 设置输出 PWM 的占空比
                                WritePWMB((char)&PWMB_CCR6L, PWM_Circle);
                                WritePWMB((char)&PWMB_ARRH, PWM_Circle>>8); // 设置输 出 PWM 的周期
                                WritePWMB((char)&PWMB_ARRL, PWM_Circle);
                                WritePWMB((char)&PWMB_CR1, 0x84); //10000101溢出产生更新事件,并产生中断,UIF置1CEN=0,
                                WritePWMB((char)&PWMB_IER, 0x01); //开PWMB中断
                               
                                //用外部信号(TI5上升沿)同步触发PWMA\PWMB
                                WritePWMB((char)&PWMB_CR2, 0x10);//配置 PWMB_CR2寄存器的 MMS=001   0001 0000
                          
                                WritePWMB((char)&PWMB_SMCR,0xc6);//配置 PWMB_SMCR 寄存器的 TS =100   X100 XXXX
                                                                                                                 //配置 PWMB_SMCR 寄存器的 SMS=110   XXXX X110
                                                                                                                                           //配置 PWMB_SMCR 寄存器的 MSM=1   1XXX XXXX
                                                                                                                                                                   //所以 0xc6                         1100 0110
                               
                          WritePWMA((char)&PWMA_SMCR,0x26);//配置 PWMA_SMCR 寄存器的 TS =010   X010 XXXX
                                                                                                                                                                       //配置 PWMA_SMCR 寄存器的 SMS=110   XXXX X110
                                                                   //所以 0x26                         0010 0110

308127255 发表于 2023-11-22 22:31:26

按技术手册怎么调也不行,大家有遇到类似问题吗,还有这个技术手册是否有误??
页: [1]
查看完整版本: 求助:高速异步PWMB同步PWMA遇到问题