stm32驱动ad9854程序分享_ad9854构成信号发生器电路

发布者:Howard_Sun最新更新时间:2023-09-19 来源: elecfans关键字:stm32  信号发生器 手机看文章 扫描二维码
随时随地手机看文章

AD9854概述

AD9854数字合成器是高集成度的器件,它采用先进的DDS技术,片内整合了两路高速、高性能正交D/A转换器通过数字化编程可以输出I、Q两路合成信号。在高稳定度时钟的驱动下,AD9854将产生一高稳定的频率、相位、幅度可编程的正弦和余弦信号,作为本振用于通信,雷达等方面。AD9854的DDS核具有48位的频率分辨率(在300M系统时钟下,频率分辨率可达1uHZ)。输出17位相位截断保证了良好的无杂散动态范围指标。AD9854允许输出的信号频率高达150MHZ,而数字调制输出频率可达100MHZ。通过内部高速比较器正弦波转换为方波输出,可用作方便的时钟发生器。


ad9854优势和特点

00MHz内部时钟速率


FSK、BPSK、PSK、线性调频、AM操作

两个集成式12位数模转换器(DAC)

超高速比较器,均方根抖动:3ps

出色的动态性能:80dBSFDR(100MHz±1MHzAOUT)

4×至20×可编程基准时钟乘法器

两个48位可编程频率寄存器

两个14位可编程相位偏移寄存器

12位可编程振幅调制和开关输出形键控功能

单引脚FSK和BPSK数据接口

通过输入/输出接口提供PSK功能

线性或非线性FM线性调频功能,具有单引脚频率保持功能


ad9854构成的信号发生器电路

键盘共设有16个键,由P1.0~P1.3四条行线和P1.4~P1.7四条列线构成。其中包括数字键、单位键及功能键,用来对所需信号的频率、幅度及功能进行控制,最后输出的信号频率、幅度等信息通过液晶显示屏显示出来。显示部分采用国显公司的GXM1602NSL液晶模块,它的核心是HD44780。与W78E58的数据传输采用8位并行传输,可显示两行共32个点阵字符。HD44780支持用户自定义字符,故可以通过编程将频率、幅度、波形等汉字及数字信息显示出来。还采用了通信接口(RS232)与PC机相联,PC机的控制命令可以通过TXD(Pin10)和RXD(Pin11)与W78E58进行交互,控制信号源的输出。

stm32驱动ad9854程序分享_ad9854构成信号发生器电路

stm32驱动ad9854程序分享

#include <stm32f10x_lib.h》

#include “sys.h”

#include “delay.h”

#define AD9854_DATA GPIOC-》ODR

#define AD9854_ADDR GPIOC-》ODR

#define ad9854_reset PBout(12)

#define ad9854_rd PBout(13)

#define ad9854_wr PBout(14)

#define ad9854_updata PBout(15)

unsigned char ControlRegister[]={0x14,0x4f,0x00,0x60}; //AD9852控制寄存器初始值, Mode 0

unsigned char FTW[]={0x00,0x00,0x37,0xec}; //Frequency Tuning Word 1 倍频 300MHz 后输出频率 对应的 FTW 值

unsigned char PAR[]={0x00,0x00}; //Phase Adjust Register 1

unsigned char OSK[]={0x0a,0xff}; //Output shaped keying multiplier, 650mv

voidsingle_wave(unsigned long intfre);

void Init_AD9854(void);

void AD9854_Set_Mode0(void);

void AD9852_Send(unsigned char addr,unsigned char data);

voidchange_frequency(unsigned long intfre_temp); voidInit_Port(void);

int main( void )

{

Stm32_Clock_Init(9); // 9倍频

delay_init(72); // 72M晶振时延时

delay_ms(200);

Init_Port();

Init_AD9854();

single_wave(1000000);

while(1);

}

voidInit_Port(void)

{

RCC-》APB2ENR |= 1<<3 ;

GPIOB-》CRH &= 0x0000ffff ;

GPIOB-》CRH |= 0x33330000 ;

GPIOB-》ODR |= 0xf000 ;

RCC-》APB2ENR |= 1<<4 ;

GPIOC-》CRL &= 0x00000000 ;

GPIOC-》CRL |= 0x33333333 ;

GPIOC-》CRH &= 0x00000000 ;

GPIOC-》CRH |= 0x33333333 ;

GPIOC-》ODR |= 0xffff ;

}

void AD9852_Send(unsigned char addr,unsigned char data) //按照并行输入时序

