AD9910原理图、pcb、驱动程序高速DDS模块1G采样频率正弦波信号发生器扫频源开发板420M
通过AD9910的原理图、pcb源文件以及驱动程序
AD9910是一款内置14 bit DAC的直接数字频率合成器(DDS),支持高达1 GSPS的采样速率。AD9910采用高级DDS技术,在不牺牲性能的前提下可极大降低功耗。DDS/DAC组合构成数字可编程的高频模拟输出频率合成器,能够在高达400 MHz的频率下生成频率捷变正弦波形。
用户可以访同三个用于控制DDS的信号控制参数,包括:频率、相位与幅度。AD9910利用32 bit累加器提供快速跳频和频率调谐分辨率在1 GSPS采样速率下,调谐辨率为0.23 Hz.这款DDS还实现了快速相位与幅度切换功能。
获取链接1:通过百度网盘分享的文件:AD9910接:https://pan.baidu.com/s/15WEcFSfakQHzsQt3Su4P6Q 提取码:ia11复制这段内容打开「百度网盘APP 即可获取」
获取链接2:https://m.tb.cn/h.g6FushH?tk=TSUM30aINNX MF6563 「我在闲鱼发布了【AD9910
部分程序
void Task0_PointFre(u32 Key_Value)//正弦波 (10M) 0-100 000 000
{
static u32 SinFre = 400000000;
u8 showstr[StrMax]={0};
if(Task_First)
{
Task_First = 0;
Key_Value = K_2_S;
sprintf(fre_buf, "%9d", SinFre);//第一次 进入
LCD_Show_CEStr(64-8*3,0,"正弦波");
_return=1;
}
if(Key_Value != K_NO)
{
//判断
P_Index = P_Index%9;//数据位数
SinFre = atol(fre_buf);//字符转换数字,判断上下限
if(SinFre>1000000000) SinFre=1000000000;//数据限制
if(SinFre<0) SinFre=0;
sprintf(fre_buf, "%9d", SinFre);//字符转换
//显示
sprintf(showstr, "%9d", SinFre);//字符转换
fre_buf_change(showstr);//fre_buf当中 ‘ '->'0'
Copybuf2dis(showstr, display, P_Index, 0, 1);
OLED_ShowString(64-4*11, 3, display);
LCD_Show_CEStr(64-4*11+9*8,3,"Hz");
//数据处理写入
Freq_convert(SinFre);
_return=1;
}
}
void Task1_Square(u32 Key_Value)//方波 300k
{}
void Task2_Triangular(u32 Key_Value)//三角波 1M
{}
void Task3_SweepFre(u32 Key_Value)//扫频
{
u8 showstr[StrMax]={0};
if(Task_First)
{
Task_First = 0;//清除第一次进入标记
Key_Value = K_2_S;
Param_Mode %= 4;//计算参数模式,以便装入初始值
if(Param_Mode == 0) sprintf(fre_buf, "%9d", SweepMinFre);
if(Param_Mode == 1) sprintf(fre_buf, "%9d", SweepMaxFre);
if(Param_Mode == 2) sprintf(fre_buf, "%4d", SweepStepFre);
if(Param_Mode == 3) sprintf(fre_buf, "%3d", SweepTime);
LCD_Show_CEStr(64-8*3,0," 扫频 ");//模式名称
_return=1;//更新显示标志
}
if(Key_Value != K_NO)
{
if(Param_Mode == 0)//最小频率设置
{
P_Index %= 9;//参数位数
SweepMinFre = atol(fre_buf);//字符转换
if(SweepMinFre>SweepMaxFre) SweepMinFre=SweepMaxFre;//数据限制
if(SweepMinFre<0) SweepMinFre=0;
sprintf(fre_buf, "%9d", SweepMinFre);//数据重新写入
}
//显示
sprintf(showstr, "%9d", SweepMinFre);//重新申请缓存显示
fre_buf_change(showstr);//fre_buf当中 ‘ '->'0'
if(Param_Mode == 0) Copybuf2dis(showstr, display, P_Index, 0, 1);
else Copybuf2dis(showstr, display, P_Index, 0, 0);
OLED_ShowString(64-4*11+16, 2, display);
LCD_Show_CEStr(64-4*11+9*8+16,2,"Hz");
LCD_Show_CEStr(0,2,"Min:");
if(Param_Mode == 1)//最大频率设置
{
P_Index %= 9;//参数位数
SweepMaxFre = atol(fre_buf);//字符转换
if(SweepMaxFre>100000000) SweepMaxFre=100000000;//数据限制
if(SweepMaxFre<0) SweepMaxFre=0;
sprintf(fre_buf, "%9d", SweepMaxFre);//数据重新写入
}
//显示
sprintf(showstr, "%9d", SweepMaxFre);//重新申请缓存显示
fre_buf_change(showstr);//fre_buf当中 ‘ '->'0'
if(Param_Mode == 1) Copybuf2dis(showstr, display, P_Index, 0, 1);
else Copybuf2dis(showstr, display, P_Index, 0, 0);
OLED_ShowString(64-4*11+16, 4, display);
LCD_Show_CEStr(64-4*11+9*8+16,4,"Hz");
LCD_Show_CEStr(0,4,"Max:");
if(Param_Mode == 2)//频率步进设置
{
P_Index %= 5;//参数位数
SweepStepFre = atol(fre_buf);//字符转换
if(SweepStepFre>10000) SweepStepFre=10000-1;//数据限制
if(SweepStepFre<0) SweepStepFre=0;
sprintf(fre_buf, "%5d", SweepStepFre);//数据重新写入
}
//显示
sprintf(showstr, "%5d", SweepStepFre);//重新申请缓存显示
fre_buf_change(showstr);//fre_buf当中 ‘ '->'0'
if(Param_Mode == 2) Copybuf2dis(showstr, display, P_Index, 0, 1);
else Copybuf2dis(showstr, display, P_Index, 0, 0);
display[5]=0;//只显示4位
OLED_ShowString(0, 6, display);
LCD_Show_CEStr(8*5,6,"Hz");
if(Param_Mode == 3)//步进时间设置
{
P_Index %= 3;//参数位数
SweepTime = atol(fre_buf);//字符转换
if(SweepTime>1000) SweepTime=1000-1;//数据限制
if(SweepTime<0) SweepTime=0;
sprintf(fre_buf, "%3d", SweepTime);//数据重新写入
}
//显示
sprintf(showstr, "%3d", SweepTime);//重新申请缓存显示
fre_buf_change(showstr);//fre_buf当中 ‘ '->'0'
if(Param_Mode == 3) Copybuf2dis(showstr, display, P_Index, 0, 1);
else Copybuf2dis(showstr, display, P_Index, 0, 0);
display[3]=0;//只显示3位
OLED_ShowString(64, 6, display);
LCD_Show_CEStr(64+3*8,6,"Ms");
//数据处理写入
_return=1;
}
}
//
void fre_buf_change(u8 *strbuf)
{
int i;
for (i = 0 ; i < strlen(strbuf); i++)
if(strbuf[i]==0x20) strbuf[i] = '0';
for (i = 0 ; i < strlen(fre_buf); i++)
if(fre_buf[i]==0x20) fre_buf[i] = '0';
}
如果链接都失效,闲鱼软件搜索名称:骏业日新科技。可获取。
同时里面有下面上百种电路模块pcb源文件和参考程序(知识产权是一次性的所以要收费,不强求,自愿购买,不愿意的直接跳过此文章,带来不便请谅解)
是宋芽芽呀: 求清晰的原理图
2401_82375706: 老师有清晰的原理图吗
2401_82375706: 老师有清晰的原理图吗
jing__hong_: 在吗,我下载之后原理图太模糊了,你能发一份高清一点的吗
晨借懒云霜: 更新了