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.

[参考译文] ADC3541:通过 SPI 进行内部寄存器配置

Guru**** 2478765 points


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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1318195/adc3541-internal-register-configuration-via-spi

器件型号:ADC3541

尊敬的支持团队:您好、我想咨询有关在初始化期间/通过 SPI 接口设置上述 ADC 的内部寄存器的信息。 我将在串行 CMOS-2线模式下使用 ADC、并计划 为应用配置一些内部寄存器。

在初始化期间、 我遵循了有关初始化时序的数据表(数据表第9.3节)并通过 SPI 写入配置输出接口/模式、如数据表第8.3.5.6节中所述。 但是、 配置似乎没有任何效果、此外、我还尝试通过 SPI 读回寄存器数据来进行验证、但没有获取我配置的值。  我还尝试过通过 SPI 手动写入寄存器、即使读回寄存器数据得到正确的值 、但它不会对实际的硬件产生任何影响。

有什么我错过的东西吗? 任何提示/建议都会有所帮助。

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

    您好!

    我将能够在下周早些时候开始探讨这一问题。

    您能否分享一些更多详细信息以帮助我们进行调试?

    查看设置的方框图会很有帮助。

    硬件是定制设计还是 TI EVM?

    我假设您有一种捕获数据的方法来查看配置是否生效? 它看起来是什么样子的?

    我期待着能听到后面的声音。

    此致、

    德鲁

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

    您好、感谢您的快速回复。

    仅供参考、我当前正在 我的项目中使用 ADC (定制设计)。 我的设计中有2个 ADC、都连接到一个 FPGA。  我的 FPGA 中有一个 IP、可即时配置 ADC 时钟(CLKP 和 CLKM 引脚)频率、从而支持可变采样率。  

    我尝试设置 SYNC 功能 以在运行时同步 ADC、因此我尝试 通过 SPI 寄存器地址0x0E 配置 PDN/SYNC 引脚。 最初、我曾尝试同时向两个 ADC 写入0x60 (寄存器数据)、以通过 SPI 写操作发出 SYNC 命令。 虽然 SYNC 命令已成功写入 ADC (我已通过 SPI 读取验证并获得预期的寄存器数据- 0x60)、但是我没有在两个 ADC 上看到任何同步效果。

    通过 SPI 写入看到 SYNC 命令 对同步没有影响后、我已尝试在初始化期间将0x80写入寄存器0x0E、以启用物理 PDN/SYNC 引脚 、通过 FPGA 手动触发外部同步脉冲。 但是、在继续触发 SYNC 脉冲之前、我已尝试通过读回地址0x0E 处的寄存器数据但获得0x00而不是0x80来验证配置是否成功(SYNC 引脚 EN)。

    以下是我用于捕获数据和确认同步不起作用的方法:
    1) 1)  在开始从两个 ADC 采样数据之前、配置 ADC 时钟(CLKP 和 CLKM 引脚)频率
    2)外部/通过 SPI 写入 Fire SYNC 命令  
    3) 3)对 ADC 数据进行采样并绘制出图以在相位上进行验证
    每次我重复上述步骤时、根据采样数据、两个采样信号都会产生不同的相位。 例如、我的 ADC 时钟在8MHz 下运行、我看到采样信号之间存在45度的倍数差异。

    对于 SPI 写入/读取通信线路、我已尝试通过示波器在硬件上进行探测、我看到了数据表第 8.5.2.1节和第8.5.2.2节中提到的预期波形(24位字等)、 更不用说我还满足了数据表中提到的计时要求。

    如果您需要更多信息、请告诉我。

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

    您好!

    这是一个很好的信息,谢谢!

    我还想确认几件事。

    1)我们是否单独证明每个 ADC 上的数据正常?

    2)配置器件前是否执行了硬件复位?

    3)为了初始化两个 ADC、要执行的整套寄存器写入是什么?

    4)如何将外部同步发送到引脚?

    提供外部 SYNC 时、必须遵循以下顺序:

    a)对设备执行下电上电

    b)释放设备复位

    c)在器件上发出同步脉冲

    d)此时的(数据)相位关系必须稳定且可重复。

    此致、

    德鲁

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

    1) 1)是的、两个 ADC 的数据输出良好。

    2) 2)硬件复位仅在初始化设置期间执行。

    3) 3)在初始化期间、以下 是要写入的寄存器组:

    寄存器地址 寄存器数据
    0x07 0x2B
    0x13 0x01
    等待1ms
    0x13 0x00
    0x0A 0xFF
    0x0B 0XEF
    0x0C 0xFC
    0x18 0x10
    0x19 0x12
    0x1b 0x90
    0x1F 0x50
    0x0E 0x80

    4)外部同步由 FPGA 驱动 64*K 个时钟周期,其中 K=1, 如数据表第8.3.4.5节所述。

    器件是否需要在发出同步脉冲之前进行任何复位? 此外、通过 SPI 配置内部寄存器时、 我们是否需要执行任何额外的步骤?

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

    您好!

    很抱歉响应延迟。 写入看起来都正确。

    在上述过程中、是否施加同步脉冲? 是在初始化之前还是之后?

    我们是否可以尝试在上电并执行同步时写入0x0E、然后使用剩余的寄存器写入来初始化该器件?

    此致、

    德鲁

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

    您好!

    只是为了澄清我的最后一个回答。 该序列将为器件上电、执行硬件复位、执行软件 SPI 复位(寄存器0x00和数据0x01)、然后写入0x0E 并执行同步脉冲、然后完成剩余的寄存器写入初始化。

    此致、

    德鲁