On 13th Feb 2013, Sudirman build an enclosure for our DC-DC converter.
Drilling for power connector.
Fitting...
Fastening double sided tape to dampen vibration.
Fixing any minor misalignment.
Tightening the bolts.
End result.
On 15th Feb 2013, I tinkered with modified sine wave inverter design, playing with the popular
TL494.
Built on breadboard.
Yellow and Blue is the output, purple is the sum of both.
I want the running frequency close to 50Hz, spending like two days tweaking components, I can't get it to work lower than 1kHz. I know the
appnote confirmed this, it quotes "
The oscillator is programmable over a range of 1 kHz to 300 kHz.", I just can't help myself to try my luck... :)
On 16th Feb 2013, the next day, demotivated by the specs. of TL494, I decided to give pure square wave inverter a try. It's also a good chance for me to test out the
HCl and H2O2 solution.
Using discarded PCB to test the reaction time.
Cutting PCB layout.
Zoom in.
Toner transfered.
The reaction time is too slow, so...
I heated up the solution by submerging it in boiling water.
We're done...
Holes drilled.
Top view.
Layout compared.
Silkscreen transferred.
Sadly enough, due some careless mistake, after the PCB was done, silkscreen was transferred,when my soldering iron heated up, I just noticed, the layout were mirrored... :(
So, we had to redo it. Here we go again...
On 17th Feb 2013, we redo the PCB again. :)
Changing cutting disk.
Cutting the PCB.
Close up.
Trimming...
Removing oxide layer.
Toner transferring.
Etching.
Accelerating reaction time by heat.
Done drilling.
Test drilled holes.
Applying thermal compound.
Done soldering.
The circuit above is very close to this
circuit. It's
CD4047 based. The modification that I made is the utilization of
TC4429 inverting MOSFET driver. This is to force the FET fully-on and fully-off; avoiding the FET's linear region, reducing power loss, minimizing waste heat.
Voltage output about 1116VDC, as indicated by the red UNI-T multimeter.
We intended to place a voltage display on our inverter (the red 7-segment, just above the multimeter), I formed a x10 voltage divider, but, the internal-impedance of the meter is way too low, thus altering the displayed value; it shows 992VDC in the picture. We had to cancel our plan.
Above, the circuit performance is tested, loaded with 40W light bulb. The oscilloscope shows the output waveform. Notice the high harmonic content, even with filter cap. The output is quite harsh, I can hear the transformer humming, it also gets warm, even without load, maybe caused by eddy-losses, and harsh switching.
On 23rd Feb 2013, the poor efficiency of square wave inverter leads us to modified sine wave design. At first, I thought I just want to use
CD4017 based circuit, like
this, but, inspired by this
webpage, I thought why not just utilize a PIC mcu? :)
Using
PIC10F220, with internal oscillator, I make the program in assembly language, using this
tool for precise timing, pin GP0 and GP1 as the output.
1:
2: ; PIC10F220 Configuration Bit Settings
3:
4: #include "p10F220.inc"
5:
6: ; CONFIG
7: ; __config 0xFFEB
8: __CONFIG _IOSCFS_8MHZ & _MCPU_OFF & _WDTE_OFF & _CP_OFF & _MCLRE_OFF
9:
10: CBLOCK H'10'
11: RAM1
12: RAM2
13: RAM3
14: ENDC
15:
16: ORG H'00'
17: CLRF GPIO
18: COMF GPIO, F
19: MOVLW H'FC'
20: TRIS GPIO
21: CLRF ADCON0
22: BCF OSCCAL, 0
23: MOVLW H'CF'
24: OPTION
25:
26: movlw 0x23 ;turn on delay (2SEC)
27: movwf RAM1
28: movlw 0xB9
29: movwf RAM2
30: movlw 0x09
31: movwf RAM3
32: decfsz RAM1, f
33: goto $+2
34: decfsz RAM2, f
35: goto $+2
36: decfsz RAM3, f
37: goto $-5
38: goto $+1
39: goto $+1
40: goto $+1
41: GOTO START100
42: ;GOTO START62.5
43:
44: START62.5 movlw H'1F' ;DELAY 4MS/2
45: movwf RAM1
46: movlw H'04'
47: movwf RAM2
48: decfsz RAM1, f
49: goto $+2
50: decfsz RAM2, f
51: goto $-3
52: goto $+1
53:
54: BCF GPIO, 0
55:
56: movlw H'3F' ;DELAY 4MS
57: movwf RAM1
58: movlw H'07'
59: movwf RAM2
60: decfsz RAM1, f
61: goto $+2
62: decfsz RAM2, f
63: goto $-3
64: goto $+1
65:
66: BSF GPIO, 0
67:
68: movlw H'1F'
69: movwf RAM1
70: movlw H'04'
71: movwf RAM2
72: decfsz RAM1, f
73: goto $+2
74: decfsz RAM2, f
75: goto $-3
76: goto $+1
77:
78: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79:
80: movlw H'1F' ;DELAY 4MS/2
81: movwf RAM1
82: movlw H'04'
83: movwf RAM2
84: decfsz RAM1, f
85: goto $+2
86: decfsz RAM2, f
87: goto $-3
88: goto $+1
89:
90: BCF GPIO, 1
91:
92: movlw H'3F' ;DELAY 4MS
93: movwf RAM1
94: movlw H'07'
95: movwf RAM2
96: decfsz RAM1, f
97: goto $+2
98: decfsz RAM2, f
99: goto $-3
100: goto $+1
101:
102: BSF GPIO, 1
103:
104: movlw H'1F' ;DELAY 4MS/2, MINUS ONE CYCLE
105: movwf RAM1
106: movlw H'04'
107: movwf RAM2
108: decfsz RAM1, f
109: goto $+2
110: decfsz RAM2, f
111: goto $-3
112: GOTO START62.5
113:
114: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
115: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
116:
117: START100 movlw 0xF3 ;DELAY 2.5MS/2
118: movwf RAM1
119: movlw 0x02
120: movwf RAM2
121: decfsz RAM1, f
122: goto $+2
123: decfsz RAM2, f
124: goto $-3
125: goto $+1
126:
127: BCF GPIO, 0
128:
129: movlw 0xE7 ;DELAY 2.5MS
130: movwf RAM1
131: movlw 0x04
132: movwf RAM2
133: decfsz RAM1, f
134: goto $+2
135: decfsz RAM2, f
136: goto $-3
137: goto $+1
138:
139: BSF GPIO, 0
140:
141: movlw 0xF3 ;DELAY 2.5MS/2
142: movwf RAM1
143: movlw 0x02
144: movwf RAM2
145: decfsz RAM1, f
146: goto $+2
147: decfsz RAM2, f
148: goto $-3
149: goto $+1
150:
151: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
152:
153: movlw 0xF3 ;DELAY 2.5MS/2
154: movwf RAM1
155: movlw 0x02
156: movwf RAM2
157: decfsz RAM1, f
158: goto $+2
159: decfsz RAM2, f
160: goto $-3
161: goto $+1
162:
163: BCF GPIO, 1
164:
165: movlw 0xE7 ;DELAY 2.5MS
166: movwf RAM1
167: movlw 0x04
168: movwf RAM2
169: decfsz RAM1, f
170: goto $+2
171: decfsz RAM2, f
172: goto $-3
173: goto $+1
174:
175: BSF GPIO, 1
176:
177: movlw 0xF3 ;DELAY 2.5MS/2, MINUS ONE CYCLE
178: movwf RAM1
179: movlw 0x02
180: movwf RAM2
181: decfsz RAM1, f
182: goto $+2
183: decfsz RAM2, f
184: goto $-3
185: GOTO START100
186:
187: END
The code mostly consumed by delay functions, I might make it simpler, maybe that's for the next time. :)
PCB layout done in ExpressPCB.
Done soldering.
Rev1 and Rev2 compared side by side. Notice the smaller heatsink used, because we're targetting high efficiency, with minimal heat loss.
This is the original intended output, but...
Since we're using inverting driver, the signal also need to be inverted.
This is the rise time of the driver. About 31ns. The output from the PIC was about 4ns, which's far better, but I have no logic-level MOSFET come in handy at that time.
Sudirman working on it.
Making steps.
Getting closer...
Ready to test.
Since the output voltage is too high, I solder two 25W 240V light bulb in series to compensate for it.
Test set-up. The calculator (right side) shows the efficiency of 68%. Maybe because I push the transformer to work at 100Hz (it was designed for 50Hz).
We need the high frequency because 100Hz translate to 6000RPM engine speed.
Notice the ripple in the oscilloscope, it was caused by battery charger being connected.
Here's the output ripple, about 8Vpp.
The inverter seems happy, nothing seems hot to touch, no more humming, the idle current was 200mA at 12V, which is better than before (1.2A).
The hottest component is the transformer, which is rated at 12VA each, I'm loading it with close to 35W, so the efficiency losses could be caused by copper resistance in the windings.
The MOSFETs was barely warm to touch. I guess I'm better off with higher frequency SMPS transformer, but, it's too expensive for us.
Higher frequency means smaller transformer, lower turn which also means lower copper loss, which would translate to better efficiency.