|
//-------------CS5460 SPI读写-------------------------
void CS5460A_Write(U8 Add,UINT Data)
{
U16 MSB,nAdd;
nAdd = WRI | Add;
MSB = (nAdd << 8) | (Data >> 16);
ASPI_Write(wCPLD_ADLSB,Data);
ASPI_Write(wCPLD_ADMSB,MSB);
Delay(_1ms);
}
UINT CS5460A_Read(U8 Add)
{
U16 MSB,nAdd;
uint nData=0;
nAdd = READ | Add;
MSB = (nAdd << 8);
ASPI_Write(wCPLD_ADMSB,MSB);
Delay(100);
nData = ASPI_Read(rCPLD_ADMSB);
nData <<= 16;
nData |= ASPI_Read(rCPLD_ADLSB);
return nData;
}
//AD自检
bool ADC_CHECK(void)
{
U32 rData=0;
_PrintHZ12(GUI_WHITE,"\nAD INIT ...");
// CS5460A复位脚发脉冲
g_tCpld1.ADREST = 0;
_WriteCpld1();
Delay(_15ms);
g_tCpld1.ADREST = 1;
_WriteCpld1();
Delay(_20ms);
// 同步控制命令字
CS5460A_Write(0xFF,0xFFFFFE);
// 读配置寄存器缺省值
rData = CS5460A_Read(CONFIG);
//判断
while(!rData)
{
_PrintHZ12(GUI_RED," AD FAIL");
if(ReadKeypad())
break;
}
_PrintHZ12(GUI_GREEN," PASS");
FeedDog();
Delay(_800ms);
return true;
}
|
|