Category / Programatoriai

CH341 mod for 3,3V 2021.07.12 at 11:58

Thought I will write this post in English. Not because its something global, but to practice the language. For a long time used the Chinese programmer CH341, basically for 5V IC’s, but now I needed to program BIOS on the video card (should be separate post about the repair of it). The EPROM with BIOS should be powered by 1,8V and I was surprised, that originally it is powered by 3,3V, by the power supply on the video card. Not much of a help, because I did not have a 1,8V or 3,3V programmer. But I remember, when I received couple of CH341’s I saw a 3,3V converter on board. It uses AMS1117 chip to make 3,3V, but strange – there is no way to switch to 3,3V power supply for the programmed IC. I mean, the CH341 is always powered by 5V from USB, and it cant be switched to have 3,3V on the programming pins (CS, CLK, MISO, MOSI, etc). Its, probably, a mistake, made by the creator of that PCB. A mistake, which can be easily corrected.

Lets analyze a bit how to properly do the 3,3V mod. First, the AMS1777. It looks like a clone of LM1117 by Texas Instruments :D.

The middle pin and tab of the package are outputs, giving 3,3V, we will take them from here.

While writing this found the CH341 programmer schematics:

The CH341 chip has only one positive power supply pin, so we will have to disconnect it from 5V and connect it to 3,3V. This should make it output 3,3V on all pins. According to CH341 datasheet, it supports both 5V and 3,3V, so we’re OK here. The datasheet is written in Chinglish, so I had to think what the hell do they mean by this:

CH341 support 5V and 3.3V source voltage. When working on 5V source voltage, the VCC input 5V
power from outside, and V3 connects to 4700pF or 0.01uF decoupling capacitance. If the work power is
3.3V, connect V3 to VCC, input 3.3V source voltage. The voltage of other circuit which is connected to
CH341 is no pass than 3.3V.

I decided, that this means if chip is powered by 3,3V, I should connect the V3 (pin 9) to VCC. Leaving the last sentence for you to crack :D.

The work took just a couple of minutes – lifted the pin 28 from PCB, soldered one strand of copper wire, routed that wire to pin 9, soldered to pin 9 and went to the finish on the 1117 tab. Looks like this:

Surprisingly – it reads and writes the BIOS on the video card, thus leaving it in my programmers box as a cheap but still useful tool.

PicKIT 3, ne originalus… 2021.05.18 at 12:44

Senokai jau turiu šitą žaisliuką, jau ne kartą ir pravertė PIC mikrokontrolerių programavimui. Pirkau turbūt eBay ar AliExpress už, maždaug, 8 €. Dirba su gamykliniu MP LAB’u ir atrodo labai panašiai kaip ir originalus PicKIT’as, tik nėra Microchip logotipo:

Oficialus vartotojo vadovas yra čia.

USBasp programatorius Atmeliams 2019.10.30 at 15:30

Senokai jau naudoju, visai geras ir tikrai nebrangus programatorius iš eBay:

Būna berods su mažiau kontaktų, bet aš norėjau su 6. Kainavo ~2 Eur su siuntimu, veikia gerai. Aprašymas:
USBasp_H6 AVR Programmer ,5V automatic control the speed, support Win7 64Bit,LINUX standard 6pin.
Komplekte buvo ir 6 kontaktų kabeliukas. Draiverių berods nereikėjo, instaliavau tik eXreme Burner programą:

Programuojami čipai:

AT89S51, AT89S52, AT89S8252, AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90USB1286, AT90USB1287, AT90S8535CAN SERIESAT90CAN32, AT90CAN64, AT90CAN128PWM SERIESAT90PWM2, AT90PWM3Mega SeriesATmega8, ATmega48, ATmega88, ATmega168, ATmega328, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega169, ATmega2560, ATmega2561, ATmega32, ATmega323, ATmega324, ATmega325, ATmega3250, ATmega329, ATmega3290, ATmega406, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega8515, ATmega8535TINY SERIESATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny28, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861, ATtiny2313

BIOS mikroschemų programatorius at 10:13

Tok nebrangus (~4 Eur su siuntimu) programatorius:

Sukonstruotas „ant“ CH341A mikroschemos. Datasheet’as čia.

  • USB Programmer
  • Condition: New
  • Support 24EEPROM and 25 SPI flash 8pin/16pin chip
  • USB to TTL port, can getroot online
  • With CH341A chip
  • Recognize 25 series chip automatically
  • And support download STC series procedure of singlechip
  • With 24/25 status indicator lamp
  • SPI pin to support expanding the utility
  • Color is shown as pictures
  • PLS NOTE that due to lighting effects, monitor’s brightness/ contrass settings ect, there could be some slight differences in the color tone of the pictures and the actual item!
  • Provide 5V-3.3V power supply output
  • Dimension:70mm x 27mm

