works
This commit is contained in:
30
AD7190.cpp
30
AD7190.cpp
@ -115,12 +115,6 @@ void AD7190_SetRegisterValue(unsigned char registerAddress,
|
||||
unsigned char bytesNumber,
|
||||
unsigned char modifyCS)
|
||||
{
|
||||
// Serial.print("set: ");
|
||||
// Serial.print(registerAddress, 16); Serial.print(", ");
|
||||
// Serial.print(registerValue, 16); Serial.print(", ");
|
||||
// Serial.print(bytesNumber);
|
||||
// Serial.println();
|
||||
|
||||
unsigned char writeCommand[5] = {0, 0, 0, 0, 0};
|
||||
unsigned char* dataPointer = (unsigned char*)®isterValue;
|
||||
unsigned char bytesNr = bytesNumber;
|
||||
@ -149,10 +143,6 @@ unsigned long AD7190_GetRegisterValue(unsigned char registerAddress,
|
||||
unsigned char bytesNumber,
|
||||
unsigned char modifyCS)
|
||||
{
|
||||
// Serial.print("get: ");
|
||||
// Serial.print(registerAddress, 16); Serial.print(", ");
|
||||
// Serial.print(bytesNumber);
|
||||
|
||||
unsigned char registerWord[5] = {0, 0, 0, 0, 0};
|
||||
unsigned long buffer = 0x0;
|
||||
unsigned char i = 0;
|
||||
@ -165,9 +155,6 @@ unsigned long AD7190_GetRegisterValue(unsigned char registerAddress,
|
||||
buffer = (buffer << 8) + registerWord[i];
|
||||
}
|
||||
|
||||
// Serial.print(buffer, 16); Serial.print(", ");
|
||||
// Serial.println();
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
@ -334,30 +321,15 @@ unsigned long AD7190_SingleConversion(void)
|
||||
unsigned long command = 0x0;
|
||||
unsigned long regData = 0x0;
|
||||
|
||||
// command = (((1L) & 0x7) << 21);
|
||||
// Serial.print("Command1: ");
|
||||
// Serial.println(command, 16);
|
||||
// command |= (((2L) & 0x3) << 18);
|
||||
// Serial.print("Command2: ");
|
||||
// Serial.println(command, 16);
|
||||
// command |= ((0x060) & 0x3FF);
|
||||
// Serial.print("Command3: ");
|
||||
// Serial.println(command, 16);
|
||||
|
||||
command = AD7190_MODE_SEL(AD7190_MODE_SINGLE) |
|
||||
AD7190_MODE_CLKSRC(AD7190_CLK_INT_CO) |
|
||||
AD7190_MODE_CLKSRC(AD7190_CLK_INT) |
|
||||
AD7190_MODE_RATE(0x060);
|
||||
//Serial.print("Command: ");
|
||||
//Serial.println(command, 16);
|
||||
|
||||
|
||||
//ADI_PART_CS_LOW;
|
||||
SPI_Enable(AD7190_SLAVE_ID);
|
||||
AD7190_SetRegisterValue(AD7190_REG_MODE, command, 3, 0); // CS is not modified.
|
||||
AD7190_WaitRdyGoLow();
|
||||
regData = AD7190_GetRegisterValue(AD7190_REG_DATA, 3, 0);
|
||||
//Serial.print("result: ");
|
||||
//Serial.println(regData, 16);
|
||||
//ADI_PART_CS_HIGH;
|
||||
SPI_Disable(AD7190_SLAVE_ID);
|
||||
|
||||
|
@ -12,27 +12,73 @@ void setup() {
|
||||
Serial.print(String("ad7190Status: ") + ad7190Status + "\n");
|
||||
|
||||
|
||||
delay(1000);
|
||||
AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_TEMP_SENSOR);
|
||||
AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_AIN4P_AINCOM);
|
||||
AD7190_Calibrate(AD7190_MODE_CAL_INT_FULL, AD7190_CH_AIN4P_AINCOM);
|
||||
|
||||
delay(1000);
|
||||
AD7190_Calibrate(AD7190_MODE_CAL_INT_FULL, AD7190_CH_TEMP_SENSOR);
|
||||
AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_AIN3P_AINCOM);
|
||||
AD7190_Calibrate(AD7190_MODE_CAL_INT_FULL, AD7190_CH_AIN3P_AINCOM);
|
||||
|
||||
AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_AIN2P_AINCOM);
|
||||
AD7190_Calibrate(AD7190_MODE_CAL_INT_FULL, AD7190_CH_AIN2P_AINCOM);
|
||||
|
||||
AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_AIN1P_AINCOM);
|
||||
AD7190_Calibrate(AD7190_MODE_CAL_INT_FULL, AD7190_CH_AIN1P_AINCOM);
|
||||
|
||||
AD7190_RangeSetup(1, AD7190_CONF_GAIN_1);
|
||||
}
|
||||
|
||||
|
||||
unsigned long T() {
|
||||
AD7190_RangeSetup(0, AD7190_CONF_GAIN_1);
|
||||
AD7190_ChannelSelect(AD7190_CH_TEMP_SENSOR);
|
||||
AD7190_ChannelSelect(AD7190_CH_AIN4P_AINCOM);
|
||||
unsigned long t = AD7190_SingleConversion();
|
||||
return t;
|
||||
}
|
||||
|
||||
float pt1000(float r) {
|
||||
const float PT1000_R0 = 1000.0;
|
||||
const float PT1000_Coeff = 3.85e-3;
|
||||
float t = (r / PT1000_R0 - 1) / PT1000_Coeff;
|
||||
return t;
|
||||
}
|
||||
|
||||
|
||||
void loop() {
|
||||
Serial.print("Tick\n");
|
||||
|
||||
unsigned long t = AD7190_TemperatureRead();
|
||||
Serial.println(t);
|
||||
AD7190_ChannelSelect(AD7190_CH_AIN4P_AINCOM);
|
||||
unsigned long n4 = AD7190_SingleConversion();
|
||||
AD7190_ChannelSelect(AD7190_CH_AIN3P_AINCOM);
|
||||
unsigned long n3x = AD7190_SingleConversion();
|
||||
AD7190_ChannelSelect(AD7190_CH_AIN2P_AINCOM);
|
||||
unsigned long n2x = AD7190_SingleConversion();
|
||||
AD7190_ChannelSelect(AD7190_CH_AIN1P_AINCOM);
|
||||
unsigned long n1x = AD7190_SingleConversion();
|
||||
|
||||
|
||||
|
||||
|
||||
unsigned long n_max = 0xffffff;
|
||||
float r_ref = 6000.0;
|
||||
|
||||
float r_m4 = (((float)n4) / ((float)n_max)) * r_ref;
|
||||
float t4 = pt1000(r_m4);
|
||||
Serial.print(n4); Serial.print(", "); Serial.print(r_m4, 4); Serial.print(", "); Serial.println(t4, 2);
|
||||
|
||||
unsigned long n3 = n3x - n4;
|
||||
float r_m3 = (((float)n3) / ((float)n_max)) * r_ref;
|
||||
float t3 = pt1000(r_m3);
|
||||
Serial.print(n3x); Serial.print(", "); Serial.print(n3); Serial.print(", "); Serial.print(r_m3, 4); Serial.print(", "); Serial.println(t3, 2);
|
||||
|
||||
unsigned long n2 = n2x - n3x;
|
||||
float r_m2 = (((float)n2) / ((float)n_max)) * r_ref;
|
||||
float t2 = pt1000(r_m2);
|
||||
Serial.print(n2x); Serial.print(", "); Serial.print(n2); Serial.print(", "); Serial.print(r_m2, 4); Serial.print(", "); Serial.println(t2, 2);
|
||||
|
||||
unsigned long n1 = n1x - n2x;
|
||||
float r_m1 = (((float)n1) / ((float)n_max)) * r_ref;
|
||||
float t1 = pt1000(r_m1);
|
||||
Serial.print(n1x); Serial.print(", "); Serial.print(n1); Serial.print(", "); Serial.print(r_m1, 4); Serial.print(", "); Serial.println(t1, 2);
|
||||
|
||||
|
||||
delay(1000);
|
||||
}
|
||||
|
Reference in New Issue
Block a user