TI论坛
直播中

刘满贵

7年用户 1469经验值
私信 关注
[问答]

ADS1299菊花链模式读取数据全是0x00的原因?



  • 通过引脚控制RESET和START,可以正常写读寄存器,但是在RDATAC之后采集到的数据全都是0x00,包括24位数据头也是0x00,DADY的波形是正确的,在示波器上观察到ADS MISO端输出的是0x00,请教大家这是哪里的原因


    这是我的电路原理图以及初始化代码

    GPIO_InitTypeDef GPIO_Initure;
    __HAL_RCC_GPIOA_CLK_ENABLE(); // G

    GPIO_Initure.Pin=GPIO_PIN_1|GPIO_PIN_2; //
    GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;
    GPIO_Initure.Pull=GPIO_PULLUP;//ÉÏÀ­
    GPIO_Initure.Speed=GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(GPIOA,&GPIO_Initure);
    PAout(1)=1;//reset
    //delay_ms(1000);
    PAout(2)=0;
    delay_ms(1000);
    PAout(1)=0;//reset
    delay_ms(500);
    PAout(1)=1;
    delay_ms(500);
    ADS_SPI(WAKEUP);
    delay_ms(10);
    ADS_SPI(SDATAC);

    ADS_REG(WREG|CONFIG3,0xF1);

    delay_ms(10);
    ADS_REG(WREG|BIAS_SENSP,0xDF); // 250Hz 0x96;500hz,0x95



    delay_ms(10);
    ADS_REG(WREG|CONFIG1,0X93);
    delay_ms(10);
    delay_ms(10);//�ȴ��ڲ��ο���ѹ�ȶ�
    ADS_REG(WREG|CONFIG2,0xD3); // 250Hz 0x96;500hz,0x95
    delay_ms(10);


    ADS_REG(WREG|CH1SET,0X75); //amplified x1
    ADS_REG(WREG|CH2SET,0X75); //amplified x1
    ADS_REG(WREG|CH3SET,0X75); //amplified x1
    ADS_REG(WREG|CH4SET,0X75); //amplified x1
    ADS_REG(WREG|CH5SET,0X75); //amplified x1
    ADS_REG(WREG|CH6SET,0X75); //amplified x1
    ADS_REG(WREG|CH7SET,0X75); //amplified x1
    ADS_REG(WREG|CH8SET,0X75); //amplified x1
    ADS_REG(WREG|MISC1,0X20);
    temp111=ADS_REG(RREG|BIAS_SENSP,0X00);
    PAout(2)=1;//start=1
    delay_ms(200);

    //delay_ms(10);
    ADS_SPI(RDATAC);


回帖(1)

远风

6 天前
从您提供的信息来看,您在使用ADS1299进行菊花链模式读取数据时遇到了问题,采集到的数据全都是0x00。以下是一些可能的原因和解决方案:

1. 检查ADS1299的配置寄存器设置:
确保您已经正确配置了ADS1299的寄存器,包括采样率、增益、滤波器等。错误的配置可能导致采集到的数据不正确。

2. 检查菊花链连接:
确保您的ADS1299设备之间的菊花链连接正确。检查连接线是否松动或损坏,以及是否正确连接到相应的引脚。

3. 检查电源和地线:
确保您的ADS1299设备已经正确连接到电源和地线。不稳定的电源或地线连接可能导致数据读取错误。

4. 检查SPI通信:
确保您的SPI通信设置正确,包括时钟频率、CPOL、CPHA等。错误的SPI通信设置可能导致数据读取错误。

5. 检查代码逻辑:
检查您的代码逻辑,确保在读取数据之前已经正确设置了ADS1299的工作模式。例如,在读取数据之前,您需要确保已经设置了正确的寄存器值,并且已经启动了数据采集。

6. 检查硬件故障:
如果以上步骤都无法解决问题,可能是ADS1299设备本身存在硬件故障。您可以尝试更换设备,或者使用其他设备进行测试,以排除硬件故障的可能性。

关于您提供的代码片段,有一些建议:

1. 代码中的注释和实际代码不一致。请确保注释与代码一致,以便更好地理解代码逻辑。

2. 代码中的GPIO初始化部分存在一些错误。例如,`GPIO_Initure.Pin` 应该是 `GPIO_Initure.Pin`,`GPIO_Initure.Pull` 应该是 `GPIO_Initure.Pull`。请检查代码并修正这些错误。

3. 请确保您已经正确初始化了SPI接口,并设置了正确的参数。例如,时钟频率、CPOL、CPHA等。

希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便进一步分析和解决。
举报

更多回帖

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