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.

[参考译文] ADS127L18:如何使用 ADS127L18

Guru**** 2943430 points

Other Parts Discussed in Thread: ADS127L18, ADS127L11

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1650475/ads127l18-how-to-use-the-ads127l18

器件型号: ADS127L18
主题中讨论的其他器件: ADS127L11TEST2

我正在尝试使用 FPGA 来控制 ADS127L18 以对 8 通道数据进行采样。

 预期配置如下:宽带 OSR=32、外部 CLK 32.768MHz、通过 FSYNC 信号从 DOUTn 引脚读取、数据为 24 位、速率为 512Kbps(无 CRC)。

 我计划从通电开始按照以下顺序操作系统。
 这是正确的使用方法吗?
 如果不正确、请告知正确的顺序。
 在这种情况下,你还能解释每次等待的必要性和持续时间(等待 (1) 到等待 (16))?

  
 (1) 开机
 (2) RESET PIN=低电平(下拉电阻器)、START PIN=高电平(上拉电阻器)、MODE PIN=高电平(上拉电阻器)、TDM PIN=高电平(上拉电阻器)、HDR PIN=高电平(上拉电阻器)
 (3) FPGA 配置等待
 (4) FPGA 输出:RESET PIN=High、START PIN=High、MODE PIN=High、TDM PIN=Low、HDR PIN=Low
 (5) 等待 (1)
 (6) FPGA 输出:RESET PIN=Low、START PIN=Low
 (7) 等待 (2)
 (8) FPGA 输出:RESET PIN=High
 (11) SPI 配置:将 08h 写入 CLK_CFG (0Dh) 使用 CLK_SEL (EXT CLK)
 (12) 等待 (4)
 (13) SPI 配置:将 00h 写入 DP_CFG2 (0Ch) 使用 DCLK_DIV (1)
 (14) 等待 (5)
 (15) SPI 配置:将 06h 写入 GEN_CFG2 (09h) Use SPEED_MODE (MAX)
 (16) 等待 (6)
 (17) SPI 配置:将 30h 写入 DP_CFG1 (0Bh) 使用 DP_TDM(8 数据通道)
 (18) 等待 (7)
 (19) SPI 配置:将 06h 写入 GEN_CFG1 (08h) 使用 VCM、REFP
 (20) 等待 (8)
 (21) SPI 配置:将 03h 写入 CH0_CFG1 (11h) 使用 BUFN、BUFP
 (22) 等待 (9)
 (23) SPI 配置:将 03h 写入 CH1_CFG1 (19h) 使用 BUFN、BUFP
 (24) 等待 (10)
 (25) SPI 配置:将 03h 写入 CH2_CFG1 (21h) 使用 BUFN、BUFP
 (26) 等待 (11)
 (27) SPI 配置:将 03h 写入 CH3_CFG1 (29h) 使用 BUFN、BUFP
 (28) 等待 (12)
 (29) SPI 配置:将 03h 写入 CH4_CFG1 (31h) 使用 BUFN、BUFP
 (30) 等待 (13)
 (31) SPI 配置:将 03h 写入 CH5_CFG1 (39h) 使用 BUFN、BUFP
 (32) 等待 (14)
 (33) SPI 配置:将 03h 写入 CH6_CFG1 (41h) 使用 BUFN、BUFP
 (34) 等待 (15)
 (35) SPI 配置:将 03h 写入 CH7_CFG1 (49h) 使用 BUFN、BUFP
 (36) 等待 (16)
 (37) FPGA 输出:将 START PIN 设置为高电平
 (38) FPGA 输入:等待 FSYNC 上升沿 (*)
 (39) FPGA 输入:样本 DOUT (*)
 (40) 在固定期间循环 (38) 和 (39)
 (41) FPGA 输出:将 START 引脚设置为低电平(与 FSYNC 时序异步)
 (42) 等待 2us
 (43) 返回 (37)

  标有※Use TI 代码的段 (https://github.com/TexasInstruments/precision-adc-examples/blob/main/devices/ads127l18/verilog/ADS127L1x_tdm_deserializer.v)
  复位和 START 信号在 DCLK 的下降沿输出(以确保相对于 DCLK 的上升沿 (ADC_CLK) 保持)。
  
  


 

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

    您好 、Shibazaki Shogo、

    欢迎来到 TI E2E 社区。

    事件序列看起来符合您的预期配置。  您使用默认的低基准范围设置、将基准电压从 0.5V 限制为 2.75V。  如果需要使用更高的基准电压、则在 GEN_CFG1 寄存器中设置 REF_RNG=1b。

    我注意到您正在采集一系列样本、然后将 START 引脚拉低约 2us。  这是评估板软件的工作方式、但这不是必需的。  如果愿意、您可以在不对 START 引脚进行脉冲的情况下连续收集数据。

    以下是建议的延迟时间。  我在 RESET PIN=High 和第一次 SPI Write 操作之间添加了 10000 个额外等待时间 wait (3)、该等待时间为 10000 个 tCLK 周期。

    tCLK=1/32768000=30.5ns

     (1) 开机
     (2) RESET PIN=低电平(下拉电阻器)、START PIN=高电平(上拉电阻器)、MODE PIN=高电平(上拉电阻器)、
            TDM 引脚=高电平(上拉电阻器)、HDR 引脚=高电平(上拉电阻器)
     (3) FPGA 配置等待
     (4) FPGA 输出:RESET PIN=High、START PIN=High、MODE PIN=High、TDM PIN=Low、HDR PIN=Low
      (5) WAIT (1)-> 4*tCLK
     (6) FPGA 输出:RESET PIN=Low、START PIN=Low
     (7) WAIT (2)-> 4*tCLK
     (8) FPGA 输出:RESET PIN=High
     (9) WAIT (3)-> 10000*tCLK
     (11) SPI 配置:将 08h 写入 CLK_CFG (0Dh) 使用 CLK_SEL (EXT CLK)
     (12) WAIT (4)-> 20ns(四舍五入为 1*tCLK)
     (13) SPI 配置:将 00h 写入 DP_CFG2 (0Ch) 使用 DCLK_DIV (1)
     (14) WAIT (5)-> 20ns(四舍五入为 1*tCLK)
     (15) SPI 配置:将 06h 写入 GEN_CFG2 (09h) Use SPEED_MODE (MAX)
     (16) WAIT (6)-> 20ns(四舍五入为 1*tCLK)
     (17) SPI 配置:将 30h 写入 DP_CFG1 (0Bh) 使用 DP_TDM(8 数据通道)
     (18) WAIT (7)-> 20ns(四舍五入为 1*tCLK)
     (19) SPI 配置:将 06h 写入 GEN_CFG1 (08h) 使用 VCM、REFP
     (20) WAIT (8)-> 20ns(四舍五入为 1*tCLK)
     (21) SPI 配置:将 03h 写入 CH0_CFG1 (11h) 使用 BUFN、BUFP
     (22) WAIT (9)-> 20ns(四舍五入为 1*tCLK)
     (23) SPI 配置:将 03h 写入 CH1_CFG1 (19h) 使用 BUFN、BUFP
     (24) WAIT (10)-> 20ns(四舍五入为 1*tCLK)
     (25) SPI 配置:将 03h 写入 CH2_CFG1 (21h) 使用 BUFN、BUFP
     (26) WAIT (11)-> 20ns(四舍五入为 1*tCLK)
     (27) SPI 配置:将 03h 写入 CH3_CFG1 (29h) 使用 BUFN、BUFP
     (28) WAIT (12)-> 20ns(四舍五入为 1*tCLK)
     (29) SPI 配置:将 03h 写入 CH4_CFG1 (31h) 使用 BUFN、BUFP
     (30) WAIT (13)-> 20ns(四舍五入为 1*tCLK)
     (31) SPI 配置:将 03h 写入 CH5_CFG1 (39h) 使用 BUFN、BUFP
     (32) WAIT (14)-> 20ns(四舍五入为 1*tCLK)
     (33) SPI 配置:将 03h 写入 CH6_CFG1 (41h) 使用 BUFN、BUFP
     (34) WAIT (15)-> 20ns(四舍五入为 1*tCLK)
     (35) SPI 配置:将 03h 写入 CH7_CFG1 (49h) 使用 BUFN、BUFP
     (36) WAIT (16)-> 20ns(四舍五入为 1*tCLK)
     (37) FPGA 输出:将 START PIN 设置为高电平
     (38) FPGA 输入:等待 FSYNC 上升沿 (*)
     (39) FPGA 输入:样本 DOUT (*)
     (40) 在固定期间循环 (38) 和 (39)
     (41) FPGA 输出:将 START 引脚设置为低电平(与 FSYNC 时序异步)
     (42) 等待 2us (至少 4*tCLK)
     (43) 返回 (37)

    此致、
    Keith Nicholas
    精密 ADC 应用

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

    大家好、Keith Nicholas、


    感谢您的答复。

    我对迟迟不答复表示歉意。

    我们也对此进行了调查、并确认 ADS127L11 数据表中指定了 (9) WAIT (3)→10000*tCLK。

     接下来、
     当我们按照您提供的顺序运行电路时、它无法正常运行。
      tCLK 周期是否设置为 32.768MHz?

     因此、将 tCLK 设置为 25.4MHz 的内部振荡器频率(最小值)、将其转换为 32.768MHz、并增加大约 1%的裕度、
     (5) WAIT (1) 4 tCLK -> 6 tCLK(包括×1.01)
     (7) WAIT (2) 4 tclk -> 6 tclk(包括×1.01)
     (9) WAIT (3) 10000 tclk -> 13031 tclk (12901 × 1.01)
     当我以这种方式实施时、它正常运行。
      
     在此基础上、
     我通过改变 wait (1) 到 (3) 的值来运行测试。

     方案:PON -> WAIT (1)-> RESET=L、START=L -> WAIT (2)-> RESET=H -> WAIT (3)-> REGW -> START=H

     ○测试 A (WAIT (3):RESET=H ->正在等待 REGW)      [WAIT (1)=6 tclk、WAIT (2)=6 tclk 固定]
      TEST0  WAIT (3) 12901 tclk    ->结果 NG (25.4MHz 处 10000 tclk)
      test1  wait (3) 13031 tclk    ->结果正常 (25.4MHz + MARGIN 处 10000 tclk)
      test2  wait (3) 13108 tclk    ->结果正常 (25.0MHz 处为 10000 tclk)
      TEST3  WAIT (3) 16126 tclk    ->结果正常 (25.4MHz 处为 12500 tclk)
      TEST4  WAIT (3) 19352 tclk    ->结果正常 (25.4MHz 处为 15000 tclk)
      Test5  WAIT (3) 22577 tclk    ->结果 NG (25.4MHz 处为 17500 tclk)
      TEST6  WAIT (3) 25802 tclk    ->结果 NG (25.4MHz 处为 20000 tclk)
      TEST7  WAIT (3) 26216 tclk    ->结果正常 (25.0MHz 处为 20000 tclk)

     〇 测试 B (WAIT (2):复位持续时间)           [WAIT (1)= 6 tclk、WAIT (3)= 13031 tclk 固定]
      test1  wait (2)  6 tclk      ->结果正常
      test2  wait (2) 10 tclk      ->结果 NG
      test3  wait (2) 100 tclk      ->结果 NG
      TEST4  等待 (2) 0.5ms       ->结果 NG
      测试 5  等待 (2)  1ms       ->结果正常
      TEST6  WAIT (2) 2ms         ->结果 NG
      TEST7  WAIT (2)  5ms       ->结果 NG
      TEST8  等待 (2) 10ms       ->结果 NG
      
     〇 测试 C (WAIT (1):PON ->等待 RESET=L/START=L)  [等待 (2)=6 tclk、WAIT (3)=13031 tclk 固定值]
      TESTOne  wait (1)  6 tclk      ->结果正常
      TESTTwo  wait (1) 10 tclk      ->结果 NG
      TESTThree μ s  WAIT (1) 0.5ms       ->结果 NG
      TEST4  等待 (1)  1ms       ->结果正常
      TESTFive μ s  WAIT (1)  2ms       ->结果 NG
      TEST6  WAIT (1)  5ms       ->结果 NG
      TEST7  WAIT (1) 10ms       ->结果正常
      TEST8  WAIT (1) 11.25ms      ->结果 NG
      TEST9  WAIT (1) 12.5ms      ->结果正常
      TEST10  WAIT (1) 12.75ms      ->结果 NG
      TEST11  等待 (1) 13ms        ->结果 NG
      TEST12  等待 (1) 13.5ms       ->结果正常
      TEST13  等待 (1) 14ms       ->结果 NG
      TEST14  等待 (1) 15ms       ->结果正常
      TEST15  WAIT (1) 20ms       ->结果 NG

      在测试 A 中、我们研究了 WAIT3 的范围。
      在该测试中、我们将 WAIT (1) 和 WAIT (2) 固定为 6tclk、然后调整为 WAIT (3)。
      根据这些结果、我们正在考虑使用内部时钟 (25.4MHz [min]) 将 WAIT (3)[从 RESET=H 到 REGW]的等待时间]设置在 10,000 CLK < WAIT (3)< 15,000 CLK 范围内。
      这是合适的吗?
      为什么即使值过长也会失败?
      
      接下来、在测试 B 中、我们调整了复位信号的持续时间、在测试 C 中、我们调整了从 PON 到 RESET=L/START=L 的时间
      结果是不一致的、有时是有效的、有时是无效的、我们无法从逻辑上确定原因。
      我们正在研究可实现稳定运行的参数、但是
      如果您有关于 wait(1)、wait(2) 和 wait(3) 的条件的任何信息,请与我们分享吗?

     ===== 测试中使用的序列=======
     (1) 开机
     (2) RESET PIN=低电平(下拉电阻器)、START PIN=高电平(上拉电阻器)、MODE PIN=高电平(上拉电阻器)、
        TDM 引脚=高电平(上拉电阻器)、HDR 引脚=高电平(上拉电阻器)
     (3) FPGA 配置等待
     (4) FPGA 输出:RESET PIN=High、START PIN=High、MODE PIN=High、TDM PIN=Low、HDR PIN=Low
     (5) WAIT (1) -> 4*tCLK
     (6) FPGA 输出:RESET PIN=Low、START PIN=Low
     (7) WAIT (2) -> 4*tCLK
     (8) FPGA 输出:RESET PIN=High
     (9) Wait (3) -> 10000*tCLK
     (11) SPI 配置:将 08h 写入 CLK_CFG (0Dh)  使用 CLK_SEL (EXT CLK)
     (12) WAIT (4) ->约 90ns
     (13) SPI 配置:将 00h 写入 DP_CFG2 (0Ch)  使用 DCLK_DIV (1)
     (14) WAIT (5) ->约 90ns
     (15) SPI 配置:将 06h 写入 GEN_CFG2 (09h)  Use SPEED_MODE (MAX)
     (16) WAIT (6) ->约 90ns
     (17) SPI 配置:将 30h 写入 DP_CFG1   (0Bh) 使用 DP_TDM(8 数据通道)
     (18) WAIT (7) ->约 90ns
     (19) SPI 配置:将 06h 写入 GEN_CFG1 (08h)  使用 VCM、REFP
     (20) WAIT (8) ->约 90ns
     (21) SPI 配置:将 03h 写入 CH0_CFG1 (11h)  使用 BUFN、BUFP
     (22) WAIT (9) ->约 90ns
     (23) SPI 配置:将 03h 写入 CH1_CFG1 (19h)  使用 BUFN、BUFP
     (24) WAIT (10)->约 90ns
     (25) SPI 配置:将 03h 写入 CH2_CFG1 (21h)  使用 BUFN、BUFP
     (26) WAIT (11)->约 90ns
     (27) SPI 配置:将 03h 写入 CH3_CFG1 (29h)  使用 BUFN、BUFP
     (28) WAIT (12)->约 90ns
     (29) SPI 配置:将 03h 写入 CH4_CFG1 (31h)  使用 BUFN、BUFP
     (30) WAIT (13)->约 90ns
     (31) SPI 配置:将 03h 写入 CH5_CFG1 (39h)  使用 BUFN、BUFP
     (32) WAIT (14)->约 90ns
     (33) SPI 配置:将 03h 写入 CH6_CFG1 (41h)  使用 BUFN、BUFP
     (34) WAIT (15)->约 90ns
     (35) SPI 配置:将 03h 写入 CH7_CFG1 (49h)  使用 BUFN、BUFP
     (36) WAIT (16)->约 90ns
     (37) FPGA 输出:将 START PIN 设置为高电平
     (38) FPGA 输入:等待 FSYNC 上升沿 (*)
     (39) FPGA 输入:样本 DOUT (*)
     (40) 在固定期间循环 (38) 和 (39)
     (41) FPGA 输出:将 START 引脚设置为低电平(与 FSYNC 时序异步)
     (42) 等待 2us(至少 4*tCLK)
     (43) 返回 (37)


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

    您好 、Shibazaki Shogo、

    等待时间 WAIT (1) 和 WAIT (2)、t-w (RSL) 和 WAIT (3) t-p (RSFS) 均相对于时钟周期。  例如、如果使用 fCLK=RSFS、则 t-p (32.768MHz) 最小值应为 10^4*1/32768000 = 305.2 微秒。  如果在 25.4MHz 的最小值处使用内部振荡器、则 t-p (RSFS) 最小值应为 10^4*1/25400000 = 393.7 微秒。

    另请注意、在电源处于建议的工作范围内之前、t-p (RSFS) 不会开始。  我在步骤 (3) 中假设 FPGA config Wait 等待几毫秒以使电源稳定。  如果在步骤 (4) 开始时电源未处于指定的工作范围内、则可能无法获得 ADC 的一致行为。

    增加这些等待时间应该只能提高可靠性、而不会变得更糟。

    由于因等待时间而得到的结果不一致、因此 START、RESET 或其他信号上可能会出现噪声。  为了进一步研究、您需要使用逻辑分析仪或示波器捕获波形、特别是用于启动、复位以及 SPI 信号/CS、SCLK、SDI 和 SDO。  此外、确保 MODE 引脚 54 通过 2k Ω 或更低值的电阻器上拉至 IOVDD (1.8V)(或直接短接至 IOVDD 电源)。

    此致、
    Keith

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

    大家好、Keith Nicholas、


    感谢您的答复。

    根据您的回答、我将进行详细介绍