100K resistors in place of 20K resistors in this DAC??? HELP PLEASE!!!!

Could I swap the 20K resistors for 100K resistors without affecting the output value in any way?

I don't think that's going to work.

Sounds like you have 10k resistors and 100k resistors but no 20k's? You could:

a) put two 10k's in series to get your 20k's b) Use 100k's instead of 20k's and 50k's (100k's in parallel) instead of 10k's.

etc.

-- The Ruggeduino: compatible with Arduino UNO, 24V operation, all I/O's fused and protected

only own 30*(10Ks) and 30*(100Ks) also own have 20*(10Ks) also own have 100*(510ohms) also own have 200*(470ohms) also own have 200*(100ohms) also own have 100*(180ohms)

I (think) I have the parts to make, at max, a 10-bit DAC. However my project requires, at minimum, a 12-bit DAC, with a 16-bit DAC being the best possibility... My project also needs to be consistent, in the sense that the way the resistors are arranged need to be uniform

The circuit requires the resistors to be in the ratio of R & 2R thus 10k and 20k. And if you carry it out to higher precision the resistors need to be more precise.

Its impossible to do that using standart resistor, you need resistors with tolerances of parts per milion, not 5% ones, getting 8 bits is as good as it can get using un-matched components, and even that is difficult.

i'm not talking tolerances just that the way it is set up is uniform... ie. that each of the 20k and/or 10k values are replaced with the same setup per replaced resistor

that each of the 20k and/or 10k values are replaced with the same setup per replaced resistor

I don't understand that can you rephrase it.

While the resistance tolerance and absolute value is not so important what is important is that all the resistors have as close to the same value as possible. If this is only 1% then you can only get 1% from the whole thing. As 8 bits gives you 256 levels this is about 0.4% or better you need to match the parts to.

@mike

at this point it no longer matters, the only things that matter now are:

  • That it works similarly to the schematic above
  • It has a 12-bit to 16-bit resolution
  • it uses only the resistor that i listed that i own(see below)

own 30*(10Ks) also own 30*(100Ks) also own 20*(10Ks) also own 100*(510ohms) also own 200*(470ohms) also own 200*(100ohms) also own 100*(180ohms)

also can i control a 74HC595 using SPI

It has a 12-bit to 16-bit resolution

Sorry you will not get anywhere close to this.

why not the schematic is 8bit res?

So how is it going to give you 12 bit resolution? I said you will struggle to get 8 bit resolution.

i ment that i did not have enough 10k resistors. need 38 minimum, have < 30.
i just want to know if i can use other values than 10k and 20k like 1k and 510ohms

I would use the 470R for the R and two of them in series for the 2R.

ok sound good. also will the 595 work with SPI?

will the 595 work with SPI?

Yes but you will have to pulse the load line yourself after.

Grumpy_Mike:

will the 595 work with SPI?

Yes but you will have to pulse the load line yourself after.

i don't understand

Grumpy_Mike: I would use the 470R for the R and two of them in series for the 2R.

That's going to run into issues with the non-zero output impedance of Arduino pins (datasheet suggests this is of order of 40ohms), and also the unknown impedance variation between pins. Certainly there's no way 12 bit precision can be achieved unless the output impedance is less than 0.1ohm!!

I'd suggest using the 10k resistors instead - if there's enough for about 10 bits that's more precision than can be achieved anyway and at least 10k is going to dwarf the Arduino output pin impedance.

i don’t understand

The 595 shift register has a clock, data and load line. The SPI transfer takes care of the clock and data but you need to pulse the line that loads in the latches that are on the end of the shift register once SPI has filled the shift register.

ok thanks