zxcv1973 发表于 2024-1-7 21:00:52

神农鼎 发表于 2024-1-7 17:52
芯片没改版,能否提供一个简单的程序,证明有这个问题 ?
===然后我们验证后,再修改? ...

过去1年多了,要找找以前的测试记录

zxcv1973 发表于 2024-1-7 21:05:22

梁工 发表于 2024-1-7 18:13
我认为是程序的问题。
PCA或PWM是一个数字外设,在时钟的驱动下按部就班的工作,不会乱的。数字外设都有 ...

当时只编了几十行汇编测试程序就测试出来了,用汇编测试,程序完全可控

神农鼎 发表于 2024-1-7 21:17:00

如不能及时提供测试出问题的程序来证明,请自行删除负面评论,望理解,否则新人会被误导,请删除

zxcv1973 发表于 2024-1-8 11:16:58

;测试程序1
        mov wr0,#word2 PWMB_ARRH
        mov wr2,#word0 PWMB_ARRH
        mov a,#0ffh
        mov @dr0,r11
        mov @dr0+1,r11
       
        mov wr2,#word0 PWMB_PSCRH
        mov a,#byte1 0        ;319
        mov @dr0,r11
        mov a,#byte0 0        ;319
        mov @dr0+1,r11
       
        mov wr2,#word0 PWMB_CCR1H
        mov a,#byte1 10000
        mov @dr0,r11
        mov a,#byte0 10000
        mov @dr0+1,r11
       
        mov wr2,#word0 PWMB_CCR2H
        mov a,#byte1 15000
        mov @dr0,r11
        mov a,#byte0 15000
        mov @dr0+1,r11
       
        mov wr2,#word0 pwmb_cr1
        mov a,#01h
        mov @dr0,r11
       
        mov wr2,#word0 PWMB_CCMR1
        mov a,#00h
        mov @dr0,r11
       
        mov wr2,#word0 PWMB_CCMR2
        mov a,#00h
        mov @dr0,r11
       
        mov wr2,#word0 pwmb_ccer1
        mov a,#11h
        mov @dr0,r11
       
        mov wr2,#word0 PWMB_bkr
        mov a,#80h
        mov @dr0,r11
       
        mov wr2,#word0 pwmb_eno
        mov a,#05h
        mov @dr0,r11
       
        mov r10,#100                        ;延时300个时钟
        djnz b,$
       
        mov a,#30h                        ;PWM输出设置为翻转模式
        mov wr2,#word0 PWMB_CCMR1
        mov @dr0,r11
        mov wr2,#word0 PWMB_CCMR2
        mov @dr0,r11                        ;设置完成后PWM输出为低电平
       
n1:        mov r10,#100                        ;延时300个时钟
        djnz b,$
       
        mov wr2,#word0 PWMB_CNTRH        ;以下程序保证不会再产生比较匹配
        mov r10,@dr0
        mov r11,@dr0+1
        add wr10,#1000
        mov wr2,#word0 PWMB_CCR1H
        mov @dr0,r10
        mov @dr0+1,r11
        mov wr2,#word0 PWMB_CCR2H
        mov @dr0,r10
        mov @dr0+1,r11
               
        sjmp n1

zxcv1973 发表于 2024-1-8 11:18:56

