楼主: wangxing
打印 上一主题 下一主题

(AD9851)基于DDS的信号源设计电路和程序

  [复制链接] qrcode

0

主题

5

帖子

12

积分

新手上路

Rank: 1

积分
12
121#
发表于 2015-2-28 03:21 PM | 只看该作者
hao                                                                                                                                                                       
回复 支持 反对

使用道具 举报

0

主题

14

帖子

32

积分

新手上路

Rank: 1

积分
32
122#
发表于 2015-2-28 05:55 PM | 只看该作者
顶了!                                                                                                                                                                       
回复 支持 反对

使用道具 举报

0

主题

18

帖子

40

积分

新手上路

Rank: 1

积分
40
123#
发表于 2015-2-28 07:35 PM | 只看该作者
#include
#include

#define ad9852_D P1
#define ad9852A_Ctrl P2

sbit ddsRST =P3^5 ;
sbit ddsWR =P3^4 ;

unsigned char Mul_fctrl=4,M_ctrl=0,PLL_BPnum=0x20; //disable PLL
unsigned long F0ctrl_word=0; //频率
unsigned char AD9852_F0[6];

/*****************写地址,写数据**************************/
void Write_AD9852(unsigned char ADDR,unsigned char WRdata)
{
ad9852A_Ctrl =ADDR;
ad9852_D=WRdata;
ddsWR="0";
ddsWR="1";
}

/**********************工作模式选择***********************/

void WR_AD9852Mode(unsigned char M_ctrl)
{
Write_AD9852(0x1F,0x01|(M_ctrl<<1));
}
/**********************DDS初使化************************/
void ddsInit()
{
unsigned char i;
for(i=15;i>0;i--);
ddsRST="0";
for(i=15;i>0;i--);
ddsRST="1";
for(i=15;i>0;i--);
ddsRST="0";
ddsWR="1";

Write_AD9852(0x1F,0X01); //普通模式,内部更新时钟
Write_AD9852(0x20,0x40); //旁路反正弦

}
/*******************DDS开始***********************/
void start_dds(F0ctrl_word)
{
unsigned char i;
for(i=0;i<4;i++)
{
AD9852_F0[i+2]=(unsigned char)( (long)(F0ctrl_word*85.89934592) >>(8*i) ); //f250m=17.179869184
Write_AD9852((7-i),AD9852_F0[i+2]); //f50m=
}
}
回复 支持 反对

使用道具 举报

1

主题

4

帖子

13

积分

新手上路

Rank: 1

积分
13
124#
发表于 2015-2-28 08:28 PM | 只看该作者
当时我用的9854.。。直接跳过9851.。。。                                                                                                                                                                       
回复 支持 反对

使用道具 举报

0

主题

6

帖子

14

积分

新手上路

Rank: 1

积分
14
125#
发表于 2015-2-28 11:42 PM | 只看该作者

回复 支持 反对

使用道具 举报

5

主题

28

帖子

63

积分

注册会员

Rank: 2

积分
63
126#
发表于 2015-3-1 12:26 AM | 只看该作者

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

5

主题

493

帖子

1001

积分

金牌会员

Rank: 6Rank: 6

积分
1001
127#
发表于 2015-3-1 01:39 AM | 只看该作者
实现了FM、AM、PSK、ASK、调频、线性/非线性扫频,在30MHz时驱动50欧姆负载时输出峰峰值达到正负4V,正负5V供电

缺点:滤波器效果很一般
回复 支持 反对

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
128#
发表于 2015-3-1 03:02 AM | 只看该作者
void RST_AD9852(void)
{
//Init_Freq.lFreq = (uint64_t)0x000000EC8EC2;
//相关引脚上升到高电平
IO0SET = DDS_SHAP_BIT;//0.25
IO0SET = DDS_WR_BIT; //0.28
IO0SET = DDS_RD_BIT; //0.29
IO0SET = DDS_FSK_BIT; //0.30
IO1CLR = DDS_UD_BIT; //1.25
IO0CLR = DDS_RST_BIT; //0.12
//硬复位
IO0CLR = DDS_RST_BIT;
IO0SET = DDS_RST_BIT;
TimeDly(1000);
IO0CLR = DDS_RST_BIT;
//写寄存器
SetMode(SIN_Cfg);
//写初始化频率
SetFreq(F1_ADD,1000);
}

//********************************************************************************//
//写AD9852的频率控制器
void SetFreq(INT8U Add,INT32U Freq)
{
INT8U i;
TW_FREQ TW_Freq;
TW_Freq.lFreq = (((uint64_t)Freq<TimeDly(1000);
for(i=0;i<6;i++)
{
DDS_ADD(Add+i);
DDS_DATA(TW_Freq.cFreq[5-i]);
WR();
}
UDCLK();
}

//********************************************************************************//
//设置AD9852工作模式
void SetMode(INT8U *pCfg)
{
INT8U i;
//转到外不触发模式
DDS_ADD(0x1f);
DDS_DATA(0x00);
WR();
TimeDly(10);
//写寄存器
for(i=0;i<4;i++)
{
DDS_ADD(CFG_ADD+i);
DDS_DATA(*pCfg++);
WR();
}
UDCLK();
}
回复 支持 反对

使用道具 举报

579

主题

1596

帖子

3775

积分

论坛元老

Rank: 8Rank: 8

积分
3775
129#
 楼主| 发表于 2015-3-1 05:45 AM | 只看该作者
支持原创内容                                                                                                                                                                       
回复 支持 反对

使用道具 举报

0

主题

8

帖子

18

积分

新手上路

Rank: 1

积分
18
130#
发表于 2015-3-1 06:09 AM | 只看该作者
支持原创内容                                                                                                                                                                       
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表