Darbui reikalingi du dalykai – draiveriai ir programatoriaus valdymo programa. Programos instaliuoti nereikėjo, tik draiverį.

Išvadų reikšmės:

CLK – kaip ir aišku, Clock
CS – Chip select
MOSI – Master Output, Slave Input
MISO – Master Input, Slave Output
GND – masė
3,3V – maitinimas
5V – maitinimas

1, 2, 3 – darbo režimo parinkimas (1-2 Parallel režimas (vidinis), 2-3 Serial režimas (išorinis));
TXD – perduodami duomenys
RXD – gaunami duomenys
GND – masė
5V – maitinimas

Pabandžiau programuoti ST24C02 EEPROMą, jumperis stovi ant 1-2 – viskas veikia ir labai greitai.

Programuoja tokias mikroschemas:


AMIC: A25L05P, A25L512, A25L010, A25L10P, A25L020, A25L20P, A25L040, A25L40P, A25L080, A25L80P, A25L016, A25L16P, A25L032;
ATMEL: AT25F512, AT25F512A, AT25F512B, AT25F1024, AT25F1024A, AT25FS010, AT25DF021, AT25F2048, AT25DF041A, AT25F4096, AT25FS040, AT26DF041A, AT26F004, AT25DF081A 1.8V, AT25DL081 1.8V, AT26DF081A, AT25DF161, AT26DF161, AT26DF161A, AT25DF321, AT25DF321A, AT26DF321, AT25DF641;
COMMON: 25X005, 25X05, 25X10, 25X20, 25X40, 25X80, 25X16, 25X32, 25X64, 25X128, 25X256, 25X512, 25X1024, 25X2048;
EON: EN25B05, EN25B05T, EN25F05, EN25LF05, EN25P05, EN25D10, EN25LF10, EN25P10, EN25D20, EN25F20, EN25LF20, EN25D40, EN25F40, EN25LF40, EN25D80, EN25F80, EN25P80, EN25Q80, EN25QH80, EN25T80, EN25B16, EN25B16T, EN25D16, EN25F16, EN25H16, EN25Q16, EN25QH16, EN25T16, EN25B32, EN25B32T, EN25F32, EN25P32, EN25Q32, EN25QH32, EN25B64, EN25B64T, EN25F64, EN25Q64, EN25QH64, EN25F128, EN25Q128, EN25QH128;
ES: ES25P10, ES25P20, ES25M40, ES25M40A, ES25P40, ES25M80, ES25M80A, ES25P80, ES25M16, ES25M16A, ES25P16A, ES25P32;
ESMT: F25L004A, AF25L04UA, F25L008A, F25L08PA, F25L016PA, F25L16PA, F25L32PA, F25L32QA, F25L64PA;
KH: KH25L4006E, KH25L80360, KH25L8006E(OTP), KH25L1606E(OTP);
FUDAN MICRO: FM25F005, FM25F01, FM25F02, FM25F04, FM25Q08, FM25Q16, FM25Q32;
GIGADEVICE: GD25D05, GD25Q512, GD25D10, GD25Q10, GD25Q20, GD25Q21, GD25D40, GD25F40, GD25LQ40 1.8V, GD25Q41, GD25D80, GD25F80, GD25LQ80 1.8V, GD25Q80, GD25T80, GD25LQ16 1.8V, GD25Q16, GD25LQ32 1.8V, GD25Q32, GD25LQ64 1.8V, GD25Q64, GD25LQ128 1.8V, GD25Q128, GD25LQ256 1.8V;
INTEL: 25F160A33B, 25F320S33B, 25F640S33B;
KH: KH25L4006E, KH25L8006E, KH25L8036D, KH25L1606E;
MSHINE: MS25X05, MS25X10, MS25X20, MS25X40, MS25X80, MS25X16, MS25X32, MS25X64, M525X128;
MXIC: MX25V512, MX25V512 2.5V, MX25L1005, MX25V1006 2.5V, MX25V1035 2.5V, MX25L2005, MX25L2026, MX25V2006 2.5V, MX25V2035 2.5V, MX25L4005A, MX25U4035 1.8V, MX25V4005 2.5V, MX25V4006 2.5V, MX25V4035 2.5V, MX25L8005, MX25L8006E, MX25L8035E, MX25L8036E, MX25U8033E 1.8V, MX25U8035 1.8V, MX25V8005 2.5V, MX25V8006E 2.5V, MX25V8035 2.5V, MX25L1605D, MX25L1606E, MX25L1608D, MX25L1608E, MX25L1633E, MX25L1635E, MX25L1636D, MX25L1636E, MX25U1635E 1.8V, MX25L3205D, MX25L3206E, MX25L3028D, MX25L3208E, MX25L3225D, MX25L3233F, MX25L3235D, MX25L3235E, MX25L3236D, MX25L3236F, MX25L3237D, MX25L3239E, MX25L3273E, MX25L3273F, MX25U3235E 1.8V, MX25L6405D, MX25L6406E, MX25L6408D, MX25L6408E, MX25L6433F, MX25L6435E, MX25L6436E, MX25L6436F, MX25L6439E, MX25L6445E, MX25L6455E, MX25L6465E, MX25L6473E, MX25L6473F, MX25L6475E, MX25U6435E 1.8V, MX25L12805D, MX25L12835E, MX25L12835F, MX25L12836E, MX25L12839F, MX25L12845E, MX25L12855E, MX25L12865E, MX25L12873F, MX25U12835F 1.8V, MX25L25635E, MX25L25635F, MX25L25639F, MX25L25645G, MX25L25735E, MX25U25635F 1.8V, MX25U25645G 1.8V, MX25L51245G, MX25U51245G 1.8V, MX66L51235F, MX66U51235F 1.8V, MX66L1G45G, MX66U1G45G 1.8V, MX66L2G45G, MX66U2G45G 1.8V;
NEXFLASH: NX25P10, NX25P20, NX25P40, NX25P80, NX25P16, NX25P32;
PMC: PM25LVS12A, PM25LV010A, PM25LV020, PM25LV040, PM25LV080B, PM25LV016B;
SAIFUN: SA2SF005, SA25F010, SA25F020, SA25F040, SA25F080, SA25F160, SA25F320;
SANYO: LE25FU106 2.5V, LE25FU206 2.5V, LE25FS406 1.8V, LE25FU406 2.5V;
SPANSION: S25FL001, S25FL001, S25FL004, S25FL040, S25FL008, S25FL016, S25FL160, S25FL032, S25FL064, S25FL128, 25FL129, S25FL256, S25FL512;
SST: SST25VF512, SST25VF512A, SST25VF010, SST25VF010A, SST25LF020A, SST25VF020, SST25VF020A, SST25VF040, SST25VF040A, SST25VF040B, SST25VF080B, SST25VF016B, SST25VF032B, SST25VF064C;
ST: M25P05A, M25P10A, M25PE10, M25P20, M25PE20, M25P40, M25PE40, M25P80, M25PE80, M25PX80, M25P16, M25PE16, M25PX16, M25P32, M25PE32, M25PX32, M25P64, M25PE64, M25PX64, M25P128;
WINBOND: W25P10, W25X10, W25X10A, W25X10AL, W25X10L, W25P20, W25Q20BW, W25X20, W25X20A, W25X20AL, W25X20L, W25P40, W25Q40BV, W25Q40BW, W25X40, W25X40A, W25X40AL, W25X40L, W25P80, W25Q80BV, W25Q80BW, W25Q80V, W25X80, W25X80A, W25X80AL, W25X80L, W25P16, W25Q16BV, W25Q16CV, W25Q16DW, W25Q16V, W25X16,W25P32, W25Q32BV, W25Q32CV, W25QDW, W25Q32FV, W25Q32V, W25X32, W25P64, W25Q64BV, W25Q64CV, W25Q64DW, W25Q64FV, W25Q64FW, W25X64, W25Q128BV, W25Q128CV, W25Q128DW, W25Q128FV, W25Q128FW, W25Q256BV, W25Q256FV;


