完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-14 10:12 编辑
请问一下,将C28设定为PWM输出控制电机。按照例参考手册设定可以正常工作,但是现在希望将PWM输出反向,其它设定不变。 原始设定 EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // Set PWM1A on event A, up count EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR; // Clear PWM1A on event A, down count 更改后的设定 EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR ; // Clear PWM1A on event A, up count EPwm1Regs.AQCTLA.bit.CAD = AQ_SET; // Set PWM1A on event A, down count 但是PWM实际输出不是想要的波形,不知要需要怎样设定,请指教! |
|
相关推荐
11个回答
|
|
更改后的波形是什么样的?
|
|
|
|
你好, 是这样的, 正常设定CMPA值增加时,PWM输出的高电平宽度变小。 而将AQCTLA的设定反向时,CMPA增加,PWM输出的高电平宽度也是变小的。 |
|
|
|
|
|
|
|
你的程序修改是没错的。有种可能是你开启了死区设置,并且以EPWMB为基准,这样PWMA输出只会按照B通道设置。你可以把整个EPWM的所有寄存器设置发上来检查 |
|
|
|
009712 发表于 2018-6-14 08:55 原来的设定: //EPMW Module 1 config // Setup TBCLK EPwm1Regs.TBPRD = EPWM1_TIMER_TBPRD; // Set timer period 801 TBCLKs EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0 EPwm1Regs.TBCTR = 0x0000; // Clear counter // Set Compare values // EPwm1Regs.CMPA.half.CMPA = EPWM1_MIN_CMPA; // Set compare A value // Setup counter mode EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Count up/down EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW; EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; // Sync down-stream module // Setup shadowing EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // Load on Zero EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; // Set actions EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // Set PWM1A on event A, up count EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR; // Clear PWM1A on event A, down count // // Active Low PWMs - Setup Deadband EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE; EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; EPwm1Regs.DBRED = EPWM_DB; EPwm1Regs.DBFED = EPWM_DB; 反向的设定: //EPMW Module 1 config // Setup TBCLK EPwm1Regs.TBPRD = EPWM1_TIMER_TBPRD; // Set timer period 801 TBCLKs EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0 EPwm1Regs.TBCTR = 0x0000; // Clear counter // Set Compare values // EPwm1Regs.CMPA.half.CMPA = EPWM1_MIN_CMPA; // Set compare A value // Setup counter mode EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Count up/down EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW; EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; // Sync down-stream module // Setup shadowing EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // Load on Zero EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR ; // Set PWM1A on event A, up count EPwm1Regs.AQCTLA.bit.CAD = AQ_SET; // Clear PWM1A on event A, down count // // Active Low PWMs - Setup Deadband EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE; EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_LOC; EPwm1Regs.DBRED = EPWM_DB; EPwm1Regs.DBFED = EPWM_DB; 请帮忙检查! |
|
|
|
EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; 设置成这样,直接取反 keep on studying |
|
|
|
不行呢。 设置成这样EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; 死区的前后顺序不正确。正常需要A延后B下降,但是这样设定变成A提前B下降了。 |
|
|
|
009712 发表于 2018-6-14 08:55 Dear Terry : 请问这样的配置要怎么修改! 还请帮忙! 谢谢! |
|
|
|
只是想把电平取反的话, 这个不用修改,保持和原来一样 EPwm1Regs.AQCTLA.bit.CAU = AQ_SET ; // Set PWM1A on event A, up count EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR; // Clear PWM1A on event A, down count 只修改这个就可以了 EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_LOC; |
|
|
|
|
|
|
|
学习了,最近刚好接触到
|
|
|
|
只有小组成员才能发言,加入小组>>
336 浏览 1 评论
529 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
774 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
651 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1130 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
56浏览 29评论
133浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
252浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
201浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
57浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 03:14 , Processed in 2.140918 second(s), Total 97, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号