您的位置 首页 > 数码极客

如何用软件30路PWM

摘 要: 以STM32F103VCT6单片机为控制核心,实现了一个可产生两路幅度、频率、占空比、相位差皆可调的矩形波或正弦波的双相信号发生器。系统由带有TFT显示屏、键盘输入模块的STM32系统和外部调理电路组成。本系统可以高精度地实现信号发生器的基本功能,能够适应普通电子测量场合的应用。

0 引言

随着科学技术的不断发展,20世纪40年代出现了主要用于测试各种接收机的标准信号发生器。早期的信号发生器机械结构比较复杂,功率比较大,电路比较简单,因此发展速度比较慢。60年代出现的信号发生器多采用模拟电子技术,由分立电子元件或模拟集成电路构成,其电路结构复杂,输出波形的幅度稳定性较差,而且模拟器件构成的电路存在着尺寸大、价格贵和功耗大等缺点[1]。70年代出现的函数发生器多以软件控制为主,其实质是采用微处理器对DAC进行控制从而得到一些简单的波形。软件控制波形的一个最大缺点就是输出信号的频率低,这主要受限于CPU的工作频率[2]。80年代以后,数字电子技术逐渐成熟,模拟信号处理逐渐被数字信号处理所代替,从而扩充了函数发生器的信号处理能力,提高了信号测量的准确度和变换速度[3]。90年代出现了几种真正高性能的函数信号发生器,比如惠普公司推出了型号为HP770S的信号发生器,虽然其性能优异,但是其价格昂贵,因此普及率不高。针对此情况,设计了一款性价比比较高的简易数字控制双相信号发生器,可以广泛应用于高校电子实验室。

1 系统实现及结构框图

本系统主要包括主控制模块、键盘输入模块、TFT显示模块、低通滤波模块以及程控放大模块,如图1所示。用户通过键盘设定参数后,主控制器产生两路PWM波,然后通过控制模拟多路复用器来选择是否让PWM波通过低通滤波器,从而达到了选择波形的目的,而后调整数字电位器以控制程控放大器的比较电压,从而实现了对波形幅度的控制。控制核心采用基于ARM Cortex-M3内核的STM32单片机为控制核心。波形产生方案利用STM32定时器的输出比较功能,能够生成频率准确并且频率范围很大的矩形波,同时占空比可调,再将其经过低通滤波器可以得到相应的正弦波。这种方案可以充分发挥STM32的强大定时器资源,可以轻松产生两路信号,并且只要软件配置好后,波形的产生由控制器硬件自行完成,可以减少软件对整个过程的干预,提高精确度以及CPU的工作效率[4]。

2 系统软硬件设计

2.1 低通滤波器硬件电路设计

将对称方波通过傅里叶级数展开得到:

由式(1)可知,对称方波的频谱只包含基波和奇次谐波的余弦分量[5],因此,只要将方波通过一个低通滤波器,将基波外的其他谐波滤除,只保留基波分量,就可以得到相应频率的正弦信号。MAX295为8阶椭圆低通滤波器,其最高截止频率为50 kHz,截止频率等于输入时钟的1/50,在其带宽范围内,信号幅度平稳,基本没有相移,可以达到很好的滤波效果。根据预期目标,输出信号的频率为1 kHz~40 kHz,对应的MAX295的输入时钟频率范围为50 kHz~2 MHz,只要将截止频率设为正弦波的频率,就可以使MAX295达到一个很好的滤波效果。整个低通滤波器的设计电路如图2所示。

2.2 CDCE925时钟模块设计

CDCE925是可编程时钟产生芯片,其内部具有两路独立的PLL电路,可产生5路时钟输出,最高输出频率可达230 MHz。在本系统中,要为MAX295提供2.5 MHz时钟,正是通过独立的CDCE925模块来产生的,CDCE925模块的电路如图3所示。

2.3 放大器电路设计

为了实现信号幅度的可调,必须通过程控放大的手段控制信号的幅度。在将信号送入程控放大器之前,先使其经过一级射极跟随电路。射极跟随器的输入电阻Rt=rbe+(1+

)R很大,而输出电阻Ro=(Rs+rbc)/

