TI论坛
直播中

文甘翀

8年用户 1037经验值
私信 关注
[问答]

ads1230的DOUT一直是高电平,接不接压力传感器都是一样,为什么?

ads的DOUT一直是高电平,接不接压力传感器都是一样,请问是我没有启动ADS1230吗?PDWN一直拉低是可以的吧?
//STM8驱动,从MSP430上移植过来的
#include "ads1230.h"
void int_ADS1230IO(void)//相关引脚初始化
{
GPIO_Init(GPIOC,GPIO_PIN_2, GPIO_MODE_OUT_PP_HIGH_FAST );
GPIO_Init(GPIOC,GPIO_PIN_3, GPIO_MODE_OUT_PP_HIGH_FAST );
GPIO_Init(GPIOC,GPIO_PIN_4, GPIO_MODE_IN_PU_NO_IT );
}
/*****************************************************************************
函数名称:ReadAD(void)
功 能:读AD
入口参数:无
返回参数:AD的转换结果,为long型
使用资源:无
******************************************************************************/
long ReadAD(void)
{
long ADdatatemp=0; //设置AD转换的初始值为0
for(unsigned char i = 0;i < 20;i ++) //获取20位数据
{
ADS_CLK_H();
Delayus();
ADS_CLK_L();
ADdatatemp = ADdatatemp << 1;
if(ADS_DATA_HI) //AD输出的数据位是1?
{
ADdatatemp++;
}
Delayus();
}
for(unsigned char i = 0;i < 4;i ++) //为下一次转换准备
{
ADS_CLK_H(); //ADS_OUT |= ADS_CLK_BIT;
Delayus();
ADS_CLK_L(); //ADS_OUT &= ~ADS_CLK_BIT;
Delayus();
}
AD_OFF();
return(ADdatatemp);
}

/*****************************************************************************
函数名称:void OffsetAD()
功 能:一个补偿函数,补偿AD1230的标尺误差
入口参数:无
返回参数:无
使用资源:无
******************************************************************************/
void OffsetAD()
{
while(ADS_DATA_HI); //AD数据转换好?(ADS_IN & ADS_DATA_BIT)//AD_CLK输出位1
for(unsigned char i = 0;i < 26;i ++) //发送26个CLK
{
ADS_CLK_H();
Delayus();
ADS_CLK_L();
Delayus();
}
}

/*****************************************************************************
函数名称:void InitADline(void)
功 能:初始化AD控制线
入口参数:无
返回参数:无
使用资源:port2
******************************************************************************/
void InitADline(void)
{
int_ADS1230IO();//相关引脚初始化
ADS_CLK_L(); // ADS_OUT &= ~ADS_CLK_BIT;
AD_OFF(); // ADS_OUT &= ~ADS_PD_BIT;
}

                                

回帖(2)

张帆

2024-12-21 10:40:33
PDWN一直拉低, Power-Down: Holding this pin low powers down the entire converter and resets the ADC.
正在复位中, 我看你先仔细检查一下你的硬件吧
举报

张秀兰

2024-12-21 17:40:30
根据您的描述,ADS1230的DOUT引脚一直是高电平,无论是否连接压力传感器。这可能是由于以下几个原因:

1. ADS1230未启动:确保您已经正确初始化ADS1230并启动它。在您的代码中,您需要确保已经调用了初始化函数(例如`ADS1230_Init()`)并设置了正确的参数。

2. PDWN引脚:您提到PDWN一直拉低是可以的,这是正确的。PDWN引脚需要保持低电平以使ADS1230正常工作。请确保您的PDWN引脚连接正确。

3. 代码问题:检查您的代码,确保您已经正确配置了ADS1230的寄存器和引脚。您可以尝试使用官方的ADS1230示例代码作为参考。

4. 硬件问题:检查您的硬件连接,确保所有引脚都已正确连接,并且没有短路或断路的问题。

5. 电源问题:确保您的ADS1230电源供应稳定且在规定的范围内。

为了解决这个问题,您可以尝试以下步骤:

1. 检查您的ADS1230初始化代码,确保已经正确设置所有必要的寄存器和引脚。

2. 检查您的硬件连接,确保所有引脚都已正确连接,并且没有短路或断路的问题。

3. 使用示波器或逻辑分析仪检查ADS1230的DOUT引脚,以确定是否有任何异常信号。

4. 如果可能,尝试使用另一块ADS1230模块,以排除硬件故障的可能性。

5. 查阅ADS1230的数据手册,了解有关DOUT引脚的更多信息,以确定是否有其他可能的原因导致DOUT引脚保持高电平。

希望这些建议能帮助您解决问题。如果您需要更多帮助,请提供更多详细信息,例如您的ADS1230初始化代码和硬件连接图。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分