智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1946|回复: 12
打印 上一主题 下一主题

PWM模块周期问题

[复制链接]

12

主题

34

帖子

0

精华

高级会员

Rank: 4

积分
731
威望
281
贡献
132
兑换币
152
注册时间
2014-12-26
在线时间
159 小时
毕业学校
山东科技大学
跳转到指定楼层
1#
发表于 2015-2-1 11:42:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void MOTOR_PWM(void)
{
  PWMCTL_CON23=1;
  PWMCTL_CON45=1;
  PWME_PWME3=0;
  PWME_PWME5=0;
  PWMPRCLK=0x33;                //对时钟 A B 进行八分频  ClockA = ClockB = 3MHZ
  PWMSCLB=0x03;                 //对时钟SB继续分频  ClockSB=ClockB/(2*3)=500K
  PWMSCLA=0x03;                 //对时钟SA继续分频  ClockSA=ClockA/(2*3)=500K
  PWMCLK_PCLK3=1;               //选择SB时钟源
  PWMCLK_PCLK5=1;               //选择SA时钟源
  PWMPOL_PPOL3 = 1;             //起始为高电平
  PWMPOL_PPOL5 = 1;             //起始为高电平
  PWMCNT23 = 0;                  //计数器从零开始计数
  PWMCNT45 = 0;                  //计数器从零开始计数
  PWMPER23 = 2000;              //周期为1ms
  PWMPER45 = 2000;              //周期为2ms
  PWMDTY23 = 1000;              //占空比
  PWMDTY45 = 1000;               //占空比
  PWME_PWME3 = 1;               //Enable P3  
  PWME_PWME5 = 1;               //Enable P5
}
想问下PWME3和PWME5的周期和设置的频率有没有关系??我设置的 PWMPER23 = 2000;   PWMPER45 = 2000;  可是P3连接示波器显示的周期为1ms,而P5连接示波器显示的周期为2ms???这是怎么回事啊??~>.<~
回复

使用道具 举报

19

主题

2430

帖子

0

精华

跨届大侠

这并没有什么卵用.

Rank: 10Rank: 10Rank: 10

积分
6595

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
3611
贡献
1592
兑换币
1425
注册时间
2014-7-14
在线时间
696 小时
2#
发表于 2015-2-1 12:09:39 | 只看该作者
锁相环配置的对否?和这段程序对应否?
回复 支持 反对

使用道具 举报

12

主题

34

帖子

0

精华

高级会员

Rank: 4

积分
731
威望
281
贡献
132
兑换币
152
注册时间
2014-12-26
在线时间
159 小时
毕业学校
山东科技大学
3#
 楼主| 发表于 2015-2-1 12:11:32 | 只看该作者
空有一人 发表于 2015-2-1 12:09
锁相环配置的对否?和这段程序对应否?

这是锁相环的:
void PLL_Init(void)
{                               //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
   SYNR=2;                      //总线频率为24MHZ
   REFDV=1;
   _asm(nop);
   _asm(nop);
   _asm(nop);
   _asm(nop);
   _asm(nop);
   _asm(nop);
   while(!(CRGFLG_LOCK==1));          //when pll is steady ,then use it;
   CLKSEL_PLLSEL = 1;                        //engage PLL to system;           
}
回复 支持 反对

使用道具 举报

19

主题

2430

帖子

0

精华

跨届大侠

这并没有什么卵用.

Rank: 10Rank: 10Rank: 10

积分
6595

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
3611
贡献
1592
兑换币
1425
注册时间
2014-7-14
在线时间
696 小时
4#
发表于 2015-2-1 13:08:22 | 只看该作者


你这个锁相环配的蛮简单哈,锁相环范围也有寄存器,最好也配置一下。
重点:
你配置的锁相环频率和PWM模块反推出来的频率不一样。
我没仔细演算,但根据你的注释,确实不对,你自己再理一下所有寄存器。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

12

主题

34

帖子

0

精华

高级会员

Rank: 4

积分
731
威望
281
贡献
132
兑换币
152
注册时间
2014-12-26
在线时间
159 小时
毕业学校
山东科技大学
5#
 楼主| 发表于 2015-2-1 13:54:02 | 只看该作者
空有一人 发表于 2015-2-1 13:08
你这个锁相环配的蛮简单哈,锁相环范围也有寄存器,最好也配置一下。
重点:
你配置的锁相环频率和PW ...

怎么看出配置的锁相环频率和PWM模块反推出来的频率不一样的??求解释~>.<~
回复 支持 反对

使用道具 举报

19

主题

2430

帖子

0

精华

跨届大侠

这并没有什么卵用.

Rank: 10Rank: 10Rank: 10

积分
6595

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
3611
贡献
1592
兑换币
1425
注册时间
2014-7-14
在线时间
696 小时
6#
发表于 2015-2-1 16:05:35 | 只看该作者
:L:L

我只是看了注释,没仔细仔细演算。


你自己一步一步推。先把锁相环相关寄存器配置好,再配置PWM的相关寄存器。
回复 支持 反对

使用道具 举报

12

主题

34

帖子

0

精华

高级会员

Rank: 4

积分
731
威望
281
贡献
132
兑换币
152
注册时间
2014-12-26
在线时间
159 小时
毕业学校
山东科技大学
7#
 楼主| 发表于 2015-2-1 16:33:24 | 只看该作者
空有一人 发表于 2015-2-1 16:05
我只是看了注释,没仔细仔细演算。

根据公式PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)=2*16*(1+1)/(2+1)=48MHZ    然后总线频率应该是24MHZ   时钟AB经过八分频是3MHZ  SA和SB再分频 【3MHZ/(2*3)】=500K    哪里有问题呀???>.<
回复 支持 反对

使用道具 举报

19

主题

2430

帖子

0

精华

跨届大侠

这并没有什么卵用.

Rank: 10Rank: 10Rank: 10

积分
6595

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
3611
贡献
1592
兑换币
1425
注册时间
2014-7-14
在线时间
696 小时
8#
发表于 2015-2-1 16:47:15 | 只看该作者
Aachen. 发表于 2015-2-1 16:33
根据公式PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)=2*16*(1+1)/(2+1)=48MHZ    然后总线频率应该是24MHZ   ...


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

12

主题

34

帖子

0

精华

高级会员

Rank: 4

积分
731
威望
281
贡献
132
兑换币
152
注册时间
2014-12-26
在线时间
159 小时
毕业学校
山东科技大学
9#
 楼主| 发表于 2015-2-1 19:48:15 | 只看该作者
空有一人 发表于 2015-2-1 16:47

额……不是。。我式子打错了,应该是PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)=2*16*(1+2)/(1+1)=48MHZ 。。。最后的结果应该是对的。
回复 支持 反对

使用道具 举报

19

主题

2430

帖子

0

精华

跨届大侠

这并没有什么卵用.

Rank: 10Rank: 10Rank: 10

积分
6595

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
3611
贡献
1592
兑换币
1425
注册时间
2014-7-14
在线时间
696 小时
10#
发表于 2015-2-1 20:07:56 | 只看该作者
Aachen. 发表于 2015-2-1 19:48
额……不是。。我式子打错了,应该是PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)=2*16*(1+2)/(1+1)=48MHZ 。 ...


你把PWM Center Align Enable Register (PWMCAE) PWM 中央对齐使能寄存器
配置一下吧,这个寄存器你好像没有写。这个寄存器也能影响通道周期。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-27 23:24 , Processed in 0.055289 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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