微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机模拟dds信号发生器

单片机模拟dds信号发生器

时间:12-01 来源:互联网 点击:

刚开始想用单片机做个频率连续可调的信号发生器,后来就联想到了当时用FPGA做的DDS信号发生器了。然后上网搜资料,哈哈,这个还真有人做过,大概看了一下人家的讲解,就开始干活啦!

DDS信号发生器的频率计算公式如下:


其中fout为输出频率,M为累加器每次的步进值,N为累加器的位数,我这里采用的是unsigned int 16位的累加器。在FPGA系统中这个fc为系统时钟,也就是有源晶振经过分频后的频率。但是在单片机中我们只能用单片机进中断的频率来作为fc。

fc的设置需要注意的是1、进中断的周期要大于中断程序执行的时间 2、进中断的周期也要大于DAC两次写入数据的时间。

我采用的硬件stc12c5a08s2 24m晶振 dac0832

上最终效果图


几个频率的测试波形

10Hz频率测试



正弦波

方波



三角波



锯齿波

制作经历:

昨天用单片机模拟个DDS信号发生器,画了个板子。从开始做板子就各种不顺。。。。。。打印时打印机没墨啦,地线我用的铺铜,悲催的是铺地墨太浅,没法只好拿着油性笔把地线重新描了下。好吧,做板去,腐蚀顺利。然后拿到板子测量电源和地没短路,开始焊接,一切顺利。再次检测电源和地是否短路,万用表讨厌的滴滴声想起来啦。。。。。。啊苍天啊,短路啦,我焊接水平没那么差吧,一个小板子竟然焊短路 啦!好吧开始检查电路,把电源线从头看到尾看不出来短路啊,好吧再看两遍,还是没短路啊。没法开始上刀子割电源线,割了两刀短路范围缩小啦,然后就逮着那一小段电源线左看右看上看下看没短路啊,当时就有点崩溃。然后打开pcb,就沿着这条线对电路,晕死。。。。。。问题是我描地线时把复位按键当做独立按键啦,本来接电源的线硬给画到了地上,割开不短路啦。可是我焊接前测试啦啊,没短路啊亲,怎么突然蹦出来电路缺陷短路啊,见鬼。上电,电源灯不亮。。。。。。赶紧拔下电源,摸摸芯片不热啊,准备好万用表,直接接在单片机的地和vcc上,上电,电压正常,怀疑电源灯电路可能断啦,一摸led焊盘直接翘起来啦,这的归功于那没墨的打印机。然后补线,硬件搞定

下载测试程序,咦,下不进去!我一开始怀疑下载管脚没接紧,我就轻微晃晃它,咦,怎么这么活络,翻过啦瞅瞅,下载的两条插针焊盘全完蛋啦,好吧使用替换法,在其他板子上下载程序试试,可以下进去,片子没问题,然后把片子装到原来那个板子上,检测程序不运行。上示波器测试晶振管脚,没波形,哈哈,问题锁定,晶振没工作。这个晶振是在其他板子上拆的,是不是拆时间长烧坏啦,换晶振,还不工作,好吧,我换30p电容,检测晶振有波形,程序运行,一切搞定!!!

总结越悲催越是小问题不断。。。。。。

注:中间来回拔单片机,一不留神,单片机两根管脚硬生生钻进手指里!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top