您好、欢迎来到现金彩票网!
当前位置:秒速牛牛官方网站 > 调试例程 >

c51单片机驱动AD9954的程序及调试

发布时间:2019-06-03 23:41 来源:未知 编辑:admin

  线MHz的系统时钟就先不说了,居然可以用控制字Amplitude Scale Factor (ASF:0x02)调节输出信号的幅度,前提是打开CFR1中的OSK Enable。并且14bit的长度也能够达到足够高的幅度控制精度了。当时作信号源的时候,还用外接AD835+TLV5638控制幅度,现在想来真是憨啊。

  还有就是,输出信号的相位可调。控制字Phase Offset Word(POW0 0x05)中含有14bit的相位偏移控制字,因此相位调节的精度也是相当高的,可达360°/16384 = 0.022°,在大多数情况下肯定够用,比AD9851的5bit控制字(360°/32 = 11.25°)强多了。具体见程序1。

  然后想尝试一下线性扫频功能(Linear-sweeping Mode),调了一整天都没出来,然后就放假回家了。

  最近在搞毕业设计(频率特性测试仪Frequency Response Analyzer)的同时,又把原来的AD9954测试板拿出来调试,Single-Tone Mode当然是没问题的,这次主要是再一次研究Linear-Sweeping Mode。于是打开原来写的程序,看了一会儿,调了一会儿,突然发现一个极其简单的错误——控制字的一个字节位置写错了,改过来再测试,一切OK。具体见程序2。去年居然花了一整天去查都没查出来,Wordless。

  好了,现在该最后一关了——RAM模式。Datasheet有关章节再看了一遍,然后大概写了一个程序试了一下,出来的波形一团糟。于是参考了AD官网的AD9954示例代码(ASM的,具体见程序3),并和自己写的一步一步对比,最后终于搞定了。是因为向RAM写数据的时候,只需要在第一次送数据前送一次RAM指令字节(RAM:0x0b),具体见程序4。但是我没注意到这一点,每次数据前都送一遍0x0b,结果就悲剧了。不过最后还是发现原因了,嘿嘿!

  利用AD9954的RAM Mode可以很方便的实现对数扫频,只需要计算出相应的对数频率点并存储进RAM即可。

  除此之外,AD9954还可以实现高速调频波。如果固定波表1000个点,那么调制波的频率可以是100kHz,50kHz,33.33kHz……,即100/n kHz(n正整数)。如果采用不定波表500~999个点,则可以实现200kHz以内的,调制波的频率步进不大于0.4%的调频波。但实现起来有些麻烦,所以一般不用AD9954作调制波频率连续可调的调频波信号源。

  现在AD9954的程序部分了解得差不多了,等毕业设计结束之后,有时间了就升级一下以前做的信号源。AD835,TLV5638直接去掉,再加入比较基础的调频/调幅功能,还有就是加入一个EEPROM用于幅度校准存储。另外,硬件电路方面做一板PCB降降噪声,同时功放输出的功率也要提升到10Vpp@50欧负载。

http://sec-ir.com/diaoshilicheng/172.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有