AD9779A的寄存器配置及PLL频带优化

发布者:technology78最新更新时间:2011-03-14 来源: 现代电子技术关键字:AD9779A  高速教模转换器  SPI  S3C2440 手机看文章 扫描二维码
随时随地手机看文章

    随着科学技术的发展,通信、测量等各个领域对信号源的要求越来越高,高速任意波形发生器成为市场的热点。高速DAC作为任意波形发生器的关键部分,其性能对高速信号有着极大的影响。AD9779A是目前国内能买到的性能较高的高速DAC芯片,内部集成PLL倍频电路、同步控制、增益控制等功能模块,通过SPI接口和外部通信,可以设置优化各种功能以达到最佳性能。

1 AD9779A简介
    AD9779A是Analog Devices公司生产的双通道16位高速宽动态范围数DAC,采样率1Gsps,允许高至奈奎斯特频率的多载波生成。0.18μm CMOS工艺制作,工作电压1.8~3.3 V,采样率1 Gsps时功耗1 W,具有高速、低功耗的特点。AD9779A还包含低噪声高性能的PLL时钟倍频电路,可以减轻板级时钟输入的负担。AD9779A可以应用在无线基础设施(WCDMA/CDMA2000/TD/GSM)、数字频率合成、宽带通信等领域。

2 AD9779A的SPI通信方式
2.1 AD9779A的SPI接口简介
    SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信,以交换信息。通过AD9779A的SPI接口可以配置内部的寄存器,设置各种功能以达到设计要求。AD9779A的SPI接口支持单字节或多字节传输,包括高位优先和低位优先格式,由4根线组成,分别是:
    ①串行时钟(SCLK),作为数据输入输出的同步时钟,最大时钟速率40 MHz。输入数据在时钟的上升沿锁存,下降沿数据输出。
    ②片选信号(CSB),低电平开始通信周期并保持到通信周期结束,高电平时SDO和SDIO为高阻态。
    ③串行数据输入/输出口(SDIO),该引脚既可作为单向数据输入口,也可作为双向数据输入输出口,通过寄存器(0x00,bit7)控制,默认为单向数据输入。
    ④串行数据输出(SDO),作为数据输出口,SDIO配置为双向端口时,SDO为高阻态。
    内部配置的任何改变会在最后一位写入后立刻生效,因此,当有多个字节写入到寄存器中时可以在一个通信周期中改变配置。同时,为了预防意外情况,改变寄存器配置时推荐使用单字节传输。
2.2 SPI接口操作
    AD9779A的一个通信周期包括两个阶段。
    第一阶段是指令周期(向设备写指令)与前8个SCLK的上升沿一致。指令字节规定串口控制器数据周期,也就是通信周期第二阶段的数据传输是读还是写,数据传输的字节数和第一个寄存器的地址。每个通信周期的前8个SCLK上升沿用来向设备写指令字节。
    剩余的SCLK是通信周期的第二阶段。第二阶段是设备与MCU实际的数据传输阶段。每次可以传输1~4个字节,传输的字节数由指令周期决定。寄存器在每个字节的最后一位写入后立刻改变。
    SPI指令如表1所列。


    ,决定是读操作还是写操作。逻辑1读操作。逻辑0写操作。
    N1和N0决定数据传输周期中传输的字节数。N1、N0表示的字节数如表2所列。


    A4~A0确定在数据传输时哪个寄存器可以被访问。在多字节传输时,这个地址是起始字节地址,其余寄存器地址由器件自动产生。最高位优先的寄存器配置时序如图1所示。


2.3 AD9779A的主要寄存器介绍
    AD9779A内部有32个寄存器,每个寄存器8位,每位都有自己特定的功能。AD9779A的主要寄存器如表3所列。

[page]

3 AD9779A的寄存器配置

3.1 硬件设计
    本文采用三星公司S3C2440作为为整个系统的控制芯片。S3C2440是ARM微处理器,它包含LCD控制器、SDRAM控制器、3通道UART、音频接口、USB控制器、2通道SPI等,其低成本、高性能的特点适用于各种嵌入式领域。S3C2440作为主设备对从设备AD9779A进行配置的硬件连接如图2所示。


    S3C2440A的SPI接口可以和外部设备同时发送/接收8位数据,用一个时钟线来同步。当SPI是主机时,传输频率通过设定SPPREn寄存器的相应位来控制,最高速率应小于25 MHz。如果SPI是从属,其他的主机提供时钟。设置一个GPIO作为nSS,当程序写数据到SPTDATn寄存器时,如果ENSCK、SPCONn寄存器的MSTR被置位,SPI发送/接收操作会同时开始。在写字节数据到SPTDATn之前,nSS应该被激活。
    SPI接口编程基本步骤如下:
    ①设置时钟波特率预分频寄存器(SPPREn);
    ②设置SPCONn配置SPI模块;
    ③设置一个GPIO引脚,其作为nSS,低电平片选使能;
    ④发送数据→检查数据传输准备标志(REDY=1)的状态,然后写数据到SPTDATn;
    ⑤接收数据→写数据0xFF到SPTDATn→确认REDY置1,然后读取缓存数据;
    ⑥nSS拉高,解除片选。
