element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Test & Tools
  • Technologies
  • More
Test & Tools
Documents Programmable Electronic Load - ADC and DAC BoosterPack test
  • Blog
  • Forum
  • Documents
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Test & Tools to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Engagement
  • Author Author: Jan Cumps
  • Date Created: 24 Nov 2017 11:12 AM Date Created
  • Last Updated Last Updated: 2 Dec 2017 10:04 AM
  • Views 4156 views
  • Likes 7 likes
  • Comments 35 comments
Related
Recommended

Programmable Electronic Load - ADC and DAC BoosterPack test

WIP

 

This blog documents the characteristics of the DAC/ADC BoosterPack of the electronic load that Robert Peter Oakes, jc2048 and Jan Cumps are designing.

We have the same DAC/ADC BoosterPacks so we can compare the measurements of each ADC and DAC channel. Check the main document for anything related to hardware and firmware.image

 

Test Setup

 

Peter has created a GUI that we can use to shoot SCPI commands. We can control the DACs and read the ADCs.

Measurements are performed with and without the power driver BoosterPack installed. We'll use 5V to power the DACs and ADCs in both situations.

 

image P1 and P2 on the bottom of the DAC/ADC BoosterPack have to be open. Else you'll inject 5V onto the LaunchPad 3V3 rail and you'll damage components.

 

It's not critical if you switch on the power supply before or after you connect the LaunchPad to your computer. The circuits are isolated.

All measurements use P3.10 as GND reference and P3.1 as reference voltage.

 

image

 

Setup without the power driver BoosterPack:

Mount the DAC/ADC BoosterPack on the LaunchPad.

Use a +5V power supply. It should be a decent one, current is approximately 5 mA.

Connect image with DAC/ADC BoosterPack P4.2  and image with P4.1.

 

Setup with the power driver BoosterPack:

Mount the DAC/ADC BoosterPack on the LaunchPad and the Power Driver BoosterPack on top of that.

On the Power Driver BoosterPack, bridge pins P2.4, P2.5 and P2.6 to tie both opamp inputs of opamp 3D to ground.

Use a +12V power supply. It should be a decent one, current is approximately 50 mA.

Connect image  with Power Driver BoosterPack P1.1 image  and with P1.2.

 

image

 

Measurements

 

In the table, the first column shows what we're measuring, the second column the SCPI command to execute with Peter's GUI.

The next columns are the measurements for Peter, Jon or Jan with and without the Power Driver BoosterPack.

The last column is for comments. We can indicate odds, errors, learnings.

 

JonPeterJan
Data PointSCPIWithoutWithWithoutWithWithoutWithMeasurement method
SupplyN/A4.989 V11.88 VDMM
DAC/ADC V+N/A4.989 V5.035 VDMM
VREFN/A2.046 V2.046 VDMM
ADC A GNDDEVE:ADC1?2SCPI output
ADC A VREFDEVE:ADC1?10918SCPI output
ADC ADEVE:ADC1?1138SCPI output
ADC B GNDDEVE:ADC2?12SCPI output
ADC B VREFDEVE:ADC2?10920SCPI output
ADC BDEVE:ADC2?1
SCPI output
ADC C GNDDEVE:ADC3?22SCPI output
ADC C VREFDEVE:ADC3?1092010919SCPI output
ADC CDEVE:ADC3?26868SCPI output
ADC D GNDDEVE:ADC4?83SCPI output
ADC D VREFDEVE:ADC4?1091910919SCPI output
DAC A 0DEVE:DAC1 00.000 V0.001 VDMM
DAC A maxDEVE:DAC1 655352.040 V2.040 VDMM
DAC B 0DEVE:DAC2 00.005 V0.005 VDMM
DAC B maxDEVE:DAC2 655352.046 V2.046 VDMM
DAC C 0DEVE:DAC3 00.000 V0.000 VDMM
DAC C maxDEVE:DAC3 655352.039 V V2.039 VDMM
DAC D 0DEVE:DAC4 00.000 V0.000 VDMM
DAC D maxDEVE:DAC4 655352.039 V2.039 VDMM

 

 

To resolve

