电赛总结(四)——波形发生芯片总结之AD9851
一、特性参数
1、180 MHz时钟速率参考时钟具有6倍倍乘器。芯片具有高性能10位DAC和高速滞后比较器
2、+2.7 V至+5.25 V单电源工作
3、正常输出工作频率范围为 0~72MHz ;
4、具有6倍频,所以只要30MHz的时钟供给即可。
二、功能管脚图

三、管脚说明
| 管脚名称 | 功能 |
| D0–D7 | 8位数据输入. 数据端口,用于装载32位的频率控制字和8位相位控制字。 D7为最高位,D0=最低位 D7, 25引脚, 也作为40位控制字串行输入引脚 |
| PGND |
6倍参考时钟倍乘器地 |
| PVcc |
6倍参考时钟倍乘器电源 |
| W-CLK | 字装入信号,上升沿有效 |
|
FQ-UD |
频率更新控制信号,时钟上升沿确认输入数据有效 |
| FREFCLOCK | 外部参考时钟输入,脉冲序列可直接或间接地加到6倍参考时钟倍乘器上。在直接方式中,输入频率即是系统时钟;在6倍参考时钟倍乘器方式,系统时钟为倍乘器输出 |
| AGND | 模拟地 |
|
AVDD |
模拟电源(+5V) |
|
DGND |
数字地 |
| DVDD |
数字电源(+5V) |
|
RSET |
DAC外部参考电阻连接端 |
| VOUTN | 内部比较器负向输出端 |
| VOUTP | 内部比较器正向输出端 |
| VINN | 内部比较器的负向输入端 |
|
VINP |
内部比较器的正向输入端 |
| DACBP |
DAC旁路连接端 |
| IOUTB |
“互补”DAC输出 |
| IOUT |
内部DAC输出端 |
|
RESET |
复位端。低电平清除DDS累加器和相位延迟器为0Hz和0 相位,同时置数据输入为串行模式以及禁止6倍参考时钟倍乘器工作 |
四、外围电路PCB原理图