3.2 软件设计
    软件设计主要实现S3C2440读写AD9779A寄存器的功能,为后面的PLL频带锁定做准备。在ARM Realview MDK环境下使用C语言编写软件。

[page] 4 PLL在环境温度下的频带优化锁定
    AD9779A的PLL VCO(压控振荡器)有效运行范围1.0~2.0GHz,在这个范围内有63个频率重叠带,如图3所示。对于期望的VCO输出频率,有多个有效的PLL频带值供选择。但各个频带的锁定范围随温度的变化而变化。各个频带的中心频率随温度的升高而降低,随温度的降低而升高。每个器件在特定的温度下都有一个最优的PLL频带选择值,而且各个器件之间也有30~40 MHz的误差。因此,需要为每个器件选择合适的PLL频带值。


     AD9779A具有PLL频带自动选择功能,当自动选择功能启用时,能得到一个PLL的锁定频带,通过SPI读取相应的寄存器得到该频带值,即当前温度下的优化频带。为了在整个温度范围内获得最佳的PLL性能,PLL必须用表4所列的设置。


4.1 使用温度传感器配置PLL频带
    当器件在一个极端温度下启动,PLL自动模式下得到的频带值在另一个温度下可能无法保持锁定。AD9779A在-40~+85℃环境下的PLL频带配置方法如下:
    ①配置N1(Register 0x09,Bits[6:5])和N2(Register 0x09,Bits[4:3])。
    ②设置PLL频带值为63(Register 0x08,Bits[7:2]),开启PLL自动模式。
    ③等到PLL_LOCK引脚或PLL锁定指示器(Register 0x00,Bit1)变成高电平。这个过程大概5 ms。
    ④读回6位的PLL频带值(Register 0x08,Bits[7:2])。
    ⑤当PLL自动选择完成,根据温度,通过向(Register0x08,Bits[7:2])写入回读值来设置PLL频带。
    这个过程要求在启动或复位时检测温度,以达到PLL频带值的最优化。如果最优频带在0~31范围内(低VCO频率),参考表5。


    如果最优频带在32~62范围内(高VCO频率),参考表6。


4.2 工厂校准模式设定PLL频带
    如果没有温度传感器,可以在室温(约25℃±10℃)下进行工厂校准法。步骤如下:
    ①设置N1(Register 0x09,Bits[6:5])和N2(Register 0x09,Bits[4:3])。
    ②设置PLL频带值为63(Register 0x08,Bits[7:2]),开启PLL自动模式。
    ③等到PLL_LOCK引脚或PLL锁定指示器(Register 0x00,Bitl)变成高电平。这个过程大概5 ms。
    ④读回6位的PLL频带值(Register 0x08,Bits[7:2])。
    ⑤向非易失性存储器写入PLL频带值。系统上电或重启时,通过SPI载入PLL频带值到Register 0x08,Bits[7:2]。
4.3 PLL频带优化程序

结语
    AD9779A在信号发生器中是数模转换的关键部分,实际使用中根据工程需要来配置AD9779A内部寄存器。经检验20℃当输入时钟为150 MHz,N1=2,N2=4时,PLL频带值稳定在010010(18),fvco范围为1 174~1 231MHz。输入时钟为100 MHz,N1=4,N2=4时,PLL频带值稳定在100111(39),fvco范围为1 564~1 639 MHz。SPI通信程序也可用于信号发生器的直流偏置和输出校准部分,从而简化系统的软件设计。

 

关键字:AD9779A  高速教模转换器  SPI  S3C2440 引用地址:AD9779A的寄存器配置及PLL频带优化

上一篇:5. 8GHz WiMAX宽带无线通信射频系统设计
下一篇:地海杂波测试控制平台的设计

推荐阅读最新更新时间:2024-05-07 16:20

