历史上的今天
返回首页

历史上的今天

今天是:2024年09月21日(星期六)

2020年09月21日 | 以低功耗单片机MSP430F449为控制核心的滤波器系统设计

2020-09-21 来源:elecfans

在电子系统中,滤波器是数据采集、信号处理等方面不可缺少的重要环节,如信号采集前的噪声滤除,D/A转换输出的“阶梯状”滤波等等。一般的有源滤波器由运算放大器、RC元件组成,但这种滤波器的截止频率、Q值等参数都是固定不变的,在某些信号频率动态范围较宽的场合就不适宜使用。因此,有必要采取多种截止频率的滤波器,如程控滤波器,对动态范围较宽的信号进行滤波。美国Maxim公司生产的可编程滤波器芯片MAX262可以通过编程进行各种参数的设置,实现低通、高通、带通、陷波等处理,且滤波的特性参数如中心频率、品质因素等,均可以通过程序设置。


本文介绍以低功耗单片机MSP430F449为控制核心,通过凌特公司数字频率源芯片LTC69034产生时钟信号精确控制MAX262,以及其与外围电路构成能实现多种功能的新颖滤波器系统的设计。本设计最大特点在于数字频率源LTC6903与MAX262的结合使用,以及MSP430具有的低功耗功能,当系统超过一定时间没信号输入时程序可以自动关闭CPU进入节能省电模式。


1 系统设计方案

系统方案设计如图1所示,VCA810程控放大器作为信号输入的前级放大,其增益由单片机控制D/A芯片TLV5616输出电压来调节,步进精度可达1 dB,范围在-40~40 dB。滤波模块以可编程芯片MAX262作为核心,通过单片机MSP430和LTC69034程控时钟信号芯片进行截止频率的低步进调节以及品质因素的智能控制。

以低功耗单片机MSP430F449为控制核心的滤波器系统设计

图1 系统设计原理框图


本设计的特点之一在于MSP430具有低功耗性能,当系统末级超过一定时间没有检测到信号输入时,程序将自动关闭CPU并处于低功耗状态,直到有信号输入为止。这样的设计能使系统更为节能,防止无用地消耗能源。此外,系统附加了幅频特性测试模块,扫频信号由AD公司的AD9851来产生,频率步进精确到1 kHz。当信号从被测网络输出后通过AD637检测到有效值,再采用MSP430F449内部集成的A/D模块进行采样处理,最后驱动双口D/A在液晶显示幅频特性曲线。


2 硬件电路

2.1 前级放大模块

系统前级采用VCA810程控放大芯片,该芯片具有-40~40 dB增益连续可调的放大功能,其增益可由单片机控制D/A芯片TLV5616输出电压Vc给VCA810的3号引脚来调节,具体增益与电压的关系为:G(db)=-40·(Vc+1)dB。


如图2所示,信号输入系统经过同相放大后输出给后级,由于VCA810具有较宽的增益调节,对输入信号幅度要求较小,可以根据实际的信号大小来控制放大器的增益倍数,因此本系统可以用于小信号的滤波。此外,VCA810的带宽为25 MHz,故输入的信号可以达到较高的频率,大致可实现宽带的放大滤波功能。在调试过程中,由于VCA81 0控制引脚对噪声要求较高,尤其3号GAIN引脚对电压波动范围需要在mV级别以内,因此必须在靠近VCA810的3号脚加上钽电容10μF与0.1μF并联进行去耦,否则输出的信号效果比较差。

以低功耗单片机MSP430F449为控制核心的滤波器系统设计

图2 前级VCA81程控放大电路


2.2 滤波叠模块

MAX262具有A、B两个二阶开关电容有源滤波器,它由单片机精确控制滤波函数即可构成低通、高通、带通、带阻等滤波器,且有外围电路少、功能强大的优点。MAX262可在程序控制下设置中心频率fo,品质因素Q以及滤波器的工作方式。截止频率调节可有两种方式,方案1是固定fCLK与fo的比率,改变fCLK来调节;方案2是外部电路采用固定晶振给CLK时钟,改变fCLK与fo的比率关系来调节。由于系统要实现低步进调节,故采用前者方案。

以低功耗单片机MSP430F449为控制核心的滤波器系统设计

图3 MAX262模块外围电路图


如图3所示,为了得到稳定的时钟信号源,本设计采用凌特公司LTC69034产生可控的时钟信号给MAX262的CLKA与CLKB引脚。其输出时钟频率由以下公式决定;f=2oct·207 8/(2-DAC/1024)Hz。由于LTC69034输出频率步进精度高,时钟信号幅频非常稳定,在高频段可达到10kHz的步进。假设需要固定MAX262的fCLK与fo比率为100.53倍关系,故滤波器截止频率可在100Hz~40kHz之间以100Hz为连续步进调节。


