I am having second thoughts about co-processor model. This significantly increases the complexity of the firmware for this design. I haven’t ruled out any options yet. If I can get a good voltage for Vpp without the co-processor, I may decide to go back to the level shifter.
Programmatically controlling Vpp:
I have been thinking about how to make an “adjustable voltage” switching regulator adjustable by the microcontroller. By putting a transistor on the low side of the voltage divider feedback, I believe I can have linear control of the generated voltage controlled by the Sigma-Delta output. I got a basic circuit design from the FAN5331 datasheet. I then replaced the ground side resistor of the feedback voltage divider with an NPN transistor. I came up with the circuit below.
The FAN5331 has a 1.25 volt reference comparator to decide if it needs to generate more voltage or wait. With the Sigma Delta input to r3 at 0 out of 255, the transistor will never turn on and the voltage on the feedback will be above the 1.25V threshold and the regulator will effectively shut down.
With the Sigma delta generator set to 255, it will produce 3.3 volts into R2. The voltage across R2 is 3.3V minus Vbe(approximately 0.7V) or 2.6V. I want my maximum voltage to be 20 volts. That means I want 18.75V dropped across R1. 18.75V / 100K = 187µA. The MMBT3904 has a minimum current gain(hfe) of 40 when Ic is 100µA. 187µA/40 = 4.7µA base current. To get 4.7µA on the base I need R2 to be 2.6V/4.7µA or 555k ohms. 510kohms is a value that is easy to find. As long as the transistor is in spec, I will always be able to get 20 or more volts on Vpp. R3 and C4 filters the Sigma Delta signal into a “Clean” DC voltage.
The minimum voltage from Vpp is Vdd minus D1(approximately 3 volts). The regulator will not increase the voltage until enough current goes Through R1 to raise FB to 1.25 Volts. Starting at 3 volts, that would be (3-1.25)/100K = 17.5µA. The current across R2 would need to be 17.5µA/40 = 0.43µA. 510k times 0.43µA =0.22V Add that to Vbe to get 0.92 volts at C4. To get 0.92 volts at c4 I need 0.92/3.3 = 0.28 Duty Cycle on the sigma Delta. 0.28 x 255 = 71. The minimum Sigma Delta setting to change Vpp will be approximately 71. Variences in Vbe and hfe of the transistor will affect these calculations so I will start with a value of approximately 50 for my first experiments.
All these calculations were done on a calculator keeping the precision that I didn’t show here. This means you may get slightly different results if you use my calculations without bringing the precision forward. Also, silicon variations will make these calculations only general, not specific.
I will prototype this circuit and test it this week. I have never seen this circuit before. I am hoping it works as I expect. The Base-Emitter diode will not be linear very close to minimum current so the lower voltages may not be linear. The switching controller should hold a very consistent voltage as long as the Sigma Delta voltage doesn’t change. This means I should be able to set the voltage once and forget about it. I will have to do some testing after I build the circuit.
If you have seen this circuit before, please say where you’ve seen it. Have you solved a problem like this before? How did you do it? I used a “programmable” switching controller early on in the design but the cost was a little high. Do you like the “programmable” option better?