D to A Converter
Problem This project was an assignment from my Circuit II class (EECE 356). The assignment was given as follows: Design a D/A converter with the following required characteristics: - V
_{out}ranges from +10V to -10V (continuous range analog signal) - V
_{out}= +10V when digital register content = "00000000" - V
_{out}= -10V when digital register content = "11111111" - V
_{out}= 0V when digital register content = "10000000"
You are allowed to use only inverting summing op-amps and/or regular inverting op-amp circuits. Provide complete design including circuit diagram showing all stages, resistors, equations and calculations. Graph input data and varying analog input. Design This converter will have to take the digital word that is given by the parallel digital register and create an analog voltage level corresponding to that digital 8 bit word. Arbitrarily, the design of the converter will look something like: The specifications require that the word "00000000" = 10V, "10000000" = 0V, and "11111111" = -10V. We can use these three voltage levels to adjust our resistance values accordingly. Choosing Resistance Values The resistance values of each input will have to be different, as each bit does not carry the same significance. Since we know that the output voltage of the inverting summing op-amp conforms to the equation: We can see that the more significant the bit (such as b7) the less the resistance value for that input will have to be. This allows the more significant bits to have a larger effect on the output than the less significant bits. We will arbitrarily choose our first resistor value to be 500 ohms and double the resistance value of each resistor as we go down from b7 since the significance of each input is only half of the one preceding it. This gives us the following values: - R7 = 500 ohms
- R6 = 1k ohms
- R5 = 2k ohms
- R4 = 4k ohms
- R3 = 8k ohms
- R2 = 16k ohms
- R1 = 32k ohms
- R0 = 64k ohms
- RB = ? (Bias Resistance)
- VB = ? (Bias Voltage Level)
- RF = 1k ohms (Feedback resistance)
Solving for R _{B} (Bias Resistance) and V_{B} (Bias Voltage)To effectively shift the output, we will need to bias the output with a bias input with a constant voltage and solve for its resistance value. From the equation, when all of the inputs are 0, the only voltage level will be the bias input:
Since the requirement is for all zeros to give a voltage of +10V, it will be convenient to make this
voltage (V
To get a resistor ratio = 1, R
Solving this for R Testing Our Values
Now that we have chosen our values and calculated RB, we can now test them. Since we have forced
the "00000000" bit word to be +10V, we need not examine it. Also, we have chosen a value for
R Now that our values seem to be correct, we can finish our design and figure out how to generate this -10V voltage level within the restraints of the design specification. Putting the Design Together Generating -10V Since we have a -15V input and a 5V input, it would be easy to implement a difference amplifier and setting the resistances equal to each other so it performs a simple subtraction. However, since we are not allowed the difference amplifier in our design, we must find another solution.
Using a summing amplifier, we can adjust the voltage ratios between R
Letting R1 = 90k, R2 = 10k, and R Using this with the previous design and values, we can now implement the design and test. Testing The result of our design is as follows with the resistor values from above: The following inputs produce the following outputs with the design pictured above:
Obviously this is only a subset of the input values. Taking in all of the values and plotting them against the analog output we get: If we continue to count up and down, we will see the analog output vary accordingly: Possible Improvements One possible improvement that could be made is adding one inverting op-amp to give the user access to the same exact output but inverted. Both outputs could be available. On the inverted output, the digital word "11111111" would now produce +10V and the "00000000" input would produce the -10V output. This could be done by: Now that our values seem to be correct, we can finish our design and figure out how to generate this -10V voltage level within the restraints of the design specification. PSPICE Analysis This analysis was done after the design. Looking back, I can see that we changed the resistor values. I am not sure why we did, but what is important is that their relative relationship is the same. Three runs were done. The inputs were "00000000", "11111111", and "10000000" repsectively. Run 1: Run 2: Run 3: |