- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用AVR单片机制作DDS信号源近年来,DDS(DirectDigitalFrequency
用AVR单片机制作DDS信号源
近年来,DDS(Direct Digital Frequency Synthesis直接数字频率合成器)技术日趋成熟,DDS芯片以其较高的性价比而被广泛采用:DDS相对带宽较宽、频率转换时间短、频率分辨率高、输出相位连续,可产生宽带正交信号及其它多种调制信号,有全数字化、控制灵活方便的优点,已广泛应用于通讯、导航、雷达、遥控遥测、电子对抗以及现代化的仪器仪表工业等领域。本文以AD9851为例介绍了一种常用DDS芯片(AD985X系列)的控制方法,并配合AVR单片机ADC和PWM接口完成一定频率范围内的AGC(自动增益控制)功能,还可模拟FM调制,采用LCM1602作为显示器件,操作直观简便,性能稳定。
DDS简介:
DDS的基本原理是利用采样定理,通过查表法产生波形。DDS的结构有很多种,其基本的电路原理可用图1来表示。
图1
相位累加器由N位加法器与N位累加寄存器级联构成。每来一个时钟脉冲fs,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。 用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。最后用低通滤波器滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。
工作原理:
电路原理如图2所示,可分为四个部分:以IC1为核心的DDS;以IC2为核心的键盘、显示及控制电路;以IC3为核心的AGC电路;以IC4为核心的检波电路。上电后,ATmega16复位,之后对AD9851初始化并使其输出最后一次设置的频率,AD9851输出的信号经C6~C10及L1、L2组成的滤波网络送入AD603。这里采用了AD603的典型接法,1脚和2脚的电压差决定了AD603的增益,如果1脚的电压大于2脚的电压,则AD603处于放大状态,差值越大增益越高;反之1脚的电压小于2脚的电压AD603将会衰减输入信号,增益控制灵敏度为25mV/dB。AD603的输出信号的一路由D1、R12、R13、C17组成的电路检波后经LM358直流放大送入ATmega16的模/数转换通道0,即ADC0,其中R10、R11、D2组成钳位电路使D1刚好导通,稳压二极管DW用于保护ADC0,防止对其输入过高电压。ATmega16将从ADC0采样到LM358的输出电压与内部预先设置好的数值进行比较,如果比设置值大,说明AD603增益过高,则ATmega16的PD5脚输出的PWM脉宽变宽,经三极管V构成的滤波电路后输出的直流电压降低,即AD603的1脚与2脚电压差减小,AD603的增益下降,输出信号的幅度减小,然后ATmega16再对其采样,直到与设置值相等PWM脉宽就不再变化。
图2
软件设计:
编译环境选用CodeVesionAVR,它有丰富的库函数可以调用,使源代码简化。
控制AD9851
AD9851的控制字共40位W0-W4,其中低32位Freq-b0~Freq-b31为频率控制字,用于控制DDS的输出频率。AD9851的串行模式下,第一个写入的位是Freq-b0,最后一个写入的位是Phase-b4。
下面程序中,“dds”和“freq”都是长整形变量,“freq” 是想要设置的
dds=23.860929422*freq;
频率值,“dds”是将要写入AD9851的值。这是因为DataSheet指出(=十进制32位频率控制字,表示系统时钟,这里是30MHz6=180MHz),因此。如果您对计算结果不放心,可登陆AD公司官方网http://designtools.analog.co m/dtDDSWeb/dtDDSMain.aspx?part=AD9851模拟验证,验证前务必正确设置参数。
以下是将预置频率写入AD9851的参考程序:
void write_dds(unsigned long dds)
{
unsigned char i;
load=0; //准备输入数据
clk=0;
for(i=0;i40;i++)
{
clk=0; //模拟同步时钟
delay_us(2); //延
您可能关注的文档
最近下载
- 注册会计师-会计-突击强化题-第4章-无形资产.docx VIP
- 大学创新英语综合教程1课后习题答案.pdf
- 注册会计师-会计-突击强化题-第3章-固定资产.docx VIP
- 注册会计师-会计-突击强化题-第2章-存货.docx VIP
- 女生心理健康知识讲座.pptx
- 标准锥齿轮有关参数计算公式及示例.xls VIP
- 桐乡市各级文物保护单位一览表(2018版).docx VIP
- 2025年注册会计师《会计》章节练习题精选(带答案解析).doc VIP
- 土石坝平面布置图识读水利工程图识读与绘制.pptx VIP
- 2025年全国工程监理行业知识竞赛题库-GB55030-2022建筑与市政工程防水通用规范.docx VIP
文档评论(0)