很小,作为主放大器的信号源内阻,对主放大器影响很小,常作为阻抗变换器或缓冲器[6]。射极跟随器的搭建采用NE5532,射极跟随器的设计电路如图4所示。

程控放大电路由VCA810和PGA205组成,实现两级程控放大。VCA810是高增益可调放大器,其增益范围为-40 dB~40 dB,可通过输入电压来调控,本系统中是由数字电位器来调节VCA810的输入电压。PGA205是可编程增益放大器,其放大倍数可设为1、2、4和8。两级程控放大电路设计图如图5所示,图5中由R4、R5、R6、R8和C13组成调零电路,调节滑动变阻器R4和R8可以减小输出幅度误差[7]。

末级放大由高压摆率、高输出电流放大器THS4051组成,同样为射极跟随接法,隔离开了负载与主放大器之间的联系,输出电阻很小,带负载能力强,输入电阻很大,对主放大器的影响甚小,末级放大电路如图6所示。

2.4 系统控制算法软件实现

在程序设计中,控制器STM32的一大重要作用就是生成两路PWM波。结合STM32的特点,决定采用STM32定时器的输出比较功能来生成这两路PWM波。STM32共包含8个定时器,其中包括基本定时器TIM6和TIM7,通用定时器TIM2~TIM5,高级定时器TIM1和TIM8。在这8个定时器中,除了基本定时器,其他定时器都带有PWM输出功能,其中每个高级定时器更是可以同时输出7路PWM输出,而每个通用定时器也能同时产生4路PWM输出,这样STM32的定时器总共可以产生30路PWM输出。当然,在本系统中只需要两路PWM输出,考虑到需要设置两路PWM波的相位差,因此不能用同一个定时器来产生两路PWM输出,而需要用到两个不同的定时器,这里选用TIM2和TIM3作为两路PWM的发生器。产生PWM信号的软件流程如图7所示[8]。

3 实验结果及分析

本系统采用分模块单独测试和整体测试方法,对波形的幅度、频率、占空比以及相位差等项目进行逐一测量。表1~表3分别为其正弦波测试结果、矩形波测试结果以及相位差测试结果。从表1~表3的测试结果可以看出本系统基本实现了预期的功能,对误差的控制也非常到位,基本上所有的误差都控制在1%以内,完全满足高校实验室一般的实验要求。

4 结论

本文设计了一种简易的数字控制双相信号发生器,它具有结构简单以及性比价高等优点。实际上系统还有很大的提升空间,因为STM32能产生的PWM信号的频率远远大于40 kHz,系统最大频率的限制来自MAX295,因为MAX295的最高截止频率只有50 kHz,如果选用更高性能的低通滤波芯片,那么系统能达到的指标还可以很大程度地提高。同时,系统只实现了矩形波和正弦波的输出,而MAX309模拟通道有多路,完全可以在不改变原有系统设计的情况下增加其他整形电路,使其产生三角波等波形,因此它具备很好的扩展性。

参考文献

[1] 张华峰,李涛,赵涛.某型导弹雷达波形信号发生器的设计与实现[J].国外电子测量技术,2012,31(1):52-55.

[2] 吴征,苏淑靖.基于FPGA+PWM的多路信号发生器设计[J].电子技术应用,2014,40(3):38-40,44.

[3] 董亚男,马俊,周泉,等.基于单片机的智能信号发生器设计与仿真[J].电子测量技术,2014,37(1):62-65,75.

[4] 意法半导体(中国)投资有限公司.STM32F10xxx参考手册[Z].2010:268-269.

[5] 朱小斌.电子测量仪器[M].北京:电子工业出版社,1996.

[6] 董伟波,王茜蒨,韩旭.基于虚拟仪器技术的APD噪声等效功率测量系统[J].仪器仪表学报,2011,32(11):

2635-2640.

[7] 赛尔吉欧·佛朗哥.基于运算放大器和模拟集成电路的电路设计[M].刘树棠,朱茂林,荣玫,译.西安:西安交通大学出版社,2009.

[8] 王建校.51系列单片机及C51程序设计[M].北京:科学出版社,2002.

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何用软件30路PWM”边界阅读