- 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
- 嵌入式-基于51单片机的简易数字电压表的设计与开发.doc
- 嵌入式-基于51单片机的交通灯的设计与开发毕业论文.doc
- 嵌入式-基于51单片机的交通灯控制系统的设计与开发.doc
- 嵌入式-基于51单片机的酒精测试仪的设计与研究(整理版).doc
- 嵌入式-基于51单片机的酒精测试仪的设计与研究.doc
- 嵌入式-基于51单片机的酒精检测仪的设计与研究(整理版).doc
- 嵌入式-基于51单片机的酒精检测仪的设计与研究.doc
- 嵌入式-基于51单片机的频率计的设计与开发.doc
- 嵌入式-基于51单片机的抢答器设计的开发与实现.doc
- 本科毕设-基于adaboost算法的人脸检测设计的开发与实现.doc
- 本科毕设-基于AHP法的工业工程专业大学毕业生质量评价研究.doc
- 本科毕设-基于AHP决策分析法的宁南山区县域生态旅游资源的开发评价.doc
- 本科毕设-基于android 的课程表开发的设计与实现(整理版).doc
- 本科毕设-基于Android车载虚拟仪表人机界面的设计与实现(整理版).doc
- 本科毕设-基于Android大学课程及日记管理.doc
- 本科毕设-基于Android的GPS的设计与实现(整理版).doc
- 本科毕设-基于Android的MP3播放器的设计与开发.doc
- 本科毕设-基于Android的MP3播放器开发设计的开发与实现.doc
- 本科毕设-基于Android的传感器游戏的设计与实现(整理版).doc
最近下载
- Korn-Ferry-方案-构建成功者画像.pdf VIP
- 铭记抗战历史,弘扬爱国精神——纪念抗日战争胜利八十周年主题班会.pptx VIP
- 扣押决定书文书范本.doc VIP
- 人民大2024现代大学美育 教学课件认识美——万物皆美(第一章 美是什么)(1).pptx VIP
- 人民大2024现代大学美育 教学课件认识美——万物皆美(第二章 何为美育)(1).pptx VIP
- 项目策划培训课件.ppt VIP
- 人民大2024现代大学美育 教学课件艺术美——美美与共(第十一章造型艺术美)(陈琳、刘晓晓).pptx VIP
- 大学美育课件:中国艺术美-音乐美.pptx VIP
- 文化旅游项目策划报告.pptx VIP
- 大学美育课件:中国艺术美-绘画美.pptx VIP
文档评论(0)