CS5532的DOUT一直是高电平!发送31个0xff和1个0xfe,配置寄存器写rs=1,再读配置寄存器看RV, SDO一直是高 有没有复位都不知道 下面的设置写都没法写 更不用说读数据了,驱动程序我看了好多 都差不多 但好像没有卡在第一步的 郁闷啊 ps 晶振对的
void CS5532_init(){
int i=0;
u8 d=1;
IOSET=SPI0_CSB;
delay(1000);
IOCLR=SPI0_CSB;
for(i=0;i<31;i++)
MSPISendData(0xff);
MSPISendData(0xfe);
delay(10000);
for(i=0;i<5;i++)
MSPISendData(ADResetData[i]); //复位CS5532, 写bit RS=1
while((d&0x10)==0){
MSPISendData(0x0b); //读配置寄存器,直到bit RV=1
delay(1000);
d=MSPISendData(0x00);
MSPISendData(0x00);
MSPISendData(0x00);
MSPISendData(0x00);
}
delay(1000);
for(i=0;i<5;i++)
MSPISendData(ADSetData[i]);
while(d!=0x00){
MSPISendData(0x0b); //读配置寄存器,直到bit RV=0;
d=MSPISendData(0x00);
MSPISendData(0x00);
MSPISendData(0x00);
MSPISendData(0x00);
}
for(i=0;i<15;i++)
MSPISendData(ADInitData[i]);
delay(100);
MSPISendData(0x81); //自偏移校准
MSPISendData(0x82); //自增益校准 |