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.

[参考译文] ADS127L01:如何控制 ADC?

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/698318/ads127l01-how-to-control-the-adc

器件型号:ADS127L01

我正在尝试将 ADS127L01与 Raspberry PI 3 B 型号一起设置和使用、但似乎我做了一些错误。 我有两个问题。

我已将 CLK 和 SCLK 连接到 RPi 的 SPI0_SCLK。 这会产生什么问题吗?

2.以前我只使用简单的12位 ADC 时,我所做的就是降低 CS、读取数据和提高 CS。 在这里、看起来有点复杂。 在任何地方我都可以找到 ADS127L01的一些测试源代码吗?

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

    感谢您的发帖、欢迎加入论坛!

    1) 1)我找不到这样做的原因、但 SCLK 通常比 CLK 慢2/4/8倍。 您的器件工作频率是多少?
    数据表中的"通过将时钟输入应用于 CLK 引脚、使用外部时钟驱动 ADS127L01。 在最大数据速率下、HR 模式下的时钟输入为16.384MHz、LP 模式下的时钟输入为8.192MHz、VLP 模式下的时钟输入为4.096MHz。"
    2) 2)遗憾的是、我们没有适用于 ADS127L01的任何示例代码。

    我建议验证所有电源和时钟信号是否按预期显示。 只要发送主时钟(CLK)并且 START 被拉至高电平、您就应该注意到/DRDY 引脚以输出数据速率切换。 这表示 ADC 正在转换和输出新数据。 您是否已经验证过这一点?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alexander:

    感谢您的建议! 根据您的建议、我更改了配置并检查了/DRDY、其中提供了 CLK 并将 START 拉至高电平。 我使用示波器发现/DRDY 脉冲。 ADC 似乎工作正常(未损坏)。 但是、我仍然从 ADC 获得常量数。 我使用 SPI 模式进行通信。

    当我写入(0、0、0、0)时、返回值为(0、0、0、0)

    当我写入(18、0、0)时、无论向 ADC 的 AINP 提供哪种电压、返回值始终为(0、127、128、0)。 (AINN 接地)。

    (18 = 0001 0010、读取最新数据的命令。)

    在实验启动过程中、CS 被拉至低电平、CLK = 10MHz、SCLK = 100kHz。

    我将检查与 ADC 的所有连接是否正确。 总之、感谢您的帮助。

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

    哦、由于某种原因、REFN 悬空。 现在我修复了它、它看起来工作得更好。

    根据提供给 AINP 的电压、我将更改 MSB。 但是、只有第一个字节发生变化、而第二个字节和 LSB 保持不变(128和0)。 对此、我应该怎么做?

    例如、在4字节 SPI 通信期间:

    写入缓冲器/读取缓冲器

    (18、0、0)->(N、128、0、0)(N 因 AINP 值而异。)

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

    我很高兴听到该器件仍然正常工作!

    您是否见过第77页的第9.4节、初始化设置? 在我看来、ADC 似乎没有处理输入并且卡滞。

    您要向器件写入哪些寄存器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Alex:

    感谢您的回复! 我没有向寄存器写入任何内容。 我将检查第9.4节并尝试初始化寄存器。

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

    您好、Hongseok、

    此外、您能否提供一些有关您从上一帖子中应用的输入信号的信息?

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

    尊敬的 Alex:

    对于输入信号、我使用 串联电阻将10位 DAC 的输出连接到 ADC 的 AINP。  

    顺便说一下、我已经检查了寄存器、尝试了更多的测量并取得了一些进展。

    我检查了寄存器、发现所有的值都被设置为默认值。 这是通过写入(0010 0000)、 (0000 0111)(读取寄存器8个字节)并随后读取8个字节来完成的。 因此、至少 ADC 能够很好地读取并发回其寄存器值、而不会出现故障。

    2.然后、我尝试读取不同的电压(AINP)值。 奇怪的是、有时它工作正常、但有时它不工作。 例如、

    当正常时

    输出:81、126、023、XXX (CRC)(数字变化不大、但变化不大、可能是由于输入的波动和噪声)

    如果损坏

    输出:81、255、249、XXX (CRC)(第二个和第三个字节在重复读取时始终相同)

    目前、我在 Raspberry Pi 中使用通用时钟(GPIO #4)。 它能产生任何问题吗?

    感谢您关注此问题!

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

    我很高兴听到有进展。

    当您看到良好和不良数据时、您施加到输入端的信号的频率和幅度是多少?

    遗憾的是、我无法为 Raspberry Pi 提供任何支持。 只要输入器件的信号在规格范围内、就可以正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alex:

    当前时钟具有3.3V 幅度、4MHz 频率。

    对于良好和不良数据、输入信号没有差异。 它是直流信号、在1.0V 电压下工作正常、但在1.1V 电压下工作不良、在2.0V 电压下工作正常。因此我无法确定它的错误...

    谢谢、

    洪锡。

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

    很抱歉、我们在解决这个问题时遇到了问题。

    由于器件似乎正常运行且未损坏、这是否是系统中其他组件的问题?

    您是否超出了10b 输出 DAC 的限制或 RPi 可以处理的电流量?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alex、您好!

    感谢您的跟进! 我不确定哪个部件出现问题。 我将尝试另一个相同的 ADC 芯片、并检查是否发生了相同的情况。

    最棒的

    洪锡。

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

    由于数据有时会正确输出、并且您能够读取寄存器内容、这听起来像是数据收集期间的 SPI 时序问题。 您是否在收集数据之前监控/DRDY 以检测下降沿?

    请使用示波器或逻辑分析仪捕获数据收集期间的 SPI 信号(/CS、/DRDY、SCLK、DOUT)。 当您读取旧数据时、可能会有新样本准备就绪。 如果是这种情况、您将注意到 SPI 事务的中间出现一个/DRDY 下降沿、新数据将立即覆盖旧数据。

    此致、
x 出现错误。请重试或与管理员联系。