;测试程序2
      mov wr0,#word2 PWMB_ARRH
      mov wr2,#word0 PWMB_ARRH
      mov a,#0ffh
      mov @dr0,r11
      mov @dr0+1,r11
      
      mov wr2,#word0 PWMB_PSCRH
      mov a,#byte1 0      ;319
      mov @dr0,r11
      mov a,#byte0 0      ;319
      mov @dr0+1,r11
      
      mov wr2,#word0 PWMB_CCR1H
      mov a,#byte1 10000
      mov @dr0,r11
      mov a,#byte0 10000
      mov @dr0+1,r11
      
      mov wr2,#word0 PWMB_CCR2H
      mov a,#byte1 15000
      mov @dr0,r11
      mov a,#byte0 15000
      mov @dr0+1,r11
      
      mov wr2,#word0 pwmb_cr1
      mov a,#01h
      mov @dr0,r11
      
      mov wr2,#word0 PWMB_CCMR1
      mov a,#00h
      mov @dr0,r11
      
      mov wr2,#word0 PWMB_CCMR2
      mov a,#00h
      mov @dr0,r11
      
      mov wr2,#word0 pwmb_ccer1
      mov a,#11h
      mov @dr0,r11
      
      mov wr2,#word0 PWMB_bkr
      mov a,#80h
      mov @dr0,r11
      
      mov wr2,#word0 pwmb_eno
      mov a,#05h
      mov @dr0,r11
      
      mov wr2,#word0 PWMB_CNTRH      ;在PWM输出冻结模式下产生一次比较匹配
      mov r10,@dr0
      mov r11,@dr0+1
      add wr10,#25
      mov wr2,#word0 PWMB_CCR1H
      mov @dr0,r10
      mov @dr0+1,r11
      mov wr2,#word0 PWMB_CCR2H
      mov @dr0,r10
      mov @dr0+1,r11

      mov r10,#100                        ;延时300个时钟
      djnz b,$
      
      mov a,#30h                        ;PWM输出设置为翻转模式
      mov wr2,#word0 PWMB_CCMR1
      mov @dr0,r11
      mov wr2,#word0 PWMB_CCMR2
      mov @dr0,r11                        ;错误!设置完成后PWM输出为高电平
      
n1:      mov r10,#100                        ;延时300个时钟
      djnz b,$
      
      mov wr2,#word0 PWMB_CNTRH      ;以下程序保证不会再产生比较匹配
      mov r10,@dr0
      mov r11,@dr0+1
      add wr10,#1000
      mov wr2,#word0 PWMB_CCR1H
      mov @dr0,r10
      mov @dr0+1,r11
      mov wr2,#word0 PWMB_CCR2H
      mov @dr0,r10
      mov @dr0+1,r11
               
      sjmp n1

zxcv1973 发表于 2024-1-8 11:27:19

两个测试程序都是设置为翻转模式后从没产生比较匹配,然而设置为翻转模式后PWM输出电平却不一样。后果就是比如在PWM输出翻转为低电平后切换为冻结模式禁止翻转,等下次再设置为翻转模式时,PWM输出可能继续保持低电平,也可能变为高电平,而此时并没有产生比较匹配,如果电平发生变化就会多发出1个脉冲

梁工 发表于 2024-1-8 15:46:41

zxcv1973 发表于 2024-1-8 11:27
两个测试程序都是设置为翻转模式后从没产生比较匹配,然而设置为翻转模式后PWM输出电平却不一样。后果就是 ...

原来你是这种切换不翻转、翻转的情况,我以为是连续输出脉冲。
连续翻转输出是不会有问题的,但是你切换不翻转、翻转时,要注意同步的问题。
你禁止翻转了,但是PWM模块继续运行,再允许翻转时,就要注意这个情况。

zxcv1973 发表于 2024-1-9 16:23:57

梁工 发表于 2024-1-8 15:46
原来你是这种切换不翻转、翻转的情况,我以为是连续输出脉冲。
连续翻转输出是不会有问题的,但是你切换 ...

输出脉冲控制步进电机难道不停止吗,停止后再输出脉冲时是不是会有多产生一个脉冲的可能

zxcv1973 发表于 2024-1-9 16:28:46

上面说的很清楚,停止输出脉冲要靠切换为冻结模式,而再切换为翻转功能输出脉冲时PWM输出电平可能会立即发生变化,而此时并没有达到翻转的匹配条件,这就有可能会多输出1个脉冲

天源电子 发表于 2024-2-4 13:09:23

zxcv1973 发表于 2024-1-9 16:28
上面说的很清楚,停止输出脉冲要靠切换为冻结模式,而再切换为翻转功能输出脉冲时PWM输出电平可能会立即发 ...

后面解决问题没
页: 1 [2] 3
查看完整版本: 使用PCA或高级PWM翻转输出脉冲驱动步进电机驱动器效果视频