首页 > 资讯 > 问答 > ad9833,ad9833这个芯片会输出直流吗最近在网上买了一个ad9833的dds模

ad9833,ad9833这个芯片会输出直流吗最近在网上买了一个ad9833的dds模

来源:整理 时间:2023-08-25 21:11:34 编辑:智能门户 手机版

本文目录一览

1,ad9833这个芯片会输出直流吗最近在网上买了一个ad9833的dds模

可以输出直流,它支持0-12.5mhz 当频率设置为零时就是直流
酒吧三三

ad9833这个芯片会输出直流吗最近在网上买了一个ad9833的dds模

2,谁会用AD9833这种芯片

第一:硬件电路图查看AD9833的数据手册中的典型应用即可;第二:本器件无法转换为DIP封装,查看AD9833的数据手册的介绍,自建封装。注意:文中BSC实际为毫米(mm)。

谁会用AD9833这种芯片

3,proteus有ad9833吗

proteus里是没有ad9833的,其实,proteus里的元件只是典型的,常用的。
可以非常遗憾地告诉你,连最新版的7.10里都没有ad9开头的元件。你只能找一个相近的元件仿真一下。如果连相近的也没有,那就没办法了!

proteus有ad9833吗

4,通过硬件SPI设置AD9833输出方波怎么弄延迟关键么SPI写函数已

第一步,查看芯片手册配置SPI工作方式,控制芯片的SPI工作方式必须和AD9833的一样。第二步,使用厂商做好的函数进行AD9833的设置。(我没有用过AD9833)但是带串行接口的芯片一般都需要设置一下,怎么设置需要看AD手册了。第三步,向AD发送你想要输出的数字量吧。

5,基于DDS芯片AD9833的低频信号发生器 DXP原理图怎么画啊

这个芯片是标准的MSOP-10的封装,DXP里面有这个库文件。对于原理图可以参考手册33页评估板的接法,简单说就是单片机接一个SPI口到它;供电;外界一个参考晶振;输出可以根据频率加一些低通滤波器。关于DDS类芯片的使用在ADI有个中文参考文档用这个关键词在google搜索“DDS(Direct Digital Synthesizer)常见问题解答”谢谢!
任务占坑

6,AD9833如何输出锯齿波

