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.

[参考译文] ADS1115:无法在输入通道之间切换?

Guru**** 2537080 points
Other Parts Discussed in Thread: ADS1115

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1041312/ads1115-switching-between-input-channels-not-possible

器件型号:ADS1115

尊敬的所有人:

我花了很多天学习如何使用 ADS1115。

今天、我尝试编写一个使用多个输入的应用程序(Lazarus - free Pascal)。

请告诉我、我的算法/序列是否正确。

硬件设置:A0时为1VDC;A2时为0.5VDC

*初始化 ADS1115

*将1100010110000011写入配置寄存器

*切换到转换寄存器

*读取转换寄存器

*切换到配置寄存器

*写入1110010110000011

*切换到转换寄存器

*读取转换寄存器

但是:A0和 A2的值几乎相同! (A2应为 A0的一半)

将新增益写入配置寄存器的行为相同;下一个值几乎相同...

请帮助!

此致、

Dietmar

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

    您好、Dietmar、

    您可以使用通道间切换、看起来您使用的是单次模式、这在切换通道时是推荐的。 但是、当您使用单次模式时、您需要考虑~20-30us 的额外等待时间(由于器件上电)。 我想知道转换寄存器是否由于没有发生新的转换而未被更新。  

    从写入 CONFIG 寄存器到读取转换寄存器的等待时间大约为多长时间?  您在读取时能否将 CONFIG 寄存器的 POL 位-15置位?

    此致、

    Aaron Estrada

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

    Aaaron、您好!

    感谢您的回复!

    我不知道如何在读取 conv.reg 时准确读取 CONFIG-reg 的位15。

    但我尝试了以下方法:

    在读取 Conv.-reg 之前和之后、立即以微秒为单位读取包含时间戳的3倍 config-reg。

    请查看日志记录数据:

    CONF-reg:1110010110000011、438891us

    CONF-reg:1110010110000011、439990us

    CONF-reg:1110010110000011、440989us

    值转换寄存器(输入 A0):8008、544887us

    CONF-reg:1100010110000011、546113us

    CONF-reg:1100010110000011、547269us

    CONF-reg:1100010110000011、548422us

    _________ 结束序列 A0___

    CONF-reg:1100010110000011、235638us

    CONF-reg:1100010110000011、236875us

    CONF-reg:1100010110000011、238026us

    值转换寄存器(输入 A2):8019、341567us

    CONF-reg:1110010110000011、342776us

    CONF-reg:1110010110000011、343926us

    CONF-reg:1110010110000011、345141us

    _________ 结束序列 A2___

    此致、

    Dietmar

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

    您好、Dietmar、

    您似乎正在正确设置通道并读取 AIN2的值、即使选择了 AIN0也是如此。 是否可以在设置配置寄存器和读取转换寄存器之间添加一些延迟(可能大约为150ms 以确保安全)? 对于延迟、我想看看您是否在转换寄存器中看到类似的结果。  

    此致、

    Aaron Estrada

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

    您好、Aaron、

    我在写入配置寄存器和读取转换寄存器之间内置了200ms 的延迟、但遗憾的是 ADS1115的行为没有变化: 看起来 ADS1115仍然无法切换到 A2、当读取转换寄存器时、在假定切换到 A2后、具有几乎相同的值、就像读取 a0时一样。

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

    您好、Dietmar、

    作为完整性检查、您是否验证了器件输入端的电压电平是否正确? 如果可用、您还能提供原理图吗?

    使用单次触发模式切换通道时、您需要:  

    1.配置配置寄存器以启动转换、设置数据速率并使用正确的多路复用器设置读取所需通道。  

    2.等待数据周期(本例中为1/128)+数据周期的%10 + 20us。  这是进行转换所需的时间、转换时考虑到内部时钟的变化、并在最后一次转换后额外唤醒器件。 但是、您似乎在添加大量等待时间。  

    3.读取转换寄存器。  

    4. 在新通道上重复步骤1中的步骤。  

    此致、

    Aaron Estrada