主题中讨论的其他器件: ADCPro
大家好、
我使用的是 ADS1258。 我将在固定扫描模式和单端输入下使用它。 我将通过 SPI 传递寄存器写入命令和寄存器数据。 数据正在正常发送。 我通过通道数据读取寄存器获取数据。
正在发送读取命令0x30。 因此、数据表中提到了在不使用 DRDY 时、建议进行通道数据读取(寄存器格式)。
那么、我如何在不使用 DRDY 的情况下获得实时 ADC 值。
谢谢!
法哈德·克里
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.
大家好、
我使用的是 ADS1258。 我将在固定扫描模式和单端输入下使用它。 我将通过 SPI 传递寄存器写入命令和寄存器数据。 数据正在正常发送。 我通过通道数据读取寄存器获取数据。
正在发送读取命令0x30。 因此、数据表中提到了在不使用 DRDY 时、建议进行通道数据读取(寄存器格式)。
那么、我如何在不使用 DRDY 的情况下获得实时 ADC 值。
谢谢!
法哈德·克里
尊敬的 Fahad K R:
Bryan 目前不在、我会尽力帮您解决问题。 你到底想要实现什么? 当您将新配置写入 ADS1258、然后复位该器件时、您之前设置的所有配置设置都将丢失、ADS1258将恢复为默认设置。
为了使器件正常运行、必须连接一个外部时钟源或一个晶振。 您使用什么时钟源以及如何设置 CLKSEL 引脚? 您能否提供原理图?
此外、PDWN 引脚必须为逻辑高电平、并且模拟和数字电源都在标称电压下运行。
此致、
鲍勃 B
尊敬的 Fahad K R:
请记住、您非常熟悉您尝试做的事情、但我不是。 关于如何将物品从外部处理器连接到 EVM 板、您提供的信息很少。 请提供更多详细信息。 您的设置图片和通信的示波器截图会很有帮助。
从 ADS1258读取/写入时、CS 必须在整个通信事务期间保持低电平。 如果您使用 SPI 外设的 CS (SS)引脚、则该引脚可以在字节/字之间切换、因此应使用 GPIO 来控制 CS。 在通信事务期间切换 CS 是尝试使用不同控制器检查或开发软件的客户的一个常见问题。 当 CS 变为高电平时、ADS1258的 SPI 复位。
另一个常见问题是未遵循正确的 SPI 时序。 验证时序和数据转换是否遵循 ADS1258数据表中的 SPI 时序图。
此致、
鲍勃 B
cs(LOW); uint8_t dataTx = OPCODE_RREG | OPCODE_MUL_MASK | (startAddress & OPCODE_A_MASK); //send the read command spiSendReceiveByte(dataTx); uint8_t i; for (i = startAddress; i < (startAddress + count); i++) { // Read register data bytes spiReceiveByte(0x00,&data[i]); //data[] array will store the get value R_OS_TaskSleep(100); } cs(HIGH);
我已向 GPIO 分配了 CS。 读取数据表时、它被清除。
下面提供了配置数据
CONFIG0_INUSE ((uint8_t) 0x2A)
CONFIG1_DLY_64us ((uint8_t) 0x41)
MUXSCH_INUSE (MUXSCH_INUSE) ((uint8_t) 0x10)
MUXDIF_默认值 ((uint8_t) 0x00)
MUXSG0_INUSE ((uint8_t) 0x01)
MUXSG1_INUSE ((uint8_t) 0x00)
系统默认值 ((uint8_t) 0x00)
GPIO_停用 ((uint8_t) 0x00)
GPIOD_默认值 ((uint8_t) 0x00)
以下是我的代码流程
延迟(50ms)
PWDN 由硬件上拉
Start_pin ()
延迟(5)
toggle_reset();
WRITE_THE_DATA()
Read_the_data ()
这有什么问题吗?
尊敬的 Fahad K R:
如果不知道这些问题的答案、并且您不提供完整的逻辑分析仪数据而不是示波器截图、就很难帮助您进一步诊断此问题
正如 Bob 之前提到的、请向我们提供完整信息。 到目前为止,你只提供了位和一些信息,而没有整个"图片",我们无法帮助你非常多
-Bryan
您好、Bryan:
我将 ADS1258评估板与我的处理器 RZA2M 结合使用。 我正在分享以下图片。
我正在使用站点中提供的示例代码。
我正在发送读取命令 [ opcode_RREG ((uint8_t) 0x40)] 的内部 SPI。
我正在读取寄存器的默认值、 [ REG_ADDR_CONFIG0 ((uint8_t) 0x00)] 以验证 SPI 通信。 我正在阅读 readSingleRegiste R () 配置 API。
我使用 DSO 检查了传输数据、没错。 但是、获得价值 0xFF 所有寄存器的记录。 我在写入后检查了、它也显示相同 为0xff。
我连接了 J5A 连接器中的3.3V、5V 和 GND、并连接了 START 引脚、RESET 引脚和 SPI (MISO、MOSI、CLK、SS)。
我没有使用 ADCPro 软件检查电路板。 我直接与处理器板相连。
我相信提供的详细信息足以理解问题所在。
谢谢。此致、
法哈德·克里
尊敬的 Fahad K R:
感谢您提供更多信息
您是否可以将 START 引脚置为高电平并探测 DRDY 引脚? 您无需将 DRDY 连接到控制器(看起来似乎没有连接)、只需使用示波器对其进行探测即可。 DRDY 引脚应以近似的1/data 速率进行脉冲、与下图类似。 这表示 ADC 至少在工作(电源有效且晶体/时钟正常工作)。 请让我知道您是否能够看到这种行为、
我还注意到、在示波器屏幕截图中、您发送的 DOUT 始终为高电平(您说看到的是0xFF)。 控制器中的这个引脚上是否有一个上拉电阻器? 我预计 DOUT 在某个时候会返回低电平、但在您的系统中似乎并非如此。 如果 DOUT 引脚由控制器驱动、则在数据闪存中
告诉我
-Bryan