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.

[参考译文] ADS124S08EVM:在将 ADS124S08EVM 与 Arduino UNO 连接时、当我更改 ADC 的增益时、我无法获得作为增益函数的正确输出。

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/884779/ads124s08evm-while-interfacing-ads124s08evm-with-arduino-uno-when-i-am-changing-the-gain-of-adc-i-am-not-getting-the-correct-output-as-a-function-of-gain

器件型号:ADS124S08EVM

我使用了6V 作为连接到 JP9跳线的输入电压源,因此由于 EVM 本身中有电阻分压器(R76 (93.1欧姆)和 R77 (24欧姆)),因此24欧姆的电压将作为多路复用器的输入, 因此6V 在2个电阻器之间分压、因此24欧姆的电压为1.2294V、因此当我将增益更改为2时、数字输出应为((2^24*GAIN)/(2*Vref))*(1.2294)  

#include

#include

#define start 6.

#define RESET 7

#define CS 4.

//#define R_76 93.1

//#define R_77 24.

//#define FULL_SCALE 5.

//#define DRDY 8.

int32_t stat;

double stat1;

double stat2;

uint32_t 启动;

uint32_t 停止= 0;

//volatile int DRDY_STAY = LOW;

SPI 设置设置1 (4000000、MSBFIRST、SPI_MODE1);


void setup()

SPI.begin();

//pinMode (DRDY、输入);

引脚模式(CS、输出);

引脚模式(RESET、输出);

引脚模式(启动、输出);

digitalWrite (重置,高电平);

延迟(5);

Serial.begin(9600);

SPI.beginTransaction(settings1);

digitalWrite (CS、low);

digitalWrite (start、low);


void loop()

for (int i=0;i>=0;i++)



if (i=0)

SPI.transfer (0x42);// WREG 寄存器地址
SPI.transfer (0x07);// WREG 字节编号-1

SPI.transfer (0xAC);// WREG WRITE AIN10-AINCOM、(1010 1100)二进制、MUXP 和 MUXN 选择

SPI.transfer (0x09);//增益=2

SPI.transfer (0x14);//数据速率20SPS

SPI.transfer (0x3A);// REF (0011 10-ref 10)、Internal_ref 开启、电压为2.5V

SPI.transfer (0x00);// IDAC MAG

SPI.transfer (0xFF);// IDAC 多路复用器

SPI.transfer (0x00);// Vbias

SPI.transfer (0x12);//超时位 second =1,默认值为10h

SPI.transfer (0x08);//开始转换命令

延迟(1);

其他


while (停止< 2000)

digitalWrite (CS、low);

SPI.transfer (0x12);//RDATA 命令

STAT = SPI.transfer (0);

STAT =(STAT<<8)| SPI.transfer (0);

STAT =(STAT<<8)| SPI.transfer (0);

digitalWrite (CS、HIGH);

停止=毫秒();

IF (stat & 0x800000)

STAT =(stat | 0xFF000000);

serial.print(stat);

serial.print ("\t");
serial.print (停止);

serial.print ("\n");

延迟(50);//需要额外的延迟以使下一个转换周期结束

spi.endTransaction();


谢谢你

此致

Sushmita Chaudhary

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

    您好、Sushmita、

    我不明白你想说什么。  你有疑问吗?  您的计算是正确的、或者换句话说、当您切换到增益为2时、您应该看到的代码数量是增益为1时的两倍。  如果您没有获得正确的结果、您能否分享您在每种情况下看到的值?

    对于增益为1的情况、您应该看到大约0x3EF1FD 的输出、对于增益为2的情况、您应该看到大约0x7DE3FA (对于2.5V 基准)。  很显然、噪声将影响低位。  您还应验证从代码中检索到的结果、这些结果与使用示波器或通信逻辑分析仪看到的结果相同。

    此致、

    Bob B