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.
工具与软件:
尊敬的所有人:
我正在验证在级联配置中使用4个 ADS1298的设计。 对于所有 ADS1298、我可以读取其 ID、读取/写入 CONFIG 寄存器1、2、3以及配置各个通道。
然而、当我将器件置于2KHz 的连续数据读取模式时、虽然数据就绪引脚以2KHz 频率正确切换、但 ADC 不会发送任何数据、甚至不是状态字。
如第9.4.1.3.1节所述、状态字的前导位应为1100。 但来自 ADC 的所有数据都是0。
您可以在随附的中找到我的探测结果(使用 Saleae Logic 1软件)。
我感谢您的任何见解。 非常感谢。
此致!
Aiden
e2e.ti.com/.../CascadedADS1298_5F00_4MHzSPI_5F00_2KHzDataRate.zip
您好、Aiden、
感谢您发帖。
我查看了您共享的逻辑分析仪捕获(非常有用)、通信内容看起来基本正确。 引起我注意的一个细节是、在寄存器配置之后、您在没有首先发送启动命令的情况下发送 RDATAC。 在初始化例程的开始、您发送 STOP 命令、后跟 SDATAC。 因此、在重新进入 RDATAC 模式之前、必须使用 START 命令恢复转换。 不过、我很好奇为什么在转换未激活时 DRDYn 引脚会切换...这是我不确定的。
在您的设置中还有什么其他东西可以加载 DOUT 吗? 我注意到在某些寄存器写入期间、SDO 在第一个字节期间读取0xCC、但它应该是0x00。 例如、在为器件4配置通道1时、请参阅以下内容:
顺便说一句、当写入器件或发出通用命令时、可以将所有4个 CSn 引脚拉低、以节省一些时间。 仅从 DOUT 读取时才需要单独的 CSn 信号。
此致、
Ryan
尊敬的 Ryan:
感谢您的帮助。 我将所有 START 引脚连接在一起并由微控制器控制。 就在重新进入 RDATAC 模式之前、我会将 START 引脚拉为高电平以启动转换。 这就是 DRDYn 引脚以正确的数据速率进行切换的原因。
使用 START 引脚和 START/STOP 命令可以控制转换启动/停止吗?或者我应该选择其中一个并坚持执行该操作。
我仔细检查了设计、除了微控制器的 MISO 引脚外、没有其他引脚连接到 DOUT。 因此我认为 DOUT 的加载不是 ADC 之外的其他信号。
关于 从 ADC 发送的数据、我是否可以假设 ADC 在读取/写入寄存器命令期间不应返回任何内容、并且仅在看到完整的读取/写入命令后回复数据? 我注意到 DOUT 在通道寄存器读取的第一个字节期间读取0x60。 但是、这只会从读取第二个通道寄存器开始发生。 在第一个通道寄存器读取期间、ADC 未回复第一个字节中的任何内容。
同时、感谢有关一起为所有 ADC 编写内容的提示!
此致!
Aiden
尊敬的 Aiden:
如果您计划使用 START 和 STOP 命令、我建议将 START 引脚保持为低电平。 如果您将 START 置为高电平、即使您之前通过 SPI 发出了 STOP 命令、我也希望器件能够恢复转换而不会出现任何问题。 对于 START 引脚、我唯一关心的问题是该器件是否会在引脚 保持高电平时始终响应停止。
我注意到在后续 RREG 命令的第一个字节中重复的"0x60"(在通道1的初始字节之后)。 我想所发生的事情是器件继续输出先前加载到输出移位寄存器中的数据、这就是 CH1的寄存器设置。 这种行为将是将 CONFIG1[6]设置为1b ="多读回模式"的结果。 作为一项测试、您可以将 CH1配置为不同的增益设置、并且您应该在为 CH2SET 发送 RREG 命令时看到 CH1SET 寄存器数据重复。
此致、
Ryan
感谢 Ryan、
我将会尽快测试它。 那么、您是否认为我没有看到 ADC 读数的原因是因为"多读回模式"?
如果 ADC 采用级联配置(如9.4.2.1部分中的图66所示)、则我认为 ADC 应置于"多回读模式"。
此致!
Aiden
尊敬的 Aiden:
我认为多回读模式与看不到转换数据无关。 对于级联配置中的多个器件、不要强制将此位设置为1b。 您可以将其保留为0b (默认值)、即使您未使用菊花链输入引脚(在这种情况下、DAISY_IN 引脚应连接到 DGND)也是如此。
根据我之前提到的内容、您可以尝试在 RDATAC 之前发出 START 命令、而不是在例程结束时将 START 引脚拉为高电平吗? 这只是为了确认该行为与预期相同。
此致、
Ryan
尊敬的 Ryan:
感谢您的建议。 我使用 START 命令确认只会产生与使用 START 引脚相同的效果。
在仔细检查了4个 tCLK 的禁止区域的时序后、我意识到问题可能出在这里。 例如、发出 SDATAC 命令后、我等待了2us、这在理论上已经足够了、但可能由于时钟拉伸或其他因素、2us 不够。 将等待时间增加至3us 后、ADC 表现正常。 我可以配置寄存器并查看状态字以适当速率传输的数据。
感谢您的帮助! 我将结束该问题。
此致!
Aiden
嗨艾登-我很高兴你能找出时间问题。 如果您将来再次需要帮助、请告诉我们。
此致、
Ryan