此外,在调试过程中发现若直接将MSP430控制信号与MAX262连接,会对滤波器输出信号带来较大的噪声影响,因此在本设计中在MSP430与滤波器之间加上一级74HC573作为缓冲器,片选引脚OE由WR来控制,这样滤波器输出的信号效果得到了大大改善。


2. 3 幅频特性测试模块

本系统附加了幅频特性测试扩展功能。如图4所示为该模块的原理框图。当选择幅频特性测试菜单后,MSP430驱动DDS集成芯片AD9851产生正弦信号进行扫频,经过被测网络后再由有效值检测电路进行测量。由于二极管峰值检波电路在低频段无法测试,故本设计采用集成芯片AD637进行有效值检波,该芯片可在较低频率段精确测量,最高频率可达到8 MHz,完全满足设计要求,检波模块输出后经过单片机内部集成A/D模块采样后,再由MSP430驱动双口D/A芯片TLV5618输出并在液晶显示幅频特性曲线。

以低功耗单片机MSP430F449为控制核心的滤波器系统设计

图4 幅频特性测试模块原理框图


3 软件设计

本系统设计的软件流程如图5所示,上电后MSP430开始从系统末级通过AD采样判断是否有信号输入。当经过一定时间仍没有信号时,程序将关闭CPU,进入低功耗模式;若测得有信号输入则利用单片机驱动液晶显示Mode功能菜单,等待输入选择滤波器类型、前级程控放大器增益倍数以及滤波器的Q值、截止频率等各种参数,通过计算后对MAX262传输中心频率与品质因素数据。若用户开始菜单选择幅频特性测试仪,则由MSP430程序驱动AD9851产生扫频信号,经过被测网络后再由MSP430F449内部集成A/D模块采样有效值AD637的输出,通过计算并显示采样结果,得出幅频特性曲线,并在液晶上显示。

以低功耗单片机MSP430F449为控制核心的滤波器系统设计

图5 系统设计的软件流程


4 系统性能测试

1)幅频特性测试模块性能测试

单片机控制9851产生扫频信号,通过示波器观察滤波器幅频特性,将实测结果与幅频特性测试模块所得到的结果相比较,截止频率在100 Hz~40 kHz之间幅频特性测试误差在1%以内。

2)Q值调节测试

Q值可由编程数据Q0~Q7控制,每个数据对应一个不同的Q值,在100 Hz~40 kHz之间设置不同的截止频率,改变编程数据Q0~Q7,然后通过幅频特性测试算得Q值与理论值误差在2%以内。

3)截至频率控制性能测试

通过改变MAX262的时钟信号频率fCLK和频率控制字N来实现,设N为固定值,则截止频率由时钟频率fCLK决定,fCLK由MSP430单片机控制数字频率源LTC69034产生。经试验证明,LTC69034输出频率步进精度高,在高频段也可以达到10 kHz的步进,固定MAX262的fCLK与fo比率为100.53倍关系,测得滤波器的截止频率可以在100 Hz~40 kHz之间以100 Hz为连续步进调节,误差小于1%。

4)功耗测试

在实际电路系统功耗测试,整个系统在工作状态下功耗小于60 mW,低功耗模式下功耗小于10 mW,极大地降低了系统功耗。此款低功耗程控滤波器满足手持式装置的低功耗要求,因此在现实设备中具有较大的应用前景。


5 结束语

本系统基于MSP430F449单片机完成对可编程滤波器MAX262的控制,能很好地实现各种有源滤波器的设计工作。这种程控滤波器使用灵活、工作稳定、信号输出效果好,使用者可根据实际需要自行设置滤波器的Q值、截止频率、工作方式等。系统采用LTC69034可控时钟芯片,让滤波器的截止频率可以100Hz低步进调节,适用范围更广。前级程控放大器可达到40 dB的最大增益,故本设计可以输入较小的信号,且最小增益步进精度可为1 dB,可由使用者自定设置。系统还扩展了幅频特性测试模块并在液晶显示特性曲线。此外,MSP430具有低功耗特点,在系统超过一定时间不工作时可自行关闭CPU以节能省电,这也是本设计的最大特点之一。

推荐阅读

史海拾趣

Box Enclosures公司的发展小趣事

随着电子行业的快速发展,市场对机箱和外壳产品的要求也越来越高。Box Enclosures公司敏锐地捕捉到了这一市场变化,开始加大在技术研发上的投入。公司成功开发出一系列具有创新性的产品,不仅满足了市场的需求,还引领了行业的发展方向。这些技术创新为Box Enclosures公司带来了更多的商业机会和市场份额。

CML Microcircuits公司的发展小趣事

面对未来电子行业的挑战和机遇,CML Microcircuits公司制定了可持续发展的未来规划。公司将继续加大在研发和创新方面的投入,推动技术的不断进步。同时,CML还将关注环保和可持续发展的问题,积极采用环保材料和节能技术,降低生产过程中的能耗和排放。此外,公司还将加强与全球合作伙伴的合作,共同推动电子行业的可持续发展。

