Hello Alberto and all. First post here.
Congratulations for your excellent and long standing project.
The 25 volt enigma also happened to me but it was easy to trace it to the DC/DC converter.
Photo 1 shows normal operation of the converter with a 12V output.
Lower trace is Q4 base drive (PIC pin 13 CPP1) with a 2V/div setting. Upper trace is Q4 collector with a 5V/div setting. Timebase is 2 uS per division.
Q4 is a BC547C and the inductor is 100 uH
However photo 2 shows the DC/DC converter running wild at approximately 500 KHz without any base drive. It happened for no apparent reason but latter I realized that disconnecting and reconnecting the probe from Q4 collector or even flipping the :1 :10 attenuator switch of the probe was enough to set the converter in a wild state.
The upper trace swings from -7.5V below GND to 25V above GND, hence the 25 Volt output.
Photo 3 shows Q4 collector with a 680 uH inductor. I could not reproduce the problem.
Photo 4 shows the same oscillation with a 330 uH inductor. The problem returned, only this time with a rogue oscillation at about 330 KHz.
In photo 5 I replaced Q4 with a 2N3904 (lower gain) but the problem remained, only this time with a 450 KHz oscillation.
I realized that ticking and un-ticking the VPPU option repeatedly I could sometimes restore normal operation of the converter (R24 extra loading ?), so I placed an additional 10K resistor on the converter output, in parallel with C1 and C8. This solved the problem and also reduced ripple in the converter output. Apparently the combined load of R1 + R2 and R24 is not enough to keep the DCDC converter under control.
The funny thing is the absence of base drive when VPP is too high. I tried to limit the 8,8 Volt on the feedback pin 2 AN0 with a 4v7 zener just to make sure it wasn't upsetting the 18F2550 A/D normal operation but it didn’t work out.
I am now back to the BC547C and 100uH and with the extra 10K resistor the OP operation is stable and reliable.
Magician ?. No, not really. Just extremely curious about why things behave the way they do, not the way I expect them to.
I'm using power inductors with a ferrite core recovered from old equipment. Its quite possible that moulded inductors, being more resistive and lossy don't cause this kind of problem.
I'm glad you 'un-trashed' your project. Its quite frustrating when such a simple hardware gives you problems.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I used your KiCad version 2.0 but made some changes to accommodate as many smd components as possible. I hate pcb drilling.
I also increased the solder pads size to 2 mm , backed off the GND cooper fill a little and removed all the isolated cooper islands. That made it easier to produce the pcb with the press and peel method.
The layout is pretty much the same as your original design.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I did some more experiments in the DCDC converter.
Removed the 10K and replaced the power inductor with a moulded 100uH inductor. Occasionally I get the same self-oscillation but its a lot more difficult to start it and a lot more easy to recover from it.
There is however a strange artefact that it isn't so strange when you think about it.
The R1/R2 voltage divider applies 5 Volt to the AN0 feedback pin when VPP is at 14.1 Volt, so, setting the slider above 14.1 V doesn't make any difference to the DA converter.
The 18F2550 can only 'see' 14.1 V (3FFF) while it tries to increase VPP above 14.1 V.
The 18F2550 ramps up the pulse width in an attempt to increase VPP the until it reaches the 80% hard limit and the normal waveform gets completely distorted.
Sometimes it enters self-oscillation (VPP rises to 25V and base drive disappears) but reducing the slider voltage setting restores control of the system.
As a matter of fact, starting at approximately 13.5 Volt, voltage waveforms at Q4 collector starts to get severely distorted.
Different transistors and inductors may yield different results.
During my tests, I placed an additional 10K resistor in the 20 pin socket, making the total load when VPPU is enabled a little less than 5K. The DCDC performs brilliantly.
I'm tempted to reduce R1/R2 to 2K2 and 1K2 and see what happens but overall the 10K seems to be keeping the converter under control.
I would like to think that the layout of my PCB is responsible for the self-oscillation but apparently others have encountered the same problem.
P.S. When VPP reaches 25V AN0 pin 2 should 'see' 8.8 Volt but R1 and internal diodes limit this to about 5.6 Volt. No harm done to the PIC!!!.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
You can certainly reduce R1-R2 (keeping the same ratio) although the load will limit the maximum voltage at some point. I was only able to sink <1mA before the max volage dropped to less than 12V.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I needed a programmer for 25q64. With the latest version of opgui, I was unable to write the chip. With opgui_0.9.1 - 0 errors. The recording lasted 1 hour and 17 minutes.
I have repaired my satellite receiver.
Sorry, if I am not writing correctly. I write in Russian via google translator.
Hi! Thanks you for this project!
Reading the device is possible only after "Reconnecting"
Regulator up and running after 63ms VPP=12,2V
Reading code ... completed
Reading CONFIG area ... completed
Reading EEPROM ... completed
ID0: 0x3FFF ID1: 0x3FFF
ID2: 0x3FFF ID3: 0x3FFF
DevID: 0x1068
16F628A rev8
Configuration word: 0x1E00
If I press "Read device" again, I see this:
Reading code ... completed
Reading CONFIG area ... completed
Reading EEPROM ... completed
ID0: 0x0000 ID1: 0x0000
ID2: 0x0000 ID3: 0x0000
DevID: 0x0000
DevREV: 0x0000
Unknown device
Configuration word: 0x000
Sometimes I see this message:
regulator voltage too high
The VPP voltage was 25 V. I threw the old device into the trash. ))
I made a new device. Works great!
Alberto, excellent job!
Strange that you had such high voltage; must have been a short somewhere.
Good that you solved the problem.
Hello Alberto and all. First post here.
Congratulations for your excellent and long standing project.
The 25 volt enigma also happened to me but it was easy to trace it to the DC/DC converter.
Photo 1 shows normal operation of the converter with a 12V output.
Lower trace is Q4 base drive (PIC pin 13 CPP1) with a 2V/div setting. Upper trace is Q4 collector with a 5V/div setting. Timebase is 2 uS per division.
Q4 is a BC547C and the inductor is 100 uH
However photo 2 shows the DC/DC converter running wild at approximately 500 KHz without any base drive. It happened for no apparent reason but latter I realized that disconnecting and reconnecting the probe from Q4 collector or even flipping the :1 :10 attenuator switch of the probe was enough to set the converter in a wild state.
The upper trace swings from -7.5V below GND to 25V above GND, hence the 25 Volt output.
Photo 3 shows Q4 collector with a 680 uH inductor. I could not reproduce the problem.
Photo 4 shows the same oscillation with a 330 uH inductor. The problem returned, only this time with a rogue oscillation at about 330 KHz.
In photo 5 I replaced Q4 with a 2N3904 (lower gain) but the problem remained, only this time with a 450 KHz oscillation.
I realized that ticking and un-ticking the VPPU option repeatedly I could sometimes restore normal operation of the converter (R24 extra loading ?), so I placed an additional 10K resistor on the converter output, in parallel with C1 and C8. This solved the problem and also reduced ripple in the converter output. Apparently the combined load of R1 + R2 and R24 is not enough to keep the DCDC converter under control.
The funny thing is the absence of base drive when VPP is too high. I tried to limit the 8,8 Volt on the feedback pin 2 AN0 with a 4v7 zener just to make sure it wasn't upsetting the 18F2550 A/D normal operation but it didn’t work out.
I am now back to the BC547C and 100uH and with the extra 10K resistor the OP operation is stable and reliable.
I took a "bad" programmer from the trash and
put an extra 10K resistor.
Now I have two great programmers! ))
Gus Bernard, you are a magician!
Magician ?. No, not really. Just extremely curious about why things behave the way they do, not the way I expect them to.
I'm using power inductors with a ferrite core recovered from old equipment. Its quite possible that moulded inductors, being more resistive and lossy don't cause this kind of problem.
I'm glad you 'un-trashed' your project. Its quite frustrating when such a simple hardware gives you problems.
So it looks like some kind of self-oscillation.
Did you use a pcb or some other mounting method?
I used your KiCad version 2.0 but made some changes to accommodate as many smd components as possible. I hate pcb drilling.
I also increased the solder pads size to 2 mm , backed off the GND cooper fill a little and removed all the isolated cooper islands. That made it easier to produce the pcb with the press and peel method.
The layout is pretty much the same as your original design.
I did some more experiments in the DCDC converter.
Removed the 10K and replaced the power inductor with a moulded 100uH inductor. Occasionally I get the same self-oscillation but its a lot more difficult to start it and a lot more easy to recover from it.
There is however a strange artefact that it isn't so strange when you think about it.
The R1/R2 voltage divider applies 5 Volt to the AN0 feedback pin when VPP is at 14.1 Volt, so, setting the slider above 14.1 V doesn't make any difference to the DA converter.
The 18F2550 can only 'see' 14.1 V (3FFF) while it tries to increase VPP above 14.1 V.
The 18F2550 ramps up the pulse width in an attempt to increase VPP the until it reaches the 80% hard limit and the normal waveform gets completely distorted.
Sometimes it enters self-oscillation (VPP rises to 25V and base drive disappears) but reducing the slider voltage setting restores control of the system.
As a matter of fact, starting at approximately 13.5 Volt, voltage waveforms at Q4 collector starts to get severely distorted.
Different transistors and inductors may yield different results.
During my tests, I placed an additional 10K resistor in the 20 pin socket, making the total load when VPPU is enabled a little less than 5K. The DCDC performs brilliantly.
I'm tempted to reduce R1/R2 to 2K2 and 1K2 and see what happens but overall the 10K seems to be keeping the converter under control.
I would like to think that the layout of my PCB is responsible for the self-oscillation but apparently others have encountered the same problem.
P.S. When VPP reaches 25V AN0 pin 2 should 'see' 8.8 Volt but R1 and internal diodes limit this to about 5.6 Volt. No harm done to the PIC!!!.
You can certainly reduce R1-R2 (keeping the same ratio) although the load will limit the maximum voltage at some point. I was only able to sink <1mA before the max volage dropped to less than 12V.
I needed a programmer for 25q64. With the latest version of opgui, I was unable to write the chip. With opgui_0.9.1 - 0 errors. The recording lasted 1 hour and 17 minutes.
I have repaired my satellite receiver.
Sorry, if I am not writing correctly. I write in Russian via google translator.
Please open a new discussion for this request.
Also, a write log woud be very useful.