一种基于单芯片方案的电子秤系统设计
图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,外围电路非常简单,应用方便,非常适合用于高精度、小信号测量产品,如高精度电子秤、气压计、血压计,等等。该产品目前已经获得若干衡器及其它行业的批量应用。
评论