CS5530是美国半导体公司推出的一款SPI总线的24位A/D芯片,内置可编程放大器,集成度高,性价比优,在电子秤和其他仪器仪表行业具有广泛的应用前景,具有取代原有电子秤和仪器仪表行业中放大器+A/D芯片电路的 趋势,从电子秤中的应用介绍CS5530芯片的硬件电路、内部结构及软件编程。
电子秤是现代电子发展的产物,由于他具有操作简单、 方便、精度高等优点在工业、日常生活各领域广泛应用,从功 能看可分为单一计重秤、计重计价秤、计重计数秤等多种。其 中单一计重秤在日常生活中最常见,计重计价秤在商场、市 场中广泛应用,计重计数秤主要应用在工业领域,如电子元 器件的装袋、小的零部件的装袋等,由于这些元件、零部件体 积小、重量轻、每袋数量大,以前都是人工数,这样既需要大 量人工,还容易出错。为了解决这些问题,一种高精度既能计 重还能根据单重计算数量的电子秤运行而生,这就是本文 要介绍的计重计数电子秤。
1.总体方案
1.1系统框图设计
电子秤硬件结构主要由以下几部分构成,称重传感器、 放大电路、A/D转换电路、CPU、输入输出电路等构成,其工作 原理就是称重传感器把重力转换成4~20 mV的mV级电压, 再通过放大器放大到A/D转换所需的V级电压,通过A/D转 换成数字量,通过CPU计算处理变成相应的重量值,显示或 输出。计重计数电子秤硬件结构与普通电子秤相同,不同在 于要求精度高、软件功能有所增加,而电子秤的量程和精度 是由A/D决定的,本文介绍的CS5530就一种串行A/D芯片, 由于其位数多、价格便宜,在高精度电子秤中具有巨大优势使用[3],电子秤结构框图如图1所示。
1.2A/D转换芯片选型
A/D转换电路是电子秤的关键部件,这里以一款3 kg/0.1 g 的电子秤为例来介绍A/D芯片的选型,现在市场上A/D芯片 种类繁多,从接口来分有并行、串行的,从转换速度来分有超 速的、高速的、低速的,从精度来看有几位到几十位多种型 号,一般并行价格相对贵,速度越高越贵,位数越多越贵,价 格从几元到几百元,高的甚至达万元以上,而电子秤在速度 上要求不快,但根据不同量程和精度要求对位数有一定要 求,做为电子产品成本是关键,所以选择低成本的串行A/D 是首选,下面具体介绍一下如何通过量程和精度来确定要选 A/D的位数。电子的精度分为外部和内部两种,外部精度就 是显示精度,这也是我们一般讲的电子秤的精度,而要达到 外部稳定显示重量,内部精度必须更高,以般是外部精度的 10倍。内部精度直接由A/D芯片位数确定.
3 kg/0.1 g电子秤外部精度为:3 000 g/0.1 g=30 000;所以内部精度应该大于等于:30 000x10=300 000。设A/D的位 数为n,则2的n之方应大于300 000,所以n应大于18。而 大于18位的A/D主要有20位、24位、32位等,所以一般选 择20位或24位较合适。现在该档电子秤精度的电子秤一般 选择20位的CS5513,而CS5513本身无放大电路,需配一个 双运放电路,常用的为OP2277,前者的价格在20元左右, OP2277也要15元左右,所以运放和A/D总成本需35元。另 —种是24位A/D芯片CS5530,内部包括可编程放大电路, 放大位数在1~64位可选,成本在22元左右,所以从性价比 来看选用CS5530更好。
1.2.1CS5530 特性
CS5530是一款24位SPI总线的中行A/D芯片。主要特 性如下:
1)内部1-64倍放大器;
2)性线失真小于0.0015%,准确分辨率19位以上;
3)三线串行接口 ;
4)内含电源管理、放大倍数、配置寄存器;
5)转换速度从6.25?3 840 Hz可调;
6)多种电源供电方案可选;
1.2.2CS5530引脚及功能描述
1)引脚图,如图2所示。
2 CS5530 pin diagram
2)相关寄存器 ①配置寄存器描述
D31(MSB) D30 D29 D2S D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
| PSS |PDW| RS | RV | IS | NU | VRS | A1 [ AO | NU | NU | NU | FRS | NU | NU | NU |
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D6 D4 D3 D2 D1 DO
| NU | WR3 | WR2 | WR1 I WRO |UP/BP| QCD | NU [ NU | NU | NU | NU | NU | NU | NU | NU |
图 3 Configuration register 描述 Fig. 3 Configuration register description
PSS:0标准模式(晶振激活,可快速上电),1睡眠模式 (晶振停止)
PDW:0正常模式,1激活电源存选择模式 RS:系统复位,0正常模式,1复位 RV:0正常模式,1系统被复位,该位只读 IS:0正常输入,1短输入
VRS:参考电压选择,0:2.5 V < VREF 彡[(VA+ )- (VA-)],1:1 V sS VREF sS 2.5 V A1-A0:
FRS:0默认速率,1以设定速率的5/6工作
D31-D8为24位数据,D2为溢出标志,为1溢出,数据 有错误,其他位为0
2 .CS5530硬件电路设计
CS5530外围原理图,如图7所示。
J2接称重传感器,1-4分别为电源地、电源正、信号负、信 号正,VREF-接地,VREF+接2.5 V通过精密电阻对电源分压 所得,SCLK、SDO、SDI分别接单片机P12、P11、P10,CS接地。
3.程序设计
3.1初始化函数
对CS5530内部寄存器进行初始化,设定相关工作方式, 放大倍数,转换速度等工作。
具体程序如下: void CS5530_Init (void)
{
CS5530Reset(0x00);//复位
CS5530_WriteCmd (0x01,0x00000000);//写 OFFSET 寄
CS5530_WriteCmd(0x02,0x3£££££££);//写 GAIN 寄存器 CS5530_WriteCmd (0x03 ,0x02004800);//写 CONFIG 寄
存器
}
写寄存函数
对CS5530 3个寄存器进写数据操作,具体程序如下: void CS5530_WriteCmd(UINT8 cmd,UINT32 d)
{
UINT8 i;
£or(i=0;i<8;i++)
{
CS5530_CLK=0;
i£(cmd & 0x80 ==0x80)
CS5530_SDIN=1;
else
CS5530_SDIN=0;
CS5530_CLK=1;
cmd<<=1 ;
_nop_();
_nop_();
}
£or(i=0;i<32;i++)
{
CS5530_CLK=0;
i£(d & 0x80000000 ==0x80000000)
CS5530_SDIN=1;
else
CS5530_SDIN=0; CS5530_CLK=1; d<<=1 ;
_nop_(); _nop_();
}
}
读数据函数,读AD转换结果 具体程序如下:
UINT32 CS5530_ReadData(UINT8 d) {
UINT8 i;
UINT32 value;
REPEATREAD:
value=0 ;
CS5530_SD0UT=1;
£or(i=0;i<8 ;i++)
{
CS5530_CLK=0;
i£(d & 0x80 ==0x80)
CS5530_SDIN=1;
else
CS5530_SDIN=0; CS5530_CLK=1 ; d<<=1 ;
_nop_();
_nop_();
}
CS5530_CLK=0;
CS5530_SDIN=0;
while(CS5530_SD0UT);
£or(i=0;i<8;i++)
{
CS5530_CLK=0; _nop_();
_nop_(); CS5530_CLK=1 ; _nop_();
_nop_();
}
for(i=0;i<32;i++)
{
value<<=1 ;
CS5530_CLK=0;
if(CS5530_SDOUT)
value 丨=0x01 ;
CS5530_CLK=1;
}
CS5530_CLK=0; if( (value & 0x04) ==0x04)//OV goto REPEATREAD ; return((value >>8) & 0xffffff);
}
4.结论
电子产品发展速度快,生产量大,采用高集成度芯片,可 以提高稳定性,降低生产成本,本论文采用CS5530设计的电 子秤,稳定性好,生产成本低,具有广阔的应用前景。