方波/三角波/正弦波信号发生器(icl8038) 该信号发生器采用了精密波形发生器单片集成电路icl8038。该电路能够产生高精度正弦波,方波,三角波,所需外部元件少。频率可通过外部元件调节。icl8038的正弦波形失真=1%,三角波线性失真=0.1%,占空比调节范围为2%~98%。 icl8038的第10脚外接定时电容,该电容的容值决定了输出波形的频率,电路中的定时电容从c1至c8决定了信号频率的十个倍频程,从500μf开始,依次减小十倍,直到5500pf,频率范围对应为0.05hz~0.5 hz~5hz~50hz~500hz~5khz~50khz~500khz。电路中的v1、r7、r8构成缓冲放大器,r9 为电位器,用于改变输出波形的幅度。 附:基于icl8038函数信号发生器的设计 本设计是以icl8038 和at89c2051 为核心设计的数控及扫频函数信号发生器。icl8038 作为函数信号源结合外围电路产生占空比和幅度可调的正弦波、方波、三角波; 该函数信号发生器的频率可调范围为1~100khz, 步进为0.1khz, 波形稳定, 无明显失真。1.系统设计框图 如图1 为系统设计框图。本设计是利用键盘设置相应的频率值, 根据所设置频率段选择相应电容, 经计算获得相应数字量送数字电位器实现d/a 转换, 同时与参考电压( 本例为5.5v) 相加后形成数控调压去控制icl8038 第8 脚, 这样即可由icl8038 实现对应频率值的矩形波、三角波和正弦波。方波幅度经衰减后送单片机可测得信号源频率并由数码管显示。2.电路原理图图2 为电路原理图。其中at89c2051 是8 位单片机, 其中: p1.4~p1.7、p1.2、p1.3、p3.0、p3.1 作为数码显示; p3.3、p3.5 、p3.7 作为键盘输入口; p3.4 作为计数口, 用于测量信号源频率;p3.0~p3.2 作为数字电位器的spi总线; p1.1、p1.0 可根据需要扩展继电器或模拟开关选择icl8038第10 脚( cap) 与第11 脚间的电容c。mcp41010 是8 位字长的数字电位器, 采用三总线spi 接口。/cs: 片选信号, 低电平有效; sck:时钟信号输入端; si: 串行数据输入端, 用于寄存器的选择及数据输入。mcp41010 可作为数字电位器, 也可以作为d/a 转换器, 本设计是将mcp41010 接成8 位字长的d/a 转换器, mcp41010 根据输入的串行数据, 对基准电压进行分压后由中间抽头输出模拟电压, 即vpwo =dn/256vref ( 式中vref=5v) 。函数发生电路icl8038, 图2所示是一个占空比和一个频率连续可调的函数发生电路。icl8038是一种函数发生器集成块, 通过外围电路的设计, 可以产生高精密度的正弦波、方波、三角波信号, 选择不同参数的外电阻和电容等器件, 可以获得频率在0.01hz~300khz 范围内的信号。通过调节rw2 可使占空比在2%~98%可调。第10 脚( cap) 与第11 脚间的电容c 起到很重要的作用, 它的大小决定了输出信号频率的大小, 当c 确定后, 调节icl8038 第8 脚的电压可改变信号源的输出频率。从icl8038 引脚9(要接上拉电阻)输出的波形经衰减后送单片机p3.4 进行频率测量。正弦函数信号由三角波函数信号经过非线性变换而获得。利用二极管的非线性特性, 可以将三角波信号的上升和下降斜率逐次逼近正弦波的斜率。icl8038 中的非线性网络是由4 级击穿点的非线性逼近网络构成。一般说来, 逼近点越多得到的正弦波效果越好, 失真度也越小, 在本芯片中n= 4, 失真度可以小于1。在实测中得到正弦信号的失真度可达0.5 左右。其精度效果相当满意。为了进一步减小正弦波的失真度, 可采用图2 所示电路中两个电位器rw3 和rw4 所组成的电路, 调整它们可使正弦波失真度减小。当然, 如果矩形波的占空比不是50% , 矩形波不再是方波, 引脚2 输出也就不再是正弦波了。 图2 电路原理图 经实验发现, 在电路设计中接10 脚和11 脚的电容值和性能是整个电路的关键器件, 电容值的确定也就确定电路能产生的频率范围, 电容性能的好坏直接影响信号频率的稳定性、波形的失真度, 由于该芯片是通过恒流源对c 充放电来产生振荡的, 故振荡频率的稳定性就受到外接电容及恒流源电流的影响, 若要使输出频率稳定, 必须采用以下措施:外接电阻、电容的温度特性要好; 外部电源应稳定; 电容应选用漏电小、质量好的非极化电容器。 3.实验结果当±12v 工作电源时, 输出频率如下表: 失真度情况, 实验数据如下表: 4.软件流程图图3 为软件流程图。t0 设为计数器,t1 设为定时器(初值为5ms)。5ms 启动主循环, 主要用于键盘扫描及扫描显示, 图2 中k0 作为控制键, k1 作为调整键, k2 作为增加键; 上电时程序进入频率设置模式, 按一下k0 键程序进入数控模式, 按二下k0 键程序进入扫频模式, 按三下k0 键程序进入频率设置模式, 周而复始。在频率设置模式, 由k1 键和k2 键完成频率设置。 图3 软件流程图