FAE Demo Theory of Operation - ArrowElectronics/arrow-safari GitHub Wiki
All Sensors feed LPF which is present on each input on board prior to being input to the AD7124-8. Each of the 8 inputs (16 single-ended) goes into a MUX where one input is selected at a time to go to the ADC. The AD7124 provides analog signal conditioning via a PGA as well as a pre-charge buffer. Note this buffer is present on the B-grade only; this is why it was selected for Safari. The analog signal now enters the 24-bit Sigma-Delta ADC where output is converted to digital and digital filtering (user-selectable) is applied. From here the parallel digital data is serialized and sent out a SPI interface to the host board, which for Safari is the Meerkat 96Board. On the Meerkat the data is sent out from its UART interface where it is received by the FTDI chip and converted to USB.
For the demonstration mode the AD7124-8 is configured as shown here:
Global Settings
Individual Channel Settings
The 3 sensors used in the demonstration all output analog voltages. Conversion from V to g’s, degC, Pa is done by the MCU residing on the Meerkat board. Note: each formula is specific to the particular sensors used in the demo and may not be accurate if alternate sensors are connected.
Accelerometer (motor vibration)- Analog Devices ADXL203CE
Range: +/-1.7g
Output(V)= Vdd/2 +/- 620mV/g for Vdd=3.3V
Convert to g’s:
Acceleration(g)= (Vmeas-Vdd/2) x 1g/620mV
where Vmeas= output of accelerometer and Vdd=3.3V
For example, if Output=2.05V:
Acceleration(g)= (2.05V-1.65V=400mV) x 1g/620mV=0.645g
RTD (motor temperature)- Adafruit 3290 PT100 RTD
Range: -200 to 550 degrees Celsius
Resistance of RTD= 100 ohms + 0.385/degC
To calculate the temperature:
a) Calculate resistance of the RTD
b) Use this value to determine the temperature
If you have the inputs configured in Unipolar mode use this formula:
RTD= (Code x 5.11kohms)/ (2^24 × 16) click for detailed explanation
Where
RTD= resistance of the Resistive Temperature Device
Code= digital output of AD7124-8 A/D
5.11kohms= value of the precision resistor connected to the board
24= number of bits of the ADC in the AD7124
16= gain setting of PGA within the AD7124
Once you calculate the value of the RTD, substitute into this equation:
Temp(degC)= (RTD-100)/0.385
Example: Code=5862504
a) RTD= (Code x 5.11kohms)/(2^24 × 16)= 111.6 ohms
b) Temp= (111.6- 100)/0.385= 30.1degC
Pressure Sensor (fan output)- Sensirion SDP816-125PA
Range: -12.5 to 125 Pascal
Differential Pressure (DP)= (190 x Aout)/Vdd – 38
where Aout= output voltage of sensor (see datasheet page 4, Section 3.1, Linear configuration)
This particular pressure sensor has an output of 90% of Vdd; for Vdd=3.3V this translates to 3.3 x 0.9= 2.97V. For this measurement we have elected to use the Safari's on-board 2.5V precision reference, so the sensor output needs to be scaled down accordingly. Using Safari's on-board resistive dividers R6A, R6B and R6C we remove jumper JP1 and connect jumper JP2 to attenuate the signal by 2.5/3.3.
So the AD7124 input sees: Vin= Aout x (2.5/3.3)
Where
Aout= output of sensor and
Vin= input to AD7124 after the resistive divider
And the formula used by the Meerkat to calculate pressure is:
Differential Pressure (DP)= 190 x {Vin x (3.3/2.5)}/Vdd – 38
Since Vdd=3.3V this translates to:
DP= 190 x Vin/2.5 - 38
Example: Let Vmeas= 875mV
Then DP= (190 x 0.875V)/3.3V -38= 12.38Pa
Code=(2^N × AIN x Gain)/VREF (page 48 of datasheet, Unipolar mode)
Where Code=digital output of the ADC, N=number of bits of the ADC
AIN= input voltage and VREF=reference voltage used by the ADC
For our temperature measurement, input AIN= voltage drop measured across the RTD (let’s call this VRTD),
and reference voltage VREF=voltage drop measured across the external precision resistor RREF.
Substituting VRTD for AIN and rearranging we have:
Code= (2^N × Gain) x VRTD/VREF
For our test we are putting the same 500uA through both the RTD and the reference resistor. So the ratio
VRTD/VREF= (RTD x Itest)/( RREF x Itest)= R(RTD)/RREF
Substituting RTD/RREF for VRTD/VREF we have:
Code= (2^N × Gain) x RTD/RREF
Rearranging in terms of RTD:
RTD= (Code x RREF)/ (2^N × Gain)
Since we know the values of RREF (5.11kohms), N(24 bit ADC) and Gain(16), by reading the Code we can solve for RTD:
RTD= (Code x 5.11kohms)/ (224 × 16)