{

ad9854_wr = 1; // AD9854_WR_SET;

AD9854_ADDR &= 0x00ff|addr<<8;

AD9854_ADDR |= 0xff00&addr<<8;

ad9854_wr = 1; // AD9854_WR_SET;

AD9854_DATA &= 0xff00|data;

AD9854_DATA |= 0x00ff&data;

ad9854_wr = 0; // AD9854_WR_CLR; ad9854_wr = 1; // AD9854_WR_SET; ad9854_updata = 1; //

AD9854_UPDATA_SET;

ad9854_updata = 0; //

AD9854_UPDATA_CLR;

}

void Init_AD9854(void)

{

unsigned char addr;

unsigned char i;

ad9854_reset = 0 ; // AD9854_RESET_CLR;

ad9854_wr = 1 ; // AD9854_WR_SET; ad9854_rd = 0 ; // AD9854_RD_CLR; ad9854_updata = 0 ; // AD9854_UPDATA_CLR;

addr = 0x1d;

for(i=4;i》0;i--)

{

AD9852_Send(addr,ControlRegister[4-i]);

addr++;

}

}

void AD9854_Set_Mode0(void) //Mode 0 设置

{

unsigned char addr;

unsigned char counter;

for(addr=0x00,counter=2;counter》0;counter--) //设 置 Phase Adjust Register 1

{

AD9852_Send(addr,PAR[2-counter]);

addr++;

}

for(addr=0x04,counter=4;counter》0;counter--) //设 置 Frequency Tuning Word 1

{

AD9852_Send(addr,FTW[4-counter]);

addr++;

}

for(addr=0x21,counter=2;counter》0;counter--) //设 置 Output shaped keying multiplier

{

AD9852_Send(addr,OSK[2-counter]);

addr++;

}

}

voidsingle_wave(unsigned long intfre)

{

unsigned char addr,i;

unsigned long intff;

unsigned char *p;

ff=(unsigned long int)(4294967296*fre/300000000); p=(unsigned char*)&ff;

for(addr=0x04,i=0;i<4;i++) //设 置 Frequency Tuning Word 1

{AD9852_Send(addr,*(p+3-i));

addr++;

}

for(addr=0x00,i=0;i<2;i++) //设 置 Phase Adjust Register 1

{

AD9852_Send(addr,PAR[i]);

addr++;

}

for(addr=0x21,i=2;i》0;i--) //设

置 Output shaped keying multiplier

{

AD9852_Send(addr,OSK[2-i])

addr++;

}

}

voidchange_frequency(unsigned long intfre_temp) {

unsigned char addr,counter;

unsigned char *p;

p=(unsigned char*)&fre_temp;

for(addr=0x04,counter=0;counter<4;counter++) //设置 Frequency Tuning Word 1

{

AD9852_Send(addr,*(p+3-counter));

addr++;

}

}


关键字:stm32  信号发生器 引用地址:stm32驱动ad9854程序分享_ad9854构成信号发生器电路

上一篇:基于STM32的虚拟多线程(TI_BLE协议栈_ZStack协议栈)
下一篇:基于stm32f103zet6之NRF905无线模块的学习

推荐阅读最新更新时间:2024-10-23 13:04

