关键词
单片机,电路设计,模拟,可穿戴,物联网
许多针对物联网 (IoT) 的设计都依靠模拟电路,以便满足应用对传感器和致动器的信号调节、电流控制和其他功能的独特要求。虽然专用的信号链IC可以满足这种需求,但是成本和空间严格受限的设计需要一种专门方法,这种方法不但应该满足性能要求,还应该使用更少的零件来实现这一功能。
为满足这一需求,微控制器应运而生。通过集成诸如模数转换器 (ADC) 和比较器等模拟外设,微控制器可以简化传感器和致动器的接口功能特性。然而,直到最近,工程师们通常还需要添加模拟零件,来提供大多数设计所需的信号调节或输出缓冲。
通过在微控制器上添加这些模拟信号调节电路,开发人员现在只需操作几行代码,即可有效配置这些元件,从而满足可穿戴设备和其他物联网设备的各种模拟接口要求。
本文将讨论物联网连接设备对前端模拟信号调节要求的需求,然后介绍一类具有高度集成模拟功能的微控制器,并说明如何应用此类微控制器。
将传感器连接到微控制器
传感器设计通常需要一个或两个放大器来调节变送器的输出信号,然后才能到达微控制器的ADC输入。诸如用于心率监测的脉搏血氧计等较复杂器件需要多个信号链,才能产生LED激励波形,转换光电二极管输出,并最终提取脉冲数据(图1)。即使是工业应用中通常用于将传感器连至可编程逻辑控制器的简单电流环路,也需要其他设备来驱动和控制电流输出。但是,通过使用MSP430FR2355MCU中的内部模拟元件,开发人员可以实现更紧凑的设计,一般只需添加几个无源元件即可。
图1:用户期待更紧凑产品能够提供更多高级功能,这意味着,开发人员需要在实现复杂信号路径(如此图中脉搏血氧计的路径)时大幅减少零件的数量。
(图片来源:Texas Instruments)
集成模拟元件
Texas Instruments MSP430FR2355 MCU基于16位RISC处理器内核,可提供许多物联网设备设计中通常需要的全套功能。作为TI MSP430FRAM系列器件之一,MSP430FR2355集成了32KB的低功耗铁电存储器 (FRAM)。FRAM非常适合物联网设计,具有闪存的非易失性存储优势,以及RAM的写入速度和耐用性。因此,开发人员可以利用FRAM的类似于RAM的性能品质,在激活模式下存储数据和程序代码,并且可以利用FRAM的非易失性功能,在休眠模式或其他需要节省电能的运行状态下保留数值。MSP430FR2355支持多种低功耗模式,旨在满足这些设计中典型的低功耗要求。
除了低功耗特性外,MSP430FR2355还可通过几个集成的模拟外设支持物联网接口要求,这些外设包括12通道12位ADC、配有集成数模转换器(DAC) 的模拟比较器以及多个片上电压基准。MSP430FR2355 MCU的最独特模拟功能是它的四个智能模拟组合 (SAC) 模块,开发人员可通过编程方式配置这些模块,以满足特定需求。
每个SAC模块均包括一个12位DAC、一个轨至轨运算放大器 (OA) 和一个可将OA转变为可编程增益放大器 (PGA) 的反馈电阻梯。每个元件的专用寄存器可控制其配置和工作模式。例如,开发人员可以简单地在SAC (SACx) 模块的OA寄存器(SACxOA) 中加载0:1位,从而将OA的正输入设置为某个外部源、DAC输出或成对的SAC源(如下所述)。
TI公司的驱动程序库将这些位操作抽象为一组直观的应用程序编程接口 (API) 调用。因此,开发人员只需几行代码(清单1),即可将SAC模块编程为通用放大器,以便完全取代传感器信号调节放大器,从而减少零件数量,缩小设计尺寸(图2)。
清单1
//Select external source for both positive and negativeinputs
SAC_OA_init(SAC0_BASE,
SAC_OA_POSITIVE_INPUT_SOURCE_EXTERNAL,SAC_OA_NEGATIVE_INPUT_SOURCE_EXTERNAL); //Select low speed and low power mode
SAC_OA_selectPowerMode(SAC0_BASE,SAC_OA_POWER_MODE_LOW_SPEED_LOW_POWER)// Enable
OA SAC_OA_enable(SAC0_BASE); // Enable SAC SAC_enable(SAC0_BASE);
清单1:在该示例中,要实现通用放大器,开发人员只需调用几次Texas Instruments驱动程序库,初始化SAC OA输入 (SAC_OA_init),然后将其功耗模式 (SAC_OA_selectPowerMode)设置为低功耗,最终启用OA和SAC即可。
(代码来源:Texas Instruments)
图2:开发人员可以使用MCU四个智能模拟组合 (SAC) 模块的其中一个,通过Texas Instruments MSP430FR2355MCU内部实现的运算放大器来取代外部运算放大器。
(图片来源:Texas Instruments)
要充当输出波形发生器,SAC模块需要接入更多元件(图3)。在这种情况下,开发人员可通过编程方式,将数据加载到可设置内部DAC输出的专用数据寄存器 (SACxDAT) 中,从而实现波形控制。DAC输出随即可为OA提供基准电压。在此配置中,开发人员可将PGA寄存器 (SACxPGA) 中的0:1位 (MSEL) 设置为缓冲模式 (01b),以此增强OA的驱动强度,缓冲模式 (01b) 对应于浮动输入。要配置此工作模式,开发人员只需多执行几次API调用(清单2)即可——与上述通用配置所需的调用相比。
图3:开发人员可使用SAC模块的数模转换器和运算放大器元件,实现可编程波形发生器。
(图片来源:Texas Instruments)
清单2
//Select internal shared reference as DAC referencevoltage SAC_DAC_selectRefVoltage(SAC0_BASE, SAC_DAC_SECONDARY_REFERENCE); //Select the load trigger for DAC data latch//DAC always loads data from DACDAT at the positive edge of Timer output TB2.1SAC_DAC_selectload(SAC0_BASE, SAC_DAC_LOAD_DEVICE_SPECIFIC_0); //Enable DAC InterruptSAC_DAC_interruptEnable(SAC0_BASE); //Write data to DAC Data Register SACxDAT //DAC_data is an unsigned inttype variable defined by user SAC_DAC_setData(SAC0_BASE, DAC_data); //Enable DAC SAC_DAC_enable(SAC0_BASE); //Select internal DAC for positive input andPGA source for negative input SAC_OA_init(SAC0_BASE,SAC_OA_POSITIVE_INPUT_SOURCE_DAC, SAC_OA_NEGATIVE_INPUT_SOURCE_PGA); //Select Buffer Mode SAC_PGA_setMode(SAC0_BASE, SAC_PGA_MODE_BUFFER); //Enable OA SAC_OA_enable(SAC0_BASE); //Enable SAC SAC_enable(SAC0_BASE);
清单2:要将SAC模块配置为波形发生器,除了用作通用放大器所需的API调用之外,开发人员只需多执行几次API调用即可。
(代码来源:Texas Instruments)
多级应用
在许多情况下,开发人员需要使用多个放大器构建的信号条件或输出链。例如,传感器系统设计人员通常可级联放大器,以缓冲变送器输出,并放大缓冲信号,从而与位于信号链一端的ADC的满量程响应相符。同样,输出接口的开发人员通常需要级联放大器来生成波形,并控制栅极驱动器。例如,为了构建电流环路接口,开发人员可使用配置为DAC模式的SAC模块来提供调制信号电压。通过将第二个SAC模块配置为OA模式,可以使用外部晶体管将信号电压转换为电流(图4)。
图4:为了构建电流环路接口,工程师可以使用一个配置为DAC模式的SAC模块来生成调制信号电压,然后使用第二个配置为OA模式的SAC模块来驱动晶体管,从而产生环路电流 ILOOP (I1 + I2)。
(图片来源:Texas Instruments)
MSP430FR2355 MCU为级联放大器提供了更高效的方法。对于不需要其他外部元件的设计,开发人员可利用内置路由,在内部将 SAC 模块互连成两对:SAC0内部连接到 SAC2,SAC1连接到SAC3。
这种互连可应用于传感器系统,例如需要将光电二极管的电流输出转换为电压电平以进一步进行转换的烟雾探测器。开发人员只需几行代码,即可通过一对SAC模块来实现这一信号链(清单3)。在本电路图中,SAC2被配置为跨阻放大器,可将光电二极管的电流输出转换为电压,而成对的SAC0可为下游ADC放大该电压(图5)。如清单3所示,SAC2和SAC0之间的内部连接仅在API调用 (SAC_OA_init) 中创建,以便通过将PGA用作OA的负输入源 (SAC_OA_NEGATIVE_INPUT_SOURCE_PGA),将成对OA用作正输入源 (SAC_OA_POSITIVE_INPUT_SOURCE_PAIR_OA) 来初始化 SAC0 (SAC0_BASE)。
清单3
//Configure Op-Amp functionality GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P3, GPIO_PIN1 | GPIO_PIN3 | GPIO_PIN2, GPIO_TERNARY_MODULE_FUNCTION); //Select external source for both positive and negative inputs SAC_OA_init(SAC2_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_EXTERNAL, SAC_OA_NEGATIVE_INPUT_SOURCE_EXTERNAL); //Select low speed and low power mode SAC_OA_selectPowerMode(SAC2_BASE, SAC_OA_POWER_MODE_LOW_SPEED_LOW_POWER); SAC_OA_enable(SAC2_BASE); // Enable SAC2 OA SAC_enable(SAC2_BASE); // Enable SAC2 //Select external source for both positive and negative inputs SAC_OA_init(SAC0_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_PAIR_OA, SAC_OA_NEGATIVE_INPUT_SOURCE_PGA); SAC_OA_enable(SAC0_BASE); // Enable SAC0 OA SAC_enable(SAC0_BASE); // Enable SAC0
清单3:开发人员只需初始化MSP430FR2355 MCU的一对SAC模块,并规定下游级的输入端需将成对OA用作其来源 (SAC_OA_POSITIVE_INPUT_SOURCE_PAIR_OA),即可创建一个两级信号链。
(代码来源:Texas Instruments)
图5:通过配置MSP430FR2355 MCU的成对SAC模块,实现典型烟雾探测器输入信号链中所需的跨阻放大器 (TIA) 和可编程增益放大器(PGA),开发人员可以有效地消除烟雾探测器设计中对外部模拟IC的需求。
(图片来源:Texas Instruments)
使用这种方法,开发人员几乎可实现物联网设计及可穿戴设备所需的全套模拟输入和输出电路。例如,开发人员可使用MSP430FR2355 SAC模块,将复杂的模拟设计(如图1所示的脉搏血氧计)简缩成更紧凑的版本(图6)。除了LED、光电二极管和相关电阻器外,设计人员只需MCU即可实现同样的功能。
图6:开发人员可以使用MSP430FR2355 MCU及其SAC模块,在需要多个输出激励源和多级输入信号链的脉搏血氧计等设计中,大幅减少零件的数量。
(图片来源:Texas Instruments)
要评估MSP430FR2355 MCU及其SAC模块的用途,开发人员可利用Texas Instruments MSP-EXP430FR2355LaunchPad开发套件。该电路板设计用于加快原型开发,包括基于MSP430FR2355的完整系统,系统配有光传感器、LED、按钮(用于与简单示例应用程序交互)以及用于软件开发的板载调试探头。
Grove连接器可连接各种基于Grove的附加组件,TI BoosterPack连接器则可让开发人员通过RF BoosterPacks轻松扩展基础平台,从而实现无线连接。TI还提供一组示例软件应用程序,这些程序设计用于在LaunchPad套件上立即运行。除了运行LaunchPad开发板之外,示例软件还演示了基本设计模式,例如清单3代码片段中显示的SAC模块互连方法。
本文小结
任何与现实世界交互的器件一般都需要模拟接口。然而,在针对可穿戴设备和物联网设备的许多设计中,构建这些接口所需的附加元器件与更紧凑设计和减少零件数量的要求背道而驰。 通过配置集成在TexasInstruments MSP430FR2355 MCU中的模拟元件,开发人员通常只需添加几个无源元件,即可实现这些设计所需的信号链功能。