![]() |
![]() |
![]() |
|
Homebrew Equipment A place to show, design and discuss the weird and wonderful electronic creations from the hands of individual members. |
![]() |
|
Thread Tools |
![]() |
#1 |
Retired Dormant Member
Join Date: Jul 2005
Location: West Yorkshire, UK.
Posts: 1,700
|
![]()
Hi,
I've known about the Willem Programmer for several years but never got around to buying or building one. Something I liked was the availability of circuit diagrams and (I think) the source code for the software. It appeared to be an 'open' design; I could build one from scratch, buy a PCB and assemble it or buy a complete one. It's pretty simple, mostly comprising circuitry to interface devices to a PC parallel printer port, most of the work is then done in software. The Willem Programmer can handle a lot more devices than my trusty old Stag PP41/41M100; higher-capacity 32-pin DIL and PLCC EPROMS, several PICs, a few types of serial E2PROM; it looked like it'd come in handy. It can be a bit slow with larger devices, configuring it involves fiddling with switches and jumpers, but it's perfectly acceptable for 'hobbyist' or perhaps 'light commercial' use. Above all, it's cheap. I ordered one from a supplier in China for about £20 including P&P. I figured that as an 'open' design it didn't really matter where I bought it, I could get software and a diagram off the 'net and if there was a problem with it I'd just fix/modify it myself. It's not exactly complicated. While I waited for it to arrive, I searched the 'net...
Eventually, a squashed box arrived containing a programmer marked "2010 PCB 50", a parallel cable, a USB cable and a mini CD-R. (I think it's a copy of one previously available from Sivava, specifically the older PCB50 version; the current version being PCB50B.) The CD-R contained Windows software up to version 98D11 including versions for PCB3B, a (mostly comprehensible) manual and a circuit diagram for PCB3B. But for £20 I'm not complaining. About the only thing which bothered me was the lack of a circuit diagram given I assumed I'd find one on the 'net or at least get one with the programmer. Guess what I did about that..? ![]() Kat Last edited by Kat Manton; 18th Aug 2011 at 1:39 am. Reason: Replaced photo |
![]() |
![]() |
#2 |
Retired Dormant Member
Join Date: Jul 2005
Location: West Yorkshire, UK.
Posts: 1,700
|
![]()
But first, software...
It came with Windows software but I don't have anything with Windows on it. No problem, I have Wine! (hic) (If you aren't using or intending to use Linux, feel free to skip this post.) EZoFlash - Willem forum - How to use the Willem programmer from Linux provided most of the information but a few notes won't go amiss. First, check the PC BIOS settings. The parallel port needs to be set up for 'ECP/EPP'. Next, ensure Linux detects it correctly, 'dmesg | grep parport' should produce the line: Code:
parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA] EPP/ECP requires PARPORT_1284=yDirect access to the parallel port via Wine requires 'ppdev' compiled in or loaded as a module. To find out if you've already got 'ppdev', check for a '/dev/parport' device node: Code:
# ls -l /dev/parport* crw-rw---- 1 root lp 99, 0 Aug 4 08:22 /dev/parport0 CONFIG_PPDEV=m (or y; I usually compile drivers as modules.)Ensure the user you log in as is a member of the 'lp' group so you have permission to access the port. Install the software: Code:
$ wine setup_98D11.exe Configure Wine to mimic Windows 98 for the Willem software:Run 'regedit': Add 'HKEY_CURRENT_USER\Software\Wine\VDM\ppdev'The software should now run: 'Help -> Test Hardware' should produce the message 'Hardware present' in the status bar at the bottom:And that's it. Simples. ![]() Kat |
![]() |
![]() |
#3 | |
Retired Dormant Member
Join Date: Jul 2005
Location: West Yorkshire, UK.
Posts: 1,700
|
![]() Quote:
![]() It's obviously an evolution of the PCB3B version; even the component reference numbers match up (though with different prefixes which I've changed again, using either the default prefixes Eagle uses or my own preferences.) I based my diagram on the PCB3B diagram and the modified diagram on Converting Willem Programmer PCB3b to PCB4.5, but re-arranged it and changed the names of some signals so it makes more sense (to me at least.) The main changes from PCB3B (which appear to be aimed at making it faster):
I think the diagram is now fairly accurate. I'm not entirely sure about the 'FWH/LPC' socket and associated circuitry; I think I have a track-break on my board, but I'm not sure I'll ever need to re-program an Intel 'Firmware Hub' anyway. Kat |
|
![]() |
![]() |
#4 |
Octode
Join Date: May 2009
Location: Linkoping, Sweden
Posts: 1,455
|
![]()
A warning for those of you using Windows and Willem software!
You should be very very wary when using the software that is delivered on CD with these Willem programmers, myself and atleast two other people have found viruses and trojans on those CDs. ebay had a real problem with people selling these programmers and I was contacted by them to confirm my negative feedback of one seller who shipped infected CDs as other buyers had contacted eBay about this. Also several places on the internet had the same infected software for download at the same time, so it was not just the eBay sellers who tried to spread these viruses and trojans. The infections were all targeting bank information, according to Symantec which I use. Be sure to update your virus protection software before you install any Willem software. I hope this piece of OT information will help someone to not get infected. otherwise I am very happy with the Willem programmer as it did just what i wanted it to do in a perfect way, program new eproms for my LeCroy digital oscilloscope.
__________________
Martin, Sweden |
![]() |
![]() |
#5 |
Retired Dormant Member
Join Date: Jul 2005
Location: West Yorkshire, UK.
Posts: 1,700
|
![]()
Modifications!
I can't leave anything alone. The VPP supply on this thing is, frankly, rubbish. It won't produce the 50mA (or more) required by older UV erasable EPROMs. Regulation is pretty lousy and there's a fair amount of ripple too. "Everything should be made as simple as possible, but not simpler." - Albert Einstein (probably paraphrased by Roger Sessions.)Logically, it follows that if something doesn't work properly, it is too simple and needs to be made more complex! Thus I'm proud to present my candidate for the prestigious Overcomplicated PSU of the Year Award, 2011 ![]() Summarising, I've tweaked the original step-up converter a bit and nailed a linear regulator on the end. The output voltage is 10 x the voltage applied to the 'ADJ_VPP' input (so 1.25V produces 12.5V, 2.5V produces 25V etc.) The step-up converter tracks the output voltage, maintaining about 1.25V across the pass transistor. The linear regulator is a 'quasi-LDO' type, which will work with this small voltage differential. Notes: I haven't built it yet. I've played around with it (and tortured it) in LTSpice. It behaves nicely now so I'm going to drag myself away from LTSpice and build the thing for real (then torture it some more, of course.)It isn't as simple as it was, but it works (or should work) a lot better for being a bit more complicated. I have a feeling I'll find other uses for derivatives of this, too. Okay, go on; rip it to shreds and tell me to stick to software ![]() Kat |
![]() |
![]() |
#6 |
Hexode
Join Date: Jul 2009
Location: Mablethorpe, Lincolnshire, UK.
Posts: 286
|
![]()
Excellent work, Kat. I bought one of these a couple of years ago with the sole purpose of programming 27c010 EPROMs for my BBC Master OS replacement project. My old faithful Beeb programmer could only handle up to 27512s. It would successfully blow one in every three or four chips and I always meant to get around to finding out why. You have saved me some head scratching. Thanks.
Mark. |
![]() |
![]() |
#7 |
Retired Dormant Member
Join Date: Jul 2005
Location: West Yorkshire, UK.
Posts: 1,700
|
![]()
Hi Mark,
You might not need to go to quite the same lengths as I'm going to. There isn't much space on my programmer for a physically larger inductor, so I was already leaning towards rebuilding the VPP supply on another board. Doing that would mean I could easily accommodate some extra circuitry. In the first instance, you could try Luciano's modifications; see Converting Willem Programmer PCB3b to PCB4.5, the section 'Improving converter DC-DC'. As Luciano points out, the major problem is that tiny little 100uH bobbin inductor, it saturates at too low a current. Before I start ripping bits off my programmer I'm going to lash up some circuitry to test the VPP supply. I think my findings will be the same as Luciano's, though. I found his page before my programmer arrived so haven't bothered trying to program the 27C1001 (27C010 equiv.) and larger devices I got it for; I just don't think it'll work! There was a version of the Willem programmer (4.1) which addressed the VPP supply problem by ditching the step-up converter and using an LM317 linear regulator. Of course, that means the programmer then has to be powered from a PSU producing a higher voltage than VPP is set to. The PCB50 version is developed from 3.0, not 4.1 as one might expect. So the 'PCB50' inherits the VPP supply problems from the 3.0 (and some other problems which I'll address later in this thread.) I wanted to retain the step-up converter, so I can still power the programmer with a 9V or 12V wall-wart, but gain a more robust VPP supply closer to that of the 4.1 version. Okay, now I guess I should stop waffling, build the new VPP supply and see if reality agrees with the LTSpice simulations ![]() Kat |
![]() |
![]() |
#8 |
Retired Dormant Member
Join Date: Jul 2005
Location: West Yorkshire, UK.
Posts: 1,700
|
![]()
A Bit of Testing
I powered the programmer from a bench supply set to 9V rather than a wall-wart so I could monitor supply current. I set the VPP supply to 12.6V (off-load, as per the manual.) Then I stuck a 510 ohm resistor in the ZIF socket, between pin 16 (Gnd) and pin 1 (Vpp) and hung a 'scope and a DMM across it. Turning Vpp on (via the 'Test H/W' panel in the software), the voltage dropped by 0.1V. The supply was very noisy, featuring 100mV positive-going spikes and ramps and nasty 600mV negative-going spikes. After less than a minute, the waveform changed, the voltage started falling and I could smell something. The MC34063A and the 100uH inductor were quite hot and I burnt my finger on the 7805! The current reading on the bench supply was over 300mA (and climbing slowly) when I switched off before any magic smoke escaped. 12.6V across 510 ohm is 25mA. 25mA appears in the "typical" column for Vpp current in several EPROM datasheets I checked. As expected, the VPP supply is rubbish and this programmer is currently quite incapable of programming older EPROMs. Kat Last edited by Kat Manton; 26th Aug 2011 at 1:27 pm. Reason: Errors |
![]() |
![]() |
#9 |
Heptode
Join Date: Jan 2004
Location: Blyth, Northumberland, UK.
Posts: 858
|
![]()
You've just mentioned one of my old favourites, the 34063.
It should be noted that they are generally not good at boost applications, however they should be fine in this position. I have found in practice that there is a MASSIVE variation in brands of this IC, I've made boost converters using generic chinese versions and the smoke was very eager to escape, however using an ST34063 (ST Micro's) or a KA34063 (Fairchild Semi) the circuit performed just fine. These things are the basis of almost every in-car charger since the early 2000's, so are reliable technology. My in car charger was stripped and I fitted a inductor which didn't saturate as soon as you were drawing ANY current. Have a look at this datasheet, http://www.intusoft.com/onsemipdfs/AN920-D.pdf Its the 'Good' app note for that IC and explains quite a lot (you don't need to go into the maths), page 12 shows a ripple reduction technique which i've used successfully in the past. Since i've not seen the programmer schematic, make sure that the short circuit/saturation current resistor (Rsc between pins 6-7) is actually fitted, this stops things blowing up but is frequently omitted for cheapness. Hope this helps. Dave. |
![]() |
![]() |
#10 |
Octode
Join Date: May 2009
Location: Linkoping, Sweden
Posts: 1,455
|
![]()
Here is a good calculator for the MC34063 that I have used a few times: http://dics.voicecontrol.ro/tutorials/mc34063/ but I always check the calculations myself and sometimes end up with other component values depending on what I have available at home.
The MC34063a has never failed me so something must be wrong with the wiring or components to have it overheat like you describe. Does it overheta without the resistor in the ZIF-socket? If so it might be something else that is the cause for the overheating.
__________________
Martin, Sweden |
![]() |
![]() |
#11 | |||||||
Retired Dormant Member
Join Date: Jul 2005
Location: West Yorkshire, UK.
Posts: 1,700
|
![]()
Hi Dave,
I think it might turn into one of mine. In a past life I was once paid to spend a fortnight building a small pile of dead components and making smoke. Devices like this make designing switching converters almost trivial, that and being able to simulate them in LTSpice. I think more of my circuits are going to run from a single 9V or 12V DC supply if I can generate extra rails this easily! Quote:
Hence my idea of following it with a linear regulator; now, the output of the 34063 circuit drops a bit when the load is connected, but not enough for the linear reg. to drop out. Quote:
![]() Quote:
Quote:
The ripple reduction technique you mentioned formed the inspiration for my idea for having the step-up converter track the output of the linear regulator. Imagine the zener in Fig. 13 is variable and set to the output voltage of the linear regulator. That's effectively what the first op-amp section does, forcing the 34063 to track the output voltage, 1.25V above it. As the differential amplifier has unity gain, the ripple voltage is presented in full to the comparator input of the 34063 (as it is when a zener is used), rather than being divided down as it would be with the basic potential divider. So I get reduced ripple and the voltage remains 1.25V above the output voltage, enough for the linear regulator to work. Am I allowed to call that bit 'elegant'? I'm rather pleased with how it worked out. Quote:
Hi Martin, Quote:
Quote:
The 100uH inductor is a tiny bobbin type, way too small, you can make it out in the photo attached to post #1 in between the 8-pin DIL 34063 and the TO220 7805, upper right. It's saturating with only a 25mA load; my test in post #8 was just proving Luciano was right. I found one post in another forum describing how the inductor started smoking when someone tried to program an older '27C' EPROM. It's a known problem and is partly why I redesigned the VPP supply; there's no room on the programmer PCB for a bigger inductor so I thought I'd build the whole thing on another board, that meant there's room for more bits, one thing led to another... I've got wire and I've got suitable toroid cores, I just need to put the two together if I can stop procrastinating... Kat |
|||||||
![]() |
![]() |
#12 |
Heptode
Join Date: Jan 2004
Location: Blyth, Northumberland, UK.
Posts: 858
|
![]()
I don't honestly know why they skimp on the inductors, in all of the car chargers I've seen they seem to be about half the 'magnetic capacity' (for want of the correct terminology) that they need to be, so something interesting begins to happen with the 34063.
You find that the overcurrent circuit starts kicking in and the whole thing starts to oscillate at a higher frequency than the internal oscillator of the 34063. So, technically its still working as a Buck converter but sadly in a mode it was never meant to. You find that because of the high current and high frequency, the switching losses in the 34063 start to mount up to something much more than they should, and more than the device was intended to handle. The result, thermal shutdown and/or smoke/flames. The result of the latter is sometimes the car battery voltage briefly appearing on the 5v USB connector of the charger ![]() I've fitted a 5.3v Zener (and a much better inductor) on the output of my in-car charger, this is intended to protect the phone should something like this happen. Also sometimes I've found they fit oversized fuses in them, 1.25A is a common one. bearing in mind the efficiency of these ICs (even the cheap ones), you see that Max output (5v 0.5A = 2.5w) doesn't equate to Max input (12v 1.25A = 15w). I've downsized the fuses in mine. Anyway, back to YOUR circuit (I get carried away sometimes).. Yes, I've looked at your design and the only thing which would concern me is that you might get some instability due to the Pi filter prior to the V-Reg transistors. The 34063 is expecting to see an instant change at the output when it increases the PWM, even though your inductor is small you will probably still get some lag, during which time the 34063 will kick the voltage much higher. The overall result may be a slight 'ring' on changing loads/voltages (I've had this) or it could be a complete "PSU-throwing-a-wobbler" type of scenario. You wouldn't know until you built it in real life I think. Something to consider maybe, perhaps you could split R5 into 2x 50k (47k) resistors, then add a small (size to be determined in spice/real life) capacitor from the centre point to the top of C3? This (although inelegant, its simple) would provide AC compensation to your DC feedback loop, hopefully making it track a little quicker without causing instability. Its been a while since I designed a switching PSU so I hope you can bear with me ![]() Also, get those toroids wound, I don't know why, but there's something satisfying about doing so! (also they're less magnetically noisy which your MW sets will thank you for). Do you have an inductance meter? I built the DIY one using a PIC which was doing the rounds some time ago, it works brilliantly. Dave. |
![]() |
![]() |
#13 |
Octode
Join Date: May 2009
Location: Linkoping, Sweden
Posts: 1,455
|
![]()
To lessen the strain on the MC34063 you could use an external mosfet driven by two transistors in a push/pull design, or atleast one transistor in a pulldown design. This is usually used for higher voltages than here but it releaves the MC34063 of handling the power, which is transferred to the external mosfet. This is often used in Nixie power supplies.
You should also keep the output capacitor as low as possible so the ic will not overcompensate and get a sluggish behaviour since the voltage does not drop fast enough for proper regulation. Many designs also use an extra choke at the output, with a capacitor after that, to smoothen the voltage, this way the ic can regulate the power more as it wishes but the choke and capacitor does the smoothing that you want and the circuit does not become as sluggish as before in its regulation. I think the calculator above shows that smoothing technique.
__________________
Martin, Sweden |
![]() |
![]() |
#14 |
Retired Dormant Member
Join Date: Jul 2005
Location: West Yorkshire, UK.
Posts: 1,700
|
![]()
Hi,
Martin, you suggest a couple of things I already included (low-ish value output capacitor, extra filter); did you miss the diagram I attached to post #5? I'm not too concerned about regulation anyway as the linear regulator handles that better than the 34063 alone can. I don't think additional transistors are necessary, it's designed for 100 mA maximum but in practice is unlikely to ever need to produce more than 50 mA. As simulated, it delivers 100 mA at 12.5 V without any problems, but at 25 V will just about manage 75 mA, which I think is acceptable. Dave, I've taken the feedback from before the filter, theoretically to avoid the problems you mention. The datasheet for the device shows an optional filter for all three basic circuit examples, without any changes to the feedback. So unless I'm missing something (always a possibility), it should be okay. Kat |
![]() |
![]() |
#15 |
Octode
Join Date: May 2009
Location: Linkoping, Sweden
Posts: 1,455
|
![]()
Sorry but I can't read the PDF file, it only ends up with a text version of it being shown on my screen, I'll see if it works by saving it to a file before viewing it.
If you can't get it to work as you want I have used the MC34063 with an external mosfet to produce the highest voltage that I need and then used an LM317 which uses transistors to program the voltages I want plus sometimes a series mosfet after the LM317 to turn on/off the voltage. That way I do not have to control the voltage from the MC34063 at all letting it run at highest possible efficiency. This is possibly some more components than your design but I have used it many times and it works well. By using one of the transistors that controls the voltage and set it to default "on" you can ensure that the LM317 always outputs the lowest voltage possible at startup (1.25V if you do not use a negative bias voltage to get it down to 0V). This is maybe more control and features than you need but it has served me well even with voltage regulators like the LR8N3G up to 400V output voltage. Maybe this is what your schematic shows, as I can't look at it I do not know. Programming the LM317 can be found here: http://www.coolcircuit.com/circuit/p...ply/index.html Some design examples for the MC34063 from Michael Moorrees can be found here: https://skydrive.live.com/?cid=F9DB3...6&sc=documents
__________________
Martin, Sweden |
![]() |
![]() |
#16 | ||
Retired Dormant Member
Join Date: Jul 2005
Location: West Yorkshire, UK.
Posts: 1,700
|
![]() Quote:
I draw diagrams in schematic capture software which uses vector graphics. PDF supports vector graphics, so it's the natural format to use. Large and complex diagrams can be zoomed to resolve detail while file size remains sane. Converting vector images to bitmap images results in huge images, large file sizes and no improvement in detail when zoomed. So I'm sticking with PDF! Quote:
I've used the LM317 fairly extensively; including the method you linked to for programming the output voltage (which is copied from the National Semiconductor LM117/LM317 datasheet, it's quite well known.) I have another way of achieving the same thing but with greater flexibility, which I'm (probably) going to use for the VCC supply, details of which will follow later. First, I'm going to finish off the layout and build it. It works well in simulations, which included extreme conditions, so I suspect it will work well enough (better than the original circuit, post #3) when built. Kat |
||
![]() |
![]() |
#17 |
Retired Dormant Member
Join Date: Dec 2011
Location: Leiria , Portugal
Posts: 1
|
![]()
Hi, I'm using the same Willem programmer
![]() Thank You ![]() |
![]() |