找回密码
 立即注册
查看: 267|回复: 1

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

[复制链接]

该用户从未签到

2

主题

2

回帖

30

积分

新手上路

积分
30
发表于 2023-11-20 22:02:55 | 显示全部楼层 |阅读模式
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); //1000  0101  溢出产生更新事件,并产生中断,UIF置1  CEN=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); //1000  0101  溢出产生更新事件,并产生中断,UIF置1  CEN=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

微信图片_20231120215611.png
回复 送花

使用道具 举报

该用户从未签到

2

主题

2

回帖

30

积分

新手上路

积分
30
 楼主| 发表于 2023-11-22 22:31:26 | 显示全部楼层
按技术手册怎么调也不行,大家有遇到类似问题吗,还有这个技术手册是否有误??
回复 支持 反对 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-5-10 05:33 , Processed in 0.053166 second(s), 35 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表