電子秤普遍出現(xiàn)于今天的工業(yè)應(yīng)用上。電子秤制造商通常采用proprietary ASICs 去達(dá)到模擬前端的高精度和穩(wěn)定度 ,不過有些設(shè)計也會選用標(biāo)準(zhǔn)產(chǎn)品高達(dá)23位有效精度類同定做的方案。電子秤設(shè)計最大的難題是如何混合多個負(fù)載元在使用上仍能保持極低噪聲,而TI 推出的ADS1230, ADS1232和 ADS1234就可配合到。。
ADS1230的通過是一個精密的20位模數(shù)轉(zhuǎn)換器(ADC)。內(nèi)置低噪聲可編程增益放大器(PGA),板載振蕩器,精度20位∑-ΔADC,通過提供一個完整的橋式傳感器的應(yīng)用包括電子秤、應(yīng)變計和壓力傳感器的前端解決方案。
低噪聲PGA具有增益為64或128,支持全面的±39mv或±19.5mv差動輸入,分別。Δ∑ADC具有20位有效分辨率,由第三階調(diào)制器和第四階數(shù)字濾波器組成。兩個數(shù)據(jù)速率的支持:10sps(有50Hz和60Hz的排斥)和80sps。ADS1230通過可以由內(nèi)部振蕩器或外部時鐘源時鐘。偏移量標(biāo)定進行點播,并通過可以放在低功耗待機模式或完全關(guān)閉掉電模式。所有的功能都通過專用引腳控制;有沒有數(shù)字寄存器的程序。數(shù)據(jù)通過一個容易隔離的串行接口輸出,該接口直接連接到msp430和其他微控制器。“通過提供一個采用TSSOP - 16封裝和指定–40°C + 85°C.
以下是ADS1230-MS430源程序代碼,可以參考!
/********************************************************************************
*program name:ADS1230.c
*function: driver for ADS1230(AD)
*Company: LSD Co,LTD
*Date: 2007-09-12
*修改: 15:07 2009-04-14,LJZ
include:
long ReadAD(void); //讀AD,從數(shù)據(jù)線上讀取AD輸出的數(shù)據(jù),可在查詢或中斷中調(diào)用
void OffsetAD(void); //失調(diào)校準(zhǔn),一般用來在啟動AD后,進行一次AD校準(zhǔn)
void InitADline(void);//初始化AD控制線,在啟動AD前調(diào)用
/**********************************************************************
ADS1230
* 接口定義:DOUT《---》P2.0; SCLK《---》P2.1; PDWN《---》P2.2 *
***********************************************************************/
#define ADS_IE P2IE
#define ADS_IFG P2IFG
#define ADS_DIR P2DIR
#define ADS_OUT P2OUT
#define ADS_IN P2IN
#define ADS_DATA_BIT BIT0 //ADS_DOUT
#define ADS_CLK_BIT BIT1 //ADS_CLK
#define ADS_PD_BIT BIT2 //ADS_PDWN
#define ADS_DATA_DIR_IN() ADS_DIR &= ~ADS_DATA_BIT;
#define ADS_CLK_DIR_OUT() ADS_DIR |= ADS_CLK_BIT;
#define ADS_PD_DIR_OUT() ADS_DIR |= ADS_PD_BIT;
#define AD_IS_ON (ADS_OUT & ADS_PD_BIT)
#define AD_ON() ADS_OUT |= ADS_PD_BIT;
#define AD_OFF() ADS_OUT &= ~ADS_PD_BIT;
#define ADS_CLK_H() ADS_OUT |= ADS_CLK_BIT;
#define ADS_CLK_L() ADS_OUT &= ~ADS_CLK_BIT;
#define ADS_DATA_HI (ADS_IN & ADS_DATA_BIT)//AD_DATA輸出位1
#define ADS_DATA_NOT_READY (ADS_IN & ADS_DATA_BIT)//AD_CLK輸出位1
*********************************************************************************/
/*****************************************************************************
函數(shù)名稱:ReadAD(void)
功 能:讀AD
入口參數(shù):無
返回參數(shù):AD的轉(zhuǎn)換結(jié)果,為long型
使用資源:無
******************************************************************************/
long ReadAD(void)
{
long ADdatatemp=0; //設(shè)置AD轉(zhuǎn)換的初始值為0
for(uchar i = 0;i 《 20;i ++) //獲取20位數(shù)據(jù)
{
ADS_CLK_H();
ADS_CLK_L();
ADdatatemp = ADdatatemp 《《 1;
if(ADS_DATA_HI) //AD輸出的數(shù)據(jù)位是1?
{
ADdatatemp ++;
}
}
for(uchar i = 0;i 《 4;i ++) //為下一次轉(zhuǎn)換準(zhǔn)備
{
ADS_CLK_H(); //ADS_OUT |= ADS_CLK_BIT;
ADS_CLK_L(); //ADS_OUT &= ~ADS_CLK_BIT;
}
return(ADdatatemp);
}
/*****************************************************************************
函數(shù)名稱:void OffsetAD()
功 能:一個補償函數(shù),補償AD1230的標(biāo)尺誤差
入口參數(shù):無
返回參數(shù):無
使用資源:無
******************************************************************************/
void OffsetAD()
{
while(ADS_DATA_NOT_READY); //AD數(shù)據(jù)轉(zhuǎn)換好?(ADS_IN & ADS_DATA_BIT)//AD_CLK輸出位1
for(uchar i = 0;i 《 26;i ++) //發(fā)送26個CLK
{
ADS_CLK_H();
ADS_CLK_L();
}
}
/*****************************************************************************
函數(shù)名稱:void InitADline(void)
功 能:初始化AD控制線
入口參數(shù):無
返回參數(shù):無
使用資源:port2
******************************************************************************/
void InitADline(void)
{
ADS_DATA_DIR_IN(); // ADS_DIR &= ~ADS_DATA_BIT;
ADS_CLK_DIR_OUT(); // ADS_DIR |= ADS_CLK_BIT;
ADS_PD_DIR_OUT(); // ADS_DIR |= ADS_PD_BIT;
ADS_CLK_L(); // ADS_OUT &= ~ADS_CLK_BIT;
AD_OFF(); // ADS_OUT &= ~ADS_PD_BIT;
}
評論
查看更多