PIC 新手,所用单片机是PIC16F1503,PWM配置问题

[复制链接]
 楼主| xyzjacky 发表于 2014-12-23 17:05 | 显示全部楼层 |阅读模式
请问各位前辈,PIC单片机的PWM配置,按照数据手册,这几个参数是怎么计算的。周期,脉宽,占空比。




本帖子中包含更多资源

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

×
yklstudent 发表于 2014-12-23 19:17 | 显示全部楼层
公式都写的很明白
直接往里面套数据就可以了
系统时钟8MHz,TOSC = 1/2us=0.5us
比如要求2k的PWM,TMR2预分频设置为1:4,则PR2 = 2000000/2000/4/4-1=61;
反过来推算也是一样的,根据PR2值,一样可以得到计算出实际的频率/周期
 楼主| xyzjacky 发表于 2014-12-24 17:48 | 显示全部楼层
yklstudent 发表于 2014-12-23 19:17
公式都写的很明白
直接往里面套数据就可以了
系统时钟8MHz,TOSC = 1/2us=0.5us

谢谢你的解答,那请问我如果用内部晶振---8MHz,那TOSC该怎么计算呢,我在数据手册中没有看到,不知道是不是还要分频后,才是Tosc
yklstudent 发表于 2014-12-24 20:25 | 显示全部楼层
TOSC = FOSC/4;
yewuyi 发表于 2014-12-25 08:23 | 显示全部楼层
在你当前的这份手册上,应当就有相关的讲解,你现在首要的不是提问,而是认真的把手上的手册仔细的看完。
 楼主| xyzjacky 发表于 2014-12-25 08:57 | 显示全部楼层
yklstudent 发表于 2014-12-24 20:25
TOSC = FOSC/4;

我发帖中的图片就是从数据手册上截图下来的,按照数据手册,不是应该是Tosc=1/Fosc 吗?
请问是不是您弄错了呢?
 楼主| xyzjacky 发表于 2014-12-25 10:55 | 显示全部楼层

这是PIC16F1503数据手册上的,计算PWM占空比的公式。但是我不明白它这个公式,右侧的分子改如何计算。比如我现在已经知道PR2的值,我的占空比设置为50%,那么PWMxDCH,和PWMxDCL如何计算?谢谢大家!

本帖子中包含更多资源

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

×
yklstudent 发表于 2014-12-25 12:50 | 显示全部楼层
xyzjacky 发表于 2014-12-25 08:57
我发帖中的图片就是从数据手册上截图下来的,按照数据手册,不是应该是Tosc=1/Fosc 吗?
请问是不是您弄 ...

哦,确实搞错了
应该是:TOSC = 4/FOSC
yklstudent 发表于 2014-12-25 12:51 | 显示全部楼层
xyzjacky 发表于 2014-12-25 10:55
这是PIC16F1503数据手册上的,计算PWM占空比的公式。但是我不明白它这个公式,右侧的分子改如何计算。比如 ...

请自己阅读手册,里面说的很明白
 楼主| xyzjacky 发表于 2014-12-25 13:51 | 显示全部楼层
好,非常谢谢。这一块儿我基本弄清楚了,看来这个数据手册还真是害人,不仅写错了。有的还写得不明不白的。可以证明 TOSC = 4/FOSC ,而非TOSC = 1/FOSC,是这样两个框图。一个在PIC16F1503规格书的160页,讲TIMER2那部分;一个在164页,讲主同步串行口模块。希望PIC公司方面赶紧修改。TOSC = 1/FOSC完全是错的。

本帖子中包含更多资源

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

×
 楼主| xyzjacky 发表于 2014-12-25 13:55 | 显示全部楼层
xyzjacky 发表于 2014-12-25 13:51
好,非常谢谢。这一块儿我基本弄清楚了,看来这个数据手册还真是害人,不仅写错了。有的还写得不明不白的。 ...

我是从两个不同的地方才找到和证实TOSC = 4/FOSC,所以我说这片数据手册写得不明不白的。在数据手册的前面,讲振荡器模块,就应该把内部模块之间的时钟关系,模块与基本时钟,基本时钟与晶振的关系一一列举讲清楚。
wrwcwq 发表于 2015-11-21 10:21 | 显示全部楼层
公式没有写错,(PR2+1)*4*Tosc*TMR2预分频值,这个里面已经*4了
lsx435372 发表于 2016-1-22 23:54 | 显示全部楼层
这里的4是预分频比。芯片的级别不一样,分频比也不一样,TOSC = 4/FOSC也对 TOSC = 1/FOSC也对,这两个都是对的,但是要根据芯片了来,你说的TOSC = 4/FOSC,那个芯片预分频4  16   64,所以TOSC = 4/FOSC。
xianglong159 发表于 2016-9-13 22:14 | 显示全部楼层
明白了
michaellengleng 发表于 2016-11-28 09:58 | 显示全部楼层
这么久的贴都出来了啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

115

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部