This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS1293:未接收到正确的数据

Guru**** 2387080 points
Other Parts Discussed in Thread: ADS1293
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1193817/ads1293-no-correct-data-received

器件型号:ADS1293

您好!

我使用 ADS1293构建了 EKG 器件、但无法获得正确的读数。 我可以通过 SPI 正确写入和读回寄存器、因此这不是问题。 我为 ADC 设置了测试模式、但我仅从其中获取 垃圾值(随机)。 因此、我测量了所有信号、到目前为止一切都很好(CVREF 完全是2.4V)、除了我不确定振荡器。 该信号的偏移似乎约为3V、仅摆幅振幅约为100mV。 我尝试了不同的负载电容器、但根本无法改变行为、因此我认为这可能是一个问题。 当我通过 SPI 禁用外部晶振时、我根本不会获得读数。  

正确运行时、XTAL CLK 应该显示什么振幅? 布局可能是这里的一个问题(我为 XTAL 网络提供了20mil 的间隙、到目前为止、我在微控制器应用中从未遇到过晶体问题、但我可能已经移除了其下方的 GND 平面?

那么、这里的 CLK 信号是否不正确(使用 x10探针测量):

编辑:

问题解决了、电源连接错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    现在、我可以使用以下命令验证 XTAL 是否正常工作、至少我获得与409.6MHz 频率匹配的 CLK 输出:

    TI_ADS1293_SPIWriteReg (0x12、0x05);

    CLK 输出引脚:

    从硬件的角度来看、一切看起来都很好(SPI 工作、可以读取/写入寄存器、Vadc @ 2.4V 等)、但我无法在测试模式下正确测量。 我要做的是:(仅测试通道1)

        nrf_delay_ms(1000);
        TI_ADS1293_SPIWriteReg(0x12, 0x05); // internal oscillator, external FB
        nrf_delay_ms(100);
    
        TI_ADS1293_SPIWriteReg(0x01, 0xC0); // Run TST1 --> zero test signal = Vadc/2
        nrf_delay_ms(1);
        TI_ADS1293_SPIWriteReg(0x21, 0x02); // Set Decimation Rate to 5
        nrf_delay_ms(1);
        TI_ADS1293_SPIWriteReg(0x2F, 0x10); // Turn On Channel 1 for loop read back mode
        nrf_delay_ms(1);
        TI_ADS1293_SPIWriteReg(0x27, 0x08); // Assert DRDYB pin Channel 1, ECG
        nrf_delay_ms(1);
        TI_ADS1293_SPIWriteReg(0x00, 0x01); // Starts data conversation
        nrf_delay_ms(1);
    
        while(1)
        {
          if(!nrf_gpio_pin_read(GPIO_ADS1293_DRDYB)) 
          {
              uint8_t temp_buf[3] = {};
    
              TI_ADS1293_SPIReadReg(0x37, buf, sizeof(buf)); // 0x37
              temp_buf[0] = buf[1];
              TI_ADS1293_SPIReadReg(0x38, buf, sizeof(buf));
              temp_buf[1] = buf[1];
              TI_ADS1293_SPIReadReg(0x39, buf, sizeof(buf));
              temp_buf[2] = buf[1];
    
              uint32_t voltage = (((uint32_t) temp_buf[2]) | ((uint32_t) temp_buf[1] << 8) | ((uint32_t) temp_buf[0] << 16));
              NRF_LOG_INFO("Vmes: %d", voltage);
    
              nrf_delay_ms(40);
          }
        }

    下面是一些我返回进行零测试的值:

    应用:VMEs:1628905
    应用:VMEs:1779090
    应用:VMEs:1927419
    应用:VMEs:1664190
    应用:VMEs:2120028
    应用:VMEs:1876972
    应用:VMEs:1254840
    应用:VMEs:1580527
    应用:VMEs:2055585
    应用:VMEs:1772079
    应用:VMEs:1630978
    应用:VMEs:1548289
    应用:VMEs:1464570
    应用:VMEs:2133578

    因此、这一点看起来根本不接近于 VADC/2、因为 ADC 为2^24、所以它应该显示更多类似的内容  8388608。我在这里遗漏了什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    ------------------------------------------

    " XTAL 似乎正常工作、至少我获得与409.6MHz 频率匹配的 CLK 输出、这意味着什么?"  

    您指的是哪种 CLK、您在何处探测 CLK?

    如果通过设置 EN_CLKOUT = 1来输出 CLK 信号并探测 CLK 引脚(#21)、则该信号应约为409.6kHz。

    --------------------------------------

    您是否拥有/使用评估套件/评估板(EVM)?

    验证/验证设计的最佳方法是与 EVM 原理图以及 EVM 上 TP 的探针进行比较、以验证其通信时序图。

    --------------
    同时、 您能否读取 REVID:版本 ID 寄存器(0x40)

    修订版本 ID 00000001 (默认)

    谢谢