ATMEL: AT24C01B, AT24C01, AT24C01A, AT24C02, AT24C02A, AT24C02B, AT24C04B, AT24C04, AT24C04A, AT24C08A, AT24C08B, AT24C08, AT24C16, AT24C16A, AT24C16B, AT24C32B, AT24C32A, AT24C32, AT24C64, AT24C64A, AT24C64B, AT24C128, AT24C128A, AT24C128B, AT24C256A, AT24C256, AT24C256B, AT24C512B, AT24C512A, AT24C512, AT24C1024, AT24C1024A, AT24C1024B;
CATALYST: CAT24C01, CAT24WC01, CAT24C02, CAT24WC02, CAT24C04, CAT24WC04, CAT24WC08, CAT24C08, CAT24WC16, CAT24C16, CAT24WC32, CAT24C32, CAT24WC64, CAT24C64, CAT24C128, CAT24WC128, CAT24C256, CAT24WC2S6, CAT24C512, CAT24WC512, CAT24C1024, CAT24WC1024;
COMMON: 24C01 3V, 24C01 5V, 24C02 3V, 24C02 5V, 24C04 3V, 24C04 5V, 24C08 3V, 24C08 5V, 24C16 5V, 24C16 3V, 24C32 5V, 24C32 3V, 24C64 5V, 24C64 3V, 24C128 SV, 24C128 3V, 24C256 5V, 24C256 3V, 24C512 5V, 24C512 3V, 24C1024 3V, 24C1024 5V, 24C2048 5V, 24C2048 3V, 24C4096 5V, 24C4096 3V;
FAIRCHILD: FM24C01L, FM24C02L, FM24C03L, FM24C05L, FM24C04L, FM24C08L, FM24C09L, FM24C17L, FM24C16L, FM24C32L, FM24C64L, FM24C128L, FM24C256L, FM24C512L, FM24C512L, FM24C1024L;
HOLTEK: HT24C01, HT24LC01, HT24LC02, HT24C02, HT24C04, HT24LC04, HT24C08, HT24LC08, HT24C16, HT24LC16, HT24LC32, HT24C32, HT24LC64, HT24C64, HT24C128, HT24LC128, HT24LC256, HT24C256, HT24LC512,  HT24C512, HT24C1024, HT24LC1024;
ISSI: IS24C01, IS24C02, IS24C04, IS24C08, IS24C16, IS24C32, IS24C64, IS24C128, IS24C256, IS24C512, IS24C1024;
MICROCHIP: MIC24LC014, MIC24AA01, MIC24AA014, MIC24LC01B, MIC24LC02B, MIC24AA02, MIC24C02C, MIC24AA024, MIC24LC025, MIC24LC024, MIC24LC04B, MIC24AA04, MIC24AA025, MIC24LC088, MIC24AA08, MIC24LC16B, MIC24AA16,  MIC24LC32, MIC24AA32, MIC24LC64, MIC24AA64, MIC24FC64, MIC24FC128, MIC24AA128, MIC24LC128, MIC24AA256, MIC24LC256, MIC24FC2S6, MIC24AA512, MIC24LC512, MIC24FC512, MIC24AA1024;
NSC: NSC24C02L, NSC24C02, NSC24C64;
RAMTRON: FM24CL04, FM24C04A, FM24CL16, FM24C16A, FM24CL64, FM24C64, FM24C256, FM24CL256, FM24C512;
ROHM: BR24L01, BR24C01, BR24L02, BR24C02, BR24L04, BR24C04, BR24L08, BR24C08, BR24L16, BR24C16, BR24L32, BR24C32, BR24C64, BR24L64.
ST: ST24C01, ST24C02, ST24C04, ST24C08, ST24C16, ST24C32, ST24C64;
XICOR: X24C01, X24C02, X24C04, X24C08, X24C16;


ATMEL: AT25010, AT25020, AT25040, AT25080, AT25160, AT25360, AT25640, AT25128, AT25256, AT25512;
MICROCHIP: 25AA080C, 25AA080D, 25C080 5V, 25LC080C, 25LC080D, 25AA160, 25C160 5V, 25LC160, 25AA320, 25C320 5V, 25LC320, 25AA640, 25C640 5V, 25LC640, 25AA256, 25LC256, 25AA512, 25LC512, 25AA1024, 25LC1024

Programatorių skyrelis at 09:41

Nutariau, kad reikia naujo skyrelio. Nuo tada kai pradėjau programuoti, pradėjo atsirasti įvairių programatorių. Dauguma iš eBay, AliExpress ir t.t., nors yra ir iš tradicinių tiekėjų – DigiKey, Mouser, Elfa. Esmė tame, kad po kiek laiko puslapiai su aprašymais dingsta, programinė įrangos nebebūna iš kur parsisiųsti, o ir šiaip jau pats nebežinau kokius programatorius turiu. Tai va – čia susirašysiu tą visą informaciją, techninę dokumentaciją, sudėsiu programinę įrangą, kad viskas visada būtų „po ranka“ ar „po pele“.