2281|5

4

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

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

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

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

最新回复

不知道你的具体需求,可以看看以下资料 pic18f2550/2455 pdf-IC设计及制造相关资料下载-EEWORLD下载中心 下载_搜索-电子工程世界 (eeworld.com.cn)   详情 回复 发表于 2021-9-2 09:30
点赞 关注
 

回复
举报

1412

帖子

3

TA的资源

版主

沙发
 

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

 
个人签名

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

 
 

回复

1万

帖子

204

TA的资源

管理员

板凳
 

不知道你的具体需求,可以看看以下资料

pic18f2550/2455 pdf-IC设计及制造相关资料下载-EEWORLD下载中心

下载_搜索-电子工程世界 (eeworld.com.cn)

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

玩板看这里:

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

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

 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

4
 
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
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

5
 
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

 

 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

6
 

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 .

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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