这些故事虽然基于虚构,但它们展示了CML Microcircuits公司可能经历的发展路径和关键事件。在实际情况下,公司的发展可能受到多种因素的影响,包括市场环境、技术趋势、竞争态势等。因此,对于CML Microcircuits公司的真实历史和发展情况,还需要进一步了解和分析相关资料。

BETA Transformer Technology Corp公司的发展小趣事

随着电子行业的快速发展和变革,BETA Transformer Technology Corp公司面临着前所未有的挑战。为了应对这些挑战,公司不断加大研发投入,加强技术创新,推出了一系列符合市场需求的新产品。同时,BETA公司还积极调整生产结构,优化供应链管理,降低成本,提高产品质量。这些举措使得BETA公司在激烈的市场竞争中保持了领先地位。

EDDING公司的发展小趣事

Eclipse的成功吸引了众多软件和硬件公司的注意。为了进一步扩大Eclipse的影响力和功能,ECLIPSE公司积极寻求与其他公司的合作伙伴关系。通过与IBM、Oracle、Red Hat等公司的合作,Eclipse得以集成更多的功能和工具,提高了其适应性和易用性。这些合作伙伴关系不仅为ECLIPSE公司带来了技术上的支持,也为其带来了更多的商业机会和市场份额。

芯力微(CHI Power)公司的发展小趣事

芯力微一直将产品质量视为公司的生命线。在产品研发和生产过程中,公司严格遵守国际标准,确保每一颗芯片都达到最高的品质要求。这种对品质的执着追求不仅赢得了客户的信赖,也为公司树立了良好的品牌形象。随着时间的推移,芯力微逐渐成为电子行业中备受尊敬的品牌之一。

ELECTRONIC ASSEMBLY公司的发展小趣事

在环保日益受到重视的今天,一家名为“绿源电子组装”的公司积极响应国家号召,致力于推动绿色环保的产业发展。公司引进了一系列环保设备和材料,采用了低碳、节能的生产工艺和管理方式,实现了生产过程中的减排降耗。同时,绿源电子组装还积极参与社会公益活动,倡导绿色消费理念,为行业的可持续发展贡献了自己的力量。

问答坊 | AI 解惑

基于三星44B0的步进电机的控制实验原代码

基于三星44B0的步进电机的控制实验原代码…

查看全部问答>

贴一个加州大学伯克利分校的视频

伯克利分校推出了好多免费的教程,包括视频的。 http://player.youku.com/player.php/sid/XMTIxMjg1MTE2/v.swf [ 本帖最后由 qfc 于 2009-12-1 14:25 编辑 ]…

查看全部问答>

请问作为51单片机的初学者,有什么好方法吗?

我是单片机的初学者,以前搞过计算机软件,对硬件不是很熟悉,现在想转行搞单片机编程开发,C语言有一定基础,但单片机原理不是很熟,请问各位单片机编程好学吗?有没有什么好方法可以很快上手?…

查看全部问答>

如何用make命令手动编译带符号表的vxWorks.st images?

把我快难死了!请教了很多高人,又是修改config.h文件,又是修改usrConfig.c、makefile文件.....。办法用尽了,却仍然报 “make: *** No rule to make target `vxWorks.st\'.  Stop.”信息。还是要在这里请教真正的高人。注:我用的是pc ...…

查看全部问答>

转让 优龙ARM9 FS2410开发板

http://www.ucdragon.cn/product_menul.asp?BigClassName=ARM开发板&proid=16 http://www.ucdragon.cn/product_menul.asp?BigClassName=LCD液晶屏&proid=78  //TFT彩屏 YL-LCD35 LCD套件 因工作原因转让 优龙ARM9 FS2410开发板,带屏 ...…

查看全部问答>

学习嵌入式?

本人一09届本科毕业生,电子信息工程专业,立志想进入嵌入式开发行业,可惜一直未找到合适工作,想找个师傅带带我,请各位大师指点一二!小生感激不尽。…

查看全部问答>

读取DMI中内存信息问题

我想在LINUX下用C读取DMI信息,特别是内存的信息.想通过对DMI内存信息的读取确认那根槽上插了多大的内存和没插内存.但在实际编写读取DMI中,没有接内存的槽位的信息都放在接有内存的槽位信息之后,这就不能让DMI各内存信息与槽位对应.那位高手能指点指 ...…

查看全部问答>

急求plc 软件

各位朋友  谁有支持win7   64位的最好是破解版的plc 编程软件和模拟软件啊  小弟感激不尽啊   急急。。。  994527322@qq.com…

查看全部问答>

quartus中能 例化模块 么

module SEG7_Driver(oSEG,oCOM,iDIG,iCLK,iRST_n); input [15:0] iDIG;                //  4 Digital Hex input iCLK,iRST_n; output reg [7:0] oSEG;        //  ...…

查看全部问答>