您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 编程注意事项和寄存器介绍
关于这篇翻译的几点申明1.翻译参与人员是成都信息工程学院的王堃邓练王继承。2.由于能力和时间有限,只翻译了自己觉得对我们这次培训有用的部分。其它部分希望有兴趣的人自己查阅PDF.3.这个翻译是基于AD公司的AD9954的PDF的,翻译了部分页数的部分内容。有部分内容由于在一个“AD9954中文“的PDF上有了说明,我们就没有再翻译,有需要可以联系我们。4.这篇文章是翻译来我们自己查阅用的,如果你在使用这个文档的所产生的问题责任由你自己负责,所有错误都是因为你不自己看PDF!!:-)5.不需要感谢,只需要大家在传阅这篇翻译的时候不要删除这几点申明。6.有任何问题可以联系我们QQ:王堃4164162邓练16519653王继承4051170247.时间:2007-8-118.地点:成都信息工程学院高频培训实验室几个核心词汇的解释:(PDF13,14页)参考频率:REFCLKInputAD9954有几种生成内部系统时钟的方式,片上的振荡环路可以通过外部的时钟输入引脚链接的晶振产生一个低频参考信号。系统时钟可以通过内部的一个锁相倍频使低频的输入信号生成一个低频信号源的供给系统高采集率的DDS和DAC使用。为了得到最好的效果,外部晶振要尽量稳定,无噪声。通过对CLKMODESELECT引脚,CFR14和CFR27:3的设置可以设定系统的时钟工作模式,需要注意这些引脚只支持1.8v的逻辑电压,不支持3.3v的逻辑电压。CLKMODESELECT引脚为高的的时候,激活了内部震荡回路,通过外部晶振输入的频率,系统产生一个缓冲过的信号。当内部时钟被禁用时,外部晶振必须提供一个参考频率,对于不同的操作,如果是单端输入参考频率的话,应该在不用的引脚和模拟VCC之间连接一个0.1uf的电容。有了这个电容,时钟输入引脚的偏斜电压(biasvoltage)会是1.35V.5号框图是对时钟工作模式设置的总结。注意对锁相环的倍频是通过CFR27:3这几个位进行设置的,和CFR14是相互独立的。倍频器:片上的锁相环电路可以参考频率进行倍频。通过对CFR27:3.这几个控制位,可以设置倍频率。倍频值是在0x04到0x14之间(4——20倍)。编程时使用者应该考虑倍频器的最大输入频率,在倍频比修改后,必须有一段时间的延时让锁相环去锁定。(大概1ms)ThePLLisbypassedbyprogrammingavalueoutsidetherangeof4to20(decimal).Whenbypassed,thePLLisshutdowntoconservepower.(这一段不理解,大家自己查阅吧)。压控振荡器VCO可以通过对(CFR22)位的设置进行精确范围的设置。环路滤波器(loopfilter)链接的电容和电阻的推荐取值在框图4上。DAC输出和大多数的DAC不一样的是,AD9954的参考点是AVDD,而不是AGND。两个双向输出端提供一个最大值输出电流,微分输出可以减少DAC输出产生的共态噪声,从而有更好的信噪比。最大电流是由外部DAC_RSET引脚和DACground引脚直接链接的电阻RSET决定的,计算方程如下。RSET=(39.19/Iout)最大输出电流是15MA.限制到10ma以下有更好的spurious-freedynamicrange(SFDR)效果。DAC输出-5.0v到+5.0v之间。超出这个范围会产生过载以至于烧毁DAC输出电路.要注意输出电压不要超出这个范围。比较器:许多应用都是方波而不是正弦波,该芯片为了支持这种应用,自身带有片上比较器,片上比较器特点为带宽大于200M,电压输入范围为1.3到1.8,比较器可通过使用控制字——CFR16进行关闭,目的是降低电源功耗频率累加器:该板块采用线性扫频模式,从开始频率(F0)转变到终点的频率(F1)不是即时的,而是以扫频或者跳变的方式进行转变。跳变模式可通过步进在F0-F1中间任意频率完成,线性扫频板块是用上升或者下降三角频率改变控制字和上升下降三角频率的斜率以及频率累加器实现。通过CFR!21使能线性扫频模块,线性扫描没有固定某个位去建立某一方式,用以在扫描过程中达到终点频率。频率控制字:参照图2,三个不同的资源组成频率控制字,为dds核心提供相位累加器的累加值:频率累加器,静态RAM,和控制逻辑寄存器。实际应用中静态的输出频率或超过四被预置输出频率需要被转变,在一些在变或不明确的次序中,设定FTW的首选方法是设定FTW0寄存器的值。如果应用中需要预置超过四个特殊程序控制字或者需要写一个预置控制字序列,可以将FTW写到片上RAM上,通过管脚的设置可以在一套或者一系列之间进行切换。(PS0,PS1)应用中如果需要一个稳定的扫频,就需要设置第二频率计数器。尽管累加器的值是使用者编程得到的,但是程序中一定要制定写些规则来避免溢出DDS核DDS的输出频率Fo是通过一个方程计算出来的,方程涉及系统时钟(SYSCLK),频率设置字(FTW),和相位累加器的容量(232,这个芯片).方程如下fO=(FTW)(fS)/232;0≤FTW≤231fO=fS×(1−(FTW/232));231FTW232−1注意根据FTW的取值不同,方程是不一样的。在每个时钟周期,FTW被写入到相位计数器中(有点像单片机的自动计数模式—本人自己的想法)。相位累加器的输出值和用户自己预先定义的14位相位设置字(POW)相加.这个19位的数值会通过一个余弦COS功能转化成一个幅度值(amplitudevalue)。消除掉较低的几位可以有效的减低功耗。这个消除不会降低频率分辨率。在某些应用中,可能需要产生一个0相位的输出信号,单纯的把FTW设置为0不能完成这个要求。必须把DDS核的输出相位值进行设置,有一个控制位是专门用来让相位计数器输出0相位的。上电后,相位累加器清除位自动为1.但是这一位相对的缓冲存储器是0.所以,在上电之后,相位累加器在第一次I/O更新之前是零。I/O更新把数据从数据缓存传输到数据寄存器。查阅SYNC_CLKandI/OUPDATE部分了解细节。同步-寄存器更新SYNCHRONIZATION—REGISTERUPDATES(I/OUPDATE)输入到AD9954的数据通过SYNC_CLK信号实现同步。I/O更新是在SYNC_CLK的上升沿进行的。系统内部,SYNC_CLK信号通过一个四分频器转换成SYNC_CLK信号.SYNC_CLK信号在SYNC_CLK引脚上有输出。这样使得外部硬件和系统通过系统内部的时钟同步。I/O更新信号和SYNC_CLK信号,是用作把内部缓存里面的数据发送到控制寄存器里。他们可以保证使用者在修改数据字的时候是在一个稳定的连续的脉冲条件下。(保证时序的正确)23号图和24号图对同步,I/O更新通讯时序进行了描述。这些时序中需要注意的是以下几个方面:1)、i/o更新信号是边沿检测信号,这个信号没有对时间长度的约束,但是最小的低电平周期是一个SYNC_CLK时钟周期。2)、I/OUPDATE引脚在SYNC_CLK的上升沿置高和保持。设置和保持规范查阅TABLE2.从PDf24页左下开始:操作实例:(exampleoperation)作为一个示例,给幅度比例因子(ASF)寄存器写一个最大值一半的刻度值。首先计算出0.5对应的二进制数值。因为ASF是16位宽的数据,所以等效的的数值应该是0x80。然后,如果是高位在前模式(MSB),发出一个指令字节0x02(ASF的内存地址是00010b),通过这个指令,内部控制器选择对应的内存地址的寄存器,然后发现ASF是2byte宽,串口计数器设置为16(应该是自动的),然后开始等待SCLK的16个上升沿,然后依次从SDIO读取1000000000000000.在低位在前的模式(LSB)下修改ASF寄存器的值基本上和MSB模式下一样,不过数据是相反的。0000000000000001.RAM串口操作通过串口操作的方法是和其他串口通讯基本上一致的,但是读取的8位单元(byte)的数量是通过内存地址的开始地址到截至地址之间的长度定义的。内存段控制字(RSCW)。结束地址是I/O传输的最高位,开始内存地址是I/O传输的最低位。(所以这里要考虑你的传输模式是MSB,还是LSB,根据情况修改传输数据的时序。)通过设置CFRI《8》,RAMI/O支持LSB和MSB这两种模式。MSB模式时第一个字节(byte8位)是整个内存地址的最高位,接下来的三个字是依次组合成接下来的3个字节(byte8位)是对较低的三个字节依次进行设置。LSB模式刚好相反。(PDF对这里描述比较烦琐而且重复,就没有继续翻译了,有疑问的可以自己查阅PDF或者联系我们。)串口操作注意事项设置的改变在对CFR19:8这个寄存器写值之后就马上实现了。如果是多字节的写指令,对这两个寄存器位写指令应该是在整个通信周期的中间。(所以应该对剩下的字节改变量后进行依次重新书写CFR1,以保证整个修改全部刷新---括号里面是我自己的理解,希望大家有选择的读取)。系统必须保证时钟同步以保证AD9954可以识别每个外部逻辑控制字。比如,如果系统发送一个指令字节去修改一个2-byte(16位)的寄存器,但是对SCLK产生了3个字节(24次)的脉冲,即产生了多余的24个脉冲,那么通讯同步就丢失了。这种情况下,最开始的16个SCLK上升沿里面读取的数据被存储进了你所选择的寄存器,但是后面的八个上升沿则会被AD9954理解为下一个指令字节。为了防止AD9954和系统之间的不同步,IOSYNC这个引脚可以对AD9954的串口状态控制器进行重启。如果要对RAMprofile进行读取那么必须操作PROFILE控制引脚(PS1和PS0)。通过对PS1和PS0的设置可以片选你所需要的RAM寄存器。然后进行读取。指令字节指令字节包括以下信息:MsbD6D5D4D3D2D1LSBR/wxxa4a3a2a1a0这里是一个草图,具体请查阅PDF.R/W:这一位是控制是对内存地址的写操作还是对内存地址的读操作的。R就是读,w就是写1:读0:写X,x:d6,d5这两位可以不用关心。a4a3a2a1a0:这里是对所要操作的内存地址进行设置。每个存储器所对应的内存地址请在内存框图上查找。(参考PDF表12,13)内存地址框图及介绍图12和13是内存地址的框图。可用的内存地址是由linearsweepenablebit位决定的。有些寄存器的内存地址可能会由于操作模式的不同有所改变。特别的是:0x07,0x08,0x09,0x0a这几个寄存器会受到影响。因为linearsweepoperation(直译直线扫描操作)的优先级高于RAM操作。AD公司建议在linearsweep被使能的情况下,通过bitCFR131把RAM操作禁止。通过对CFR121的设置去保证电源(conservepower).串口地址数与每个寄存器关联,””这个符号描述了特殊位和位的范围。比如:3指的是第三位(bit3),7:3指的是这个范围是bit7到bit3之间。CFR121直线扫描和RAM操作控制位。0:RAM操作模式。1:直线扫描操作模式。寄存器控制位描述接下来是图12.13请参考PDF这里就不再列出。寄存器控制功能NO.1CFR1被用来控制多种功能,并且控制AD9954的模式。每位的功能。CFR131:RAM使能位CFR131=0(默认):RAM不能被操作。单音操作模式或者直线扫描模式被允许。CFR131=1:RAM允许被操作。正常存取控制操作被RSCW模式控制位控制为了电流分布。CFR131:RAMEnableBitCFR131=0(default).TheRAMisdisabledforoperation.Eithersingle-tonemodeofoperationorlinearsweepmodeofoperationisenabled.CFR131=1.The
本文标题:编程注意事项和寄存器介绍
链接地址:https://www.777doc.com/doc-3274333 .html