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

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

  [复制链接] qrcode

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
楼主
发表于 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();
}
回复 支持 反对

使用道具 举报

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

本版积分规则

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