274|5

5

帖子

0

资源

一粒金砂(中级)

用18f2550 as PWM 正弦产生器 [复制链接]

本帖最后由 martymak 于 2021-9-1 11:33 编辑

有高人用过 18F2550 for PWM sine generator ,可否指教一下,或者給我一個例子?


回复

796

帖子

3

资源

版主

PWM的工作原理基本都是一样,主要你详细看看芯片的数据手册,自己先做一做

个人签名

没有什么不可以,我就是我,不一样的烟火! 


回复

1万

帖子

2853

资源

管理员

个人签名

玩板看这里:

http://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!


回复

5

帖子

0

资源

一粒金砂(中级)

okhxyyo 发表于 2021-9-2 09:30 不知道你的具体需求,可以看看以下资料 pic18f2550/2455 pdf-IC设计及制造相关资料下载-EEWORLD下载中心 ...

I have pic18f2550 datasheet in hand , knowing how to use it . But now I was using it in

my LCR digital bridge design , the USB function was completely disabled .

The following was my assembly built to test the PWM sine generator :

 

;Loading value Sin (2*PI*t/20) in registers of porosity SHIM CCPR2L:CCPCON <5:4>
Load_Sine_Val
        movlw        HIGH Sine_Table
        movwf        PCLATH
         movf    Sine_step,W
        mullw    .2
        movf    PRODL,W    ; index should be (w*2)
        call        Sine_Table
        mullw    .1    ; wonderful => make sine generation stable
        movf    PRODL,W
         movwf        Sine_val
        movlw        b'11001111'
        andwf        CCP2CON,f
        rrcf        Sine_val, F
        btfsc        STATUS, C
        bsf            CCP2CON, 4        ;Duration is SHIM, low-order bit (0)
        rrcf        Sine_val, F
        btfsc        STATUS, C
        bsf            CCP2CON, 5        ;Duration is SHIM, bit N 1
        movf        Sine_val, W
        andlw        0x3F
        movwf        CCPR2L            ;Duration is SHIM - rest , don't use cppr2l,1
        decfsz        Sine_step,F        ;Following step
        goto        lsv_1            ;For alignment of duration in sequence
        movlw        .20                ;New period
        movwf        Sine_step
        return
lsv_1    nop                            ;for alignments of duration in sequence
        return

点评

; Table for PWM Sine generator     Sine_Table         addwf    PCL,F         dt    .36 &nbs  详情 回复 发表于 2021-9-3 11:29

回复

5

帖子

0

资源

一粒金砂(中级)

martymak 发表于 2021-9-3 11:26 I have pic18f2550 datasheet in hand , knowing how to use it . But now I was using it in my LCR ...

; Table for PWM Sine generator    
Sine_Table
        addwf    PCL,F
        dt    .36
        dt    .24
        dt    .14
        dt    .10;.7
        dt    .6 ;.5
        dt    .10;.7
        dt    .14
        dt    .24
        dt    .36
        dt    .50
        dt    .64
        dt    .76
        dt    .86
        dt    .93
        dt    .95
        dt    .93
        dt    .86
        dt    .76
        dt    .64
        dt    .50

; init settings

PWM_init
        bsf    uFlag_1,0 ; set 1 kHz flag first
        movlw    .19 ;period = (19+1)*.25us =5us or F = 1/5us = 200 kHz
        movwf    PR2    ;frequency Sin = 200k
        clrf    CCP2CON
        movlw    .20
        movwf    Sine_step
        call    Load_Sine_Val
        movlw    b'00000100'  
        movwf    T2CON    ;timer2 on=1, prescaler=1=00
        movlw    0x0F    ; set PWM mode including Lsb bit0&1
        iorwf    CCP2CON,F
        
CCP1_init
        movlw    b'00000001'    ;TMR1CS bit=0=Internal clock=>  
        movwf    T1CON        ;Fosc/4 =16/4 =4MHz=0.25us,& enable timer1  
        
;        clrf    CCPR1H    ; no control of freq. ???
;        movlw    .200    ;F = 1 kHz, T = 1ms, 20 steps => 1ms/20 = 50us, 50us/0.25 = 200
;        movwf    CCPR1L
 
        movlw    b'00001011' ;mode of comparison, trigger to AD conversion
        movwf    CCP1CON
        bsf    PIE1,2   ;enabled CCP1 interrupt
        bsf    INTCON,7 ;enable global interrupt bit

 


回复

5

帖子

0

资源

一粒金砂(中级)

it worked , but the PWM sine generated was not 1kHz , instead it was 200Hz 2Vpp .

Changing the PR2 value was no effect .... Hope somebody can see the problem from

my assembly .


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

最新文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表