您好!
运行 ADS1263并使所有器件在等待/轮询模式下正常工作。
但是、当在 DOUT/DRDY 线路上使用中断时、该线路似乎保持最后一个数据位、而不是遵循专用 DRDY 线路。 因此、在 DOUT/DRDY 线路上设置中断并使 CS 变为低电平的一半时间(当最后一位为低电平时)、它会立即触发、而不是等待新数据准备就绪。
专用 DRDY 线路工作正常、但根据设计、我应依赖 DOUT/DRDY、MCU 无法访问专用 DRDY 线路。
我是否遗漏了什么?...
感谢你的帮助、
A.
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.
您好!
运行 ADS1263并使所有器件在等待/轮询模式下正常工作。
但是、当在 DOUT/DRDY 线路上使用中断时、该线路似乎保持最后一个数据位、而不是遵循专用 DRDY 线路。 因此、在 DOUT/DRDY 线路上设置中断并使 CS 变为低电平的一半时间(当最后一位为低电平时)、它会立即触发、而不是等待新数据准备就绪。
专用 DRDY 线路工作正常、但根据设计、我应依赖 DOUT/DRDY、MCU 无法访问专用 DRDY 线路。
我是否遗漏了什么?...
感谢你的帮助、
A.
您好 Dale、
感谢您的帮助。 我还…了 TI 支持中心的正式 TT
虽然专用 DRDY 引脚的工作原理与描述的完全相同,但 DOUT/DRDY 引脚仅在 SPI 事务期间从该引脚移出的最后一个位为“1”或高电平时工作。
如果 DOUT/DRDY 的最后一个移位位为0,DOUT/DRDY 引脚将保持为“0”,即使数字化未完成且专用 DRDY 引脚处于高电平(这种情况下,我始终保持/CS 为低电平)。
如果 DOUT/DRDY 中最后一个移位位为0、则在读取数据后将/CS 置为高电平一段时间内、DOUT/DRDY 引脚在再次将/CS 置为低电平后立即变为“0”、即使数字化未完成且专用 DRDY 引脚仍为高电平。 这会在/CS 变为低电平时导致过早中断。
非常感谢您的参与和帮助、
安纳托利
DOUT/DRDY (黄色、CH1)和 SCLK (紫色、CH2)(当最后一个移位位为"1"时)
DOUT/DRDY (黄色、CH1)和 SCLK (紫色、CH2)(当最后一个移位位为"0"时)
/CS (黄色、CH1)和 SCLK (紫色、CH2)
您好 Dale、
感谢你的答复。
我的 START 引脚连接到 GND (通过50欧姆电阻器)、并且我正在使用命令启动转换。 此外、ADC 大部分时间处于自由运行模式、因此我只需使用读取 ADC1命令读取数据。 但是,也尝试在没有命令的情况下执行直接缓冲区读取,结果是相同的–当最后一位为“0”时,DOUT/DRDY 线路不能按预期工作。
Dale、您对红色/蓝色突出显示数据的疑问对我来说并不清楚。 我正在 DOUT/DRDY 线路上的 MCU 上使用一个低向(“1”到“0”转换)中断。 如果您可以重新表述最后一个问题、我可以捕获必要的图表。
还有一条评论。 我找到了一种处理这种情况的临时方法。 从缓冲区中读取数据后,读取一个将“1”作为 LSB 的寄存器。 具体而言,我正在读取 IDACMUX 寄存器,默认值为0xBB 或“1”的最后一位。 在添加这个虚拟读取中断之后、每次都按照需要工作。 我知道这只是一个临时解决方案、直到您确认它可以可靠地使用。
谢谢、
安纳托利
您好 Dale、
感谢您的澄清。
蓝色数据是操作码0x12、前两个数据字节的移位、红色数据是数据的最后两个字节。 传输看起来非常好、对于图片上的传输、状态和 CRC 被禁用、因此整个传输为5字节。
实际收到的数据似乎如预期的那样高质量。
自从上一个移位位以来,我唯一的情况是噪音或多或少总是随机的“0”或“1”,所以当它为“0”时,我不能使用此行上的数据就绪中断。
您能否确认您有类似的行为、或此类行为并非典型行为?
谢谢、
安纳托利
您好、Anatoly、
您的 ADC 是在 连续转换模式还是 脉冲转换模式(模式0寄存器中的运行模式)下工作? 在发送另一个读取 ADC1命令以在下一个周期读取数据之前、您是否为新转换发送了 Start1命令? 我要讨论的下一个周期是您的时序中显示的数据读取周期之后的周期,这也是您在 DoU/DRDY 引脚上检测下降沿(“1”到“0”转换)的周期。
关于图108和109中的时序、/CS 需要保持低电平。 如果/CS 保持低电平、DOUT/DRDY 最终将在下一个转换结果准备就绪前返回高电平。 因此、它可以保持 LSB 的值、但是在下一个转换结果准备就绪前、它应该返回到高电平、请参阅下面的脚注3:
此外、您正在使用下降沿触发控制器中的中断、还有另一种方法可以检测和读取 DOUT/DRDY 引脚上的数据、您可以在 通过命令读取数据 或直接读取数据模式下监控该引脚、 如果/CS 保持低电平、DOUT/DRDY 被驱动为低电平。
此致、
戴尔
您好 Dale、
我想你明白了。
如果最后一个移位位为“0”,DOUT/DRDY 将在数据就绪前仅16个周期返回高电平。 因此、我必须保持/CS 为低电平、以便能够在下一个数据就绪时使用变为低电平中断。
我需要几天时间来重新配置和测试所有内容、但我相信它会起作用。
非常感谢您研究这个问题并帮助解决我的问题。
如果一切正常、我将在几天内确认并关闭此问题。
谢谢、
安纳托利
您好 Dale、
非常感谢您深入了解它!
是的、做了很多实验、使用200MHz 示波器无法在 DOUT/DRDY 线路上看到或触发返回脉冲、而我在专用/DRDY 线路上看到非常清晰的脉冲(不读取数据、脉冲宽度为2us 或~16个周期)。
已尝试多种速率和不同设置…
因此,正确的做法是,MCU 在最后一个移位位为“0”…后看不到脉冲或获得中断
但是、您描述的在读取数据后读取 IDACMUX 寄存器的方式似乎每次都有效。 因此、如果您可以与设计人员确认这是一种可靠的 ADC 工作方式、那么我们确实有一个很好的解决方案。 只需确保我的设计/实现不会出现隐性或时间延迟问题。
使用 CH1 (黄色) DOUT/DRDY 线路和 CH2 (粉色)以19.2ksps 连接示波器快照是专用/DRDY 线路…
再次感谢您为这种情况提供的所有帮助和时间!
安纳托利