| Electronics > Repair |
| CH341A Serial Memory Programmer Power Supply Fix |
| << < (23/25) > >> |
| Ian.M:
See https://www.onetransistor.eu/2017/08/ch341a-mini-programmer-schematic.html I said measure with jumpers removed, because some mods/versions of the CH341x ZIF programmer board use a jumper for VCC selection usually by shorting out the 3.3V regulator for 5V operation. This is *NOT* ideal as the CH341x chips need 3.3V for their USB interface to operate correctly, and if the dropout voltage of their internal regulator supplying V3 (pin 9) from Vcc (pin 28) is too high, when Vcc is at 3.3V the reduced voltage on V3 can cause USB communication errors, and/or data corruption. The datasheet says to link Vcc and V3 to bypass the internal regulator when Vcc is 3.3V. To determine what mods if any are needed for your programmer, its easiest to use the USB shell as a ground point and measure the I/O pins 1-4 on the header beside the ZIF socket near the same board edge as the crystal. You can also easily measure Vcc at pin 28, but the risk of damage from a short if your probe slips is much higher. Don't try to measure at the ZIF socket itself, as the contacts aren't easily accessible from the top with a multimeter probe. Note that the usual parking (storage) position of the jumper on pin 1 & 2 of the other header shorts ACT# to ground. This does no harm because there is a series resistor between the header's ACT# pin and the CH341x. Three possible conditions will be found when measuring a powered, idle CH341x programmer with no jumpers fitted. Either Vcc and the SPI I/O pins will be at 5V, or at 3.3V or at 0V (if the design version or mod requires a jumper fitted to supply Vcc power). If you get either 3.3V or 5V and your memory chips aren't the same voltage, you need to do a mod. This topic is about modding the 5V version down to 3.3V, either permanently or switchably. If you get 3.3V and need 5V its a different mod, not covered yet here. If you get 0V, *either* your programmer is modded or a different version and you should follow its supplier's instructions for what jumpers to fit for 3.3V or 5V operation *or* its not getting power from the USB, or its faulty. As it has a power LED, its easy to see if its getting power. My reply #3 was only updated to fix a broken link to the CH341x datasheet. Many have modified this programmer following my suggestion in #3, and some have even made videos about it. The key to success is to use desoldering braid (aka: solderwick) to remove as much solder as possible from pin 28 before lifting it, only lift it far enough to break the surface tension of the molten solder between it and the pad so it no longer bridges, and to use *THIN*, preferably solid core wire, thinner than the pin so you don't stress it too much when handling the wire. I prefer Kynar insulated silver plated solid core 30 AWG wirewrap wire, but others prefer magnet wire. It can be very difficult to remove the varnish insulation from thin magnet wire without damaging the wire, and Kynar insulation is fairly tough, so the wire will be pulled on when you strip the end, so in either case, to avoid pulling pin 28 off the IC, prepare the wire to length and bent to shape, and get both ends tinned before you solder it to the board. Using electronics grade flux will make all the desoldering and soldering operations easier. I also discussed a 5V/3.3V switchable mod in reply #55. There are others that *DON'T* use a DPDT switch, but many of those don't power V3 properly when switched to 3.3V so even if the CH341x still enumerates correctly, may cause hard to trouble-shoot programming errors. If the other mod gives less than 3.1V or greater than 3.6V on V3 (pin 9) expect trouble! |
| Tantratron:
--- Quote from: Ian.M on November 17, 2024, 12:31:10 pm ---See https://www.onetransistor.eu/2017/08/ch341a-mini-programmer-schematic.html I said measure with jumpers removed, because some mods/versions of the CH341x ZIF programmer board use a jumper for VCC selection usually by shorting out the 3.3V regulator for 5V operation. This is *NOT* ideal as the CH341x chips need 3.3V for their USB interface to operate correctly, and if the dropout voltage of their internal regulator supplying V3 (pin 9) from Vcc (pin 28) is too high, when Vcc is at 3.3V the reduced voltage on V3 can cause USB communication errors, and/or data corruption. The datasheet says to link Vcc and V3 to bypass the internal regulator when Vcc is 3.3V. To determine what mods if any are needed for your programmer, its easiest to use the USB shell as a ground point and measure the I/O pins 1-4 on the header beside the ZIF socket near the same board edge as the crystal. You can also easily measure Vcc at pin 28, but the risk of damage from a short if your probe slips is much higher. Don't try to measure at the ZIF socket itself, as the contacts aren't easily accessible from the top with a multimeter probe. Note that the usual parking (storage) position of the jumper on pin 1 & 2 of the other header shorts ACT# to ground. This does no harm because there is a series resistor between the header's ACT# pin and the CH341x. Three possible conditions will be found when measuring a powered, idle CH341x programmer with no jumpers fitted. Either Vcc and the SPI I/O pins will be at 5V, or at 3.3V or at 0V (if the design version or mod requires a jumper fitted to supply Vcc power). --- End quote --- Hello Ian, ok many thanks now I fully understand your explanations, guidance plus is now clear to me what you meant by I/O pins 1-4 which are respectively SCK, CS, MOSI and MISO. After removing the unique yellow jumper, my DMM reads respectively +5V on I/O pins 1-4 then with caution and concentration, I've measured as well Vcc from CH341A-28 to be 5V hence MOD is required. I did measure again directly the 8 pins of the ZIF socket, in my case no problem to DMM which corresponds to my yesterday post (see the picture and markings). We have confirmation that the 4 signals in charge of SPI are 5V which is the threat but note that the SO8 flash memory remaining 3 pins are all 3.3V (WP, Vcc and Hold) where the 8th pin is of course GND. The Vcc pins in the ZIF is 3.3V whereas the Vcc on CH341-28 is 5V so no idea if this logical per design or confirms the risk to fry a 3.3V flash memory. It is really strange that from the ZIF connector (total 8 pins) some of the pins read 3.3V and others 5V, at least in my recently acquired board. It would interesting to have confirmation from @flachyjoe that his CH341B board offers always 3.3V on all the pins even though the french eBay vendor had pictures and title with CH341A. This would his board has been modified at factory and he got lucky with this eBay purchase in France. --- Quote from: Ian.M on November 17, 2024, 12:31:10 pm ---My reply #3 was only updated to fix a broken link to the CH341x datasheet. Many have modified this programmer following my suggestion in #3, and some have even made videos about it. The key to success is to use desoldering braid (aka: solderwick) to remove as much solder as possible from pin 28 before lifting it, only lift it far enough to break the surface tension of the molten solder between it and the pad so it no longer bridges, and to use *THIN*, preferably solid core wire, thinner than the pin so you don't stress it too much when handling the wire. I prefer Kynar insulated silver plated solid core 30 AWG wirewrap wire, but others prefer magnet wire. It can be very difficult to remove the varnish insulation from thin magnet wire without damaging the wire, and Kynar insulation is fairly tough, so the wire will be pulled on when you strip the end, so in either case, to avoid pulling pin 28 off the IC, prepare the wire to length and bent to shape, and get both ends tinned before you solder it to the board. Using electronics grade flux will make all the desoldering and soldering operations easier. --- End quote --- Many thanks for de-soldering and re-solding mod instructions, I see all the points |
| Tantratron:
P.S. When buying from amazon the CH341A, the seller sent me a link with manual and drivers for Windows. I did not read neither used these since i'm using MacOS with specific driver and software from Github for CH341A and flashrom. Anyway I now read one manual and it does warm about the 5V risk then points out to that link that you might probably know. There is YouTube video which shows the same modification by ian but I read some comments, here are some extract. Extract 1: Okay, this is really funny. This video shows how to bring level down to 3.3 V, but DrShock has a Youtube with his CH341 only providing 3.3 volt and shows how to modify his version of the board to bring it up to 5.0 V. Apparently, DrShock needs the 5V for automotive chip programming, while the 3.3V is needed for PC BIOS chips. Perhaps you guys can just trade boards? I'd say there are 2 versions out there and just be sure you get the one for your particular chip programming application. This is very interesting topic, though. I used a chip programmer with a sewing needle to 3.3 V power to re-program a 2015 Apple MacBook Prom to unlock it with chip in-place on board with a ribbon cable that attached to a SAM socket directly on the logic board. Nice and clean and no soldering. Just had to hold the pin steady for a few minutes to do the read, and then again to do the write. I'm typing this on that computer. Battery and power disconnected from logic board, sewing needle attached to a 3.3 V lead from an old PC power supply. Extract 2: Thank you very much! my CH341B worked badly for writing a Winbond 25Q64FV now its works really well !!! my problem is solved thanks you! ( I buy a 341A on ebay and i receive a 341B, but it's work now!!) It would be really interesting to know if the CH341B purchased by flashyjoe does only 3.3V Then why if this 5V - 3.3V issue is known for years, the chinese still continue to sell and not fix the design ? |
| Tantratron:
Maybe one last question regarding USB-CH341A programmer to read or write the SPI NOR memory (25 serie). In another project, I need to USB interface through a VGA-i2c port connected to a LCD panel processor which is not tolerant to 5V. Do you confirm the 5V versus 3.3V topic does threat the 24 serie ZIF connector, in other words wether the 4 pins 25 serie or the 4 pins 24 serie, same threat hence MOD solves both scenario ? |
| Ian.M:
VESA DDC I2C (on VGA ports) used 5V signal levels - see page 18 of https://www.eevblog.com/forum/projects/i2c-over-cat5e-problem/?action=dlattach;attach=185318 If you are using VGA port I2C, for a 3.3V (or lower) target, you need one of these: https://www.adafruit.com/product/757 or equivalent from Amazon, Ebay or the usual far east 'eBazaar' suppliers. It should follow Philips AN97055, with one N-MOSFET per signal line. It needs a 3.3V supply to biass the MOSFET gates, but that can usually be tapped from the target device as very little current is needed. The various CH341x 3.3V mods are all good for both SPI and I2C. The switchable version of the CH341x mod can be wired to auto-set the target Vcc voltage, so you dont need to jumper 3.3V to 5V to short out the regulator when programming 5V devices. This is actually a simpler mod - lift Vcc (pin 28) and link it to the regulator output. Wire a SPST switch, common to regulator output, one end to V3 (pin 9) and the other to the regulator input (+5V). With the switch in the 5V position, confirm the regulator does not get hot, and that there is 5V at the programmer socket Vcc pins. Ideally replace the zero ohm link in the R1 (marked F1) position on the CH341x programmer PCB with a 250mA polyfuse to protect your PC if the programmer Vcc gets shorted in 5V mode. |
| Navigation |
| Message Index |
| Next page |
| Previous page |