Drok6549 发表于 2009-1-1 09:25:24

请教马老师,关于论坛中您说的M8在16M晶振下可以输出125KHZ的正弦波,是怎么算出来的?【

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=762992&bbs_page_no=1&search_mode=1&search_text=正弦波&bbs_id=9999



这是原帖



【3楼】 machao 

积分:4674

派别:

等级:------

来自:

 m8的系统时钟采用16M。一个正弦波周期中输出8点的话,125KHz可以。但可能干不了其它的时了。 



m8的系统时钟采用16M,用M8+DAC,一个正弦波周期中输出16点的话,125KHz也可以。 











m8系统时钟是8M时,PWM的频率为30KHZ,也就是说16M时是60KHZ,一个正弦波周期输出8个点的话,

那正弦波的频率应该是7点几KHZ啊,125KHZ是怎么得出的?



很是不解,望马老师指点



最近在做关于单片机输出20KHZ的正弦波,并要求采样点不能过低,而且正弦波一定要稳定,

按照PWM取采样点的方法,怎么算也无法得出结果,希望马老师能指条明路

Drok6549 发表于 2009-1-1 13:04:02

谢谢马老师的回复,把问题弄明白了

machao 发表于 2009-1-1 12:01:01

2009年第一问,应该支持。



LZ说的对,我在那个帖子没有给出PWM的精度,它下面的跟贴已经有人指出了。



我只是给出一个最低的限度:采用16M,一个正弦波周期中输出8点的话,要达到125KHz时,PWM的精度只能为4位。这对于AVR是可以实现的。

16000000/8/125000 = 16 (4bit)



如果是8位精度的PWM,一个正弦波周期中输出8点的话,只能做到是7.8k。如果输出波型要求高的话,连这个也做不到的。

16000000/8/256 = 7812.5



AVR的PWM主要应用面是适合工业控制,因为工业控制频率低,一般在几十HZ。



根据你的具体要求,采用PWM的方式输出20K,而且“采样点不能过低,而且正弦波一定要稳定”,基本上是不行的。
页: [1]
查看完整版本: 请教马老师,关于论坛中您说的M8在16M晶振下可以输出125KHZ的正弦波,是怎么算出来的?【