你给的是个信号发知生器电路,只有输出信号,是没有外输入信号的;另外,555定时器电路,在其中的定时电容上,也可得到锯齿波的;利用市电,可道采用个带过零点检版测的光耦芯片电路,可得到50Hz的正方波(占空比=50%);通过微分电路,即可获得窄脉冲波,然后再积权分,即可得到你想要的很陡峭的锯齿波了;
有可能是你的负载上有电容,你断开其他的电路,直接去测量ad9833的输出脚就可以了,下面是一个例程,工参考#include "head.h"#include "cpu.h"#include "ad9833.h"//定义延时变量,用于宏ad9833_delay()()unchar ad9833_delay_t;/******************ad9833 延时******************//*宏定义:ad9833_delay() */#define ad9833_delay()\ad9833_delay_t = (ad9833_delay_value);\while ( --ad9833_delay_t!= 0 );\}/************延迟n 个sclk 节拍***************/void delay_n_mclk(unchar n)unchar i,t;for(i=0;i<=n;i++) ad9833_sclk = 1; for(t=0;t<20;t++); ad9833_sclk = ~ad9833_sclk; for(t=0;t<20;t++); }}/******************向单个ad9833 写入一个16位的信息字节******************///ad9833_16 表示写入的信息,which_ad9833 表示写入哪个ad9833;void write_16bit_one(unchar char_1,unchar char_2, unchar which_ad9833_cs)unchar i,t;ad9833_sclk = 1; switch(which_ad9833_cs) //确定片选 case 1: p1=~0x80; break; case 2: p1=~0x40; break; case 3: p1=~0x20; break; case 4: p1=~0x10; break; case 5: p1=~0x08; break; case 6: p1=~0x04; break; default: p1=~0x00; break; }for(i=0;i<8;i++) //对于确定次数的循环建议使用for()结构 if((char_1<{ ad9833_sdata = 1; } else { ad9833_sdata = 0; } ad9833_sclk = 0; for(t=0;t<20;t++); ad9833_sclk = ~ad9833_sclk;//在下降沿写?ad9833_delay(); //_nop_(); ad9833_delay(); for(t=0;t<10;t++); } for(i=0;i<8;i++) //对于确定次数的循环建议使用for()结构 { if((char_2< { ad9833_sdata = 1; } else { ad9833_sdata = 0; } ad9833_sclk = 0; for(t=0;t<20;t++); ad9833_sclk = ~ad9833_sclk;//在下降沿写?ad9833_delay(); //_nop_(); ad9833_delay(); for(t=0;t<10;t++); } p1 = 0xff; } /******************向所有ad9833 写入一个16位的信息字节******************/ void write_16bit_all(unint ad9833_16_data) { unchar t,i; i = 8; ad9833_sclk = 1; p1 = 0xff; //片选 p1 = 0x03; for(i=0;i<16;i++) //对于确定次数的循环建议使用for()结构 { if((ad9833_16_data< { ad9833_sdata = 1; } else { ad9833_sdata = 0; } ad9833_sclk = 0; for(t=0;t<20;t++); ad9833_sclk = ~ad9833_sclk;//在下降沿写?ad9833_delay(); //_nop_(); ad9833_delay(); for(t=0;t<10;t++); while (--t != 0); } p1 = 0xff; //片选拉高 delay_n_mclk(8); } /******************初始化ad9833 ******************/ //主要实现控制寄存器的d8位的reset 置1,使得内部所有寄存器 //初始化为频率为50,相位移为0 void ad9833_init(void) { write_16bit_all_two(0x21,0x00); //reset=1, //write_28bit_one_fr(1, 0, 0x4000,0x0000 );//改freg0 //ad9833_50hz_0ps_init();//初始化为标准三相电源 write_16bit_all_two(0x00,0x00); //reset=0, } /******************初始化为标准三相电源 ******************/ //初始化为频率为50,相位移为0 void ad9833_50hz_0ps_init(void) { write_28bit_one_fr(1, 0, 0x6a,0x40,0x40,0x13 );//改freg0 write_28bit_one_fr(1, 1, 0xaa,0x40,0x80,0x13);//改freg1 write_12bit_one_pr(1, 0, 0, 0,0);//改preg0 write_12bit_one_pr(1, 1, 0, 0,0);//改preg1 } /****************** 向单个ad9833写入12位到某一相位寄存器 ******************/ //if_to_all 0:表示写向单个ad9833;--1:表示写向所有ad9833; //phase_0_or_1 表示写向哪一个相位寄存器--0:表示写向preq0-- 1:表示写向preq1 //phase_12_data: 表示相位信息; //which_ad9833_cs: 若if_to_all=0, 则使用该变量表示写向哪个ad9833 void write_12bit_one_pr(bit if_to_all, bit phase_0_or_1, unchar char_1,unchar char_2,unchar which_ad9833_cs) { unint word_12; if (phase_0_or_1 == 1)//确定写入的14位信息 word_12= char_1 |0xe0; //写向preq1 else word_12= char_1 |0xc0; //写向preq0 if (if_to_all == 1) //写动作 {//写向所有的ad9833 write_16bit_all_two(word_12,char_2); } else //写向单个的ad9833 { write_16bit_one(word_12,char_2,which_ad9833_cs); } } /****************** 改变某个ad9833 频率寄存器的msbs 或lsbs ******************/ //msbs_or_lsbs 0:表示写向单个ad9833的lsbs; 1:表示写向所有 ad9833的msbs; //if_to_all 0: 表示写向单个ad9833; 1: 表示写向所有 ad9833; //freq0_or_1 0:表示写向freq0 1:表示写向freq1 //msbs_or_lsbs_14_data : 表示要写入的内容 //which_ad9833_cs : 如果if_to_all=0, 则使用该变量表示写向哪个 ad9833 void write_14bit_one_fr( bit msbs_or_lsbs, bit if_to_all,unchar freq0_or_1,unchar char_1,unchar char_2,unchar which_ad9833_cs) { unchar word_14_h,control_word_h,control_word_l; if (freq0_or_1 == 1) //确定写入的14位信息 { //写向freq1 word_14_h= char_1 |0x80; } else //写向freq0 { word_14_h= char_2 |0x40; } if(msbs_or_lsbs == 1) //确定控制寄存器的内容 {// 1:表示写向所有ad9833的msbs; control_word_h= 0x10 ; control_word_l = 0x00; } else { // 0:表示写向单个ad9833的lsbs; control_word_h= 0x00 ; control_word_l = 0x00; } if (if_to_all == 1) //写动作 { //写向所有的ad9833 write_16bit_all_two(0x20,0x00); write_16bit_all_two(word_14_h,char_2); } else //写向单个的ad9833 { write_16bit_one(0x20,0x00, which_ad9833_cs); write_16bit_one(word_14_h,char_2, which_ad9833_cs); } } /****************** 向ad9833写入连续的28位到某一频率寄存器 ******************/ //if_to_all 0:表示写向单个ad9833; 1:表示写向所有 ad9833; //freq0_or_1 0:表示写向freq0 1:表示写向 freq1 void write_28bit_one_fr(bit if_to_all, unchar freq0_or_1, unchar low_14_h,unchar low_14_l,unchar high_14_h,unchar high_14_l) { if (if_to_all==1) //写动作 { //写向所有的ad9833 write_16bit_all_two(0x20,0x00); write_16bit_all_two(low_14_h,low_14_l); write_16bit_all_two(high_14_h,high_14_l); } else { //写向单个的ad9833 write_16bit_one(0x20,0x00, freq0_or_1); write_16bit_one(low_14_h,low_14_l, freq0_or_1); write_16bit_one(high_14_h,high_14_l, freq0_or_1); } } ////////////////////替代void write_16bit_all(unint ad9833_16_data), //,一下函数可以用 void write_16bit_all_two(unchar char_1,unchar char_2) { unchar t,i; i = 8; ad9833_sclk = 1; p1 = 0xff; //片选 p1 = 0x03; for(i=0;i<8;i++) //对于确定次数的循环建议使用for()结构 {// _nop_(); if((char_1< { ad9833_sdata = 1; } else { ad9833_sdata = 0; } ad9833_sclk = 0; for(t=0;t<20;t++); ad9833_sclk = ~ad9833_sclk;//在下降沿写?ad9833_delay(); //_nop_(); ad9833_delay(); for(t=0;t<10;t++); } for(i=0;i<8;i++) //对于确定次数的循环建议使用for()结构 { if((char_2< { ad9833_sdata = 1; } else { ad9833_sdata = 0; } ad9833_sclk = 0; for(t=0;t<20;t++); ad9833_sclk = ~ad9833_sclk;//在下降沿写?ad9833_delay(); //_nop_(); ad9833_delay(); for(t=0;t<10;t++); } p1 = 0xff; //片选拉高 delay_n_mclk(8); }
文章TAG:这个芯片输出直流ad9833

