The different programming voltages shouldn't be a problem. The circuit diagram from @oPossum looks good, the ALM2402 can drive up to 400 mA, so maybe no external transistor amplifier is even needed. But it has only a gain bandwidth of 600 kHz, maybe would be good to use some additional 4051 for the high frequency data lines. Could be all controlled with a cheap Arduino nano, and a simple Python script to control it and send the programming file over serial port.
I wonder why they do all these tests. I guess they don't do much tests when they produce the ICs? So far I've used about 20 PMS150C for testing, programming little things etc. One IC was not programmable. Might be a good idea if a DIY programmer would do all the verifies at different voltage levels etc. as well.
Over the weekend I spent some time with a friend to create a simple and cheap programmer schematic based on all the suggestions from this thread
:
- we did it as an experiment to use only free tools and the cheap supply chain from LCSC / JLPCB
- so we used EASY-EDA with LCSC parts and plan to use JLPCB (they all belong together)
- PCB + all parts will be around $5
- the programmer does not require an external power supply (it creates +15V from USB)
- it uses a STM32F072 which has 2x 12 bit DAC outputs to generate reference voltage for VDD and VPP which are then supplied to an opamp
- stability and level of the output voltages is measured with 2 ADC channels and can be tuned live
- for input/output to IC, 5 volt tolerant pins are used on STM32F072 (max. 5.5V)
- after checking programing of several different IC types we are pretty sure that DAT from IC to WRITER never exceeds VDD and max VDD we saw was 5.6V (no level shifter required)
What do you think?
Have fun,
JS