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.

[参考译文] ADS1015-Q1:ADS1015配置

Guru**** 2515710 points
Other Parts Discussed in Thread: ADS1015

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/815492/ads1015-q1-ads1015-configuration

器件型号:ADS1015-Q1
主题中讨论的其他器件:ADS1015
你好
 
我们尝试通过以下方式配置 ADC:
  1. 在初始化时、我们通过将 HI_THRESH 寄存器 MSB 设置为1并将 LO_THRESH 寄存器 MSB 设置为0来启用 ALERT /就绪中断。
  2. 我们为 HV_Pos 编写配置并等待 ALERT/Rdy 中断
  3. 在警报/延迟中断中、我们通过写入 Convert Pointer (0x00)来请求数据
  4. 等待写入命令完成(等待 I2C SEND_END 中断被触发)、然后读取数据
  5. 存储读取的数据并为下一个通道(HV_Neg)写入配置
 
此流程是否正确?
 
我们遇到的问题是、在第2步之后、如果我们不等待 I2C 驱动程序通过持续检查寄存器 IICBSY0是否发生变化来完成事务、那么我们不会接收中断。
 
如果我们在写入配置后等待该寄存器更改、则会触发中断、但步骤5将不起作用、因为 SW 将卡在检查 IICBSY0是否发生更改的循环中(在 I2C Receive_End 中断中检查该寄存器)。
 
您对此有什么想法吗?
 
谢谢
Martin
 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Martin、


    通常、是的、这就是您设置 ADS1015的方法。 通过向 HI_THRESH 寄存器的 MSB 写入1、您可以保证数字比较器每次都会触发。 这会将高阈值设置为负数、而低数保持为正(或实际为0)。

    对于(2)、我认为您只需要检查几件事情。 首先、您使用的是单次转换模式还是连续转换模式? 如果您使用单次转换模式、则需要确保寄存器写入 MSB 为1以启动转换。 如果您使用的是连续转换模式、是否已使用示波器检查 ALERT/RDY 引脚? 请注意、脉冲宽度仅为8us、因此轮询该引脚可能不如将引脚用作中断有效。

    关于连续转换模式的另一个词是、如果您更改配置寄存器、器件不会立即更改配置。 它会等待正在进行的转换完成、然后进行更改。 因此、我通常建议使用单次转换模式、然后等待特定的时间从器件中读取。 它通常比使用 ALERT/RDY 来计时读取和配置更改更有效。

    如果您遇到中断问题、我将验证写入阈值寄存器的情况、验证您是否正在进行某种连续转换、并使用示波器查看 ALERT/RDY 引脚、以查看是否有某种周期性脉冲指示数据已就绪。


    吴约瑟

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

    此问题正在脱机处理。

    吴约瑟