hongtusy 发表于 2009-3-9 11:48:37

想用AVR的硬件部分实现频率可调的信号发生器,如何实现?

AVR可以用硬件方便的实现占空比可改的PWM,运行中不用中断,可自行运行,非常方便,改占空比时只需要一个指令即可.在晶振不改变时,频率改变不多.
但是我现在想实现一个占空比不变,50%,但是频率可随便改变的信号出来,如何实现?也是不想让软件参与太多.我需要连续改变从10Hz-1MHz.

hendry 发表于 2009-3-9 13:08:20

avr 分频系数是离散的,决定了产生的频率是不连续的,所谓“连续改变”也要确定一个最小步进频率。

低精度的信号发生器可以用 avr 做一做,高精度的不行。

lmserver 发表于 2009-3-9 13:13:56

楼上正解,

用定时器1的高速PWM来做,产生的不是很准,你可以根据公式算一下,硬件PWM做的不连续的。

lmserver 发表于 2009-3-9 13:16:30

当时要做32768正负100范围可调的,结果还是用了软件IO翻转。

你用32768Hz来算一下,实际产生出来的是3278x,具体忘了,反正硬件做的不连续。

hongtusy 发表于 2009-3-9 13:20:52

是呀,我知道硬件做的不连续,所以我想探讨一个办法呀!

因为只要晶振不改变的话,固定的分频系数只有8个左右,所以只有8个频率出来,想连续就不行.

用定时器中断的办法太麻烦,只能用硬件.

就没有办法了.

lmserver 发表于 2009-3-9 13:37:05

你可以去买个DDS芯片,精度非常高,控制也简单,只要送个控制字过去,信号就出来了。

hongtusy 发表于 2009-3-9 14:11:16

那不是要米的嘛!要个那东西还不如直接用一个MCU写呢!

hittiger 发表于 2009-3-9 15:09:16

唯一可以参考的是miniDSS那个方案。论坛上不止一次提到。搜搜看,不过频率到1M比较难。

freemanw 发表于 2009-3-9 15:13:25

1M肯定做不出来的

lmserver 发表于 2009-3-9 15:15:57

如果你对精度要求不高可以用PWM的,虽然不连续,但还是可以将就用的。

对我来说,一般情况下,要100K的信号,我用99K或者101K是一样的。

当然,用来校准别的东西就不行了,
页: [1]
查看完整版本: 想用AVR的硬件部分实现频率可调的信号发生器,如何实现?