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.

[参考译文] CCS/ADS124S06:请帮助我调试 Arduino 板上的 ads124s06

Guru**** 2611705 points
Other Parts Discussed in Thread: ADS124S06

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/677292/ccs-ads124s06-please-help-me-to-debug-about-ads124s06-at-arduino-board

器件型号:ADS124S06

工具/软件:Code Composer Studio

大家好、

我对 ads124s06 controlled 有疑问。 我可以命令和 r/w ads124s06寄存器。 但是、当我命令它开始转换时、它无法工作。  

代码和连接引脚位于最后一个位置。

其 DRDY 引脚不 属于默认设置。 在我启用 PGA 增益设置1后、我在 AIN2/AINCOM 处收到7FFFFFh (约2.65伏)、或在 AIN0/AIN1处收到800000h (约0.02伏)。 它是 ADC 的最大/最小数。  这很奇怪。

有人能帮我解决这个问题吗?

谢谢。

连接 PIN

引脚 功能 连接
1 AINCOM 0
2. AIN5 2.12.
3. AIN4 2.63
4. AIN3 2.05
5. AIN2 2.65
6. AIN1 2.23.
7. AIN0 2.21.
8. 启动 引脚11
9. CS 引脚53
10. DIN 引脚51
11. SCLK 引脚52
12. DOUT 引脚50
13. DRDY 引脚12
14. DGND 0V
15. IOVdd 5V
16. DVDD 3.3V
17. CLK 0
18 复位 引脚13
19. GPIO3. 不适用
20. GPIO2 不适用
21. GPIO1 不适用
22. GPIO0 不适用
23 REFOUT 1uF 至 AVSS
24 REFCOM 0
25 常闭 不适用
26 AVDD 5.
27. AVSS 0
28. AVSS-SW 0
29. REFN0 2.5.
30 REFP0 0
31. REFN1 2.5.
32 REFP1 0

Arduino 代码

#include
#include
#define START 11.
#define DRDY 12.
#define RESET 13.
const int CS = 53;
int stat;
int stat1;
int stat2;
int stat3;
int stat4;
int stat5;
volatile int DRDY_state = low;
SPI 设置设置1 (4000000、MSBFIRST、SPI_MODE1);  
void setup(){
SPI.begin();
引脚模式(CS、输出);
引脚模式(RESET、输出);
引脚模式(DRDY、输入);
引脚模式(启动、输出);
digitalWrite (重置,高电平);  
Serial.begin(115200);
SPI.beginTransaction(settings1);
digitalWrite (CS、low);
digitalWrite (STA、LOW);
void loop(){
for (int i=0;i>=0;i++)
if (i=0){
SPI.transfer (0x42);// WREG 寄存器地址
SPI.transfer (0x02);// WREG 字节编号-1
SPI.transfer (0x1C);// WREG 写入 AIN2-AINCOM
SPI.transfer (0x00);// 03h PGA reg (00h 至 CLOSED,08h 至 GAIN=1)
SPI.transfer (0x10);//数据速率2.5SPS
SPI.transfer (0x08);//开始转换命令
delayMicroseconds (10);
其他
//Serial.println ("开始转换");
SPI.transfer (0x12);//RDATA 命令
delayMicroseconds (10);
STAT = SPI.transfer (0);//从 MISO 获取数据
stat1= spi.transfer (0);
STAT2= SPI.transfer (0);
serial.println ("ADC 输出");
serial.println (stat);
serial.println (stat1);
serial.println (stat2);
spi.endTransaction();
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、user5046138、

    欢迎来到 E2E 论坛! 是需要考虑的几个项目。  首先、让我们看一下代码。  在设置块中、您定义了 START、但在写入引脚时、您使用 STA 作为缩写。  确保 START 引脚未悬空。  在循环块中,您使用不带{}的 for ()函数。  您还可以将数据速率设置为2.5sps、但在尝试读取之前仅等待10us。  请参阅 ADS124S06数据表第42页的表13、了解转换结束的实际时间、对于您的配置、该时间将为406.504ms。  此外、您的配置是使用 AIN1/AINCOM (0x1C) 而不是 AIN2/AINCOM (0x2C)。  因此、您必须确保 START 不浮动、配置符合预期、并确保在检查 DRDY 是否变为低电平之前等待最短时间。

    就 IC 连接而言、基准输入是反向连接的。  REFP 应为最大正值、REFN 应为最大负值、因此引脚连接相反。

    确保您也正确解读结果。 0x7FFFFF 为正满量程、0x800000为负满量程。  即使转换已完成、基准输入不正确、最有可能的值也会不正确。

    要检查 DRDY、您应在尝试从 ADS124S06读取数据之前进行检查、因为当器件读取时(SCLK 强制 DRDY 处于高电平)、并且您尝试在代码中几乎连续读取数据时、DRDY 将被强制为高电平。

    此致、

    Bob B

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

    尊敬的 Bob:

    感谢您的回答。 我将根据您的建议对其进行修改。  我将 REFP 设为5V、将 REFN 设为0V。  但我现在还有另一个问题。 我选择 AIN0/AINCOM (2.21V)、它转换值15514490 (ECBB7A h、平均值)。 但是、AIN1/AIN0 (0.02伏) 返回值9249840 (8D2430 h、平均值)。 AIN1/AIN0输出值是否需要接近于零或足够小? 为什么要转换如此大的值?

    而不是。 转换值具有较大的振荡范围(图)。 我非常确信它应该被修复。 如何纠正?

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

    您需要确保电压与您认为的电压保持连接。 对于 AIN1/AIN0、您将获得非常大的负值、接近于负满量程。 AIN1连接似乎与您预期的不符(接近0V)。 检查 ADS124S06输入引脚的连接和电压、尤其是 AIN1。

    此外、您可能还需要使用示波器查看电压源、以确保在测量中看到的噪声不是电压源的噪声

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

    尊敬的 Bob:

    感谢你的帮助。 我发现电源线未连接并已修复。

    我有另一个问题。 如果模拟输入和数字 SPI 器件不使用同一电路、您是否需要在两条5V 电源线之间连接一个电容器? 是否还需要0V 电源线? 我需要多大的电容?

    谢谢。

    此致、

    许志光

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

    ADS124S06数据表第7页的第7.1节提供了绝对最大额定值表。 请注意、"AVSS 到 DGND"有一个特定的值。 如果模拟电源为单极、则 AVSS 和 DGND 应处于或非常接近相同的电位。 如果您使用2个不同的电源、则应将电源接地端连接到 PCB 接地端。

    模拟输入也有类似的额定值。 请参阅同一表中的"模拟输入电压"。 就电力线生成的电源而言、输出相对于接地端可能会变化几十伏、因此最好确保电源输出(通常为-)进入 PCB 上的模拟接地端。 因此、您不能让电源悬空、而是连接到公共接地(在本例中为模拟接地)。

    电池输入或未通过电网连接的其他输入电压必须保持在 ADS124S06的测量范围内。 有时需要基准点或电压偏置(例如 ADS124SO6的 VBIAS)、以使测量值保持在 PGA 的输入范围内。

    此致、
    Bob B