CS5532是一种低噪声24位△一∑型A/D转换器。CS5532的差动输入端可以直接测量来自传感器的毫伏信号.简化了与外围电路的连接。可编程增益放大器可使放大倍数从1~32进行设定(以2倍步长增加),大大提高了系统的动态特性。多级程控数字滤波器使得数据输出速率可选择,范围为7.5Hz~384kHz.方便了与外设的连接。该AID转换器有一个灵活而简便的同步串行接口,使转换数据以串行方式输出,它与SPI、Microwire兼容。
A/D转换器cs5532初始化程序
/****************************************************************************
* 名 称:CS5532Init()
* 功 能:cs5532初始化
* 入口参数:uint32 cs, 片选
*
* 出口参数:返回TRUE表示操作成功,返回FALSE表示操作失败
****************************************************************************/
uint32 CS5532Init(uint32 cs)
{
uint8 i=0;
float temp1=0.0;
uint32 temp=0,q,temp2[5];
uint8 rstarr[32]={255,255,255,255,
255,255,255,255,
255,255,255,255,
255,255,255,255,
255,255,255,255,
255,255,255,255,
255,255,255,255,
255,255,255,254};
for(i=0;i《32;i++)
CS5532_write_byte(rstarr[i],cs);
delayms(1);
CS5532_Write_REG(CFGW,CS5532_RESET,cs);
delayms(1);
temp=CS5532_Read_REG(CFGR,cs);
CS5532.receive.buff[0]=temp》》24;
while(CS5532.receive.buff[0]!=0x10)
{
CS5532_write_byte(*(cmd_tab+CFGR),cs);
temp=CS5532_Read_Dword(cs);
CS5532.receive.buff[0]=temp》》24;
}
CS5532_Write_REG(CSR1W,CSR1,cs); //读/写单个通道设置寄存器
CS5532_Write_REG(CSR2W,CSR2,cs); //读/写单个通道设置寄存器
CS5532_Write_REG(CFGW,CS5532_NORMAL,cs); //正常模式
CS5532_write_byte( *(cmd_tab+CALI3) , cs ); //系统偏移校准
CS5532_Wait(cs);
CS5532_write_byte( *(cmd_tab+CALI1) , cs ); //系统增益校准
CS5532_Wait(cs);
CS5532_Write_REG(CFGW,IS,cs); //短路处理
CS5532_write_byte( *(cmd_tab+CALI2) , cs ); //自偏移校准
CS5532_Wait(cs);
CS5532_write_byte( *(cmd_tab+CALI4) , cs ); //自增益校准
CS5532_Wait(cs);
CS5532_write_byte(*(cmd_tab+OFFSET1R),cs); //填充偏移量
temp=CS5532_Read_Dword(cs);
CS5532_write_byte(*(cmd_tab+OFFSET2R),cs); //填充偏移量
temp=CS5532_Read_Dword(cs);
CS5532_write_byte(*(cmd_tab+GAIN1R),cs); //填充偏移量
temp=CS5532_Read_Dword(cs);
CS5532_write_byte(*(cmd_tab+GAIN2R),cs); //填充偏移量
temp=CS5532_Read_Dword(cs);
CS5532_Write_REG(CFGW,CS5532_NORMAL,cs);
CS5532_write_byte( 0xD0 , cs ); //启动连续转换 //setup1
return CS5532_TRUE;
}