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;
}
评论
查看更多