串行显示驱动器PS7219及单片机的SPI接口设计
0 引 言 在单片机的应用系统中,为了便于人们观察和监视单片机的运行情况,常常需要用显示器显示运行的中间结果及状态等等。因此显示器往往是单片机系统必不可少的外部设备之一。常用的显示器有很多种,其中LED(发光二极管显示器)是应用较多的一种,它特别适用于强光和光线极弱的场合。   要使LED显示,必须提供段选码和位选码。传统的硬件译码显示接口广泛采用由中央处理器CPU(如:Intel 8031)扩展I/O口(如:8255),然后再使用逻辑门驱动芯片(如7407等)驱动相应的位码和段码。这种设计,芯片间连线十分复杂,系统工作可靠性不高,已越来越不适应单片机系统集成化、小型化的发展要求。特别是系统并行扩展I/O,其缺点十分明显:
[电源管理]
移植U-Boot.1.2.0到友善之臂S3C2440 (2)
8、在个文件中添加“CONFIG_S3C2440”,使得原来s3c2410的代码可以编译进来。 (1)/include/common.h文件的第454行: #if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) || defined(CONFIG_LH7A40X) || defined(CONFIG_S3C2440) (2)/include/s3c24x0.h文件的第85、95、99、110、148、404行: #if defined(CONFIG_S3C2410) || defined (CONFIG_S3C2440) (3)/cpu/arm920t/s3c24x0/inte
[单片机]
S3C2440-裸机篇-07 | S3C2440内存控制器(Memory Controller)
1. 作用 S3C2440的内存控制器作用是:负责向外部扩展的存储类设备提供控制信号。 内存控制器支持的外部扩展存储类设备有: SRAM SDRAM Nor Flash 网卡DMA 9000(类存储设备) 内存控制器不支持nand flash,S3C2440提供了独立的nand flash控制器。 2. 内存控制器拓扑结构 CPU、内存控制器、外部扩展存储器三者的拓扑结构如下: 其中这四种信号的意义如下: 地址信号(总线):作为存储器,其中的每个存储空间肯定有地址,地址总线用来传输地址; 数据信号(总线):用来传输某个地址处的写入数据或者读出数据; 读/写选择信号(控制信号):用来控制向地址处写入数据还是从
[单片机]
S3C2440-裸机篇-07 | <font color='red'>S3C2440</font>内存控制器(Memory Controller)
移植u-boot-2010.09到S3C2440(四)——通过BSS段和_start判断uboot大小
BSS(百度百科) 是“Block Started by Symbol”的缩写,意为“以符号开始的块”。 BSS是Unix链接器产生的未初始化数据段。其他的段分别是包含程序代码的“text”段和包含已初始化数据的“data”段。BSS段的变量只有名称和大小却没有值。此名后来被许多文件格式使用,包括PE。“以符号开始的块”指的是编译器处理未初始化数据的地方。BSS节不包含任何数据,只是简单的维护开始和结束的地址,以便内存区能在运行时被有效地清零。BSS节在应用程序的二进制映象文件中并不存在。 uboot代码块占用存储空间大小 查看u-boot.lds,其将BSS放在所有代码段的最后,又从上述得知BSS不占用存储空间,这样,将
[单片机]
S3C2440FCLK、HCLK、PCLK的配置
/****************************************************** *说 明: S3C2440FCLK、HCLK、PCLK的配置 ******************************************************/ 三星官方搭载的wince系统的FLCK值为400MHz,HCLK值为100MHz、PCLK值为50MHz。那么这些值通过什么方法计算出来呢?大概过程如下,这些值在外部晶振12MHz的基础上通过PLL的作用倍频到我们需要的核心频率如400MHz,由于该频率过高,需要通过对预分频器进行适当的设置获取外围设备能够正常工作的频率如HCLK 1
[单片机]
S3C2440FCLK、HCLK、PCLK的配置
S3C2440裸机------Nor Flash编程_识别
1.编写菜单程序 首先我们编写一个测试菜单程序,用来获取norFlash信息以及对NorFlash进行读写操作,代码如下: void nor_flash_test(void) { char c; while (1) { /* 打印菜单, 供我们选择测试内容 */ printf( Scan nor flashnr ); printf( Erase nor flashnr ); printf( Write nor flashnr ); printf( Read nor flashnr ); printf( quitnr ); printf( Enter selection:
[单片机]
<font color='red'>S3C2440</font>裸机------Nor Flash编程_识别
STM32之SPI读写FLASH(W25Q64)
/* 名称:STM32之SPI读写FLASH(W25Q64) 说明: 1.对于SPI读写FLASH和I2C读写EEPROM很相似,都是通过一定的通信协议来操纵外部存储设备。我们需要按照对应的通信协议发送存储设备所支持的指令(如读指令、写指令等),然后等待存储设备根据主机所接收到的指令进行相应的动作。 2.再来说说不同点吧:对于通信协议来说,I2C相对来说要简单些,通信速度也稍微较慢些。而SPI串行通信协议则要相对复杂的多,当然其通信速度也要高不少。对于存储设备来说,EEPROM属于小容量的存储设备,支持字节擦除、页写入,现在一般用于存储小容量的数据;而FLASH属于大容量的存储设备,不支持字节擦除,只支持扇区擦除、块擦除
[单片机]
S3C2440的中断寄存器的分类及中断的过程分析
S3C2440一共有60个中断源,其中有15个子中断源,它们与SUBSRCPND寄存器中的每一位相对应,其他45个中断源与SRCPND中的每一位相对应。要注意的是EINT4~7对应的是同一位SRCPND,而EINT8~23对应的也是SRCPND一位。 1 S3C2440的中断寄存器 中断分两大类:外部中断和内部中断。 1.1 外部中断寄存器 24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体可参考datesheet数据手册。 寄存器: EXTINT0-EXTINT2:分别设置EINT0—EINT7、E
[单片机]
<font color='red'>S3C2440</font>的中断寄存器的分类及中断的过程分析
小广播
最新网络通信文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved