- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于AD9851的信号发生器
最近几年的电子设计大赛,差不多每年都考了DDS的设计。本人曾经也调试过DDS,但走了一些弯路,在这里写下一些心得,希望能对初调者有点帮助。下面将有电路图,以及详细的代码。
? 学过FPGA的同仁们,应该对DDS的原理就会有很好的理解了。用FPGA是很容易把一个简单型的ad8952烧出来的!其实原理相当的简单,无非就是由相位累加器,相位调制器,正弦查找ROM,DAC构成。通过改变相位累加的增量就很容易的改变的输出的频率了。
? 如果相位累加器(频率控制子)的位宽为N位(ad9851的N=32位)这就意味着把一个周期的正弦波形离散成了2的N次方个点,把这些点的幅值存在一个ROM中就构成了正弦查找ROM。如果系统时钟为Fclk,即把Fclk分成了2的N次方份。如果此时的相位累加增量为(频率控制字)为B,那么此时的输出频率应为Fout=(B*Fclk)/ N。显然B=1时其最小值为Fclk/ N。B的值也不能太大,否则会输出失真波形。Fout的最大值理论上应该至少小于Fclk/4。所以要想提高输出频率的最大值,就得靠提高系统的外部时钟Fclk。
?? 下面结合本人的代码来具体讲讲AD9851的应用。
AD9851的一些具体介绍这里就不说了。其DATASHEET上都说的很清楚。若看不懂E文,可以发E_M给我,我有中文资料。AD9851要写40位的控制子。其中前面32位就是频率控制子了。后面是有1个6倍频使能位,1个logic0位,1个POWER_DOWN位,还有5位相位模式字。这里我们只解决频率控制问题。也就是说在代码中本人只写了,32位的频率控制子,还有一个6倍频使能。其余的剩下几位由于没用到也就默认写为0了。AD9851可以用并和串俩中方式写入控制子。
其串行发送方式的控制子表如下:
本人主要将用串写控制子的时序与代码。其并的方式的代码也会给出。硬件电路图网上有很多资源,自己去找找!
主要看看代码吧:
/*************************************************************
?ad9851串口驱动程序
?2007-8-28water
************************************************************/
#include reg52.h
#include intrins.h
#include ABSACC.H?
//定义管脚
sbit???? D7=P3^3;???????????????? ?????? //控制子串传送位
sbit???? DDS_FQUD=P3^4;???????? //更新发送频率
sbit???? DDS_CLK=P3^5;???? //接外部晶振时钟 这里为30M
unsigned long control_word(float? freq);
void send_control( unsigned long? bytedata);??
?
void AD9851Init(void)???????????????????? //DDS初始化函数,包括DDS复位和初始化为串行发送
{
????? DDS_CLK=0;
??? DDS_FQUD=0;
??? DDS_CLK=1;
??? DDS_CLK=0;
??? DDS_FQUD=1;
????? DDS_FQUD=0;
}
?
main()
{
????? unsigned long? x;
????? DDS_FQUD=0;
????? AD9851Init();
????? x=control_word(500000);
?????
????? while(1)
????? send_control(x);
}
?
//计算9851控制字,freq为你要输出的频率
unsigned long control_word(float freq)?????????? ???????????
{
unsigned long? water;
water=23.86115*freq;//外部晶振为30M,6倍频后180M,其关系由公式算出。
//water=143.456*freq;????? //若不用6倍频,则其关系
????? return(water);
}
?
//发送控制字
void send_control( unsigned long? bytedata)
{?
???? int i;
????? ?unsigned char model=0x01;//模式选择为六倍频
???? DDS_FQUD=0;
???? _nop_();_nop_();_nop_();_nop_
您可能关注的文档
- (李博文)基于51单片机的投币刷卡系统的设计与实现.doc
- 《基于网络资源英语教学的的设计与实现》硕士研究生学位36032142.doc
- 【基于特征的,参数化建模系统的CAD CAPP CAM集成系统的设计与实现】.doc
- 1_5144233_基于单片机的简易电子琴的设计与实现.doc
- 51单片机-毕业设计基于单片机设计的红外线遥控器的设计与实现.doc
- 51单片机介绍及基于单片机控制汽车防盗系统的设计与实现.doc
- 2061224236-张婷-论文-基于单片机STC89C52控制的智能小车的设计与实现.doc
- Lucene基于Java的全文检索引擎简介78571943.doc
- plc毕业设计(精装版)---基于PLC的糖果包装机的控制系统办公自动化系统的分析与设计.doc
- 毕业论文(设计)-基于PLC的自动化立体停车库自动控制系改进粒子群算法求解TSP问题.doc
最近下载
- 五年级下-1000道口算.docx VIP
- 2025年中国四氯化锆项目投资计划书.docx
- 病原微生物实验室生物安全风险管理指南RB∕T 040-2020.doc
- 2025年艺术学概论.pdf VIP
- 【精校版】2025年高考天津卷政治试题(Word版含答案).doc VIP
- 初中历史 2023-2024学年广西河池市金城江区九年级(上)期中历史试卷.pdf VIP
- 《2 欢快流畅的线》教学设计2024-2025学年小学美术一年级上册人美版(2024).docx VIP
- 2023北京八十中初二(上)期中语文(含答案).pdf VIP
- 自考10177《设计基础》考前复习重点(保密资料).pdf VIP
- 戒烟门诊服务及创建.pptx VIP
文档评论(0)