AD9910 EVB模块使用手册模块简介 AD9910模块是评估AD9910芯片的简约型评估板卡,采用7.65x6.41 cm的尺寸,引出所有可控制的I/O 引脚和输出指示引脚(连接到LED灯,方便辨别)。
AD9910
模块主图如上所示,其中P1 口是控制IO 口,对AD9910进行串行配置和部分功能选择,使AD9910工作。DC input 是外部输入的电源,推荐DC 5V/1A的标准输入。采用的是LDO AMS1117系列,最大输入支持15V,请量力而行。扩展电源接口是提供外部供电 3.3V和1.8V。 进行AD9910测试的时候仅需根据程序连接P1口的控制引脚即可。连接方式请对应程序。 连接方式 供电:DC 5V/1A 主控: 3.3V MCU,测试程序采用stc12le5a60s2,通用51内核3.3V单片机即可。 I/O : 没特殊IO 可修改引脚配置。 提供的测试程序,连接方式在SPI.H里面,可修改。即如下所示 /****** 接口定义 *******/ sbit CS=P2^6; sbit SCLK=P2^4; sbit SDATA=P2^2; sbit SDOI=P2^7; sbit OSK=P2^0; sbit IO_UPDATA=P0^4; sbit PF0=P1^1; sbit PF1=P0^0; sbit PF2=P0^2; sbit MASTER_RESET=P1^3; ***************/ 输出请接SMB接口。 硬件测试 连接好控制端口后,若使用51单片机,请使用3.3V逻辑的单片机,如stc89le52rc等,下载程序后,可将单片机的供电连接到模块的扩展电源接口3.3V上,注意主控MCU需要和模块共地。 然后上电,可看到频率在一定时间段内变化,从1MHz 到400MHz。 程序介绍 测试程序: AD9910V1.0 程序已经打包好函数,直接操作即可,针对本AD9910控制方式,有写数据方式2种,一种写32bit 数据,一种写64bit数据。 也就是 1. 8 bit reg address + 32 bit reg data 2. 8 bit reg address + 64 bit reg data 通过I/O口进行模拟时序,本例程提供如下函数,可直接在main里面调用 /**** 函数定义 ***********/ void delay(uint x);/*延时函数*/ void Write_DATA32(uchar ADDR,ulong DATA); //写32 bit data void Write_DATA64(uchar ADDR,ulong DATA1); //写64 bit data void Write_DATA64B(uchar ADDR,ulong DATA1,ulong DATA2); //写64 bit,分2次写 void Read_DATA32(uchar ADDR); //读32 bit 数据 void Read_DATA64(uchar ADDR); // 读64 bit 数据 void AD9910_int(); //AD9910 初始化 *********************/ 注意在使用Profile的时候,为方便本例程将64位数据通过2次写32 位数据的操作方式完成配置,故请采用 Write_DATA64B 函数进行操作。 主函数解释 /**** 主函数 *****//// void main() { AD9910_int(); delay(50) ; Write_DATA32(CFR1_W,CFR1_Mode); //delay(10); Write_DATA32(CFR2_W,CFR2_Mode); delay(100); Write_DATA32(CFR3_W,CFR3_Mode); delay(100); Write_DATA32(CFR_DAC_W,CFR_DAC_Mode); Write_DATA64B(CFR_PROFILE0_W,CFR_PROFILE0_Mode0,CFR_PROFILE0_Mode1); delay(100); Write_DDS(500, 90, 100000000); //幅度 mv , 相位,频率 hz 底层在AD9910.H文件 while(1) { delay(30000); Write_DDS(500, 90, 1000000); //幅度 mv , 相位 , 频率 hz delay(30000); Write_DDS(500, 90, 10000000); //幅度 mv , 相位 , 频率 hz delay(30000); Write_DDS(500, 90, 100000000); //幅度 mv , 相位 , 频率 hz delay(30000); Write_DDS(500, 90, 200000000); //幅度 mv , 相位 , 频率 hz delay(30000); Write_DDS(500, 90, 250000000); //幅度 mv , 相位 , 频率 hz delay(30000); Write_DDS(500, 90, 300000000); //幅度 mv , 相位 , 频率 hz delay(40000); Write_DDS(500, 90, 400000000); //幅度 mv , 相位 , 频率 hz delay(40000); } } AD9910的配置信息已经例化在AD9910.H文件里面,例如 const uchar CFR1_W=0x00; //CFR1 寄存器地址 写 const uchar CFR1_R=0x80; //CFR1 寄存器地址 读 const ulong CFR1_Mode=0x01400000; //0x01 0x40 0x00 0x00,选择单音输出,余弦波输出,SDIO双向2线串行接口,MSN优先 const ulong CFR2_Mode=0x01500820; //CFR2寄存器设置 0x01 0x50 0x08 0x20 PROFILE作为ASF设置参数 const ulong CFR3_Mode=0x150F4164 ;//CFR3寄存器设置 DRV0=3,启用REFCLK_OUT VCO2 使能PLL,20Mhz无源晶振,40倍频 FCLK=1000Mhz // 例如需要对CFR1寄存器控制,则仅需修改这里的值即可,值是十六进制的方式,修改的时候请注意。 联系方式 QQ: 2214318131
AD9910_EVB使用手册.pdf
(225.41 KB, 下载次数: 34)
|