|
发表于 2013-10-15 13:24:50
|
显示全部楼层
七、DDS信号发生器
这是本LCR表的使用的核心技术。利用它实现了精确的相位控制,并输出正弦波。
DDS即“直接数字频率合成器”
一般采用专用DDS芯片,以取得高性能。使用专用DDS,如AD9833等芯片,价格贵,而且是MSOP封装,焊接不易,给DIY带来了一些障碍。此外,AD9833与单片机结合,实现0度、90度、180度、270度移相方波,也是比较麻烦的。
现在的单片机,速度快,可以直接合成音频波形,同时精确输出移相方波。
单片机DDS算法原理:
正弦函数y=sin(x),其中相位量x与时间成正比。即相位x随时间增加而线性增加。
先产生随时间线性变化相位序列x,同时利用查表法得到sin(x)的值,并利用DAC将sin(x)的值即时输出。
在单片机中设置定时器,每隔dT时间,相位累加dX,就得到x,x+dX,x+2dX,x+3dX……的相位序列。每产生一个相位,同时输出相应的sin(x)值。
算法确定后,接下来就看硬件上是否支持以上算法,如果支持,写出相应程序即可。
在单片机的内存中,存放了方波函数值查询表、正弦波函数值查询表,dT中断来到时,先输出x对应的正弦波数值,接着在另一个端口马上输出x+0度(或x+90度)方波函数值。这样就得到了LCR电桥所需的两个信号源。当前输出方波是x+0度还是x+90度,dT中断期间,不要使用if语句来判断,而应写面“x+初相变量”的形式,初相变量是事先设定好的。这样,x+0度方波与x+90度方波之间的相差就是严格的90度关系。
-----------------
用这种方法,对精度有影响吗?我不主张.4分频的相位不是更准确吗. |
|