造价通

反馈
取消

热门搜词

造价通

取消 发送 反馈意见

AVR方波调频,调占空比功能的一种实现

2018/09/06174 作者:佚名
导读:包含了方波频率调节功能, 调节功能,1-9999Hz的测频功能,利用RC网络作为DA,实现正弦波的产生。 以下简要说明下其实现原理: 调频模式,同时在任意频率下调节占空比的实现:利用定时/计数器1的模式14,将ICR1寄存器设置为TOP

包含了方波频率调节功能, 调节功能,1-9999Hz的测频功能,利用RC网络作为DA,实现正弦波的产生。

以下简要说明下其实现原理:

调频模式,同时在任意频率下调节占空比的实现:利用定时/计数器1的模式14,将ICR1寄存器设置为TOP值,OCR1A寄存器设置为脉宽控制值。改变ICR1的值,即改变了定时/计数器溢出的周期,从而达到调频的功能。改变比较匹配寄存器OCR1A的值,即可改变脉宽的宽度。定时/计数器在输入捕捉中断中更新数值ICR1和OCR1A的值。

由于调频时在定时/计数器不分频时精度最高,但产生的频率有范围,为达到1-9999Hz的频率范围,又要确保精度,故采用两段分频段,在每个分频段内,当输出的频率越低时,精度越高。由于不分频时,其产生的频率范围为244Hz以上,故在250-10K时,采用不分频的时钟频率;在1-250Hz时,采用256分频的时钟频率刚好可以满足最小1Hz的频率输出。在256分频时,产生1-250Hz内的频率,其最大误差为1Hz;在不分频时,产生250-10KHz内的频率,最大误差为6Hz(其误差主要在高频段),在低频段,其最小误差在0.004Hz。

计算公式:256分频的算公式:Frency=62500/ICR1;

不分频的频率计算公式:Frequency=16000000/ICR1;

在系统频率设置完成后,占空比自动调节为50%,当改变OCR1A寄存器的值时(不超过ICR1),即可调节占空比。当ICR1寄存器的值越大,OCR1A可调值的范围就越大,产生的误差就越小。在256分频段,ICR1寄存器的值最小为250(产生250Hz频率时),占空比最大相差0.2%。在不分频段,ICR1寄存器的值最小为1600(产生10KHz频率时),基本上没有误差。

测频模式的实现:由定时/计数器1当做时基,产生固定的时间T,将定时/计数器0的时钟设置为外部时钟输入,外部待测的由T0管脚进入。在T时间内,通过数脉冲信号的个数,可以计算出待测信号的频率。

由于待测信号的频率范围为1-9999Hz,故选用8分频模式,可测频率范围覆盖39-9960Hz,但误差较大,达到40Hz。当采用64分频时,可测频率范围覆盖4-1245Hz,误差为5Hz。当采用256分频时,可测频率范围覆盖1-311Hz,误差为1Hz,可以满足要求。故选用三段测频法,在1-311Hz范围,用256分频测频;在311-1245Hz范围,用64分频测频;在1245-9999Hz范围,用8分频测频。由于存在这样的问题,因为每个分频段的频率计算公式不同,当被测信号频率波动很大时,该测量方法在从高频段返回低频段时会出现计算公式误套的现象。解决的方法是,每10次测量后,重新返回8分频段,确定测频的最佳分频段,再而进入该测频段,进行相对精确的测量。

产生正弦波的实现:利用等面积法,通过在正弦波各个小分段内,改变方波的占空比,改变传递过去的能量,经过RC网络滤波平滑后,即可产生相对平滑的正弦波。由于二阶RC网络的截止频率为1.8Hz,所以对于16M的晶振,采用1024分频,对一个正弦波周期分为m的点,采用8bit定时/计数器,产生的正弦波频率为sin_frequency=16000000/(1024*256*m);当m=256时,产生0.24Hz的正弦波,通过改变取样点数m的值,可以改变正弦波的频率,但是变化范围很有限。

RC网络模拟DA原理图

原文链接:

*文章为作者独立观点,不代表造价通立场,除来源是“造价通”外。
关注微信公众号造价通(zjtcn_Largedata),获取建设行业第一手资讯

热门推荐

相关阅读