五、STM32F103驱动程序
#ifndef __AD9851_H
#define __AD9851_H #include "stm32f10x.h"
#include "gpio.h" #define ad9851_Clk Pin10
#define ad9851_FQ_UD Pin11
#define ad9851_Rst Pin12
#define ad9851_D0 Pin2
#define ad9851_D1 Pin3
#define ad9851_D2 Pin4
#define ad9851_D3 Pin5
#define ad9851_D4 Pin6
#define ad9851_D5 Pin7
#define ad9851_D6 Pin8
#define ad9851_D7 Pin9 void ad9851_write_dds(unsigned long dds); void ad9851_init(void); void ad9851_writefrq(unsigned long freq); #endif /* __DAC_H */
#include "ad9851.h"
#include "pbdata.h"
#include "math.h" unsigned char phase_word = 0x00; //相位控制字,使用低五位
unsigned char power_down = 0x00; //低功耗模式
unsigned char mult = 0x01; //六倍频开关
unsigned char ww[5] = {0x09,0x0E,0x38,0xE3,0xBE};
unsigned long freq,set_value; void ad9851_init(void)
{
set_out(GPIOG,ad9851_Clk | ad9851_FQ_UD | ad9851_Rst | ad9851_D0 | ad9851_D1 | ad9851_D2 | ad9851_D3 | ad9851_D4 | ad9851_D5 |ad9851_D6 | ad9851_D7 );
set_outH(GPIOG,ad9851_Rst);
delay_ms(10);
set_outL(GPIOG,ad9851_Rst);
delay_ms(10);
} void ad9851_write_dds(unsigned long dds)
{
unsigned char i;
ww[0] = (phase_word << 3) | power_down << 2 | mult;
ww[1] = (dds >> 24) & 0xff;
ww[2] = (dds >> 16) & 0xff;
ww[3] = (dds >> 8) & 0xff;
ww[4] = dds & 0xff; set_outL(GPIOG,ad9851_FQ_UD); for(i=0;i<5;i++)
{
set_outL(GPIOG,ad9851_Clk); set_outH(GPIOG,ww[i] << 2);
set_outL(GPIOG,((~ww[i]) << 2) & 0x3fc);
delay_us(10);
set_outH(GPIOG,ad9851_Clk);
delay_us(10);
} set_outH(GPIOG,ad9851_FQ_UD);
delay_us(10);
set_outL(GPIOG,ad9851_FQ_UD);
} void ad9851_writefrq(unsigned long freq)
{
unsigned long dds;
dds = freq;
ad9851_write_dds(dds);
}
电赛总结(四)——波形发生芯片总结之AD9851的更多相关文章
- 电赛总结(四)——波形发生芯片总结之AD9834
一.特性参数 1.2.3V~5.5V供电 2.输出频率高达37.5MHz 3.正弦波.三角波输出 4.提供相位调制和频率调制功能 5.除非另有说明,VDD = 2.3 V至5.5 V,AGND = D ...
- 电赛总结(四)——波形发生芯片总结之AD9854
一.特性参数 ·300M内部时钟频率 ·可进行频移键控(FSK),二元相移键控(BPSK),相移键控(PSK),脉冲调频(CHIRP),振幅调制(AM)操作 ·正交的双通道12位D/A转换器 ·超高速 ...
- 【系列】关于NJUPT电赛自控方向第一次积分赛的总结
本人是NJUPT电子科学与技术专业大一摸鱼狗一枚.本博客旨在总结与分享个人准备电赛所学知识,同时也是为了防止遗忘,锻炼写文章的能力.目前电赛方向为自控方向.主要研究方向为单片机.图像处理.自动控制相关 ...
- TI MSP430工程配置及2019年电赛A题编程示例(使用430 F5529)
配置 第一步:右击工程,选择Options 第二步:在General Options的Target选项卡里选择对应的器件Device,这里是MSP430G2231 第三步:在Debugger里选择FE ...
- NOI.AC NOIP模拟赛 第四场 补记
NOI.AC NOIP模拟赛 第四场 补记 子图 题目大意: 一张\(n(n\le5\times10^5)\)个点,\(m(m\le5\times10^5)\)条边的无向图.删去第\(i\)条边需要\ ...
- noi2019模拟测试赛(四十七)
noi2019模拟测试赛(四十七) T1与运算(and) 题意: 给你一个序列\(a_i\),定义\(f_i=a_1\&a_2\&\cdots\&a_i\),求这个序列的所 ...
- 【春训团队赛第四场】补题 | MST上倍增 | LCA | DAG上最长路 | 思维 | 素数筛 | 找规律 | 计几 | 背包 | 并查集
春训团队赛第四场 ID A B C D E F G H I J K L M AC O O O O O O O O O 补题 ? ? O O 传送门 题目链接(CF Gym102021) 题解链接(pd ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布
之前的章节我们介绍了如何通过dapr发起一个服务调用,相信看过前几章的小伙伴已经对dapr有一个基本的了解了,今天我们来聊一聊dapr的另外一个功能--订阅发布 目录:一.通过Dapr实现一个简单的基 ...
- 电赛总结(二)——AD芯片总结之AD7715
一.特性参数 1.16位无失真AD转换器 2.增益可调,在1,2,32,128可切换. 3.数字地和模拟地分开,可以减少噪声. 4.具有较大的输出电流,有比较好的带载能力. 二.管脚排列 三.引脚功能 ...
随机推荐
- VO(DTO)模式在架构设计中是否需要
DTO(VO):也就是一般意义上的VO,封装后的对象.一般用于Web层—Service层间的数据传输入. PO:也就是一般概念上的Domain Object,如hibernate 中的Entity.一 ...
- jar包与lib包的区别
jar包是编译时使用,假如编译出错代码没问题一定是jar包的问题,lib是运行时使用,比如程序启动后出错了但是编译没有问题,就可能是lib出错了,不会是jar包的问题.
- java 打包过程及如何使用第三方jar包
地址:http://wenku.baidu.com/view/44a1bbed81c758f5f61f6779.html或者 http://wenku.it168.com/d_000575231.sh ...
- require.async换这个方法的transport问题
这个方法是用于在模块中异步加载其他模块的,类似于在页面上的seajs.use. 比如需要在特定条件下才去加载a模块,不必每次都加载,类似于下面这样的代码 if({{some_condition}}){ ...
- Java中的构造函数和重载
一.Java中的构造函数 构造函数是对象被创建时初始化对象的成员方法,它具有和它所在的类完全一样的名字.构造函数只能有入口参数,没有返回类型,因为一个类的构造方法的返回类就是类本身.构造函数定义后,创 ...
- 一个1年前的T-SQL问题
还记得年前的一个SQL问题,当时对SQL刚接触,因此绕开了它.用了别的办法.昨天看SQL突然想起了这个问题.百思不得其解,然后去SQL Server技术交流群,也请教了,大神高文佳,何志勇提示我因为先 ...
- 关于showModalDialog()对话框点击按钮弹出新页面的问题
页面a.aspx上,单击按钮a,走脚本,弹出showModalDialog("b.aspx",....) 在b.aspx上有个服务器控件按钮b,单击按钮,更新数据后,会弹出一个新的 ...
- [Effective JavaScript 笔记] 第1章:让自己习惯javascript小结
在这里整理一下,每条对应的提示 第1条:了解使用的js版本 确定应用程序支持的js的版本(浏览器也是应用程序噢) 确保使用的js特性是应用程序支持的(要不写了也运行不了) 总是在严格模式下编写和测试代 ...
- 第19章 使用PXE+Kickstart部署无人值守安装
章节概述: 本章节将教会您通过PXE+DHCP+TFTP+VSftpd+Kickstart服务程序搭建出无人值守安装系统,从而批量部署客户机系统. 这种系统能够实现自动化运维.避免了重复性劳动,帮助提 ...
- UIDatePicker的简单用法
// 初始化UIDatePicker UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(, , , ) ...