最近更新

  • 用户数据含义,fifa各项数据含义用户数据含义,fifa各项数据含义

    用户of数据识别产品运营中的各类统计数据。一般通过采集获得用户属性信息和行为信息,但采集的信息是基于用户,数据的意义会减少很多,所以识别用户yes数据acquisition是一个重要的关注点,描.....

    问答 日期:2023-08-25

  • assert函数,assert函数的功能不太明白assert函数,assert函数的功能不太明白

    assert函数的功能不太明白2,在VS2010单元测试中Assert断言主要有那些功能如何去编写代码3,函数assert是干什么的包含在哪个库中4,assert的作用是什么5,assert是什么C里面断言吗什么改变介.....

    问答 日期:2023-08-25

  • 代码段,linux 可执行文件中的文本段和代码段有什么关系代码段,linux 可执行文件中的文本段和代码段有什么关系

    linux可执行文件中的文本段和代码段有什么关系2,关于代码段只读数据段常量段静态段与CC3,求一段vc代码关于按键盘调用子程序代码段4,汇编code代码段定义5,c语言的数据段怎么区分的嵌入式相.....

    问答 日期:2023-08-25

  • 半波整流电路,请讲解一下半波精密整流的原理半波整流电路,请讲解一下半波精密整流的原理

    请讲解一下半波精密整流的原理2,什么是半波整流3,精密半波整流电路原理4,半波整流电路5,单相半波整流电路6,什么叫半波整流滤波电路1,请讲解一下半波精密整流的原理还不懂半波整流电路原理?30.....

    问答 日期:2023-08-25

  • 信号干扰,手机信号被干扰怎么办信号干扰,手机信号被干扰怎么办

    手机信号被干扰怎么办2,什么能干扰手机的信号呀3,信号干扰器对人体有什么危害4,没有地线的情况下如何消除信号干扰5,关于手机信号干扰6,如何解决无线信号干扰1,手机信号被干扰怎么办狂摇手机.....

    问答 日期:2023-08-25

  • 镭神,铭瑄9550和镭神9550哪个好镭神,铭瑄9550和镭神9550哪个好

    铭瑄9550和镭神9550哪个好2,为什么我的台电镭神速度这么慢30的听说真3,MX4408显卡镭神9200SE显卡QeFORCE2MX显卡3种低端显4,镭神R5320显卡怎么样5,请问两个老显卡哪个比较好一些讯景520025.....

    问答 日期:2023-08-25

  • 分离原理,沉淀分离的原理分离原理,沉淀分离的原理

    沉淀分离的原理2,简述膜分离的基本原理3,空气分离器的工作原理4,生物分离技术和原理是5,静电分离的原理是什么6,什么是生物细胞分离它的基本原理是什么1,沉淀分离的原理沉淀分离法原理:根据溶.....

    问答 日期:2023-08-25

  • 香港电子展,广交会与香港电子展会选哪个香港电子展,广交会与香港电子展会选哪个

    广交会与香港电子展会选哪个2,香港电子展会地址在哪里3,香港电子展是秋季的好还是春季的好一点啊4,香港电子展几点结束5,2010香港秋季电子产品展览会6,环球资源香港电子展几点开始7,2018香港.....

    问答 日期:2023-08-25