打印

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

[复制链接]
3831|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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;

使用特权

评论回复
5
yewuyi| | 2014-12-25 08:23 | 只看该作者
在你当前的这份手册上,应当就有相关的讲解,你现在首要的不是提问,而是认真的把手上的手册仔细的看完。

使用特权

评论回复
6
xyzjacky|  楼主 | 2014-12-25 08:57 | 只看该作者
yklstudent 发表于 2014-12-24 20:25
TOSC = FOSC/4;

我发帖中的图片就是从数据手册上截图下来的,按照数据手册,不是应该是Tosc=1/Fosc 吗?
请问是不是您弄错了呢?

使用特权

评论回复
7
xyzjacky|  楼主 | 2014-12-25 10:55 | 只看该作者

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

使用特权

评论回复
8
yklstudent| | 2014-12-25 12:50 | 只看该作者
xyzjacky 发表于 2014-12-25 08:57
我发帖中的图片就是从数据手册上截图下来的,按照数据手册,不是应该是Tosc=1/Fosc 吗?
请问是不是您弄 ...

哦,确实搞错了
应该是:TOSC = 4/FOSC

使用特权

评论回复
9
yklstudent| | 2014-12-25 12:51 | 只看该作者
xyzjacky 发表于 2014-12-25 10:55
这是PIC16F1503数据手册上的,计算PWM占空比的公式。但是我不明白它这个公式,右侧的分子改如何计算。比如 ...

请自己阅读手册,里面说的很明白

使用特权

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

使用特权

评论回复
11
xyzjacky|  楼主 | 2014-12-25 13:55 | 只看该作者
xyzjacky 发表于 2014-12-25 13:51
好,非常谢谢。这一块儿我基本弄清楚了,看来这个数据手册还真是害人,不仅写错了。有的还写得不明不白的。 ...

我是从两个不同的地方才找到和证实TOSC = 4/FOSC,所以我说这片数据手册写得不明不白的。在数据手册的前面,讲振荡器模块,就应该把内部模块之间的时钟关系,模块与基本时钟,基本时钟与晶振的关系一一列举讲清楚。

使用特权

评论回复
12
wrwcwq| | 2015-11-21 10:21 | 只看该作者
公式没有写错,(PR2+1)*4*Tosc*TMR2预分频值,这个里面已经*4了

使用特权

评论回复
13
lsx435372| | 2016-1-22 23:54 | 只看该作者
这里的4是预分频比。芯片的级别不一样,分频比也不一样,TOSC = 4/FOSC也对 TOSC = 1/FOSC也对,这两个都是对的,但是要根据芯片了来,你说的TOSC = 4/FOSC,那个芯片预分频4  16   64,所以TOSC = 4/FOSC。

使用特权

评论回复
14
xianglong159| | 2016-9-13 22:14 | 只看该作者
明白了

使用特权

评论回复
15
michaellengleng| | 2016-11-28 09:58 | 只看该作者
这么久的贴都出来了啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

112

帖子

4

粉丝