标题:
AD9832的MCU驱动程序及pdf中文资料
[打印本页]
作者:
wuleler
时间:
2019-6-30 16:15
标题:
AD9832的MCU驱动程序及pdf中文资料
一些9832的学习资料供大家学习
在写频率/相位寄存器时,前4位用来判断哪一个目标寄存器,紧接着的4位用来放目标寄存器地址,而低8位所放的则是写入寄存器的数据。
0.png
(215.12 KB, 下载次数: 52)
下载附件
2019-6-30 19:02 上传
0.png
(7.33 KB, 下载次数: 57)
下载附件
2019-6-30 19:01 上传
单片机源程序如下:
#include "ad9832.h"
#define AD_RESET 0xd000
#define AD_Fre0_LLSBs 0x3000
#define AD_Fre0_HLSBs 0x2100
#define AD_Fre0_LMSBs 0x3200
#define AD_Fre0_HMSBs 0x2300
#define AD_Fre1_LLSBs 0x3400
#define AD_Fre1_HLSBs 0x2500
#define AD_Fre1_LMSBs 0x3600
#define AD_Fre1_HMSBs 0x2700
#define AD_PHA0_LSBs 0x1800
#define AD_PHA0_MSBs 0x0900
#define AD_Set_FSelect 0x9000
#define AD_RegGroup 0x6000
#define AD_start 0xc000
void ad9832_io_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PA端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOA
GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5); //PB.5 输出高
}
//向AD9832写入16bit数据
void byte_shift(unsigned int data_16)
{
u8 i;
unsigned int temp;
ad9832_fsync=1;
ad9832_sclk=1;
delay_us(5);
ad9832_fsync=0;
delay_us(5);
for(i=0;i<16;i++)
{
ad9832_sdata=(data_16&0x8000)>>15;
data_16<<=1;
ad9832_sclk=0;
delay_us(5);
ad9832_sclk=1;
delay_us(5);
}
ad9832_fsync=1;
delay_us(5);
}
void ad9832_init(void)
{
byte_shift(0xf800); //清除设置,复位
byte_shift(0x8000); //频率输出选用 对应引脚而不是寄存器值
//phase //相位寄存器设定
//0001 1000 phase0 LSBS
//0000 1001 phase0 MSBS
//0001 1010 phase1 LSBS
//0000 1011 phase1 MSBS
//0001 1100 phase2 LSBS
//0000 1101 phase2 MSBS
//0001 1110 phase3 LSBS
//0000 1111 phase3 MSBS
// byte_shift(0x1800);
// byte_shift(0x0900);
// byte_shift(0x1a00);
// byte_shift(0x0b00);
// byte_shift(0x1c00);
// byte_shift(0x0d00);
// byte_shift(0x1e00);
// byte_shift(0x0f00);
byte_shift(0xc000);
}
//设置 频率寄存器参数
void ad9832_fre_config(float freq0,float freq1)
{
u32 FREQ_REG0,FREQ_REG1;
freq0/=8000000;
freq0*=65536.0;
freq0*=65536.0;
freq1/=8000000;
freq1*=65536.0;
freq1*=65536.0;
FREQ_REG0=(u32)(freq0+0.5);
FREQ_REG1=(u32)(freq1+0.5);
byte_shift(0xf800);
// byte_shift(0x9000);
byte_shift((u16)(AD_Fre0_LLSBs|(FREQ_REG0&0x00ff)));
byte_shift((u16)(AD_Fre0_HLSBs|(FREQ_REG0>>8&0x00ff)));
byte_shift((u16)(AD_Fre0_LMSBs|(FREQ_REG0>>16&0x00ff)));
byte_shift((u16)(AD_Fre0_HMSBs|(FREQ_REG0>>24&0x00ff)));
byte_shift((u16)(AD_Fre1_LLSBs|(FREQ_REG1&0x00ff)));
byte_shift((u16)(AD_Fre1_HLSBs|(FREQ_REG1>>8&0x00ff)));
byte_shift((u16)(AD_Fre1_LMSBs|(FREQ_REG1>>16&0x00ff)));
byte_shift((u16)(AD_Fre1_HMSBs|(FREQ_REG1>>24&0x00ff)));
// byte_shift(0x1800);
// byte_shift(0x0900);
// byte_shift(0x6000);
byte_shift(0x8000);
byte_shift(0xc000);
// byte_shift(AD_PHA0_MSBs);
}
复制代码
所有资料51hei提供下载:
AD9832编程必看.zip
(635.18 KB, 下载次数: 104)
2019-6-30 16:14 上传
点击文件名下载附件
9832
下载积分: 黑币 -5
作者:
tieq1952
时间:
2019-7-1 07:28
谢谢分享!!!
作者:
leihh2005
时间:
2020-6-25 13:51
谢谢分享!!!
作者:
马中马之
时间:
2021-8-12 11:11
感谢楼主!帮大忙了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1