4回答

0收藏

AD9910评估板使用指南

#开源分享 #开源分享 6997 人阅读 | 4 人回复 | 2014-12-03


AD9910 EVB模块使用手册模块简介
AD9910模块是评估AD9910芯片的简约型评估板卡,采用7.65x6.41 cm的尺寸,引出所有可控制的I/O 引脚和输出指示引脚(连接到LED灯,方便辨别)。

模块主图如上所示,其中P1 口是控制IO 口,对AD9910进行串行配置和部分功能选择,使AD9910工作。DC input 是外部输入的电源,推荐DC 5V/1A的标准输入。采用的是LDO AMS1117系列,最大输入支持15V,请量力而行。扩展电源接口是提供外部供电 3.3V1.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, 下载次数: 36)



分享到:
回复

使用道具 举报

回答|共 4 个

倒序浏览

沙发

五哥

发表于 2014-12-6 12:33:59 | 只看该作者

没有用过这么高端的东西。
板凳

ETRH Studio

发表于 2014-12-8 09:43:07 | 只看该作者

xuwu_19911119 发表于 2014-12-6 12:33
没有用过这么高端的东西。

要不要试用,
地板

五哥

发表于 2014-12-8 17:28:30 | 只看该作者

ETRH Studio 发表于 2014-12-8 09:43
要不要试用,

这个可以有。
5#

love凯

发表于 2018-6-20 09:55:54 | 只看该作者

额 ,想学习 呀
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条