大家好、我遇到了一个问题、就是几天前我买了一个 ADS131A02芯片、现在我已经将驱动程序配置为在读取每个寄存器时输出0x2272数据。 当读取32位 AD 的数据输出时、发现数据输出为0x00002272。 现在我不知道问题是什么以及如何解决。
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.
您好!
ADS131A02非常具体地描述了通信的方式及其对命令字的期望。 我猜是通信帧有问题、您得到的响应是状态响应、因为器件不了解命令。 请注意、状态响应的第一部分是22h、这相当于对2h 寄存器(即状态)的读取。
首先、您对 M0、M1和 M2引脚的设置是什么? 您是否正在使用固定帧模式的动态帧模式进行通信? 请注意、对于任何通信模式、您都应该完成通信并提供足够的 SCLK 脉冲。
它还有助于显示与器件的 SPI 通信。 您应该会得到一个示波器来显示 DIN、DOUT、CS 和 SCLK、以显示器件正在发送和接收的内容。 在您能够查看通信后、您可以将其发布回此处。 解释要发送到器件的命令序列及其之间的时序也可能会有所帮助。 请注意、命令响应也很有用、因为它们可用于调试从前一帧发送的命令。
吴约瑟
您好!
同样、您对该器件使用了哪些设置? 我在上一篇帖子中询问了有关 M0-M2设置和您使用的帧模式的几个问题。
我在示波器快照中看到的问题是/CS 线每32个 SCLK 返回高电平。 如果您使用的是具有32位字的 ADS131A02、并且您使用的是固定帧模式(我只是将其用作示例)。 那么您的通信将是4个数据字。 通信将是状态字、通道1数据字、通道2数据字、然后是 CRC 字(如果禁用 CRC、该字将全为0)。
在操作中、/CS 变为低电平以启用通信、然后传输全部四个字。 总共32x4 (或128)个 SCLK、然后/CS 变为高电平。 您不能在每个/CS 活动周期将通信分成32个 SCLK。
更改通信以为每次通信发送128个 SCLK、并查看您获得的结果。
吴约瑟
您好!
我假设您查看的是 STAT_P 和 STAT_N 寄存器、并且看到输入已超过阈值检测的值。 寄存器03h 和04h 的读数是多少?
此外、您的输入值设置为什么? AVDD 和 AVSS 的电压是多少? 您是否启用了负电荷泵?
如果 AVDD=3.3V、AVSS=0V、并且负电荷泵关闭、则连接负输入将低于阈值电压。
但是、如果您打开负电荷泵、则 AVSS=0是在输入范围内的、并且不超过阈值。
仔细阅读我的问题、并向我发送您的答案。
吴约瑟
您好!
首先、启用负电荷泵后、您的 AVDD 至 AVSS 的最大电压为3.6V。 仅当禁用负电荷泵时、AVDD 至 DVDD 的电压才能为5V。 这来自绝对最大值表、您可以在下面看到该表。
此外、在启用负电荷泵的情况下、器件建议的工作范围为3.0V 至3.45V。 这来自数据表中的建议运行条件表。
现在、如果您已在0V 至5V 的电压范围内运行电源、则负电荷泵可能无法正常工作。 我想电源仍然是0V 和5V。 如果您尚未更改阈值设置、则 A_SYS_CFG 寄存器中 COMP_TH 的阈值设置仍设置为高阈值电源的95%、低阈值电源的5%。
然后、如果输入为0V、则两个输入都低于下限阈值:
这将导致设置03h 和04h 的标志。 我认为这是问题的可能原因。 如果可以、将输入更改为接近中间电源、以查看该标志是否消失。 或者、您可以将电源更改为3.3V、然后启用负电荷泵。 我还想指出、使用负电荷泵的5V 电源可能会损坏器件。 但是、我没有听说过器件意外进入此模式造成的损坏情况。
吴约瑟