电子秤中模数转换电路现在主要有两种实现电路:由分立元件组成的积分电路和单个模数转换(ADC)芯片。积分电路构成的系统外围电路复杂,对个别元器件要求高,存在功耗大、可靠性不高、温度性能差的缺点;而单个ADC芯片构成的系统具有高精度、低功耗、高稳定性的特点,且外围电路简单有利于生产及维护。因此,现在大部分电子秤厂家偏向于使用单个ADC的方案。
随着技术的发展,生产和应用要求更加简单、精度更高、成本更低、功耗更低的解决方案,电子秤电路不断向着更高集成化的方向发展。CSU1221是芯海科技公司自主研发的集成高精度ADC的CMOS单芯片MCU,是国内首创的一款应用于商用电子秤的SoC芯片。
CSU1221 芯片技术特性
CSU1221是一个8位CMOS单芯片MCU,内置4K×16位一次性可编程 (OTP)ROM,256B数据存储器(RAM),有17个双向I/O口,带有2通道24位全差分输入或4通道24位单端输入的Σ-ΔADC,工作电压为 2.4V~3.6V,工作电流小于3mA。
如图1所示,CSU1221内部集成稳压源,可配置输出四种不同电压值,为传感器供电,通过对内部寄存器的操作来打开或关闭稳压源的输出,此电压同时作为CSU1221内部ADC的参考电压。CSU1221内置1MHz时钟振荡器,内置一个8位定时器,CPU周期最快可达到500KHz,同时内置蜂鸣器驱动。CSU1221有四个中断源:1个ADC中断、2个外部中断、1个定时中断。
图1:CSU1221芯片功能结构图。
CSU1221 内置ADC的输出速率可以配置为3.8~488Hz,ADC前端的低噪声可编程增益放大器(PGA)可以配置为1、64、128、256等四种不同倍率的增益,以满足各种信号量场合。在PGA为128时,ADC的有效精度达到17.5位。
使用CSU1221内置ADC与 MCU,因此MCU与ADC之间的通讯都在芯片内部完成,避免外界环境对ADC的影响,可靠性比基于单个ADC芯片的应用系统更高,且高集成度带来明显的高性价比优势;CSU1221内部集成稳压电源,方便于传感器供电。使用CSU1221设计电子计价秤的功耗比当前主流的单个ADC方案更低,提高电池的续航能力。
电子秤系统设计
图2是基于CSU1221的电子计价秤原理框图。从图中可看出此系统主要包含电源电路、主控制芯片、模拟信号输入、存储电路、电压测量电路、按键扫描,下面将对这些电路的设计进行分析。
图2:CSU1221应用于电子计价秤的原理框图。
电源系统在CSU1221中,数字电路与模拟电路是分别供电的,为了简化电源电路,两路电源仍用一片稳压电路提供,两电源之间用滤波电感隔开,以减少数字电源中因数字电路产生的杂波干扰对模拟电路的影响。
模拟信号输入传感器输出的模拟差分信号经过两个LC滤除器滤除输入模拟信号中的高频干扰信号之后,再分别输入到CSU1221的AIN0、AIN1引脚。传感器激励端的电压由CSU1221内部LDO输出提供,带负载能力可达到15mA,有四种输出电压可选择,可以通过控制CSU1221内部寄存器控制LDO开关及输出电压值(2.2V、2.5V、2.8V、3V),方便于传感器供电控制。
存储电路 由于CSU1221内部没有E2PROM ,所以必须外部扩展串行接口的E2PROM,如用I2C总线结构的24C02。如用PT3[3]、 PT3[4]作为I2C通讯接口,PT3引脚有上拉电阻可选,所以通讯线不需要外接上拉电阻。
图3:CSU1221应用于电子计价秤的电路原理图。
电压测量在各种电池供电的装置中,都希望监视电池电压,以便能够及时对电池进行充电或更换。CSU1221有五个模拟输入端,通过多路器与ADC连接,利用空余的模拟输入端分时测量电池电压值唾手可得。具体接法是:用电阻网络对电池电压分压,AIN3、AIN4作为电压输入端接到采取电阻两端,通过测量此电阻两端电压,再根据采样电阻阻值对于电阻网络的比率值计算出电池的电压值。测量电压的时机为两个时间:一是刚开机进行一次电压测量;二是开机后的电压测量均是在重量稳定一段时间后再进行一次。每次测量都必须切换ADC通道,PGA = 1,AD速率使用125Hz的档位,这样在测量电压时,AD值较稳定且耗时很短,测试结束之后,必须还原之前的ADC设置,还原后必须丢掉3个AD值。
图4:按键阵列图。
按键扫描 假设按键扫描阵列为4×6,PT1[5]、PT1[6]、PT1[7]、PT2[0]、PT2[1] 、PT2[2]为回扫线,PT2[3]、PT26]、PT3[5]、PT3[6]为驱动线。按键阵排列如图4,在本例中,为了节省元件,未在驱动线中串联隔离元件,如果同时按
下与同一回扫线(输入口)连接的两个按键,就会通过两条相关的驱动线造成两个输出端短路。此时可以使用如下方式法避免:初始化时,接通所有上拉电阻,连接按键的各I/O口均设置为输入口,当需要进行按键扫描时,只需将其需要驱动的那一个I/O口设置为输出口并输出低电平,回检读口后立刻将该I/O恢复为输入口,如此反复,即同一时刻只有一条线为输出口,就不会造成故障。
设计要点及注意事项
CSU1221内部集成1MHz时钟,CPU的时钟周期可选择为:62.5K、125K、250K、 500KHZ,选择500KHz以缩短每次大循环的运行时间。
CSU1221内部集成的ADC,速率选择范围 3.8~488Hz。在测量电压时使用125Hz;在测量传感器时使用15HZ,每个AD值的周期约为67ms,保证在AD值更新之前,程序的大循环已经结束(根据程序大循环运行的时间不同,可以适当调整),为了得到更稳定的重量,首先对AD值进行2次算术平均,然后再进行8次的滑动平均。在测量电压结束之后,必须丢掉3个AD值的时间为200ms,在重量稳定的情况下察觉不到跳动或反应迟钝的现象。
为了提高电子秤的线性,可增加ADC内部运放的偏置电流,增加100%时为最佳。使用CSU1221直接驱动无源蜂鸣器时,必须串一个100欧的电阻,避免快速按键时影响AD值的跳动。在每个大循环结束之后,可以使用HALT指令使CPU处于暂停状态,直到新的中断(如AD中断)产生才恢复正常,这样可以降低功耗CSU1221运行功耗。
由于模拟信号极易受到外界的电磁干扰,所以实际设计中应注意以下细节:1)在PCB布板时接口传感器输入端至 AIN0、AIN1的距离尽可能短,滤波电容的接地端要直接接到铺地铜箔上;2)模拟信号的两引线与铁氧体均平行布线,滤波电容紧密平行排列。
由于I2C的时钟频率比较高,为了避免干扰内置的ADC,需远离模拟端的I/O引脚。CSU1221的模拟地AGND应与数字 DGND分开来,同时回到稳压芯片(HT7130)的地端,而HT7130的地端与电池的地端相连接。并且其它的元器件,如E2PROM (HT24C02)、液晶驱动芯片(HT1621)的地端并不一定要与DGND相连,如果这些元器件的地端与电池的地端相近,可直接将这些地连接到电池的地端。地线连接应遵循下面的原则:非CSU1221模拟地的地线,不能与CSU1221模拟地部分相连,以避免其它元器件产生的干扰信号流经 CSU1221模拟地,影响稳定性。
上电开机后对CSU1221进行初始化时,建议采取如下顺序以提高软件可靠性:a.上电后,延迟30ms;b.初始化CSU1221数字部分;c.延迟30ms后,初始化CSU1221模拟部分;d.延迟60ms后,初始化所有RAM。
本文小结
CSU1221是一款内置ADC的高精度、低功耗、高可靠性的单芯片MCU,外围电路非常简单,应用方便,非常适合用于高精度、小信号测量产品,如高精度电子秤、气压计、血压计,等等。该产品目前已经获得若干衡器及其它行业的批量应用。