精华内容
下载资源
问答
  • 本文为读者提供了用CD4046组成的方波信号发生器的原理框图,供读者学习参考。
  • 序列信号发生器

    2021-01-20 04:12:06
    移位型序列信号发生器组成  移位型序列信号发生器是由移位寄存器和组合电路两部分构成,组合电路的输出,作为移位寄存器的串行输入。由n位移位寄存器构成的序列信号发生器所产生的序列信号的长度为:P=2n  2....
  • DDS信号发生器原理与经典DDS信号发生器设计方案

    千次阅读 多人点赞 2019-09-22 15:20:49
    DDS信号发生器采用直接数字频率合成(Direct Digital Synthesis,简称DDS)技术,把信号发生器的频率稳定度、准确度提高到与基准频率相同的水平,并且可以在很宽的频率范围内进行精细的频率调节。采用这种方法设计的...

     

        DDS信号发生器采用直接数字频率合成(Direct Digital Synthesis,简称DDS)技术,把信号发生器的频率稳定度、准确度提高到与基准频率相同的水平,并且可以在很宽的频率范围内进行精细的频率调节。采用这种方法设计的信号源可工作于调制状态,可对输出电平进行调节,也可输出各种波形。

      DDS原理

      在介绍DDS信号发生器原理之前我们先了解一下DDS原理。

      若对一正弦波形进行采样,每周期为 m 个采样点,分别记为 1~m。 对应每次参考时钟 f c , 输出一个采样点,输出图中所示的一个周期的正弦,需要 m 个时钟周期,则输出的波形频率为 f a =f c/m。对于这种情况, 每次时钟到来时,相位累加器加 1 ,则就会在第 i 个时钟周期输出 第 i 个采样点( i = 1~m) ,第 m + 1 个时钟输出第 1 个采样点,以此循坏,这时的相位累加器实 际上是步进为 1 的模 m 计数器。 如果每次时钟到来时, 总是间隔一个采样点输出,即相位累 加器的步进为 2 ,这时在第 i 个周期输出第 2i 个采样点,输出波形如图 1. 2 的波形 b,显然波 形 b 的频率是 a 的 2 倍,即 f b = 2 f a 。

      综上所述,如果相位累加器的步进为 B, 则输出波形的频率为 B×f a , f a 是最小的输 出频率称为频率分辨率或步进间隔, B 为频率控制字。给定不同的频率控制字即可输出不同 的频率。频率输出公式为: f 0 = fc/m* B

    DDS信号发生器原理与经典设计方案

      在实际设计中,如果累加器长度为N ,则可以有2^N 个存储单元存储采样数据,如果我们 对一个周期的波形进行2N 个点的采样,即m = 2^N , 此时输出频率f o 和系统时钟频率f c ,相 位累加器长度N 以及频率控制字B的关系为:

                                                                     f0 = fc*B/(2^N)

    为了使波形输出不失真,根据奈奎 斯特定理,fc>=2fc,所以 B最高为2^ N - 1 。另外要提高DDS 的精度,就需要分母越大越好,即采样点的个数 越多,越接近实际波形。但实际上不可能提供如此之多的存储空间,这就需要对采样点进行量 化。如图1 (c) 所示,如果量化单位为K,则前K 个点的值总是相同的,为采样值1 ,第二组K 个 采样点的值为采样值2 ,以此类推,第i 组K 个采样点的值为采样值i , 共需要m/K个存储单元 来存储m/K个采样点。

      DDS 的杂散来源之一就是相位累加器相位舍位造成的杂散。现有的频率控制主要采用 二进制频率控制原理。这是因为 FPGA 采用二进制的数据处理机制以及波形存储器的二进 制寻址方式,所以通常情况下 mK、m、K 都是二进制整数,如 m = 2^N ,这就要求对计算结果 进行十进制近似取舍,造成了波形发生器的输出频率以及频率分辨率存在无法消除的误差。

      DDS 以数控振荡器的方式,产生频率、相位可控制的正弦,电路包括了基准时钟源、相位累加器、相位调制器、正弦ROM 查找表、D/A 转换 器和低通滤波器等。

         频率控制字B 和相位控制字N分别控制DDS 所输出的正弦波的频率和相 位。DDS 系统的核心是相位累加器,它由一个N 位累

    加器与N 位相位寄存器构成。时钟脉冲每触发一次, 累加器便将频率控制数据与相位寄存器输出的累加相位数据相加, 然后把

    相加后的结果送至相位寄存器的数据输入端。 相位寄存器将累加器在上一个时钟作用后所产生的新相位数据反馈到累加器的输入

    端, 以使加法器在下一个时钟的作用下继续与频率控制数据相加。 这样, 相位累加器在参考时钟的作用下将进行线性相位累

    加, 当相位累加器累加满时, 就会产生一次溢出, 以完成一个周期性的动作, 这个周期就是DDS 合成信号的一个频率周期,

    相位累加器的溢出频率就是DDS 输出的信号频率。 相位寄存器的输出与相位控制字相加, 结果作为正弦查找表的地址。 查找表

    由ROM 构成, 其内部存有一个完整周期正弦波的数字幅度信息, 每个查找表的地址对应正弦波中的一个相位点。 查找表把输入

    地址信息映射成正弦波幅度信号, 同时输出到D/A 转换器的输入端, 通过D/A 可将数字量形式的波形幅值转换成所要求的合成频

    率模拟量形式信号。 低通滤波器用于衰减和滤除不需要的取样分量, 以便输出频谱纯净的正弦波信号。

    DDS信号发生器原理与经典DDS信号发生器设计方案

      DDS信号发生器原理

      DDS信号发生器原理是建立在采样定理基础上,首先对需要产生的波形进行采样,将采样值数字化后存入存储器作为查找表,然后通过查表读取数据,再经D/A转换器转换为模拟量,将保存的波形重新合成出来。DDS基本原理框图如图所示。

      DDS信号发生器原理与经典DDS信号发生器设计方案

      除了滤波器之外,DDS系统都是通过数字集成电路实现的,易于集成和小型化。系统的参考时钟源通常是一个具有高稳定性的晶体振荡器,为各组成 部分提供同步时钟。频率控制字(FSW)实际上是相位增量值(二进制编码)作为相位累加器的累加值。相位累加器在每一个参考时钟脉冲输入时,累加一次频率,其输出相应增加一个步长的相位增量。由于相位累加器的输出连接在波形存储器(ROM)的地址线上,因此其输出的改变就相当于查表。这样就可以通过查表 把存储在波形存储器内的波形抽样值(二进制编码)查找出来。ROM的输出送到D/A转换器,经D/A转换器转换成模拟量输出。

    DDS信号发生器原理与经典DDS信号发生器设计方案

    DDS信号发生器原理与经典DDS信号发生器设计方案
     

      DDS信号发生器设计

      1、方案设计与论证

      设计的DDS信号发生器系统以STC89C52芯片为核心控制,通过可编程放大电路实现了正弦波、方波的输出功能,其频率步进值和幅度步进值达到了设计要求。

      本设计采用直接数字频率合成。单片机从键盘获得控制信息,控制两路DDS芯片AD9850产生的两路设定频率的正弦波和方波。输出信号经过调整后输入AD7524可以在单片机的控制下完成对信号的程控误差。从DDS模块输出的两路信号经过低通滤波和直流偏置将两路信号输入模拟乘法器AD835,一路作为载波,一路作为调制波,从AD835产生调制波。同时可以将DDS信号输入到CD4046B芯片进行振荡输出调频信号。
     

      整体设计方案:以单片机STC89C52为核心,完成四方面的功能:采用DDS专用芯片AD9850产生正弦波和方波,高带DA转换器AD7524控制AM调制度,接收红外遥控的控制码,同进LCD液晶显示所有数据。其系统如图所示。

      DDS信号发生器原理与经典DDS信号发生器设计方案

      2、理论分析、计算与各模块设计

      (1)DDS波形产生电路设计

      DDS基本原理:正弦波形一个周期离散样点的幅值数字量存于ROM(或RAM)中,按一定的地址间隔(相位增量)读出,由D/A转换成模拟正弦信号,经过低通滤波,滤除D/A带来的小台阶和数字电路产生的毛刺,即可获得所需要的正弦信号。AD9850可以产生正弦波、方波。AD9834内部的相位累加器的字宽为32位,SIN函数表有4096样点值,因此32位的相位累加器输出仅截取12位用于查表。其内部原理框图如下:

      DDS信号发生器原理与经典DDS信号发生器设计方案

      AD9850参数:

      最高参考时钟为125MHz,输出频率分辨率可达0.0291Hz,允许产生最高输出频率62.5MHz。芯片内部提供5bits数字控制相位调制,

      DDS信号发生器原理与经典DDS信号发生器设计方案

      AD9850有32位相位累加器,而ROM为14位,将32位累加器的输出截高位的14位输入正弦(ROM)查询表,从查询表输出给D/A。D/A的输出是两个互补的模拟电流,在12脚处接一个电阻Rset,使满量程输出为10~20mA电流,经过滤波器输出正弦波。

      AD9850主要引脚说明:

      1、(D0~D7):8bit数据输入端。用于下载32bit频率调节字和8bit相位控制字。

      2、(W-CLK):字装载时钟,用于装载并行或串行的频率/相位/控制字

      3、(RSET):DAC外接电阻,该电阻决定DAC输出电流的最大值。对于典型应用(IOUTmax=10mA)时,RSET的值为3.9kΩ,另一端连接到地线。外接电阻RSET与DAC输出电流 IOUT的关系为

      DDS信号发生器原理与经典DDS信号发生器设计方案

      电路原理图如图2-2所示:

      DDS信号发生器原理与经典DDS信号发生器设计方案

      图2-2 DDS波形产生电路

      (2)程控衰减电路设计

      程控衰减电路由D/A转换芯片AD7524构成,主要利用此D/A芯片的可程控电阻网络构成基于AD7524构成的程控衰减器,而在其输出端得到幅度可控的正弦波。由AD7524的8位数据输入端进行控制,可实现1~1/56级衰减。其相关电路如图2-3所示:

      DDS信号发生器原理与经典DDS信号发生器设计方案

      图2-3 程控衰减电路

      (3)模拟AM电路设计

      该电路选用AD835作为乘法器,将载波和调制信号相乘得AM信号,其两路输入信号幅值可达到-1V—+1V,对噪声可形成较强的抑制能力。另外,普通双边带调制需要调制信号叠加直流成分,因此调制信号在输入到乘法器前需经过电平转换电路为调制信号叠加适当的直流。由于前级的调制信号是由程控衰减器输出,所以在程控衰减器初始输出的情况下,可以通过调节电平转换电路的直流偏置,使模拟AM电路的初始输出的调幅波形的调制度调整至1。这样设置可以为之后的程控调制带来方便。通过P8的跳线可以选择调制波为方波,从面实现ASK调制。其电路如图所示。

      DDS信号发生器原理与经典DDS信号发生器设计方案

      图2-4 AM信号产生电路

      (4)模拟FM电路的设计

      频率调频信号的基本特点是它的瞬时频率按调制信号规律变化,因而,一种最容易想到的方法是用调制信号直接控制振荡器的振荡频率,使其不失真地反映调制信号的变化。通常将这种直接调变振荡器频率的方法称为直接调频法。本设计中,使用锁相环集成电路CD4046内部自带的VCO产生FM波。通过P10 的跳线可以选择方波为调制波,从而实现FSK。其电路如5所示。

      DDS信号发生器原理与经典DDS信号发生器设计方案

      图2-5 FM、FSK信号产生电路

      (5)控制与显示电路

      输入控制采用红外遥控器控制,通过HS0038红外一体化接收头解码、放大,将控制码发送给单片机,再由单片机控制DDS模块、程控衰减模块产生不同的波形。

      显示部分使用128*64点阵宽屏液晶,可以显示不同模式下的频率及波形,达到直观、形象的效果。

      此模块如图所示:

      DDS信号发生器原理与经典DDS信号发生器设计方案

      3、程序设计

      主程序流程图如图所示

      DDS信号发生器原理与经典DDS信号发生器设计方案

      4、代码

      AD9850的驱动程序C文件

      #include《intrins.h》

      #include “AD9850I.h”

      #include “lcd12864.h”

      //unsigned char freq[8]; //液晶显示8种步进频率值

      unsigned char freq[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

      /********************

      函数:AD9850Reset

      功能:AD9850的复位函数

      ********************/

      void AD9850Reset(void)

      {

      AD9850WCLK = 1;

      AD9850FQUD = 1;

      // AD9850ReSet = 0;

      // AD9850ReSet = 1;//复位脚置高电平(10个AD9850的时钟周期)

      // _nop_();_nop_();_nop_();_nop_();_nop_();

      // _nop_();_nop_();_nop_();_nop_();_nop_();//延时,其实不用这么长

      // AD9850ReSet = 0;//复位完成,再拉低

      }

      /*步进按键函数*/

      void f10Mhz(void) //10Mhz步进

      {

      freq[0]=freq[0]+1;

      if(freq[0]》=10)

      {

      freq[0]=0;

      }

      display_led();

      }

      void f1Mhz(void) //1Mhz步进

      {

      freq[1]=freq[1]+1;

      if(freq[1]》=10)

      {

      freq[1]=0;

      }

      display_led();

      }

      void f100Khz(void) //100Khz步进

      {

      freq[2]=freq[2]+1;

      if(freq[2]》=10)

      {

      freq[2]=0;

      }

      display_led();

      }

      void f10Khz(void) //10Khz步进

      {

      freq[3]=freq[3]+1;

      if(freq[3]》=10)

      {

      freq[3]=0;

      }

      display_led();

      }

      void f1Khz(void) //1Khz步进

      {

      freq[4]=freq[4]+1;

      if(freq[4]》=10)

      {

      freq[4]=0;

      }

      display_led();

      }

      void f100Hz(void) //100hz步进

      {

      freq[5]=freq[5]+1;

      if(freq[5]》=10)

      {

      freq[5]=0;

      }

      display_led();

      }

      void f10Hz(void) //10hz步进

      {

      freq[6]=freq[6]+1;

      if(freq[6]》=10)

      {

      freq[6]=0;

      }

      display_led();

      }

      void f1Hz(void) //1hz步进

      {

      freq[7]=freq[7]+1;

      if(freq[7]》=10)

      {

      freq[7]=0;

      }

      display_led();

      }

      /***计算控制字************/

      /***入口:频率数组指针***出口,控制字值*****/

      unsigned long jisuan(unsigned char data *fno)//*fno-0》freq[0.。.7]

      {

      unsigned long dds_no ;

      dds_no=

      (*(fno+7))*FF0+

      (*(fno+6))*FF1+

      (*(fno+5))*FF2+

      (*(fno+4))*FF3+

      (*(fno+3))*FF4+

      (*(fno+2))*FF5+

      (*(fno+1))*FF6+

      (*fno)*FF7 ;

      return(dds_no);

      }

      /********************

      **函数:AD9850SetFre

      **功能:AD9850设定频率控制字函数

      **参数:Fre,float型,要设定的频率,单位Hz

      ********************/

      void AD9850ISetFre()

      {

      unsigned long FTW = 0;//要写入的32位频率控制字(AD9850一次需要写入40位控制字)

      unsigned char part1,part2,part3,part4;

      FTW=jisuan(freq);

      // if(FTW 》 30000000)

      // FTW = 30000000;

      // FTW = (unsigned long) (Fre * AD9850_125M);//计算频率控制字(公式:FTW=(2^32/fosc)*Fre)

      /*以下将32位频率控制字分解*/

      part1 = (unsigned char) (FTW》》24);//取32~25位

      part2 = (unsigned char) (FTW》》16);//取24~17位

      part3 = (unsigned char) (FTW》》8); //取16~9位

      part4 = (unsigned char) (FTW); //取8~1位

      /*以上将32位频率控制字分解*/

      AD9850FQUD = 1;

      AD9850WCLK = 1;

      AD9850DATAPORT = 0x00;//寄存器最高的八位只送0x00

      AD9850WCLK = 0;//WCLK上升沿送数据

      _nop_();

      AD9850WCLK = 1;

      AD9850DATAPORT = part1;

      AD9850WCLK = 0;//WCLK上升沿送数据

      _nop_();

      AD9850WCLK = 1;

      AD9850DATAPORT = part2;

      AD9850WCLK = 0;//WCLK上升沿送数据

      _nop_();

      AD9850WCLK = 1;

      AD9850DATAPORT = part3;

      AD9850WCLK = 0;//WCLK上升沿送数据

      _nop_();

      AD9850WCLK = 1;

      AD9850DATAPORT = part4;

      AD9850WCLK = 0;//AD9850WCLK上升沿送数据

      _nop_();

      AD9850FQUD = 0;//AD9850FQUD上升沿将AD9850缓冲区的40位数据送入DDS Core

      }

      /********************

      **函数:AD9850SetFre

      **功能:AD9850设定频率控制字函数

      **参数:Fre,float型,要设定的频率,单位Hz

      ********************/

      void AD9850IISetFre(float Fre)

      {

      unsigned long FTW = 0;//要写入的32位频率控制字(AD9850一次需要写入40位控制字)

      unsigned char part1,part2,part3,part4;

      if(Fre 》 30000000)

      Fre = 30000000;

      FTW = (unsigned long) (Fre * 34.3597384);//计算频率控制字(公式:FTW=(2^32/fosc)*Fre)

      /*以下将32位频率控制字分解*/

      part1 = (unsigned char) (FTW》》24);//取32~25位

      part2 = (unsigned char) (FTW》》16);//取24~17位

      part3 = (unsigned char) (FTW》》8); //取16~9位

      part4 = (unsigned char) (FTW); //取8~1位

      /*以上将32位频率控制字分解*/

      AD9850FQUD = 1;

      AD9850WCLK = 1;

      AD9850DATAPORT = 0x00;//寄存器最高的八位只送0x00

      AD9850WCLK = 0;//WCLK上升沿送数据

      _nop_();

      AD9850WCLK = 1;

      AD9850DATAPORT = part1;

      AD9850WCLK = 0;//WCLK上升沿送数据

      _nop_();

      AD9850WCLK = 1;

      AD9850DATAPORT = part2;

      AD9850WCLK = 0;//WCLK上升沿送数据

      _nop_();

      AD9850WCLK = 1;

      AD9850DATAPORT = part3;

      AD9850WCLK = 0;//WCLK上升沿送数据

      _nop_();

      AD9850WCLK = 1;

      AD9850DATAPORT = part4;

      AD9850WCLK = 0;//AD9850WCLK上升沿送数据

      _nop_();

      AD9850FQUD = 0;//AD9850FQUD上升沿将AD9850缓冲区的40位数据送入DDS Core

      }

      主程序

      #include 《reg52.h》

      #include “AD9850I.h”

      #include “hs0038.h”

      #include “lcd12864.h”

      void main()

      {

      hs0038_init(); //HS0038初始化,使用了外部中断0///定时器1

      lcd12864_init();

      AD9850Reset();

      while(1)

      {

      Get_Ircode_And_Dis();

      switch (ircode[2])

      { /**************模式选择****************/

      case 0x07:xuanzekey();break;

      case 0x15:quedingkey();break;

      case 0x09:fanhuikey();break;

      /*************频率调整区***************/

      case 0x0c:if(flag1==1) {f10Mhz();}; break;

      case 0x18:if(flag1==1) {f1Mhz(); };break;

      case 0x5e:if(flag1==1) {f100Khz();};break;

      case 0x08:if(flag1==1) {f10Khz(); };break;

      case 0x1c:if(flag1==1) {f1Khz(); } ;break;

      case 0x5a:if(flag1==1) {f100Hz();} ;break;

      case 0x42:if(flag1==1) {f10Hz(); } ;break;

      case 0x52:if(flag1==1) {f1Hz(); } ;break;

      /***************频率确认***************/

      case 0x4a: if(flag1==1)

      {

      pce1=0;

      pce2=1;

      pce3=1;

      AD9850ISetFre();

      };

      break;

      /***************AM调制*********************/

      case 0x16: pce1=1; //片选AD9850 I 实验板U1

      pce2=0; //片选AD9850 I 实验板U2

      pce3=1;

      AD9850IISetFre(1000.0);break;

      case 0x44:if(flag2==1)

      {

      pce1=1;

      pce2=1;

      pce3=0;

      pwr=0;

      AM_mastepdown();

      };

      break;

      case 0x40: if(flag2==1)

      {

      pce1=1;

      pce2=1;

      pce3=0;

      pwr=0;

      AM_mastepup();

      };

      break;

      /***************FM调制*********************/

      case 0x19:AD9850IISetFre(5000.0);break;

      default:break;

      }

      ircode[2]=0; //注意一定要把ircode[2]清零。。。。。

      // AD9850SetFre();

      }

      }

    DDS信号发生器原理与经典DDS信号发生器设计方案
     

      由表可以看出,此DDS信号发生器设计方案在频率稳定度方面,正弦波、三角波、方波在带负载的情况下均十分稳定,这正是DDS专用芯片AD9834的特点。



    DDS信号发生器原理与经典DDS信号发生器设计方案

     

     

     

    注意:本文章转自电子发烧友,根据自己的理解做了少量改动

    展开全文
  • 信号发生器

    2014-04-26 22:57:59
    信号发生器是一类非常重要的电子仪器,在做实验、进行产品研制和调试以及系统测试中都是必不可少的,而一般的信号发生器是由硬件组成的,它的输出频率范围宽,各项指标高,性能优良,因而在对输出波形要求较高的地方...
  • 多功能信号发生器

    2020-12-06 03:30:30
    电路工作原理 该多功能信号发生器电路由带振荡器的14级分频器集成电路IC1、12级分频器集成电路IC2、3输入端与门集成电路IC3、或非门集成电路IC4、4MHz石英晶振、电阻器R、电位器RP、电容器Cl、C2和转换开关S2组成,...
  • 基于51单片机的函数信号发生器

    万次阅读 多人点赞 2020-05-02 09:57:55
    函数信号发生器和函数信号识别器是一直想做的两个项目,但是一直苦于没时间才做的拖拖拉拉。 这一次的项目是个第一版项目,总共可以产生四种波形,分别为方波、三角波、锯齿波及梯形波。每种波形可以通过按键改变...

    函数信号发生器和函数信号识别器是一直想做的两个项目,但是一直苦于没时间才做的拖拖拉拉。
    这一次的项目是个第一版项目,总共可以产生四种波形,分别为方波、三角波、锯齿波及梯形波。每种波形可以通过按键改变占空比。
    预计第二版会加入正弦波余弦波等更加有曲线的波形。

    这次的发生器选用了DAC0832作为转化芯片,LM358作为放大芯片。其他的电路组成都是很基础很基础的部分。
    原理图

    在设计中,总共用了四个按键来调节。分别为:K0:复位按键(RST) K1:选择波形(P33) K2:占空比增大(P34) K3:占空比减小(P35)。示波器连接了OUT和RFB是为了对比波形的峰值,主要是体现出LM358的放大作用。

    这一次PCB设计用的过孔较少,但是还是受困于20mil的走线没法钻过芯片的引脚,还是把电源线扯的老长了。

    PCB

    部分代码如下:

    int main(void)
    {
        unsigned char model=0;//0-方波 1-三角波 2-锯齿波 3-正弦波
        unsigned int count=0;//计数器
        unsigned int squ_per=256;
        unsigned int tri_per=256;
        unsigned int saw_per=256;
        unsigned int sin_per=256;
        init();
        while(1)
        {
            while(model==0)
            {    
                square_wave(squ_per,&count);
                count+=4;
                squ_per=key_plus(squ_per);
                squ_per=key_subc(squ_per);
                model=key_model(model,&squ_per,&count);//每次退出当前while时记得复原Period和Count的数据
            }    
            while(model==1)
            {
                triangle_wave(tri_per,&count);
                count+=4;
                tri_per=key_plus(tri_per);
                tri_per=key_subc(tri_per);
                model=key_model(model,&tri_per,&count);
            }
            while(model==2)
            {
                sawtooth_wave(saw_per,&count);
                count+=4;
                saw_per=key_plus(saw_per);
                saw_per=key_subc(saw_per);
                model=key_model(model,&saw_per,&count);
            }
            while(model==3)
            {
                sin_wave(sin_per,&count);
                count+=4;
                sin_per=key_plus(sin_per);
                sin_per=key_subc(sin_per);
                model=key_model(model,&sin_per,&count);
            }
        }
         return 0;
    }
    
    

    这一次把代码弄成库函数形式了,感觉比以前一股脑塞进mian.c里舒服多了,以后还是打算全部整库函数,维护性强太多了。

    资源包含:proteus仿真+原理图;keil编写的C语言程序;ad原理图+PCB;产品说明书。
    资源链接:加我QQ:2430687381
    资源有偿,谢绝白嫖

    ——————————————————强行分割线———————————————————

    更新了edge,再一次上手markdown就舒服多了,新版的edge和以往体验差不多,但是貌似更卡了。

    主要的优化点:1、插入图片后,打字不会在自动回到最顶端了,以前都是编辑界面来回跳。
    2、插入代码块貌似没有bug了,但是还是不敢插入100行以上的代码,生怕卡死。
    3、多了类似于Word里面的自动识错。

    目前遇到的bug问题:上传图片有时候不会成功,本文的原理图上传了两次,PCB上传了三次,还是希望CSDN优化一下吧

    展开全文
  • 移位型序列信号发生器组成  移位型序列信号发生器是由移位寄存器和组合电路两部分构成,组合电路的输出,作为移位寄存器的串行输入。由n位移位寄存器构成的序列信号发生器所产生的序列信号的最大长度为:P=2n ...
  • 高频信号发生器主要由主振级、调制级、输出级、衰减级、内调制振荡级、监测级和电源组成。XFG-7型高频信号发生器的工作原理框图如图1所示。主振级产生高频等幅信号作为载波。调制级将低频信号调制在载波上。这个低频...
  • 脉冲信号发生器可以产生重复频率、脉冲宽度及幅度均为可调的脉冲信号,广泛应用于脉冲电路、数字电路的动态特性测试。脉冲信号发生器一般都以矩形波为标准信号输出。  脉冲信号发生器的种类繁多,性能各异,但内部...
  • XD1型低频信号发生器是由文氏电桥RC振荡器、功率放大器、功放过载保护电路、交流电压表及直流稳压电源等组成。文氏电桥RC振荡器产生的正弦波信号电压,经衰减器I成为仪器的电压输出或功放级的输人信号,进行功率放大...
  • dac0832信号发生器

    2016-01-15 12:27:17
    目前使用的信号发生器大部分是利用分立元件组成的体积大,可靠性差,准确度低。课程设计需要各个波形的基本输出,这些波形的实现的具体步骤:正弦波的实现是非常麻烦的。它的实现过程是通过定义一些数据,然后执行时...
  • 正弦信号发生器是一种常用的电子设备。文中设计了一个基于锁相环的正弦信号发生器。该设计主要由RC正弦波振荡器、整形电路、锁相环、匹配输出电路等组成。给出了具体的电路图以及详细的仿真结果。所设计的正弦信号...
  • 函数信号发生器

    2013-05-23 21:16:55
    用Multisim进行函数信号发生器的设计与制作 一、 设计目的 1、 掌握三角波、正弦波、阶梯波的产生原理和不同实现方法; 2、 掌握不同波形间的变换方法; 3、 学会安装与调试由多级单元电路组成的电子线路。
  • 在调试和修理家用电器中,经常要用到高低频信号。图11-24是简易高低频信号发生器,它能够输出1000Hz的音频信号、465kHz的中频信号和525~1650kHz的高频信号。它是由音频振荡器、射极输出器和高频振荡器三部分组成
  • PWM信号发生器

    2013-11-01 13:27:58
    本系统基于直接数字频率合成技术,以ALTERAL公司的FPGA芯片CycloneII EP2C5T144为控制核心的PWM信号发生器实现三路输出波形的设计。通过FPGA对外围芯片的控制来实现对输出波形的频率、电压幅值、占空比、相位差的...
  • 基于SOPC多波形信号发生器[摘 要 设计了一种基于SOPC的多波形信号发生器,系统由核心主板和显示及输入模块组成,核心主板为一片Altera公司的CycloneII系列的FPGA和高速DAC组成片上系统开发平台,FPGA中配置NiosII软...
  • 信号发生器内部电路一般由振荡器、放大器、输出衰减器、稳压电源及指示电压表等部分组成。  (1)振荡器 振荡信号可以由三种形式的振荡器产生。  ①LC振荡器。这种振荡器由于LC体积大、频率变化范围小、品质因数...
  • STM8简易信号发生器

    2017-11-25 21:32:10
    电路采用单片机和一片DAC0832数模转换器组成数字式低频信号发生器,可产生正弦波、矩形波、锯齿波、三角波和梯形波五种波形。系统通过单片机产生数字信号,通过DAC0832转换为模拟信号,再通过放大器LM324就可以得到双...
  • 用CC4060集成电路和CMOS门电路分别组成信号发生器
  • 摘要: 以FPGA 芯片为载体, 通过QuartusII 的LPM_ROM 模块和VHDL 语言为设计一个多功能信号发生器,根据输入信号的选择可以输出递增锯齿波、递减锯齿波、三角波、阶梯波和方波等5 种信号,通过QuartusII 软件进行...
  • 信号发生器是电路系统设计、测试的重要环节,也是电路课程相关实验的基本组成模块。现有的信号发生器硬件规模大,发生信号种类少,功能扩展需更改硬件电路,不能完全满足系统设计、测试和复杂实验需求。AD9857可工作...
  • 可产生方波、三角波、正弦波的信号发生器,由四个LM358组成,频率幅值可调。
  • 该系统由FPGA 控制模块、键盘、LED 显示组成,结合DDS 的结构和原理,采用SOPC 和DDS 技术,设计出具有频率设置功能的多波形信号发生器。以Altera 公司的CycloneⅡ的器件EP2C35 为例,NIOS ⅡCPU 通过读取按键的值,...
  • 高频信号发生器主要由主振级、调制级、输出级、衰减级、内调制振荡级、监测级和电源组成。XFG-7型高频信号发生器的工作原理框图如图1所示。主振级产生高频等幅信号作为载波。调制级将低频信号调制在载波上。这个低频...
  • 低频信号发生器系统主要由CPU、D/A转换电路、电流/电压转换电路、按键和波形指示电路、电源等电路组成

    1、设计需求及目标

    具体实现功能:
    (1)由LCD1602液晶显示波形种类和频率值(频率范围10-100HZ);
    (2)可以通过按键设置波形种类和设定频率步进值;
    (3)电位器可以改变振幅(0V-3.5V稳定);
    (4)可产生正弦波、锯齿波、三角波、矩形波;
    (5)四个指示灯可分别指示发出的波形。

    2、设计方案及思路

    低频信号发生器系统主要由CPU、D/A转换电路、电流/电压转换电路、按键和波形指示电路、电源等电路组成。其工作原理为当分别按下切换按键就会分别出现方波、锯齿波、三角波、正弦波,并且有四个发光二极管分别作为不同的波形指示灯。液晶实时显示当前的输出频率和波形指示,输出的波形幅值可以通过电位器来微调。按键也可以调节输出频率的步进值。

    3、硬件电路

    全部资料包括程序(注释)、AD原理图、protues仿真、参考论文、程序讲解、仿真讲解、仿真视频、原理图讲解、资料使用介绍等,全网最全!!

    资料获取请关注微信公众号“电子工程师成长日记”,回复关键词:“资料”!

    展开全文
  •  函数信号发生器的原理和使用  1. 基本要求:  设计制作一个方波-三角波-正弦波信号发生器,供电电源为±12V。  1)输出频率能在1-10KHZ范围内连续可调;  2)方波输出电压Uopp=12V(误差《20%),上升、...
  • 脉冲信号发生器可以产生重复频率、脉冲宽度及幅度均为可调的脉冲信号,广泛应用于脉冲电路、数字电路的动态特性测试。脉冲信号发生器一般都以矩形波为标准信号输出。  脉冲信号发生器的种类繁多,性能各异,但内部...
  • XD1型低频信号发生器是由文氏电桥RC振荡器、功率放大器、功放过载保护电路、交流电压表及直流稳压电源等组成。文氏电桥RC振荡器产生的正弦波信号电压,经衰减器I成为仪器的电压输出或功放级的输人信号,进行功率放大...
  • ICL8038信号发生器 正弦波 方波 三角波 低频信号发生 波形发生 原理图和PCB 目录ICL8038信号发生器 正弦波 方波 三角波 低频信号发生 波形发生 原理图和PCB基本原理芯片选型原理图&3D-PCB具体讲解模块原理图-PDF...

    ICL8038信号发生器 正弦波 方波 三角波 低频信号发生 波形发生 原理图和PCB

    基本原理

    ICL8038芯片由恒流源、电压比较器、触发器、缓冲器和三角波变正弦波电路等组成,外接电容控制两个恒流源充电和放电就可以控制输出频率,调整外部电阻和电容就能产生从 0.001HZ~300kHz的低失真正弦波、三角波、矩形波等脉冲信号。芯片具有调频信号输入端, 可以用来对低频信号进行频率调制。具体芯片原理在芯片资料中介绍很清楚,在这里就不做赘述。

    芯片选型

    ICL8038是一款比较有年代感的芯片了,由于多功能型和易上手的特点,现在一般都是作为教学或者一些对信号质量要求不高的场合。芯片是靠模拟振荡的形式产生的频率,也就导致了频率稳定度是个很大的问题,几乎所有的振荡波形发生器都有这样的弊端。其次是ICL8038所产生的频率也是相对较低的,如需高频率的模拟振荡器可以参考MAX038芯片。

    原理图&3D-PCB

    模块采用的是双电源供电,供电范围正负5到正负15V,后级放大器输出电压可以接近供电电压,且输出能力增强可以驱动蜂鸣器。
    在这里插入图片描述
    在这里插入图片描述

    具体讲解

    1、由于有4个电位器的存在,需要将电位器调到合适的位置才能出好看的波形,所以将每个滑变都串联了一个电阻,这样的话就限定了滑变的范围,这样更容易调出波形。
    2、R5和R6是调节正弦波的失真度,R8是调节频率,R12是占空比调节。
    3、P2的端子可以插不同的跳线帽切换不同的频段范围,电容越小频率输出频率越高。
    4、P3为正弦波、三角波、方波的直接输出口。
    在这里插入图片描述
    在这里插入图片描述
    5、P5可以选择正弦波、三角波、方波输入后级放大器,但是由于方波的幅度已经是接近电源电压,所以一般无需放大,可以直接用P3输出即可。
    6、特别需要注意的是,通过实验发现ICL8038输出的正弦波和三角波不能直接使用放大器放大,应该是存在阻抗问题,会导致失真,所以这里需要先加一级跟随器,然后再放大。
    在这里插入图片描述

    模块原理图-PDF、原理图库、3D-PCB库下载

    仅供参考:ICL8038资料

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 92,514
精华内容 37,005
关键字:

信号发生器组成