有关AD9833的初始化配置程序
更新时间:2023-12-06 13:02:01 阅读量: 教育文库 文档下载
- 有关中秋节的古诗推荐度:
- 相关推荐
有关AD9833配置程序
//AD9833初始化 void AD9833_INIT() {
GPIO_Init(FSYNC1_GPIO_PORT, GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(SCLK_GPIO_PORT, GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_Init(SDATA_GPIO_PORT, GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(FSYNC2_GPIO_PORT, GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(SCLK_GPIO_PORT, GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_Init(SDATA_GPIO_PORT, GPIO_MODE_OUT_PP_HIGH_FAST); }
//此函数是向AD9833中写入16位数据 void write_ad9833_0(unsigned int DDSdata) {
unsigned char i ;
unsigned int DDSdata_temp; DDSdata_temp=DDSdata;
//初始化端口
//GPIO_Init(FSYNC1_GPIO_PORT,
(GPIO_Pin_TypeDef)FSYNC1_GPIO_PINS, (GPIO_Pin_TypeDef)SDATA_GPIO_PINS, (GPIO_Pin_TypeDef)SCLK_GPIO_PINS, (GPIO_Pin_TypeDef)FSYNC2_GPIO_PINS, (GPIO_Pin_TypeDef)SDATA_GPIO_PINS, (GPIO_Pin_TypeDef)SCLK_GPIO_PINS, (GPIO_Pin_TypeDef)FSYNC1_GPIO_PINS,
GPIO_MODE_OUT_PP_HIGH_FAST);
//GPIO_Init(SCLK1_GPIO_PORT, GPIO_MODE_OUT_PP_HIGH_FAST); //GPIO_Init(SDATA1_GPIO_PORT, GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_WriteHigh(FSYNC2_GPIO_PORT, FSYNC2_GPIO_PINS);
GPIO_WriteHigh(SCLK_GPIO_PORT, (GPIO_Pin_TypeDef) SCLK_GPIO_PINS); nop(); nop();
GPIO_WriteHigh(FSYNC1_GPIO_PORT, FSYNC1_GPIO_PINS); nop(); nop();
GPIO_WriteLow(FSYNC1_GPIO_PORT, (GPIO_Pin_TypeDef) FSYNC1_GPIO_PINS); nop(); nop();
for(i=0;i<16;i++) {
//GPIO_WriteHigh(SDATA9833_GPIO_PORT, SDATA9833_GPIO_PINS); if (DDSdata_temp&0x8000) {
GPIO_WriteHigh(SDATA_GPIO_PORT, SDATA_GPIO_PINS); } else {
GPIO_WriteLow(SDATA_GPIO_PORT, SDATA_GPIO_PINS);
(GPIO_Pin_TypeDef) (GPIO_Pin_TypeDef) (GPIO_Pin_TypeDef) (GPIO_Pin_TypeDef) (GPIO_Pin_TypeDef)
(GPIO_Pin_TypeDef)SDATA1_GPIO_PINS, (GPIO_Pin_TypeDef)SCLK1_GPIO_PINS,
}
//GPIO_Write(SDATA9833_GPIO_PORT,(DDSdata_temp&0x8000)); nop(); nop();
GPIO_WriteLow (SCLK_GPIO_PORT, (GPIO_Pin_TypeDef) SCLK_GPIO_PINS); nop(); nop();
GPIO_WriteHigh(SCLK_GPIO_PORT, (GPIO_Pin_TypeDef) SCLK_GPIO_PINS); nop(); nop();
DDSdata_temp=DDSdata_temp<<1; //16位数据从高位到低位送入 }
GPIO_WriteHigh(FSYNC1_GPIO_PORT, FSYNC1_GPIO_PINS); nop(); nop();
GPIO_WriteLow(SCLK_GPIO_PORT, (GPIO_Pin_TypeDef) SCLK_GPIO_PINS); nop(); nop(); }
/*************计算AD9833的28位数据值***************/
/**变量frequence就是频率值,单位Hz,比如输入100Hz,则 frequence为100,需要特别注意的是不能超过12MHz;*******/
/*****变量frequence_SFR是设置频率寄存器选择0为频率寄存器0,1为频率寄存器1;*******/
/*****变量WAVE_MODE是设置输出波形选择0为三角波,1为方波,2为正弦波;*******/
/*****变量Phase是设置波形相位值*******/
(GPIO_Pin_TypeDef)
/*****变量FSYNC为片选,0为第一片,1为第二片*******/ void
ad9833_data(double
frequence,unsigned
int
FSYNC,unsigned
int
WAVE_MODE,unsigned int Phase ) {
int frequence_LSB,frequence_MSB,Phs_data; double frequence_mid,frequence_DATA; long int frequence_hex;
/*********************************计算频率的***********************************/ frequence_mid=268435456/25;//适合25M晶振
//如果时钟频率不为25MHZ,修改该处的频率值,单位MHz
//AD9833最大支持25MHz frequence_DATA=frequence;
frequence_DATA=frequence_DATA/1000000; frequence_DATA=frequence_DATA*frequence_mid;
frequence_hex=(long int)frequence_DATA; //这个frequence_hex的值是32位的一个很大的数字,需要拆分成两个14位进行处
frequence_LSB=frequence_hex; //frequence_hex低16位送给frequence_LSB frequence_LSB=frequence_LSB&0x3fff;//去除最高两位,16位数换去掉高位后变成了14位
frequence_MSB=frequence_hex>>14; //frequence_hexfrequence_HSB
frequence_MSB=frequence_MSB&0x3fff;//去除最高两位,16位数换去掉高位后变成了14位
/****************************************************************************/
/*******************************************************************/
相
位
值
高
16
位送给16
进制值
Phs_data=Phase|0xC000;
/*****************************************************************************/
if(FSYNC==0) //把数据设置到设置频率寄存器0 {
frequence_LSB=frequence_LSB|0x4000; frequence_MSB=frequence_MSB|0x4000;
/**************使用频率寄存器0输出波形******************/ /*************************************************/ write_ad9833_0(0x0100); //复位AD9833,即RESET位为1
write_ad9833_0(0x2000); //选择数据一次写入,B28位和RESET位为1 write_ad9833_0(frequence_LSB); //L14,选择频率寄存器0的低14位数据输入 write_ad9833_0(frequence_MSB); //H14 频率寄存器的高14位数据输入 write_ad9833_0(Phs_data); //设置相位
//write_ad9833_d16(0x2000); /**设置FSELECT位为0,芯片进入工作状态,频率寄存器0输出波形**/ }
/************************************************************************************/
if(FSYNC==1) //把数据设置到设置频率寄存器1 {
frequence_LSB=frequence_LSB|0x8000; frequence_MSB=frequence_MSB|0x8000;
//使用频率寄存器1输出波形
/*************************************************/ write_ad9833_1(0x0100); //复位AD9833,即RESET位为1
write_ad9833_1(0x2000); //选择数据一次写入,B28位和RESET位为1
write_ad9833_1(frequence_LSB); //L14,选择频率寄存器1的低14位输入 write_ad9833_1(frequence_MSB); //H14 频率寄存器1为 write_ad9833_1(Phs_data); //设置相位
//write_ad9833_d16(0x2800); /**设置FSELECT位为0,设置FSELECT位为1,即使用频率寄存器1的值,芯片进入工作状 //态,频率寄存器1输出波形**/ }
/****************************************************************************************/ if(WAVE_MODE==0) {
//频率寄存器输出三角波波形
/***************************************************/ delay(0xFFFF); if(FSYNC==0)
write_ad9833_0(0x2002); //设置MODE位为1,输出三角波模式 else
write_ad9833_1(0x2002); //设置MODE位为1,输出三角波模式 }
/***************************************************/ if(WAVE_MODE==1) {
//频率寄存器输出方波波形
/***************************************************/ delay(0xFFFF); if(FSYNC==0)
write_ad9833_0(0x2028); //设置OPBITEN位为1,方波输出模式 else
write_ad9833_1(0x2028); //设置OPBITEN位为1,方波输出模式 }
/***************************************************/ if(WAVE_MODE==2) {
//频率寄存器输出正弦波波形
/***************************************************/ delay(0xFFFF); if(FSYNC==0)
write_ad9833_0(0x2000); //设置MODE位为0,输出正弦波模式 else
write_ad9833_1(0x2000); //设置MODE位为0,输出正弦波模式 }
/***************************************************/ }
正在阅读:
有关AD9833的初始化配置程序12-06
土地增值税清算鉴证业务约定书01-15
中国古代文学3唐宋文学史07-07
广西玉林市玉州区2019-2020学年八年级下学期期末数学试题07-18
2019年浙江省杭州市余杭区中考数学模拟试卷(含答案解析)05-02
ERP复习一07-07
我们班的瞌睡虫作文500字06-25
温暖作文450字07-14
南开大学04-07经济学博士入学试题01-18
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 初始化
- 配置
- 有关
- 程序
- AD9833
- 通信原理习题课CH1-8
- 寄生虫题库
- 金融危机下公允价值计量的思考
- 长沙师范学院专升本教育学2015年真题
- 校园植物探究六年级教案
- 土木工程测量课后习题答案 - 图文
- 2018届浙江大学优秀毕业研究生第一批
- 2019-2020年高中语文 自读课文《郅都》教案 鲁教版选修《史记》
- 德育五大体系、六大育人项目材料(小学版) - 图文
- 公司安防监控系统管理规定
- 广东省2017-2018学年高考模拟历史试题分解(近代世界政治) Word版含答案
- 2012-2013(1)03机械波课堂练习
- 浅析建筑工程主体结构和关键性工作 - 图文
- 2018-2019年保定市徐水区安肃镇坟台小学一年级上册数学期末总复习无答案
- ZigBee期末试题
- 英语专业四级语法针对练习
- 我国教育发展现状、问题及对策
- 3个IO口驱动6个LED - 图文
- 统计学第二章练习题
- 2010《大学语文》(专升本)复习资料