TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS127L01工作不正常

Other Parts Discussed in Thread:ADS127L01

使用STM32与ADS127L01进行通信,使用硬件SPI模式,在读取时,ADS127L01总是间歇工作,不工作的时间较长,因为DRDY一直处于高电平。

电路板未使用顺序供电,所以按照手册里,所有上电稳定以后,进行了RESET/PWDN引脚下拉,然后再上拉。但是仍然无法使得芯片正常工作。芯片所有供电都正常,参考电压2.5V。

void ads127_init(void)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_12); //RESET 低有效
delay_ms(500);
GPIO_SetBits(GPIOB,GPIO_Pin_12); //RESET 完成
delay_ms(1000);
delay_ms(1000);
GPIO_ResetBits(GPIOA,GPIO_Pin_4); //CS拉低,使能ADS127
delay_ms(10);
SPI1_ReadWriteByte(0x41); //开始进行写寄存器
SPI1_ReadWriteByte(0x01);
SPI1_ReadWriteByte(0x02);
SPI1_ReadWriteByte(0x00);
SPI1_ReadWriteByte(START); //开始进行数据转换
}

int main(void)
{ u32 data=0;
u32 t=0;
delay_init(); //延时函数初始化 Usart1_Init(115200); //串口初始化为115200
IO_Init(); //初始化与IO连接的硬件接口
SPI1_Init(); //初始化SPI
SPI1_SetSpeed(SPI_BaudRatePrescaler_8); //设置为9M时钟,高速模式
ads127_init();
while(1)
{
while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0))
{
t++;
if(t>=10000)
{
t=0;
ads127_init();
}
}
SPI1_ReadWriteByte(RDATA);
data = data + SPI1_ReadWriteByte(0x00);
data <<= 8;
data = data + SPI1_ReadWriteByte(0x00);
data <<= 8;
data = data + SPI1_ReadWriteByte(0x00);
UsartPrintf(USART1,"%x\r\n",data);
data=0;
}
}

Amy Luo:

您好,
您可以用示波器抓一下DRDY、START、RESET/PWDN、CLK异常时的波形吗

,

user6603961:

你好,我现在没法抓取波形,我想问一下有没有参考的原理图,芯片手册上写的有些模糊,我是看的另一个人发的贴子的图,现在遇到与他一样的问题,我使用的是2.5V作为参考电压

,

user6603961:

这是我的原理图

,

Amy Luo:

12、13脚FILTER;15、16管脚OSR;以及FSMODE、FORMAT数字输入管脚您为什么都悬空了?这些输入管脚是不可以悬空的

我看到您把START接地上了,那么您需要通过START 、STOP命令来启动和停止转换,停止转换会复位数字滤波器。您只需要发送一次 START 命令, ADC 就可以连续转换。 转换时,您将看到 /DRDY 从高切换至低切换,以指示何时有新数据可用。 在发送 STOP 命令之前,它不会停止。

赞(0)
未经允许不得转载:TI中文支持网 » ADS127L01工作不正常
分享到: 更多 (0)