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.

[参考译文] ADS8681:从 ADS8681读取数据时出现问题

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/983176/ads8681-problems-to-read-data-from-ads8681

器件型号:ADS8681

大家好、这里!  

在我的项目之一中、我尝试 使用 SPI 模式将 ADS8681与 Arduino Mega 2560进行通信。 在示波器上、在 Arduino 的 SPI 引脚上获得正确的波形、但在尝试读取(+- 10V)模拟数据范围时、它在显示模块(LCD)的可变输入上显示了正确的16位变化。 但是、只要移除输入(传感器无负载)、它就会提供随机值、而不是"0"。  如果能提供关于如何获得适当数据的建议,我将不胜感激。   

下图显示 了 ADS8681 (传感器处的负载)有输入时的对应波形  

下图显示 了 ADS8681无输入(传感器无负载)时的相应波形  

我使用的参考资料:

 1] ADS8681:配置问题

2] ADS8691: 如何读取位[0:15]的寄存器值

3] ADS8689:32位寄存器读取命令序列

4] ADS8681:通过 SPI 将 ADS 8681配置到 Arduino MKW 1010 Wifi 时出现问题

5] ADS8681

源代码:

#include 
#include 

define SS 53
#define SCK 52
#define MOSI 51
#define MISO 50

uint16_t receivedVal16 = 0;

LiquidCrystal LCD (38、37、36、35、34、33);

void setup ()
{
lcd.begin(16,4);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE0);

digitalWrite (SCK、output);
digitalWrite (MOSI、output);
digitalWrite (SS、output);
digitalWrite (MISO、INPUT);

digitalWrite (SS、HIGH);//Write range_SEL_REG
Delay (10);
digitalWrite (SS、LOW);
SPI.transfer (0xD4);
SPI.transfer (0x14);
SPI.transfer (0x00);
SPI.transfer (0x01);

digitalWrite (SS、 高电平);//写入 DATA_OUT_CNT_REG
延迟(10);
digitalWrite (SS、低电平);
SPI.transfer (0xD4);
SPI.transfer (0x10);
spi.transfer (0x41);
spi.transfer (0x00);
}

void loop ()
{
digitalWrite (SS、HIGH);// Write range_SEL_REG
Delay (10);
digitalWrite (SS、LOW);
spi.transfer (0xD4);
SPI.transfer (0x14);
SPI.transfer (0x00);
SPI.transfer (0x01);


digitalWrite (SS、HIGH);
delay(10);
digitalWrite (SS、low);

receivedVal16 = SPI.transfer16 (0x00);
lcd.setCursor(0,1);
LCD.print (receivedVal16);

延迟(100);
} 

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

    大家好、Intersense、

    当您说"传感器无负载"时、这是否意味着您的 ADC 输入已完全断开? 您的 ADC 输入端是否包含放大器在内的任何前端组件?  

    如果 ADC 输入端没有任何放大器或其他组件、则当输入发生物理浮动时、ADS8681应在+/-10.24V 范围内输出~2.2V 的代码。 请参阅以下文章中的说明。 但是  、您在传感器上显示的空载代码为0xD414、这表示 ADC 输入端的电压为6.7V。 因此、您的原理图将非常有助于解决该问题。  

    ADS8681EVM-PDK: 模拟输入电路

    此致、

    戴尔

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

     感谢您的回答!  

     "传感器无负载"、这意味着在传感器的初始/正常位置(此时为-10V)将传感器连接到 ADS8681的输入端。 当我们使用-10V 至+10V 的换能 器将输入从-10V 更改为+10V 时、显示的是正确的变化(从0到65、535)、但当从-10V 变为+10V 时、显示的是随机值(从65、535更改为随机值)、而不是显示"0"。  

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

    大家好、Intersense、

    当您说"从-10V 变为+10V"时、您是指直接从-10V 切换到+10V 吗? 例如阶跃响应作为 ADC 的输入? 我会再次问、 换能器和 ADC 输入之间是否有其他组件? 原理图将会很有帮助。

    此致、

    戴尔