stm32驱动ad9854程序分享_ad9854构成信号发生器电路
AD9854概述 AD9854数字合成器是高集成度的器件,它采用先进的DDS技术,片内整合了两路高速、高性能正交D/A转换器通过数字化编程可以输出I、Q两路合成信号。在高稳定度时钟的驱动下,AD9854将产生一高稳定的频率、相位、幅度可编程的正弦和余弦信号,作为本振用于通信,雷达等方面。AD9854的DDS核具有48位的频率分辨率(在300M系统时钟下,频率分辨率可达1uHZ)。输出17位相位截断保证了良好的无杂散动态范围指标。AD9854允许输出的信号频率高达150MHZ,而数字调制输出频率可达100MHZ。通过内部高速比较器正弦波转换为方波输出,可用作方便的时钟发生器。 ad9854优势和特点 00MHz内部时钟速率
[单片机]
<font color='red'>stm32</font><font color='red'>驱动</font><font color='red'>ad9854</font>程序分享_<font color='red'>ad9854</font>构成<font color='red'>信号发生器</font>电路
基于AD9854STM32设计的频率特性测试仪
随着现代电子技术的飞速发展,频率特性测试仪作为现代电子测量领域的一种重要工具,其设计理念也在不断地革新。频率特性测试仪是一种测试网络或者电路的频率特性的仪器,又称扫频仪;可以用来测量信号传输网络、信号放大电路及滤波电路等双端口网络的幅频特性与相频特性。由于在传统的扫频仪设计方法中,被测网络幅频特性与相频特性的获取,需要通过不同的电路模块分别进行峰值检测与相位差测量,导致其系统由多个模块构成,电路复杂且体积较大。因此本文设计了一种新的频率特性测试仪,其采用直接频率合成(DDS)芯片AD9854产生正交扫频信号,并以低功耗单片机STM32作为任务控制与数据处理的核心部件。 1.总体方案 该频率特性测试仪的设计基于零中频正交解调原
[单片机]
基于<font color='red'>AD9854</font>与<font color='red'>STM32</font>设计的频率特性测试仪
STM32AD9854 DDS模块调试总结
  DDS基本原理和特点   1、DDS基本原理   直接频率合成技术实际上是通过将存储的波形数据,通过特定算法,经过高速D/A转换器转换成所需要模拟信号的数字合成技术。其基本原理框图如图1所示。   由图1可见,其主要由标准参考频率源、相位累加器、波形存储器、数/模转换器等部分组成。其中,参考频率源一般是一个高稳定的晶体振荡器,其输出信号用于DDS中各部件同步工作。当频率合成器正常工作时,在标准频率参考源的控制下(频率控制字K决定了其相位增量),相位累加器则不断地对该相位增量进行线性累加,当相位累加器积满量时就会产生一次溢出,从而完成一个周期性的动作,即合成信号的一个频率周期。累加器的输出地址对波形ROM进行寻址,从而把存
[单片机]
<font color='red'>STM32</font>的<font color='red'>AD9854</font> DDS模块调试总结
STM32示波器 信号发生器
简介:关于stm32的示波器,网上以经有很多了。这里还是想把自己的设计思想发表出来。这个项目已经准备了很久。这里首先要感谢以前的团队,非常感觉陈师和覃总两位经验丰富的嵌入式工程师,获得了不少多方面的考虑。如果不是工作调整等原因,很有可能会出产品。但最后没有做完深感遗憾。这里发表下我的设计流程,希望能给做示波器的朋友有一定的帮助。也是让自己对此项目的一个总结。 本示波器有效测量频率0.1 ~ 100KHz 双通道 集成信号发生器 时间轴每格 1,2,5递增范围:2us ~ 1s 时间轴每屏12格 硬件结构: 主芯 stm32zet6 触摸屏 SSD1289 320*240 RGB565 AD: STM32内部ADC
[单片机]
<font color='red'>STM32</font>示波器 <font color='red'>信号发生器</font>
STM32示波器 信号发生器
关于stm32的示波器,网上以经有很多了。这里还是想把自己的设计思想发表出来。这个项目已经准备了很久。这里首先要感谢以前的团队,非常感觉陈师和覃总两位经验丰富的嵌入式工程师,获得了不少多方面的考虑。如果不是工作调整等原因,很有可能会出产品。但最后没有做完深感遗憾。这里发表下我的设计流程,希望能给做示波器的朋友有一定的帮助。也是让自己对此项目的一个总结。 本示波器有效测量频率0.1 ~ 100KHz 双通道 集成信号发生器 时间轴每格 1,2,5递增范围:2us ~ 1s 时间轴每屏12格 硬件结构: 主芯 stm32zet6 触摸屏 SSD1289 320*240 RGB565 AD: STM32内部ADC 1MHz
[单片机]
<font color='red'>STM32</font>示波器 <font color='red'>信号发生器</font>
【教学视频】信号发生器无法驱动负载怎么办?
任意波形发生器是最常见的一种信号源,虽然波形发生器在波形生成上极具优势,但是一般的波形发生器都没有什么驱动能力。 有些测试除了需要信号发生器提供输出电压外,还需要功率输出,这时就需要功率放大器来配合使用。
[测试测量]
驱动信号发生器电路图
实际上,自激多谐振荡器(图1)和单稳电路可以由集成电路来实现.采用两片四-2输入与非门74LS00的驱动信号发生器,如图2所示. 图1 图2
[模拟电子]
<font color='red'>驱动</font><font color='red'>信号发生器</font>电路图
驱动信号发生器电路图
实际上,自激多谐振荡器(图1)和单稳电路可以由集成电路来实现.采用两片四-2输入与非门74LS00的驱动信号发生器,如图2所示. 图1 图2
[模拟电子]
<font color='red'>驱动</font><font color='red'>信号发生器</font>电路图
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved