我使用了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