With the power driver installed, ADC C and D act strange (probably also A and B, but I didn't inject a voltage in them because they are connected to opamp pins).

In particular strange for ADC D, because that one isn't routed. Strange.

I will try to decrease the frequency of the sample speed and the i²c speed to see if it's related to that ...

 

Follow up: the cause is that OPAMP 3C injects -0.8V into ADC A. All measurements are off when that happens. As soon as I force ADC A positive (by tying it to ground or a positive voltage) all measurements are correct.

 

image

 

We have a separate document to analyse the summing node at zero.

  • metrology
  • boosterpack
  • msp432
  • ti-rtos
  • launchpad
  • laboratory
  • instrument
  • Share
  • History
  • More
  • Cancel
  • Sign in to reply

Top Comments

  • shabaz
    shabaz over 7 years ago +3
    Hi Jan, I was wondering, what are the expected values, is it reading a value representing 1.602V when it should read a value representing 2.048V? I'm wondering if it could be due to conversion time (i…
  • Jan Cumps
    Jan Cumps over 7 years ago in reply to shabaz +3
    yes, Shabaz, I have a controlled value of 2.040 V. Once I mount my additional driver board (self-designed so many things can be wrong ) the ADC says it’s 1.6 V. I checked signals with my scope to see if…
  • jc2048
    jc2048 over 5 years ago in reply to Andrew J +3
    Andrew J , have you read the blog I did when building Jan and Peter's load? That has some material on the low end of the DAC. Long story short, I adapted the analogue stuff after the DAC so the output…
  • Andrew J
    Andrew J over 5 years ago in reply to jc2048

    Thanks for reminding me though Jon, it's still useful to know.  From the post I added below, you can see that I have to find a way to dial out a 20mV (probably less on a PCB) offset error and I will want to do that on the control board, not leave it to a downstream consumer.

     

    I did pick on the Microchip part because it was good value for money and I've never used one before to know what to look for.  Right now, I have a lot more appreciation for what the gain/offset/INL/DNL specs in the datasheet mean. 

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Andrew J
    Andrew J over 5 years ago

    Test data results.  I've only measured the first 30 input codes in the graph but I will do more.  Having added the DC/DC Isolated converter to power Side A of the i2c and digital isolators (the Arduino input side) it has impacted the DAC output quite a lot, even though that is powered from a REF5040 (4.096) supply which I have measured at 4.096V.  That is used as the reference point for generating the DAC output.  My first conclusion is that noise is getting on to Side B ground from the DC/DC convertor although that is powered from a regulated 12V supply.

     

    I need to have a look at that but this is all on a breadboard right now so I'm only looking at (a) making sure my circuit works; and (b) working out an approach for tuning the DAC and ADC readings so that I can do it for real once I have a PCB.

     

    Nonetheless, I'm showing here an Ideal, Actual and Compensated DAC output with the derivation for the compensation calculation.  It's looking a lot more linear than I first thought and it has the same look as the graphs Jan and Jon produced!  It's also worth mentioning that the readings fluctuated by +/- 500uV around the value captured (e.g. at 0x000 input, I was reading anything from 0.0203 to 0.01998) but what I logged was the most stable - i.e. the reading that stayed steady the longest:

     

    EDIT: I've just noticed that the DAC input code runs from 1 to 31 - I should have edited these labels to read 0 to 30 so please read it on that basis.

     

    image

    image

     

    I don't intend to post more updates here unless Jan requests it as this is only related to the extent it's about DAC output.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jc2048
    jc2048 over 5 years ago in reply to Andrew J

    OK. Thought I'd point them out just in case.

     

    I'm not an analogue designer, so can't really guide you much as to the good ways to do this sort of thing. I got involved in the load to give Jan a little bit of help with sorting out some of the op amp stuff [which I know in theory, even if not so well in practice]. I then got interested in it from a control systems point of view [it's a PID controller - I was intending to have a go at 'tuning' it better, but haven't gotten around to it].

     

    I ought to pick it up again and see if I can do a bit more with it. I stalled at the 'building it into a box with a dirty great heatsink on top' stage which I need to do to run it at any real power. As it is at the moment, it's all rather fragile, with separate boards lashed together and difficult to work with.

     

    The Microchip part I used with the FPGA was 'good value for money' and would be perfectly suitable for many uses, but obviously has its limitations.

     

    The TI device brings out the -ve end of the resistor chain, so it doesn't have to be connected to zero volts. I would think if you lifted it up a bit with a false earth, the output op amp doesn't then need to get right to the rail and you then avoid at least that limitation, though at the expense of much more external complexity. Whether that's the 'right' way to do it, I've got no idea.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Andrew J
    Andrew J over 5 years ago in reply to jc2048

    Yes, I read through the whole set of material, more than once, over the last year - I found it really interesting although I'd be a liar if I said I understood half of it. 

     

    I'd originally started following Peter's series on power supply but that sort of faded away and instead led into the work that Jan carried on with the DC load.  I hadn't made the connection between the offset of the DAC I'm using (a Microchip one as it happens) and what you and Jan were/are seeing here.  The datasheet implies that the offset measured with an input code of 0x000 applies across the range and can be removed by software.  How, it doesn't say, and I'm not wholly convinced because it's not possible to feed a -ve input code to it which would be needed to drop 7mV down to 0.  That then leaves the gain which can be measured and applied at different points in the output and factored out.  Overall, that's the equation that Jan is using:  ActualInput = (Input * GainCompensation) - Offset Compensation.  That still leaves INL and DNL errors.  The compensation values on that formula I think will change through the range of outputs because I don't think they are linear - it's hard to tell of course, because the INL and DNL errors skew things.  Also, I haven't had time yet to do any comprehensive measurements to get a better feel for it.

     

    Overall accuracy requirements will impact as well I guess: if a 1V output should genuinely be 1.000000V then that's going to be a lot more work than allowing for 0.999nnnV to 1.001nnnV.  I haven't made that decision yet as I'm still happily designing and trying out my own version.  In any case, from what I've investigated so far, it would seem that DACs will have errors in their outputs and that will have to be dealt with as part of downstream design as appropriate for need.  Something that you have done by the sounds of it.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jc2048
    jc2048 over 5 years ago in reply to Andrew J

    Andrew J , have you read the blog I did when building Jan and Peter's load?  That has some material on the low end of the DAC. Long story short, I adapted the analogue stuff after the DAC so the output didn't need to get to zero.

     

    Programmable Load Build

     

    There's also something along similar lines for a Microchip DAC in the following blog. I didn't do anything about the low end there because I didn't need to, but it illustrates what the internal op amp buffering the DAC output is doing and might be of interest:

     

    FPGA: Making Waves

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Andrew J
    Andrew J over 5 years ago in reply to Jan Cumps

    Tthat would be great - I’m sure I could learn a lot from you.  What I’ll do is write up what I’m doing and ping it over.  I’m using a 4Duino - spare one from when building my power supply - as the mcu.  I’m at the point of having the circuit breadboarded and a number of test sketches to drive it.  The dc/dc isolator has arrived so I will be trying that out tomorrow as it’s the biggest issue I have right now.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 5 years ago in reply to Andrew J
    I was just thinking about a control board at the moment, but it is a similar approach

    Yes, this is not load specific.

     

    I tried with just two values (multiplier and additive), but it wasn't accurate enough (so why I thought a lookup table in EEPROM would be needed) and I had read that an OpAmp approach may help but I haven't investigated that at all.  The problem is the offset and the gain are not linear across the output range so a formulaic approach won't be enough.  Can't ignore the impact of INL and DNL on the output.

    I experienced that too, but I don't want to spend time on this if I don't get feedback. I got no animo on this subject here on e14. I didn't have a burning need so I stopped where the blog stopped.

     

    If you're going down this path, I'd like to join and share/compare experiences. I have the hardware and firmware to try out some approaches with you.

     

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Andrew J
    Andrew J over 5 years ago in reply to Jan Cumps

    I tried with just two values (multiplier and additive), but it wasn't accurate enough (so why I thought a lookup table in EEPROM would be needed) and I had read that an OpAmp approach may help but I haven't investigated that at all.  The problem is the offset and the gain are not linear across the output range so a formulaic approach won't be enough.  Can't ignore the impact of INL and DNL on the output.  I have made a start on the test you mention, but only just so it will take a little while to get some results.  Once I have a set of results I can see if there's something within the data that allows me to derive a formula from it but that's highly unlikely - the datasheet states that the gain error only really kicks in at the higher range so it may be possible to do something simpler below that range. 

     

    I've not built/designed a DC load for this, I was just thinking about a control board at the moment, but it is a similar approach to the one you and Peter took.  I am mainly doing it to have a play with a DAC and ADC and the problems that arise.  I guess there are only so many ways you can hook a DAC and ADC up, but I found what you did very interesting.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 5 years ago in reply to Andrew J

    Can you run a test that shows the output of the DAC vs the input value, for a range

    • starting from DAC input == 0
    • to a point where the output is showing a linear rise, then some additional poins?

     

    image

     

    In my case, the DAC did not react for a number of input values (until the offset was reached),

    then started to work linear once that point was reached.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Jan Cumps
    Jan Cumps over 5 years ago in reply to Andrew J

    I's a rough read, because it's a series of comments and tests, but here we're trying to address the offset: https://www.element14.com/community/docs/DOC-88254/l/programmable-electronic-load-analyse-the-summing-node-zero-point#co…

     

    I made a PCB to test it. It fixed the DAC offset but never fixed the issues of the eLoad at the near-0 point...

    imageimage

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube