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.

[参考译文] AMC1210:AMC1210 在 SPI 模式下无响应(无 AD0 输出)

Guru**** 2811905 points

Other Parts Discussed in Thread: AMC1210, TMS570LS0432, AMC3336

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1623222/amc1210-amc1210-not-responding-in-spi-mode-no-ad0-output

部件号: AMC1210
Thread 中讨论的其他器件: TMS570LS0432AMC3336

你好

我尝试 在 SPI 接口模式 (M0 = 0、M1 = 0、TE = 0) 下将 AMC1210 与 TMS570LS0432 LaunchPad XL 连接在一起、并且我遇到持续存在的问题是 AMC1210 未在内部响应、MISO 在整个时钟脉冲期间保持低电平。 我测试了三个具有相同结果的单独 AMC1210 IC。

硬件概要

  • CLK(引脚 16): 来自 TMS570 ECLK 的 20MHz 方波(在引脚上验证)。
  • RST(引脚 37): 运行期间在 3.3V 时保持高电平。
  • TE、M0、M1:所有连接低电平(SPI 模式,输出启用)。
  • 电源轨:BVDD/CVDD/DVDD = 3.299V 、AVDD = 5V  
  • 调制器:AMC3336 连接至 IN1/CLK1。
  • SPI 主器件:TMS570 MibSPI1、1MHz 、24‑位帧(3‑8×位)、CS 低电平(对于整个传输)。

观察到的行为(在 AMC1210 引脚上测得)

  • MOSI(‑引脚 32):更正 24 μ s 位命令帧(例如,0x29 00 00 用于读取 0x13、0xC3 55 AA 用于写入 0x03)。
  • SCLK(WR 引脚‑):干净的 24 μ s 时钟帧。
  • CS(引脚 33):在整个帧内保持低电平。
  • AD0(引脚 28):从不输出读取的数据 — 在两个数据字节期间始终为 0x00。
  • CLK1(引脚 1):即使在写入时钟分频器寄存器后、也没有时钟输出。
  • ACK 引脚:保持低电平。

复位后写入的寄存器

  • 时钟分频器 (0x1B):0x0810
  • 滤波器配置 (0x01):0x0F1F
  • 控制寄存器 (0x20):0xA001(MOD=1、CH1 启用)

问题

即使 AMC1210 接收到有效的 SPI 帧(在引脚上确认)、该器件也不会:

  1. 读取期间在 AD0 上输出滤波数据、
  2. 为调制器或生成 CLK1
  3. 切换 ACK。

它的行为就好像内部逻辑从未启动。

问题

  1. 所需的上电或复位至 SPI‑序列是否超出数据表中所示的序列?
  2. 在 CLK1 生效之前、是否需要额外的使能位?
  3. TI 能否为 24‑位帧提供确切的 SPI 位‑封装要求(命令+ R/W + A6..A0)、以确认 AMC1210 是否拒绝我们的地址阶段?
  4. 该行为(无 AD0 输出、无 CLK1、ACK 始终为低电平)是否表示任何已知的失效模式?

感谢您的帮助。

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

    您好 Sohaib、

    欢迎来到 TI E2E 社区。

    根据您的硬件说明、似乎您已正确连接了所有设备。

    我对这一发言有点困惑:

    • MOSI(‑引脚 32):更正 24 μ s 位命令帧(例如,0x29 00 00 用于读取 0x13、0xC3 55 AA 用于写入 0x03)。
      • 我假设您想读取寄存器 0x13 的内容?  在本例中、正确的 24b MOSI 字将为 0x93 00 00。
      • 我假设您要将 0x55 AA 写入寄存器 0x03?  在本例中、正确的 24b MOSI 字将是 0x03 55 AA。
      • 第一个位为高电平 (1)(对于读取)和低电平 (0)(对于写入)。

    请说明我是否误解了您在本示例中尝试执行的操作。

    所附图像显示 MOSI 字 0x80 00 00、将读取寄存器 0 的内容、默认为 0x00 00、这是预期结果。  由于寄存器 0x00 默认值为 0x00 00、因此请尝试从寄存器地址 0x04 读取、该寄存器地址具有默认的 0x7FFF 值。  在本例中、发送 MOSI 字 0x84 00 00。  我还注意到、/CS 行在图像中始终为低电平、您是将/CS 行保持在低电平、还是在不同命令之间切换?

    此外、如果您使用的是 Saleae 逻辑分析器、请发送*。Sal 文件捕获、显示您的所有 SPI 事务。

    问题答案:

    1. 我不知道具体的上电顺序。  但是、在电源稳定之前、不应驱动任何输入。  例如、如果 MCU 在 AMC1210 之前上电并在向 AMC1210 上电之前将其中一个数字输入驱动为高电平、则可使 ADC 进入锁定状态、需要完整的下电上电才能进行校正。

    2. 在确认 SPI 正常运行后、如果 CLK1 输出仍然不起作用、我们可以深入研究这些设置。

    3. 根据我上述建议,在 MOSI (/RD) 上发送 0x84 00 00。  然后、MISO (AD0) 应读取 0x00 7F FF。  在发送 24b 帧之前、将/CS 从高电平切换到低电平以启动帧、然后将/CS 设置回高电平以结束帧(如果尚未设置)。

    4. 这可能是部分是坏的,但我怀疑这,因为你已经尝试了这 3 个不同的部分。  您可能需要直接在引脚上进行测量(如果可能,我知道此封装上很难测量)、以确保 SPI 信号实际到达 AMC1210。

    此致、
    Keith Nicholas
    精密 ADC 应用