ADS1232总输出高电平
我用ADS1232采样一路数据,初始化后发现它不进行转换,哪位有空帮我看看,谢谢!
//ADS1232Ó¦Óö˿Ú
//A0£¬µØÖ·£¬SCK
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_13);
//PDWN,SPEED,G1
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);
GPIO_ResetBits(GPIOC,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);
//G2
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
//SDI£¬Êý¾ÝÏß
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //¸¡¿ÕÊäÈë
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
u32 Read_ADS1232(void)
{
u32 TEMP = 0;
u8 i = 0;
for(i=0;i<24;i++)
{
TEMP<<=1;
SCK_High;
delay_us(2);
if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15)==1)
{
TEMP+=1;
}
else
{
;
}
SCK_Low;
delay_us(2);
}
SCK_High;
delay_us(2);
SCK_Low;
delay_ms(1);
return TEMP;
}
SCK_Low;
PDWN_Low;
delay_us(20);
G1_Low; //ÔöÒæΪ1
G2_Low;
A0_Low; //ͨµÀ1
SPEED_Low; //100msת»»Ò»´Î
PDWN_High;
delay_us(20);
while(1)
{
while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15)==1){}
AD_data = Read_ADS1232();
};
有可能没有成功初始化, 比如时序问题, 设置问题.
当然也有可能软件和时序没有问题, 但是硬件问题, 电源, 复位信号,甚至是连接或焊接.
硬件设置的时候也有时序吗?我设置的顺序是拉低PWDN,SCK,G1,G2,A0,SPEED然后拉高PDWN的,我把第三个引脚直接接地的,我怀疑内部晶振没有起振,我接外部晶振的时候晶振的两个引脚都有一个小小的电压并没有正弦波。
我设置的SPEED是低电平,应该是100个ms出现一次DOUT变为低电平的情况,然后保持100ms的低电平,但是我发现并不是100ms出现一次低电平而且出现了低电平低电平的时间仅仅六七个微秒,这很奇怪啊
数据能输出了,我的Vref给的是2.5V,给5V就可以了,看来参考电压不能是2.5V,谢谢您的支持。
你好,我想问一下我用ADS1232进行AD转换的时候,做实验的时候用两个电阻直接分压然后进行转换能转换正确但是我的传感器输出的电压经过一个运算放大器LM324进行跟随后进行AD转换就不能转换了,这是为什么呢?求解啊。
你说的不能转换指的是AD不工作还是AD转换值出错呢
转换得到的数据是0x007FFFFF,而我要转换的电压是3.38V,这相当于没有工作吧。