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.

[参考译文] ADS8363:ADS8363:MISO 在半时钟模式 (3.3V) 下保持低电平、REFDAC 未更新

Guru**** 2862450 points

Other Parts Discussed in Thread: ADS8363

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1625509/ads8363-ads8363-miso-remains-low-and-refdac-not-updating-in-half-clock-mode-3-3v

器件型号: ADS8363

您好:

我在使用 Raspberry Pi RP2040(带有 CAN 模块的羽毛外形)的定制硬件平台上使用 ADS8363 时遇到通信问题。  
我的系统在同一 SPI 总线上包含三个 ADS8363 器件。

系统配置:
  VDD/DVDD:3.3V(根据数据表,器件在半时钟模式下运行) VCC。
  AVDD:3.3V。
  时钟:SCLK 为 500kHz。
  接口:SPI 模式 1 (CPOL=0、CPHA=1)。
  隔离:为了进行调试、我通过将 ADS#1 和 ADS#2 的 CS 拉高并拉低 RD 来将它们静音。 我只关注 ADS#3。
  ADS#3:M0 至 GND 和 M1 至 3V3

当前流程 (ADS#3):
  对齐:发送一个虚拟帧(0x0000 的 20 个时钟)、在上电后同步串行接口。
  复位:通过 CONFIG 寄存器发送软件复位命令 (A[3:0]=0100b)。
  配置:我尝试通过发送以下命令来启用 REFIO1 和 REFIO2 并将其设置为 2.5V:
    周期 A:将配置指针写入 REFDAC1 (R[1:0]=01b、A[3:0]=0010b)。
    周期 B:写入 REFDAC1 数据 (RPD=0、D[9:0]=0x3FF)。
    (对于 REFDAC2 重复)。
  验证:发送 REFDAC 寄存器的读取命令。

发现的问题:
  MISO (SDOA):每次线路都保持在 0V (GND)。
  REFIO1/2 引脚:它们不会在配置序列后输出预期的 2.5V 电压。
  示波器:我已经验证 CS、SCLK、SDI 和 RD 是否与半时钟模式的数据表时序图一致(图 1)。 我的 RD 脉冲为 2µs 宽、在 CS 为低电平时(在 SCLK 突发之前)触发。

具体问题:
  在 3.3V 的半时钟模式下、除了虚拟帧之外、是否需要特定的上电序列或延迟来“唤醒“串行接口?
  由于即使在虚拟帧期间或复位后、我也没有在 SDOA 上看到任何活动、因此器件是否会卡在它无法识别 RD 脉冲的状态下?
  当多个 ADS8363 共享同一 SDI/SCLK 线路时(即使 CS 在非活动的 SDI/SCLK 线路上保持高电平)是否存在已知问题?
   
由于技术问题、我目前无法通过论坛界面直接上传文件。 但如果需要、我可以提供示波器截图。

此致、

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

    你好、Thibault、  

    欢迎来到 TI 的 E2E 论坛! 感谢您发送编修。

    您是否能够分享 ADS833x63 的配置原理图以及它们如何连接到 Raspberry PI?  

    CONVST 与 RD 是否短接或分离?  

    您是否还能够分享示波器或逻辑分析仪的数字通信屏幕截图? 您可以包括 CONVST、RD、SCLK、SDI、然后包含 SDO 引脚的 CONVST。 如果可能包括忙碌,那也会很好。  

    验证:发送 REFDAC 寄存器的读取命令。

    您读回 0x3FF 了吗? 还是也只是 0?

    我的 RD 脉冲为 2µs 宽、在 CS 处于低电平时触发、就在 SCLK 突发之前。

    在 SCLK 下降沿期间、器件会锁存 RD 脉冲。 您能否确认正在发生这种情况?  

    CONVST 必须在数据帧的第 1 个 SCLK 上升沿之前转换为高电平(至少 T1 min = 12ns)、然后 来启用 SDO RD 必须在下一个 SCLK 下降沿之前具有至少 5ns (TS1) 的脉冲高电平、并保持高电平至少另外 5ns (TH1)。 请注意、在 II、IV、SII 和 SIV 模式下、RD 脉冲不得超过 tCLK (1/fSCLK)。  在 RD 的下降沿之后、应在短暂延迟后启用 SDO、并且 ADC 将开始锁存数据读取 SDI。  

    如果 CONVST 和 RD 短接在一起、则 CONVST 和 RD 必须足够大、以涵盖 SCLK 的上升沿和下降沿

    此致、  

    Yolanda  

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

    您好:

    感谢您的答复。

    请查看所附的原理图。

    ADS8363 _#3RP2040

    RD 和 CONVST 连接至单独的引脚。

    我无法使用标准 SPI 外设满足 RD 和 SPI 之间的时序要求、因此我切换到了在 RP2040 上使用 PIO。

    我现在正在获取 MISO 线上的数据、因此 ADS 似乎响应迅速。 然而、我的 REFDAC 配置序列似乎无法正常工作。 在 REFIO 上测得的电压保持不变、当我尝试读取相应的寄存器时、ADS 似乎保持在转换模式下。

     CONVST & RD ->橙色:CS、绿色:RD、黄色:SCK、蓝色:CONVST

    CONFIG_REFDAC1配置框->橙色:CS、绿色:MOSI、黄色:SCK、蓝色:RD

    MISO配置框->橙色:CS、绿色:MOSI、黄色:SCK、蓝色:MISO

    配置框->橙色:CS、绿色:MOSI、黄色:SCK、蓝色:忙碌

    复位框->橙色:CS、绿色:MOSI、黄色:SCK、蓝色:RD

    是否应该在 REFDAC 配置序列期间生成 CONVST 脉冲?

    如果每个 20 时钟帧之间存在延迟、是否会出现问题?

    我的复位顺序是否正确?

    此致、

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

    你好、Thibault、  

    看起来 SDI 时序可能有点偏离。 RD 脉冲用于启用 SDO 并让器件知道何时开始读取。 对于 SCLK 的下降沿、它需要为高电平、从您的图像来看、它看起来就像这样、但这会使下一个下降沿成为第一个锁存边沿。  

    在 RD 脉冲之后、器件读取的是第 16 位、剩余的 4 位将被忽略。  似乎您正在根据最后一个 SCLK 下降沿对齐 SDI 数据、并将所有数据移出。  如果将 SDI 数据左移 3 位、则其应该更好地对齐。  

    要写入 REFDAC 寄存器、首先必须设置 R[1:0]= 01b 且 A[3:0]= 0011 (REFDAC1) 或 A[3 :0]= 0101 (REFDAC2)。  如果该寄存器上的其他所有内容均设置为默认值、则看起来应该像 0x1003。 我在配置寄存器中看到的更像是 0x02004

    此外、RD 脉冲接管第 1 个 SCLK、因此将 第 2 个 SCLK 设置为第 1 个 SCLK、可能还需要在该帧中添加一个额外的 SCLK。  

    最后、我很高兴您现在将转换数据移出、但我看到 CONVST 脉冲似乎在 SCLK 开始切换之前、这可能会在稍后造成问题、或者可能输出旧数据或数据不可靠。 是否可以将 CONVST 脉冲在第 1 个 SCLK 上升沿之前变为高电平并在该上升沿之后至少 5ns 之前保持高电平? 这将确保转换信号正确锁存、并且数据输出是正确的数据。  

    此致、  

    Yolanda  

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

    您好:

    非常感谢您的帮助和详细的解释。

    按照您的建议调整 SDI 时序和 RD/SCLK 对齐后,效果会好得多 — 我现在可以正确配置和读取 REFDAC 寄存器。

    我还将查看 CONVST 时序以确保所有内容都可靠。

    再次感谢您的支持!

    此致、
    Thibault