4.软件设计
STM32F103ZE单片机控制AD9850产生频率和相位都可控制的正弦波,频率量由键盘决定,步进量为1 Hz.A D 9 8 5 0频率分辨率为0.029104Hz,完全能够满足要求.正弦号送入到DAC0832的基准电压输入端VREF,单片机控制D/A转换器的数字量调节其幅值,设置按键调整值实现100mv的步进.设置按键调整占空比和幅值,单片机通过对AD9850内部比较器的控制,从而改变方波的占空比和频率.方波信号送入到DAC0832的基准电压输入端,单片机控制D/A转换器的数字量调节其幅值,设置按键调整幅值可实现100mv的步进,如图7.
5.系统测试结果及误差分析
表1所示为正弦波测试结果,表2所示为方波测试结果.
5.1 图8是正弦波输出的实测幅度相对误差图
图中蓝红青紫色曲线代表预设幅度值分别是0.1V.1V.2V和3V的正弦波输出的幅度相对误差.其中一条曲线代表预设幅值确定时,预设不同的频率时,正弦波输出的幅值相对误差.从图中可以看出相对误差控制在一定的范围内.而系统输出的正弦波频率与预设频率之间的平均相对误差约在0.0021%,误差极小.
5.2 图9是输出方波占空比相对误差图
从图中可以看出占空比相对误差控制在一定的范围内,其平均占空比相对误差约0.31%,大部分相对误差较小.而方波的输出频率与系统的预置频率之间的平均相对误差达到约0.005%,误差率很低.幅值平均相对误差约0.303%.由此可见,系统输出的方波相关参数的误差均较小.
5.3 造成误差的原因有很多
造成误差的原因有很多,系统本身的硬件就会产生一定的量化误差.比如芯片本身所带来的误差,还有就是焊接电路时的电路布局和电路走线,这也会引起一定的误差和干扰.
6.总结
本系统实现了可控正弦波和方波的生成,并在1 0位数码管显示其基本要求.D D S芯片AD9850产生的信号源,频率稳定,误差小.
在实践测试中得知从AD9850输出的正弦波幅值会随频率变化,最后通过软件编程明显减少了幅值误差.关键部分在于产生占空比可控的方波,最后通过单片机对DDS内部比较器的控制来实现方波的占空比可控,可控结果很理想,误差很小,精确度高,达到了系统的要求.