返回信息流想产生两路波形,其中一路为正弦波,频率固定1K,另一路为正脉冲,频率为第一路正弦波的N倍。
现在想到了几个方案,但是都有些问题:
1、单片机产生PWM做脉冲,然后送分频器分频得到1K方波,过MAX293滤成正弦再放大
这样的问题是:1)N值只能固定 2)N较大的时候单片机很难产生精确的 N khz的频率
2、单片机产生PWM做脉冲,返回单片机计数器数脉冲,然后再用中断的方式产生方波(如:初值为FD则3个脉冲后溢出,即6分频)
这样的问题是:1)可以做变化的N,但是依然在N较大的时候不能保证分频后的信号准确为1Khz 2)单片机处理中断的过程中有延时t,即分频后实际周期应该是6T+2t 不是准确的6倍关系。
3、CPLD写几个固定分频比的分频器,给高速时钟分频后获得脉冲信号,再分频后获得1Khz信号
这样的问题是:成本高.....主要是就用很少的IO,剩余的IO都浪费了
所以发帖大家讨论下有没有比较好的方案能实现以下要求:
1、产生准确的N倍于1Khz的脉冲(倍数关系要求比较高,今天试验发现及时同一个信号源的两个输出都不够精确)
2、N值不要求连续可调,起码能有6、12、24、48这样的几个档(可以不是这4个数字,但是一定要有一定的区分度)
3、比较简单,比如用单片机的一些算法或者配合简单的分频电路(多级分频再用电子开关选的方案就算了,一大堆芯片头都大了)
最重要的就是那个N倍要非常精确,所以我目前的所有方案都是用高速脉冲产生那个1Khz的正弦,或者CPLD上的用同一个时钟分频(这样其实不准,门延时没考虑....)
总之希望各大牛集思广益......小弟感激不尽......
这是一条镜像帖。来源:北邮人论坛 / circuit / #18403同步于 2011/9/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖
如何产生两路频率精确成倍数关系的波形?
cordialz
2011/9/22镜像同步14 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
单片机的定时器就是干这个的。
你需要两路信号同相吗?
如果要同相是一个比较头疼的事情,如果不要,非常简单。拿两个定时器产生PWM波即可。PWM的周期是可调的,但确实无法做到N的全部值。基本上是2^N的都可以精确达到,即为N=2,4,8,16...如果你需要N=3的话,考虑DDS吧。自己用DAC做一个也是可以的。
【 在 cordialz (Cordial) 的大作中提到: 】
: 想产生两路波形,其中一路为正弦波,频率固定1K,另一路为正脉冲,频率为第一路正弦波的N倍。
: 现在想到了几个方案,但是都有些问题:
: 1、单片机产生PWM做脉冲,然后送分频器分频得到1K方波,过MAX293滤成正弦再放大
: ...................
用定时器很难做到准确的N倍吧....
比如一个定为1K
一个定为10K
两者进入中断需要6个周期,执行一个翻转输出的操作需要1个周期,重新赋值需要2个周期,也就是两路波形每周期会有固定的9个周期的误差,也就是两者的倍数为(10T+9clk)/(T+9clk)肯定不会是10倍吧....
之前我说的PWM波形是由专用PCA模块产生的,单片机主程序只进行初始化,之后交由PCA模块独立完成,溢出后自动重装并翻转,这个过程1周期...还是有点小误差
【 在 UZ 的大作中提到: 】
: 单片机的定时器就是干这个的。
: 你需要两路信号同相吗?
: 如果要同相是一个比较头疼的事情,如果不要,非常简单。拿两个定时器产生PWM波即可。PWM的周期是可调的,但确实无法做到N的全部值。基本上是2^N的都可以精确达到,即为N=2,4,8,16...如果你需要N=3的话,考虑DDS吧。自己用DAC做一个也是可以的。
: ...................
不要中断。。。
而且我说啦,N=2^x
有PWM了就不要用中断去控制翻转了,尽量用PWM解决。
【 在 cordialz (Cordial) 的大作中提到: 】
: 用定时器很难做到准确的N倍吧....
: 比如一个定为1K
: 一个定为10K
: ...................
额...我反应有点慢...还是没懂....
我们这是在重做一块信号与系统实验板,那个抽样定理的验证实验
理论上需要一个正弦信号和一个抽样信号,而且抽样信号不需要是正弦信号的整数倍
不过如果不是N倍关系的话,那么每周期抽样获得的结果应该是不一样的,在示波器上观察的话波形会跑.....(虽然这样的信号可以进行恢复,恢复效果一摸一样的,但是不易于做实验的同学观察抽样所得的信号.....)
所以我们需要一个精确N倍频率的抽样信号以保证每周期抽的的信号都是完全一样的.....
这样才能在示波器上显示稳定的波形
两路PWM....是不是一路输出10%占空比做抽样脉冲,一路输出50%占空比做信号?
可是我用的单片机PCA模块是公共计数器的.....只能产生两路频率相同但是占空比不同的PWM信号......
难道只能CPLD搞起么......成本啊.....浪费啊....
【 在 UZ 的大作中提到: 】
: 不要中断。。。
: 而且我说啦,N=2^x
: 有PWM了就不要用中断去控制翻转了,尽量用PWM解决。
: ...................
N有范围么。。
锁相环啊。。
【 在 cordialz (Cordial) 的大作中提到: 】
: 想产生两路波形,其中一路为正弦波,频率固定1K,另一路为正脉冲,频率为第一路正弦波的N倍。
: 现在想到了几个方案,但是都有些问题:
: 1、单片机产生PWM做脉冲,然后送分频器分频得到1K方波,过MAX293滤成正弦再放大
: ...................
【 在 cordialz 的大作中提到: 】
: 倍频出来的波形给力么....应该是正弦信号吧 还要比较整形......总感觉太麻烦了 不过如果其他方案都不给力的话也只能这么搞了.....
直接出方波。。。
yaoxi.....
【 在 ghy 的大作中提到: 】
:
: 【 在 cordialz 的大作中提到: 】
: : 倍频出来的波形给力么....应该是正弦信号吧 还要比较整形......总感觉太麻烦了 不过如果其他方案都不给力的话也只能这么搞了.....
: ...................