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.

[参考译文] ADS1292R:读取器件 ID ADS1292R 失败

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1037838/ads1292r-failed-read-the-device-id-ads1292r

器件型号:ADS1292R
主题中讨论的其他器件: ADS1292

大家好、我很难正确读取 ADS1292R 芯片 ID。 在调试模式下运行代码后、我注意到在它检查器件 ID 的位置、返回了几个值、例如:0、254、255。 我检查了整个上电例程、我认为没有错误。

void ADS1292R_PowerOnInit(void){

    ADS1292R_CS_H;
    ADS1292R_START_L;
    ADS1292R_PWDN_H;
    delay_ms(2000);
    ADS1292R_CS_H;
    ADS1292R_START_L;
    ADS1292R_PWDN_L;            /*ENTER POWER DOWN MODE*/
    delay_ms(20);
    ADS1292R_PWDN_H;
    delay_ms(20);
    ADS1292R_PWDN_L;
    delay_ms(2);
    ADS1292R_PWDN_H;
    delay_ms(200);
    ADS1292R_CMD(ADS1292R_SDATAC);
    delay_ms(200);
    ADS1292R_CMD(ADS1292R_ADSRESET);
    delay_ms(1000);
    ADS1292R_CMD(ADS1292R_SDATAC);
    delay_ms(200);

    delay_ms(10);
    while(device_id!=83){      
        device_id=ADS1292R_REG(ADS1292R_RREG|ADS1292R_ID,0x00);
        printf("\rVALUE ID %u",device_id);
        delay_ms(200);
    }

提前感谢

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

    使用 saleae 逻辑分析仪软件、我在信号之间获得了以下测量值...

    MOSI:信号间的尺寸=0.2007s;频率=4.982Hz

    MISO:无信号

    CLK:信号间的尺寸=0.2007s;频率=4.982Hz

    CS:信号间的尺寸=0.5us;频率=2MHz

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

    您好、Armando、

    感谢您发帖。  

    有关信息、请参阅数据表图72 (第10.1节)中显示的加电顺序和图44中的加电时初始器件流程。 如果您已将 SPI 信号正确连接到器件、则逻辑分析仪图不清楚。 有关 SPI 接口的操作、请参阅第8.5.1节。 数据表图1中的 SPI 时序图是 SPI 在器件中的工作原理。

    我们还在常见问题解答中提供了调试 SPI 接口的一些基本步骤。 请参阅下面的直接链接。

    谢谢

    -TC

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

    您好、TCT、
    我已经检查过您的帖子中提到的所有要求并遵循所有初始指令、以便检测到错误、到目前为止、我仍未获得芯片 ID。
    我不知道以下内容是否会大有帮助、但:
    我使用的是来自原发中心的原发板;
    GPIO 和 CLK 引脚未连接到任何端口
    Clock_System 设置为48MHz、SPICLK 工作频率为2MHz  

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

    您好、Armando、

    ADS1292的所有原型板都是开源的、并且具有可用于初始开发的示例源代码。 此外、我建议通过查看数据表中的所有信息来熟悉 ADS1292。 出于调试目的、观察逻辑分析仪上的 SPI 接口事务并提供图表以供审阅非常有用。

    除了 ID 寄存器、您可以为其余寄存器获得什么值?

    谢谢

    -TC

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

    您好、TCT、  

    感谢您的建议、

    我已经查看 了数据表中处理的所有信息、我认为没有什么可以逃脱。 可能是代码之外的东西、例如硬件、我尝试将 GPIO 的引脚连接到 DGND、将 CLK 连接到3.3V DVDD。 结果是相同的。

    在此之后、我回顾了整个 上电序列、但没有 成功。 使用 逻辑分析仪、我意识到一些测试 会获得 以下结果。

     其余的记录与发送的数据不符、这让我更加担心

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

    您好、Armando、

    感谢您显示波形。 您好像正在读取 ADS1292R 波形中的正确 ID 寄存器、即0x73 (0b01110011)。 我不确定硬件是如何连接的、但在 SPI 事务期间、CSB (SPI-Enable)信号不应处于高电平。

    无需将 GPIO 引脚连接到 DGND 或将 CLK 连接到3.3V DVDD、以实现器件正常运行。 相反、应使用内部振荡器或外部 CLK 为器件计时。

    谢谢

    -TC

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

    您好、TCT、  

    抱歉 我的胡说,但是当你发送或发送0x00时,它不应该是芯片用 ID 0x73来响应。 因此、MOSI 应该是0x00传输、MISO 答案将是0x73、我是对的还是错的、因为这是我第一次使用数字分析仪

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

    您好、Armando、

    是的、您回答正确。 抱歉、我错过了波形上的标签。 请参阅下面的 SPI 接口波形以读取器件 ID。 当您读取器件 ID 时、为什么要向器件发送0x73? 有关 器件 SPI 接口操作、请查看数据表中的第8.5节。  

     

    谢谢

    -TC

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

    您好、TCT、  

    我想我的 ADS1292R 有问题、我发送0x00、而不是返回0x73。 每次我发送一些数据时、芯片的响应都是"饱和数据"或0xFF;255;

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

    您好、Armando、

    我建议使用以下常见问题解答链接中显示的步骤进行调试。 如果您认为设备无法正常工作、请与硬件制造商联系。 您还可以更换电路板上的器件并重新测试。 DOUT 线路不应处于高电平、如您之前的逻辑分析仪波形所示。 请确保使用 uC 正确设置 DOUT 引脚逻辑状态。

    谢谢

    -TC

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

    您好,TCT,  

    我在这个问题上取得了进展, 但仍有疑问。  我的内部振荡器未被触发、我的问题是... 为了触发内部振荡器、必须通过硬件或代码来完成此操作?  我到处都在寻找这些信息、找不到。 我 已经验证了您为我提供的链路、而 ADS1292的结果是:

    Vcap1 = AVSS + 1.2V=> Vcap1 = 0 + 1.2 = 1.2V

    Vcap2 = AVDD +1.9V=> Vcap2 = 3.32 + 1.9 = 5.22V  

    但在电路板中验证 Vcap1= 1.09V 和 Vcap2= 2.54V 的值。  查阅数据表后、我会发现类似于 "启用内部主时钟或提供外部主时钟"的内容。 如果代码未通过需要芯片 ID 的部件、如何启用内部时钟。 因此、我的问题是、在上拉电阻的帮助下或通过代码从外部触发振荡器

     这是数字分析仪的新图。

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

    您好、Armando、

    要使用内部振荡器、您需要将 CLKSEL 引脚(引脚编号14)设置为逻辑高电平。 有关器件时钟运行的信息、请参阅第8.3.7节。 如前所述、为了了解器件的工作原理、必须查看完整的数据表。 这将有助于您完成器件的一些基本设置。

    谢谢

    -TC