The voltage difference reported by the multimeter and ADC is not due to the ADC. It is the slight difference between the internal voltage reference of your multimeter and that of REF2. If REF2 can be trimmed, you should be able to reduce the small difference even further.
24 bit. Fun to play around with. But likely overkill for the application in question. Also, it's a bit slow at max resolution, which can be problematic when dealing with fast transient loads on the PSU.
Fun for sure... In a PSU application or even general measurements of Volts and Amps, 16bit may be better and faster if it is accurate, and stable as this would give max count of 65535 , or 32768 if your using sign (+ or -), this would equate to a 60,000 count or 30000 count meter allowing for a little bit of range to detect over or under range, adding a PGA would improve the versatility. But, measuring transients and surges can be difficult with with out additional hardware or more expensive ADC, for instance a PEAK detector, or a very fast ADC to track the actual transient rather than simply telling you its peak value
hello idk why I don't get any reading, I followed your instructions but I didn't put any capacitors since there's nothing available, and I also hooked up a pot, with its wiper connected to AIN0, and VIN as 3.3V. When I ran the code it returns 0.00 mv even when I try to vary the pot. What seems to be wrong with this? do I need to have all the capacitors? cause I double checked my connections already and I think I got it right and also I don't see the TX led of my arduino blinking, only the RX, should it be like this or not? thanks in advance for your reply
I have a question so here goes: I have an animatronic show. Similar to Chuck E cheese. it is programmed in analog and converted to digital. It is 24 v dc. What i want to know is can the RA Gray system somehow to hacked to be able to find or program individual character movements. For example, if i wanted to program new shows, would there be any way to do it without having the original computer they used back in 1982? (MC 10) The left channel plays the music and the right channel goes through the control system and reads the tones. I have actually listened to the tones through the speakers and it kinda sounds like the old telephone line data modems. So my question ultimately is can the control system be hacked?? Can the current show tones be checked to see what the amplitude is? Thanks!
Great stuff. Thank you. Do you use solder paste? It normally goes on with a stencil. If you are determined to do it without, put it on the pins. It would be much easier for you to just drag solder this stuff.
+klystron44 That would depend on the current process. If the board is only single sided for reflow then glue is not typically needed, if the board is loaded on both sides then the side reflowed first will have glue in order to prevent the devices falling off when upside down during the second reflow stage so a pick and place machine would be setup to reflect this choice
Not always. Depend on the technology what they are using, and depend on the part size and weight. But I see the trend, they try to go a way from gluing. I hate the glued parts, because time to time is pain in the ass to replace parts with tweezer soldering iron.
Really nice video! Which kind of solder paste did you use and where could I get it, for instance? There're a lot of different products, but I don't want to start a 'try and error' procedure. Your paste looks very interesting... Thanks, Robert.
could u pls tell me where i had done mistake when i had given refp0 as 5v and refn0 is grounded im getting serial monitor output for channel1as 5v when i had given AIN0 as 3v im facing problems during external references pls help me thanku.,
////////////////////////////////////////////////////////////////////////////////////////// // // Demo code for the ADS1220 24-bit ADC breakout board // // Author: Ashwin Whitchurch // Copyright (c) 2018 ProtoCentral // // This example sequentially reads all 4 channels in continuous conversion mode // // Arduino connections: // // |ADS1220 pin label| Pin Function |Arduino Connection| // |-----------------|:--------------------:|-----------------:| // | DRDY | Data ready Output pin| D6 | // | MISO | Slave Out | D12 | // | MOSI | Slave In | D11 | // | SCLK | Serial Clock | D13 | // | CS | Chip Select | D7 | // | DVDD | Digital VDD | +5V | // | DGND | Digital Gnd | Gnd | // | AN0-AN3 | Analog Input | Analog Input | // | AVDD | Analog VDD | - | // | AGND | Analog Gnd | - | // // This software is licensed under the MIT License(opensource.org/licenses/MIT). // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT // NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // // For information on how to use, visit github.com/Protocentral/Protocentral_ADS1220 // ///////////////////////////////////////////////////////////////////////////////////////// #include "Protocentral_ADS1220.h" #include #define PGA 1 // Programmable Gain = 1 //#define VREF 2.048 // Internal reference of 2.048V #define VREF_EX_DED 5.000 #define VFSR VREF_EX_DED/PGA //#define VFSR VREF/PGA #define FULL_SCALE (((long int)1
Were was this int he video, ? Because this is all built onto a breadboard there will be much more noise and instability that you would experience in a correctly designed and built PCB
the code I used dor the DAC is posted here www.element14.com/community/groups/test-and-measurement/blog/2015/02/17/the-modular-bench-power-supply-arduino-uno-and-precision-tesadc-dac for the ADC, github.com/Protocentral/Protocentral_ADS1220 I cant find my local copies right now but I will be re-doing them in the near future with all the current versions of software
The video is more about showing you how to use the ADC DAC products. The PSU is used as an example. Sometimes a design will also use a DAC way better than the realized accuracy , with suitable filters and stable VREF the noise can be minimized but the benefit can be in the ability to have much better resolution rather than accuracy. also it will allow better software calibration through adjustment of those additional bits.
+Skwisgar2322 Correct As with all things like this, Accuracy and Resolution are not the same thing but often confused with one another, Accuracy being how close the reading or setting is to the desired or actual value. Resolution being the smallest change in value that is detected, this may not be accurate but can still be useful if temperature or other drift is not impacting the reading over the shorter time scale, for instance it can indicate a trend or fluctuation between two values. The absolute accuracy may be out but the fluctuations may still be relatively accurate as a relative measurement. Its a whole topic on its own :)
@@Telectronics repeatability and accuracy without calibration i would say has a lot to do with the voltage reference but this is just the beginning..... If the voltage reference is very stable, does not drift with temperature (Or not much) and you know its absolute value (Does not really matter what it is, 2.5, 4, 4.8, 4.9, 5.1 etc as long as you know what it is) then this will go along way to ensuring the repeatable and accurate measurement of your input. The number of effective bits (24bit ADC does not necessarily have an ENB of 24 bits, it may only be as high as say 18 bit) but it will give an idea of resolution and allow decimation to get more accuracy and repeatability. The ADC also has its own drift and stability concerns as well, good track placement and guarding may be necessary to maximize your resolution and repeatability along with noise reduction. Remember Resolution and accuracy are not the same and as far as accuracy goes, it is often better to be repeatable than accurate as you can correct the accuracy in software, to some extent you can also correct drift due to temperature too if you have the characteristics of the device. you cant easily correct for non repeatability and noise and expect to keep the same resolution, in fact noise at the 24th bit can be very significant measuring 5V at 24bits means the lsb is only about 300nV, noise can easily be way more
@@TheBreadboardca Thank you for your detailed answer. I always cherish your videos because they are explained very well ! BTW I could not find DACs over 16Bit so I have taken that as maximum possible value yet. I have started to design my own electronic load and wanted to clearify that. Well, then it should not be overkill to shield the complete ADC/DAC unit too. The parts I have choosen are ADS1256 , DAC8532 and MAX6250ACSA should be reasonable then even without calibration. Just give it a look it has pretty good specs. as I find.
hello great video by the way, I'm planning on using one for my thesis buy I will be using 3 channels on the ADC, have you by any chance written a complete library for this adc that supports multi channel? I don't really know much about SPI and I'm trying so hard to learn all these in such a small amount of time. This video helped me a lot already thanks
The library for the ADS1220 was here github.com/Protocentral/Protocentral_ADS1220 there was no library for the 8574 at the time, but the code I used can be found here www.element14.com/community/groups/test-and-measurement/blog/2015/02/17/the-modular-bench-power-supply-arduino-uno-and-precision-tesadc-dac
thanks but how would I modify this if I wanna read from 3 channels of the ADC? since you said the library is coded for only reading 1 channel (if i'm not mistaken)
To bad its a $10 chip! I really like this part, but its too expensive for me, and way more precision than I need. Is there a cheaper 16-bit equivalent?
Michael Molter I know, but it is 24Bit after all, the 12 Bit is way less though and for most projects is more than enough, 24Bit resolution presents so many issues to get reliable and accurate / Stable readings, almost impossible on a bread board. I use it in my tutorials to demonstrate how to talk to it and compare to other ADCs. Even for my power supply project I will be going no more than perhaps 16Bit but may be only to 12Bit (To Be Determined)
Thank you very much for this video! I am new with electronics (as my hobby)! I appreciate that you take your time to explain all the basics. Could you link me your github so I can take a look at your libraries? Thank you once again!
technically, yes it would be possible but you would have to select very stable and accurate parts. also the wiring and shielding of the parts would be needed to prevent interference from outside signals. The ADC has resolution to measure down into the nano volts but it would be noisy on a breadboard and not accurate enough for consistent readings.
you could but you better be good at positioning them prior to soldering :), this is usually done if your populating double sided boards and then re-flowing them
The voltage difference reported by the multimeter and ADC is not due to the ADC. It is the slight difference between the internal voltage reference of your multimeter and that of REF2. If REF2 can be trimmed, you should be able to reduce the small difference even further.
clear explanation. 🔥
24 bit. Fun to play around with. But likely overkill for the application in question. Also, it's a bit slow at max resolution, which can be problematic when dealing with fast transient loads on the PSU.
Fun for sure... In a PSU application or even general measurements of Volts and Amps, 16bit may be better and faster if it is accurate, and stable as this would give max count of 65535 , or 32768 if your using sign (+ or -), this would equate to a 60,000 count or 30000 count meter allowing for a little bit of range to detect over or under range, adding a PGA would improve the versatility.
But, measuring transients and surges can be difficult with with out additional hardware or more expensive ADC, for instance a PEAK detector, or a very fast ADC to track the actual transient rather than simply telling you its peak value
Peter, Thank you for this. Have you gotten around to writing your own library for the ADS1220? Can you share it? Thanks
Could you share your library for ads1220? which can support multi channel conversion?
hello idk why I don't get any reading, I followed your instructions but I didn't put any capacitors since there's nothing available, and I also hooked up a pot, with its wiper connected to AIN0, and VIN as 3.3V. When I ran the code it returns 0.00 mv even when I try to vary the pot. What seems to be wrong with this? do I need to have all the capacitors? cause I double checked my connections already and I think I got it right and also I don't see the TX led of my arduino blinking, only the RX, should it be like this or not? thanks in advance for your reply
can u please provide the circuit connections u made as tx led of arduino is blinking continuously but im getting 0mv when i run the code
I have a question so here goes: I have an animatronic show. Similar to
Chuck E cheese. it is programmed in analog and converted to digital. It
is 24 v dc. What i want to know is can the RA Gray system somehow to
hacked to be able to find or program individual character movements. For
example, if i wanted to program new shows, would there be any way to do
it without having the original computer they used back in 1982? (MC 10)
The left channel plays the music and the right channel goes through the
control system and reads the tones. I have actually listened to the
tones through the speakers and it kinda sounds like the old telephone
line data modems. So my question ultimately is can the control system be
hacked?? Can the current show tones be checked to see what the
amplitude is? Thanks!
I would think an oscilloscope would help here to understand what is going on
any suggestion why my adc is a bit noisy? in your video it goes really stable but my adc varies as much as pero millivolt.
Thanks for the upload and lots of details!
Great stuff. Thank you. Do you use solder paste? It normally goes on with a stencil. If you are determined to do it without, put it on the pins. It would be much easier for you to just drag solder this stuff.
Thanks for sharing
Do pick and place machines still use a blob of soft glue on the back of the chip before soldering?
+klystron44 That would depend on the current process. If the board is only single sided for reflow then glue is not typically needed, if the board is loaded on both sides then the side reflowed first will have glue in order to prevent the devices falling off when upside down during the second reflow stage so a pick and place machine would be setup to reflect this choice
Not always. Depend on the technology what they are using, and depend on the part size and weight. But I see the trend, they try to go a way from gluing. I hate the glued parts, because time to time is pain in the ass to replace parts with tweezer soldering iron.
Really nice video! Which kind of solder paste did you use and where could I get it, for instance? There're a lot of different products, but I don't want to start a 'try and error' procedure. Your paste looks very interesting... Thanks, Robert.
could u pls tell me where i had done mistake when i had given refp0 as 5v and refn0 is grounded im getting serial monitor output for channel1as 5v when i had given AIN0 as 3v im facing problems during external references pls help me thanku.,
//////////////////////////////////////////////////////////////////////////////////////////
//
// Demo code for the ADS1220 24-bit ADC breakout board
//
// Author: Ashwin Whitchurch
// Copyright (c) 2018 ProtoCentral
//
// This example sequentially reads all 4 channels in continuous conversion mode
//
// Arduino connections:
//
// |ADS1220 pin label| Pin Function |Arduino Connection|
// |-----------------|:--------------------:|-----------------:|
// | DRDY | Data ready Output pin| D6 |
// | MISO | Slave Out | D12 |
// | MOSI | Slave In | D11 |
// | SCLK | Serial Clock | D13 |
// | CS | Chip Select | D7 |
// | DVDD | Digital VDD | +5V |
// | DGND | Digital Gnd | Gnd |
// | AN0-AN3 | Analog Input | Analog Input |
// | AVDD | Analog VDD | - |
// | AGND | Analog Gnd | - |
//
// This software is licensed under the MIT License(opensource.org/licenses/MIT).
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
// NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// For information on how to use, visit github.com/Protocentral/Protocentral_ADS1220
//
/////////////////////////////////////////////////////////////////////////////////////////
#include "Protocentral_ADS1220.h"
#include
#define PGA 1 // Programmable Gain = 1
//#define VREF 2.048 // Internal reference of 2.048V
#define VREF_EX_DED 5.000
#define VFSR VREF_EX_DED/PGA
//#define VFSR VREF/PGA
#define FULL_SCALE (((long int)1
can u please give me circuit diagram of arduino to ads1220 module
it's 1000mV right, that's 1V, seems like 3, maybe 4 digits, 5th digit seems to be unstable, not sure if because of the reference, or the input
Were was this int he video, ?
Because this is all built onto a breadboard there will be much more noise and instability that you would experience in a correctly designed and built PCB
Kudos to you man. I was hoping if you can share your GitHub library code for this ADC?
the code I used dor the DAC is posted here www.element14.com/community/groups/test-and-measurement/blog/2015/02/17/the-modular-bench-power-supply-arduino-uno-and-precision-tesadc-dac
for the ADC, github.com/Protocentral/Protocentral_ADS1220
I cant find my local copies right now but I will be re-doing them in the near future with all the current versions of software
Superb A2D.
Excellent video!
Michael Kaufman thanks for the positive feedback
Isnt a 24-bit ADC an overkill for a PSU? There is no way those last bits can handle the noise.
The video is more about showing you how to use the ADC DAC products. The PSU is used as an example.
Sometimes a design will also use a DAC way better than the realized accuracy , with suitable filters and stable VREF the noise can be minimized but the benefit can be in the ability to have much better resolution rather than accuracy. also it will allow better software calibration through adjustment of those additional bits.
the float for vout doesnt seem right. shouldnt that be double precision if its representing a 24 bit value? chur.
amazing video though thank you
the ADC is more precise, not necessarily more accurate.
+Skwisgar2322 Correct
As with all things like this, Accuracy and Resolution are not the same thing but often confused with one another, Accuracy being how close the reading or setting is to the desired or actual value. Resolution being the smallest change in value that is detected, this may not be accurate but can still be useful if temperature or other drift is not impacting the reading over the shorter time scale, for instance it can indicate a trend or fluctuation between two values. The absolute accuracy may be out but the fluctuations may still be relatively accurate as a relative measurement.
Its a whole topic on its own :)
@@TheBreadboardca The accuracy is hugely dependent on the voltage reference right ?
@@Telectronics repeatability and accuracy without calibration i would say has a lot to do with the voltage reference but this is just the beginning.....
If the voltage reference is very stable, does not drift with temperature (Or not much) and you know its absolute value (Does not really matter what it is, 2.5, 4, 4.8, 4.9, 5.1 etc as long as you know what it is) then this will go along way to ensuring the repeatable and accurate measurement of your input. The number of effective bits (24bit ADC does not necessarily have an ENB of 24 bits, it may only be as high as say 18 bit) but it will give an idea of resolution and allow decimation to get more accuracy and repeatability.
The ADC also has its own drift and stability concerns as well, good track placement and guarding may be necessary to maximize your resolution and repeatability along with noise reduction.
Remember Resolution and accuracy are not the same and as far as accuracy goes, it is often better to be repeatable than accurate as you can correct the accuracy in software, to some extent you can also correct drift due to temperature too if you have the characteristics of the device. you cant easily correct for non repeatability and noise and expect to keep the same resolution, in fact noise at the 24th bit can be very significant measuring 5V at 24bits means the lsb is only about 300nV, noise can easily be way more
@@TheBreadboardca Thank you for your detailed answer. I always cherish your videos because they are explained very well ! BTW I could not find DACs over 16Bit so I have taken that as maximum possible value yet. I have started to design my own electronic load and wanted to clearify that. Well, then it should not be overkill to shield the complete ADC/DAC unit too. The parts I have choosen are ADS1256 , DAC8532 and MAX6250ACSA should be reasonable then even without calibration. Just give it a look it has pretty good specs. as I find.
hello great video by the way, I'm planning on using one for my thesis buy I will be using 3 channels on the ADC, have you by any chance written a complete library for this adc that supports multi channel? I don't really know much about SPI and I'm trying so hard to learn all these in such a small amount of time. This video helped me a lot already thanks
The library for the ADS1220 was here github.com/Protocentral/Protocentral_ADS1220
there was no library for the 8574 at the time, but the code I used can be found here www.element14.com/community/groups/test-and-measurement/blog/2015/02/17/the-modular-bench-power-supply-arduino-uno-and-precision-tesadc-dac
thanks but how would I modify this if I wanna read from 3 channels of the ADC? since you said the library is coded for only reading 1 channel (if i'm not mistaken)
hello can you please provide the schematic for your set up? this would help me a lot, thanks
nevermind i got it working already!
Thankyou for sharing your work !
No problem, thanks for the feedback, I enjoy sharing what I have learned over the years
To bad its a $10 chip! I really like this part, but its too expensive for me, and way more precision than I need. Is there a cheaper 16-bit equivalent?
Michael Molter I was mentioning the 24-bit ADC
Michael Molter I know, but it is 24Bit after all, the 12 Bit is way less though and for most projects is more than enough, 24Bit resolution presents so many issues to get reliable and accurate / Stable readings, almost impossible on a bread board. I use it in my tutorials to demonstrate how to talk to it and compare to other ADCs. Even for my power supply project I will be going no more than perhaps 16Bit but may be only to 12Bit (To Be Determined)
There are cheaper 16 bit ADC - you can get a ADS1115 from ebay, for about $3 and it comes soldered onto a board.
Thank you very much for this video! I am new with electronics (as my hobby)! I appreciate that you take your time to explain all the basics. Could you link me your github so I can take a look at your libraries? Thank you once again!
github.com/thebreadboard
Perfect video! Thanks a lot :)
Is it possible to measure nanovolts?
technically, yes it would be possible but you would have to select very stable and accurate parts. also the wiring and shielding of the parts would be needed to prevent interference from outside signals. The ADC has resolution to measure down into the nano volts but it would be noisy on a breadboard and not accurate enough for consistent readings.
Blurry picture without focus. - set focus to infinite
You can glue your chips.
you could but you better be good at positioning them prior to soldering :), this is usually done if your populating double sided boards and then re-flowing them
dude, use vscode.
I do now :)