ADS1251的供电问题
使用ADS1251做数据采集
现在MCU供电使用的是3.3V,为了避免做电平匹配的问题,ADS1251我想也使用3.3V供电,不知是否可行?
谢谢
不可以. 因为ADS1251 Vih定义的最低电平为4.0V.
不行,在datasheet中对VDD有明确的规定,要5V,+/-5%的波动。
如果是3.3V的MCU, 两者的逻辑电平不一致,你必须在数字接口上进行电平转换。
请问该IC的CLK,SCLK以及DOUT直接和3.3V供电的MCU IO相连是否可行呢?谢谢
请问该IC的CLK,SCLK以及DOUT直接和3.3V供电的MCU IO相连是否可行呢?谢谢
Hi
不可以直接相连,或可以采用增加电平转换器等方式来实现。
好的,谢谢
请问有没有关于ADS1251的例程呢?
或者看看我现在使用的读ADS1251的程序是否正确呢?
MCU:ATC89C52
void Read_chip(void)
{
unsigned char data i;
unsigned char data temp1;
// temp1=0x01;
temp1=0x80;
SCLK=0;
CPU_CLK=0;
//DRDY 模式
for(i=0;i<48;i++) CPU_CLK=~CPU_CLK; //t4
for(i=0;i<12;i++) CPU_CLK=~CPU_CLK; //t2
for(i=0;i<12;i++) CPU_CLK=~CPU_CLK; //t3
//DOUT 模式
//在SCLK 的下降沿获取数据
// CPU_CLK=1;
// CPU_CLK=0;
SCLK=1;
CPU_CLK=1;
CPU_CLK=0;
if(Dout==1) ads_data3+=temp1;
temp1=(temp1>>1);
for(i=0;i<7;i++)
{
//SCLK=1;
SCLK=0;
CPU_CLK=1;
CPU_CLK=0;
CPU_CLK=1;
//CPU_CLK=0;
SCLK=1;
SCLK=0;
CPU_CLK=1;
CPU_CLK=0;
if(Dout==1) ads_data3+=temp1;
// temp1=(temp1<<1);
// ads_data3=(ads_data3<<1);
CPU_CLK=1;
CPU_CLK=0;
temp1=(temp1>>1);
}
// temp1=0x01;
temp1=0x80;
for(i=0;i<8;i++)
{
//SCLK=1;
SCLK=0;
CPU_CLK=1;
CPU_CLK=0;
CPU_CLK=1;
CPU_CLK=0;
SCLK=1;
//SCLK=0;
CPU_CLK=1;
CPU_CLK=0;
if(Dout==1) ads_data2+=temp1;
// temp1=(temp1<<1);
// ads_data3=(ads_data2<<1);
CPU_CLK=1;
CPU_CLK=0;
temp1=(temp1>>1);
}
// temp1=0x01;
temp1=0x80;
for(i=0;i<8;i++)
{
//SCLK=1;
SCLK=0;
CPU_CLK=1;
CPU_CLK=0;
CPU_CLK=1;
CPU_CLK=0;
SCLK=1;
//SCLK=0;
CPU_CLK=1;
CPU_CLK=0;
if(Dout==1) ads_data1+=temp1;
// temp1=(temp1<<1);
// ads_data3=(ads_data1<<1);
CPU_CLK=1;
CPU_CLK=0;
temp1=(temp1>>1);
}
SCLK=0;
for(i=0;i<176;i++)
CPU_CLK=~CPU_CLK;
for(i=0;i<176;i++)
CPU_CLK=~CPU_CLK;
for(i=0;i<176;i++)
CPU_CLK=~CPU_CLK;
}