本文以ATmega8l单片机为核心设计了一个函数信号发生器。信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,可输出正弦波、方波、三角波、三角波波形,波形的频率10hz—10kz范围内可改变,波形可以通过按键切换。
题设要求
一、基本要求:1、能输出正弦波、方波;
2、信号频率50Hz~10kHz可调;
3、输出阻抗不大于50欧。
二、发挥部分:1、能输出三角波、锯齿波;
2、信号频率可进行数字化调节并显示
整体方案比较与论证
方案一:采用模拟电路搭建函数信号发生器,它可以同时产生方波、三角波、正弦波。但是这种方法出来的一般是固定频率的波形,要想实现可调频率比较难
方案二:利用芯片组成的电路输出波形,MAX038是MAXIM公司生产的一个只需要很少外部元件的精密高频波形产生器,他能产生准确的高频正弦波、三角波、方波。输出频率和占空比可以通过调整电流、电压或电阻来分别地控制,具有输出频率范围宽、波形稳定、失真小、使用方便等特点,但是该方案成本高,程序复杂度高,而且在赛点附近,难以买到这样的芯片。
方案三:采用ATmega8l单片机与DA芯片结合,通过编程的方法实现波的产生和频率调节,此种方法电路比较简单,容易控制,性价比也高,而且atmega8l的工作频率相对51系列较高,更加容易达到输出高频率的要求。
通过比较,并结合自身知识水平情况,决定采用方案三。
理论分析与计算
要通过atmega8l控制da让其产生题设的波形,就要确定一个周期的采样数目,本设计采用的da为TLC5615,虽然是10位,精度较高可以得到更多的采样点,但是该芯片的串行传输的数据的相对并行传输较慢,因此为尽量减少da转换时间,舍弃10位精度,只取其8位,由此最多可以得到256个采样点;因此一个周期可以分为256个点,利用单片机的定时器,每个固定一段时间发送一个点的数据,一直循环,通过滤波把高频谐波滤掉就可以得到波的输出,按照波形的需要改变每点输出的电压,就可以实现对应波的输出。假设每个t传一个数据如果采样点有256个,则相应波形的频率为
F=256/t
题设要求最高频率要达到10khz,对于单片机产生波形,是个比较高的频率,10khz对应时间为100us,而atmega8l的机器周期在8兆晶振下,通过8分频,每计数一个就刚好是1us,而要在100us内传完256个数据,是不可能的,而且tlc5615的转换速率也跟不上,因此为达到10khz的频率不能单单的调节没发送一个数据的时间,必须减少采样点才能达到要求。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !