user6432665:
{u16 i=0,count=0;ADS_RESET=1;CS=1;ADS13_Write_Cmd(0x0011);do{delay_ms(6);RECEVICE = ADS13_Write_Cmd(NULL);if(RECEVICE ==0xff02) delay_ms(5);}while(RECEVICE != 0xff02);ADS13_Write_Cmd(0x0655);do{delay_ms(6);RECEVICE= ADS13_Write_Cmd(0x0000);}while(RECEVICE != 0x0655);ADS13_REG(0x4B,0x78); //enable internal reference volatage (4.0v)ADS13_REG(0x4D,0x80); //ADC CLK1fICLK = fCLKIN(16.384mhz) / 8ADS13_REG(0x4E,0x2F); //ADC CLK1fICLK = fCLKIN(16.384mhz) / 8ADS13_REG(0x4F,0x0F); //ADC CHANNEL ENABLE ALLADS13_Write_Cmd(WAKEUP);ADS13_Write_Cmd(0x0555);adcenable_flag=1;
}我的ADS131A02初始化为这个,但寄存器数据返回是0x2274,读取AD值时数据返回的是2232
Amy Luo:
您好,
可以用示波器看下通信波形,看下通信时序是否正确。
user6432665:
回复 Amy Luo:
这是我的CS和SCLK波形:1是CS,2是SCLK
user6432665:
回复 Amy Luo:
这是MISO和MOSI:1是MISO,2是MOSI
Amy Luo:
回复 user6432665:
1、现无法判断MISO与MOSI哪个是ADS131A02的输入信号,您现在使用的是什么模式,M0、M1、M2是配置的什么状态?是进行的什么操作
2、时钟信号看起来有些过冲,串个几十欧姆电阻看下是否有改善
3、MISO信在多个高电平出有个下降斜坡,也不太正常,可以把原理图也附上来吗
user6432665:
回复 Amy Luo:
你好,我的M0=VDD,M1=GND,M2悬空,现在就是我读STAT_P和STAT_N寄存器的时候,他们返回的数据分别为:0x2303和0x2403.提示说我的IN1和IN2正输入与负输入都超过阈值。然而我的IN1和IN2的正负输入都为0.我的输入设置如下:AVDD=5v,AVSS=0V,IOVDD=3.3V,使能了负电荷泵。
Amy Luo:
回复 user6432665:
如果VNCPEN=1,AVDD to AVSS的电压最大到3.45V,我想应该是这个原因造成的,您可以将VNCPEN=0,然后再读取STAT_P和STAT_N寄存器看是否正常