-
-
Notifications
You must be signed in to change notification settings - Fork 0
Voltage Reference Sensor Calibration
Change Language
Last update: 15-11-2023
The reference voltage sensor is a sensor that is able to monitor the output voltage on the ADC connector and also on the External Connector for compatible I2C sensors. The 12bit Smart DAQ utilizes the MCP1525 IC from Microchip, a 2.5V precision voltage reference that uses a combination of an advanced CMOS circuit design and EPROM trimming to provide an initial tolerance of ±1% (max.) and temperature stability of ±50 ppm/°C (max.). In addition to a low quiescent current of 100 µA (max.) at 25°C, this IC offers a clear advantage over the traditional Zener techniques in terms of stability across time and temperature. The output voltage is 2.5V and is specified over the industrial temperature range of -40°C to +85°C.
The output temperature coefficient or voltage drift is a measure of how much the output voltage (Vo) will vary from its initial value with changes in ambient temperature. The value specified in the electrical specifications is measured and equal to:
TC|Vo = (ΔVo/Vn) / (ΔT) ppm/°C
, where TC|Vo is the temperature coefficient, ΔVo is the voltage variation for the temperature interval, ΔT, considered. Vn is the nominal voltage and is equal to 2.5V. As an example, the 12-bit Smart DAQ has a 12-bit ADC resolution. Assuming one needs the temperature-induced error to be less than half the Least significant bit (LSB). For a nominal output of the voltage reference, Vref, the LSB of the 12-bit ADC will be
Vref/ 2^12
. Hence, the total variation of the voltage reference output should be less than
Vref/ 2^13
for the temperature range of -40°C to 85°C, we obtain:
TCVo = [(2.50046-2.49544)/2.50] / (85-(-40)) ppm,/°C
= 0.002008 / 125 = 0.000016064 = 1.6064E-5 ppm/°C
in summary, for the example above and for the 12-bit Smart DAQ ADC, is needed a voltage reference with less than 16.05 ppm/°C.
The output temperature coefficient, or voltage drift, is a measure of how much the reference voltage (Vref) will vary from its initial value with changes in ambient temperature. The 12-Bit Smart DAQ uses a voltage reference from Microchip, the MCP1525 IC, and is able to sense voltage variations of 2.44mV and do temperature compensation according to the voltage-temperature drift curve below.
The OEM firmware code available on this repository has the curve above coded into it. To do temperature compensation uses values from the onboard temperature sensor, located on the LSM3DS6 IC, as input to calculate the compensated reference voltage value. It computes a linear interpolation (see below) between the values above and below the temperature sensed. A table with Voltage-Temperature drift values can be found in this excel workbook extracted from the datasheet provided by the manufacturer.
In scientific programming and embedded sensor systems applications, linear interpolation is often used to estimate a value from a series of discrete data points. The problem is stated and the solution is given as follows:
source Bulldozer00's Blog
The solution assumes that any two points in a set of given data points represent a straight line. Hence, it takes the form of the classic textbook equation for a line, y = b + mx, where b is the y-intercept and m is the slope of the line.
If the set of data points does not represent a linear underlying phenomenon, more sophisticated polynomial interpolation techniques that use additional data points around the point of interest can be utilized to get a more accurate estimate.
The code snippets below give the definition and implementation of a C++ functor class that performs linear interpolation. I chose to use a vector of pairs to represent the set of data points.
/* Calculation */
y = y2 + (x - x2) * ((y3-y2)/(x3-x2));
printf("Interpolated value at %0.3f is %0.3f", xp, yp);
🟢 Fully tested and working
A green circle means the hardware electronics or the programming code was fully tested, each of its functionalities and capabilities. And it can be installed in a vehicle. Keep in mind this does not mean errors won't happen. As in everything related to electronics and software, there are revisions and updates. This open hardware is no different.
💯 Fully tested & working, no improvements necessary - already being sold online
🆓 Fully Open hardware \ source code
🤪 There's better than this. don't use it
🔐 Fully closed hardware \ source code
⚡️ fully tested and working, however, it is a dangerous solution to deploy
🟡 Not tested. Working capability is unknown, it may work or not.
A yellow circle means the hardware electronics or the programming code was not fully tested, each of its functionalities and capabilities. This does not mean it not working, it simply means testing is needed before giving a green circle of approval.
🔴 Fully tested but not working.
A red circle means the hardware electronics or the programming code was fully tested, and found some kind of critical error or fault. This means the electronics or firmware code cannot be used in a vehicle.
⌛ Not started.
The hourglass means the hardware electronics or the programming hasn't started. Most likely because is waiting for the necessary test components needed for reverse engineering and also engineering of the new open solution.
🆕 New updated contents
The new icon means the link next to it was recently updated with new contents
💬 Comments on the Discussion page
The comments icon means there are useful and even new comments on the discussions page of the repository important for what you are seeing or reading.
Join the beta program to test and debug to provide feedback, ideas, modifications, suggestions, and improvements. And in return, write your own article blog or post on social media about it. See participation conditions on the Wiki.
The Beta Participant Agreement is a legal document being executed between you and AeonLabs that outlines the conditions when participating in the Beta Program.
Bug reports and pull requests are welcome on any of AeonLabs repositories. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
- Contributing
Please make sure tests pass before committing, and add new tests for new additions.
You can get in touch with me on my LinkedIn Profile:
You can also follow my GitHub Profile to stay updated about my latest projects:
The PCB design Files I provide here for anyone to use are free. If you like this Smart Device or use it, please consider buying me a cup of coffee, a slice of pizza or a book to help me study, eat and think new PCB design files.
Make a donation on PayPal and get a TAX refund*.
Liked any of my PCB KiCad Designs? Help and Support my open work to all by becoming a GitHub sponsor.
Before proceeding to download any of AeonLabs software solutions for open-source development and/or PCB hardware electronics development make sure you are choosing the right license for your project. See AeonLabs Solutions for Open Hardware & Source Development for more information.