Home     Contact     Forum     Projects     Experiments     Circuits     Theory     BLOG     PIC Tutorials     Time for Science     RSS     Terms of services     Privacy policy  
   
 Home     Forum     Projects     Experiments     Circuits     Theory     BLOG     PIC Tutorials     Time for Science   

Author Topic: DAC: R2R + PWM  (Read 4684 times)

0 Members and 1 Guest are viewing this topic.

cheerio

  • Sr. Member
  • ****
  • Posts: 306
DAC: R2R + PWM
« on: September 18, 2012, 18:55:08 PM »
I am building a new PSU for my Lab. I try to enhance the DAC resolution with a combination of PWM and a R2R ladder. The LSB is the PWM with a 5BIT resolution. The Bits 1 to 7 are The typical R2R Ladder.
Can you please double check if this would result in a 12Bit DAC?

cheerio

  • Sr. Member
  • ****
  • Posts: 306
Re: DAC: R2R + PWM
« Reply #1 on: September 18, 2012, 19:58:33 PM »
R23 should not be there.

kam

  • Administrator
  • Hero Member
  • *****
  • Posts: 1849
Re: DAC: R2R + PWM
« Reply #2 on: September 18, 2012, 20:12:16 PM »
you answered yourself!
typically, R12 must be equal to R16/2, but 4K7 will work

Sir N

  • Newbie
  • *
  • Posts: 26
Re: DAC: R2R + PWM
« Reply #3 on: June 23, 2013, 07:40:23 AM »
Hi,

I am building a new PSU for my Lab. I try to enhance the DAC resolution with a combination of PWM and a R2R ladder. The LSB is the PWM with a 5BIT resolution. The Bits 1 to 7 are The typical R2R Ladder.
Can you please double check if this would result in a 12Bit DAC?

You probably have your PSU ready by now (or ditched the project), but anyway, here's a couple of things to ponder...

You didn't tell where/how you wanted to introduce the PWM, but consider eg. a 40% duty cycle with only bit 4 high, compared with a 20% duty cycle with only bit 5 high - no difference at all, so how would you enhance anything?
If OTOH, you just PWM the LSb, it should be doable (assuming an 8 bit D/A-C with a precision of 0.012%)


Besides, you really need 2R and R, not 2R and R-6% (which would actually give you negative steps here and there).
You can achieve it by a single value and either using R and R+R or 2R and 2R//2R  (where "+" means "in serial" and "//" means "in parallel").

The precision you need for 1 in 8 bits with R/2R is 1 bit multiplied with 100 (to get a percentage) divided with 2^8 steps (1*100/256) = 0.39%
Using anything with a higher tolerance will give you less than 8 bits of precision and it will thus be futile to "enhance" anything.

Another thing to look out for with R/2R ladders is their impedance contra the output impedances driving them, or that will be another stone in the road to bliss.
Hence, I'd recommend using as high resistor values as noise allows (noise should be kept under +/-1 LSb) and feed the output to an op-amp in the TOhm input impedance class (i.e. most CMOS-amps).

Personally, I'd just buy an IIC/SPI D/A-C with the needed resolution and be done with it, unless it's for the learning experience or similar, as you can't match LASER trimming and the much small area they occupy (relevant for noise) with home cooking.



For anyone wanting to produce their own high precision resistors for R/2R ladders... One of my ongoing projects (on/off) is a tool for such.
I estimate that a steady hand and moderately fair eye-hand coordination will enable even a complete noob to get to 0.1% precision and something like 0.01% or even 0.001% for the more skilled hobbyists. Only thing holding up its release is a bit of Win-API programming and an actual test drive.

Ongoing may be a big word here, as the hardware was done almost a year ago, but it's gonna take some time until I get the PC software done, as my attempts at the API's has been fairly fruitless - perhaps I'll have to switch development to Csomething - the ugliest programming languaqge in the world (IMO).

As and when, I'll need some people for test buildiing, to establish how easy it is to build, compared to skill level etc.
Other instruments/tools will follow - semi-pro quality at pocket money expense (some are done already), but it all comes down to me vs. API's - and the latter is in the winning corner presently :(