摘要:由于MAXQ3212微控制器具有尺寸小,成本低的特性,并拥有完整的低成本开发系统,理想用于真实世界的控制。本应用笔记描述一个基于MAXQ3212的系统,该系统可为立体声模块提供交流电排序功能。该系统可避免上电和断电瞬间对系统直接的和潜在的损坏。MAXQ3212 RISC微控制器将端口引脚作为I/O口,并产生信号激活继电器,可切换交流电源为两组独立的立体声模块供电。
图1. 典型组合立体声系统
本应用笔记描述了一个基于MAXQ3212 RISC微控制器的简单系统,为图1中所示的组合立体声系统提供电源排序功能。本系统之所以采用MAXQ3212,是由于MAXQ3212具有小尺寸和低成本的特点。该器件还有一个重要优点,即可提供完整的、低成本开发系统。MAXQ3210评估(EV)板提供了这么一个开发平台。这个系统选择了MAXQ3212而不是MAXQ3210,是因为MAX3210的电压调节器和压电扬声器驱动器对本应用无用。为了简化设计并且减少潜在的工作问题,我们使用小型功率继电器控制交流电源切换。系统软件通过单刀单掷(SPST)开关检测用户的输入信号,使用配置成输出的处理器引脚控制继电器。低占空比功率FET将处理器的端口引脚连接至继电器的线圈上。
该例程代码的完整开发环境为MAX-IDE 1.0版本和MAXQ3210评估板A版本。
图2. MAXQ3212系统原理图
RELOAD = 65536 - (时间 × 3.578MHz/128)
设定定时器每1秒时间间隔后产生一次中断;变量TIC在每次中断时都会加1。因此,将TIC和希望值相比较就能产生比定时器最大时间间隔值要长得多的时间间隔。修改延迟时间只需简单的修改一下延迟子程序所调用的参数并重新编译代码即可实现。
概述
为系统的不同模块提供特定的上电顺序往往有利于提高系统性能。同样,为保证系统稳定,往往需要在不同的处理模块间加入延迟或者关断模块电源。图1给出了一个典型的组合立体声系统的例子。电源排序和时间延迟的威廉希尔官方网站 有助于消除可能的瞬态,从而避免损坏敏感元件,例如扬声器的高频驱动器。图1中的模块可分为两组:信号源和前置放大器为一组,通常称为前置放大电路;功率放大器和扬声器为另一组,通常称为扬声器。在这类系统中,往往要求先给前置放大器供电(交流电源A),经过一段时间延迟,保证放大器输出稳定之后再给扬声器供电(交流电源B)。这一处理方法有助于消除扬声器中讨厌的啪噗声和/或可能损坏设备的瞬态冲击。断电的时候,可以采用类似方法,只需将顺序倒过来:先将扬声器断电,然后再关断前置放大器电源。图1. 典型组合立体声系统
本应用笔记描述了一个基于MAXQ3212 RISC微控制器的简单系统,为图1中所示的组合立体声系统提供电源排序功能。本系统之所以采用MAXQ3212,是由于MAXQ3212具有小尺寸和低成本的特点。该器件还有一个重要优点,即可提供完整的、低成本开发系统。MAXQ3210评估(EV)板提供了这么一个开发平台。这个系统选择了MAXQ3212而不是MAXQ3210,是因为MAX3210的电压调节器和压电扬声器驱动器对本应用无用。为了简化设计并且减少潜在的工作问题,我们使用小型功率继电器控制交流电源切换。系统软件通过单刀单掷(SPST)开关检测用户的输入信号,使用配置成输出的处理器引脚控制继电器。低占空比功率FET将处理器的端口引脚连接至继电器的线圈上。
该例程代码的完整开发环境为MAX-IDE 1.0版本和MAXQ3210评估板A版本。
系统实现细节
该系统的实现非常简单。为了避免交流电源线上有源负载引起的任何问题,我们采用5V线圈继电器取代固态器件(如三端双向可控硅开关元件)控制交流电源切换。该系统使用外置5V稳压电源直接接到继电器线圈上。继电器线圈的电流由小型(TO92封装)功率FET控制,而FET由MAXQ3212处理器的标准输出端口引脚控制。该系统原理图如图2所示。用户输入
该系统原理图中,用户通过一个开关控制整个系统上电和断电。显然,系统要求能够只给前置放大器供电,而不给扬声器供电。这将方便用户使用由前置放大器驱动的耳机,而不会激活扬声器。要完成这个功能,需在系统中加入一个扬声器关断开关。在给扬声器供电之前,系统会快速检测该开关。如果开关处于激活状态,将不给扬声器供电;如果开关不处于激活状态,将像通常情况一样给扬声器供电。图2. MAXQ3212系统原理图
LED状态指示器
在这个系统中,MAXQ3212端口引脚P0.7的直接LED驱动能力提供了系统状态指示器。当系统软件完成一个主循环时,端口引脚将改变其当前状态。该引脚直接通过470Ω限流电阻连接到LED,因此每执行一次主程序,循环端口极性变化一次,使LED闪烁一次。系统空闲时(比如等待用户输入),LED大约每秒钟闪两次。当软件进入延时环节时,LED保持它当前状态,直到软件退出延时环节。因此,可以通过LED的状态检测系统的工作状态。双FET线圈驱动
该系统的最初方案中,在端口引脚和继电器之间使用了一个FET。当给微控制器提供直流电源并达到稳定时,由于处理器的端口引脚从复位缺省高电平跳变到关闭继电器所需的低电平(由软件控制),这一过程中继电器将会被短暂激活。接入另一个FET,端口引脚的复位缺省状态能保持继电器关断,从而无需软件介入。这样就消除了不希望的瞬态。系统状态字节
在系统软件中,使用一个字节反映系统当前状态。该字节中的各位用于指示各个输入和输出信号的状态。因此这一字节必须可读、可写并可位寻址。在MAXQ3212中,模块0到模块2的所有寄存器都是可位寻址的。唤醒定时器寄存器(WUT)在模块0中(M0[15]),但是在这一应用中没有用到该定时器。因此,选择该寄存器作为系统的状态字节。在软件中,分别定义该字节的各位。 这些位可分别写入或读出,根据其所对应端口引脚的状态置位和清零。产生时间延迟
在该系统中,我们使用MAXQ3212的定时器2产生设定的时间间隔。该定时器具有16位定时器以及3.58MHz的主系统时钟,可产生高达2.34秒的时间间隔。为简单起见,采用1秒的基本时间间隔,通过系统变量TIC记录1秒的时间间隔数。定时器的预载值由以下等式给出。可以得出,对于1秒的时间间隔,预载值应该为37583 (取最近的整数)。RELOAD = 65536 - (时间 × 3.578MHz/128)
设定定时器每1秒时间间隔后产生一次中断;变量TIC在每次中断时都会加1。因此,将TIC和希望值相比较就能产生比定时器最大时间间隔值要长得多的时间间隔。修改延迟时间只需简单的修改一下延迟子程序所调用的参数并重新编译代码即可实现。
评论
查看更多