搜索
bottom↓
回复: 9

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

[复制链接]

出0入0汤圆

发表于 2009-3-9 11:48:37 | 显示全部楼层 |阅读模式
AVR可以用硬件方便的实现占空比可改的PWM,运行中不用中断,可自行运行,非常方便,改占空比时只需要一个指令即可.在晶振不改变时,频率改变不多.
但是我现在想实现一个占空比不变,50%,但是频率可随便改变的信号出来,如何实现?也是不想让软件参与太多.我需要连续改变从10Hz-1MHz.

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2009-3-9 13:08:20 | 显示全部楼层
avr 分频系数是离散的,决定了产生的频率是不连续的,所谓“连续改变”也要确定一个最小步进频率。

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

出0入0汤圆

发表于 2009-3-9 13:13:56 | 显示全部楼层
楼上正解,

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

出0入0汤圆

发表于 2009-3-9 13:16:30 | 显示全部楼层
当时要做32768正负100范围可调的,结果还是用了软件IO翻转。

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

出0入0汤圆

 楼主| 发表于 2009-3-9 13:20:52 | 显示全部楼层
是呀,我知道硬件做的不连续,所以我想探讨一个办法呀!

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

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

就没有办法了.

出0入0汤圆

发表于 2009-3-9 13:37:05 | 显示全部楼层
你可以去买个DDS芯片,精度非常高,控制也简单,只要送个控制字过去,信号就出来了。

出0入0汤圆

 楼主| 发表于 2009-3-9 14:11:16 | 显示全部楼层
那不是要米的嘛!要个那东西还不如直接用一个MCU写呢!

出0入0汤圆

发表于 2009-3-9 15:09:16 | 显示全部楼层
唯一可以参考的是miniDSS那个方案。论坛上不止一次提到。搜搜看,不过频率到1M比较难。

出0入0汤圆

发表于 2009-3-9 15:13:25 | 显示全部楼层
1M肯定做不出来的

出0入0汤圆

发表于 2009-3-9 15:15:57 | 显示全部楼层
如果你对精度要求不高可以用PWM的,虽然不连续,但还是可以将就用的。

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

当然,用来校准别的东西就不行了,
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-8 22:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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