Programátor s čipom CH341 je cenovo dostupný a najčastejšie sa využíva pre programovanie hardvéru s UART / RS232 / RS485 komunikačným rozhraním, teda mikrokontroléry, periférie, riadiace systémy. Druhým rozšíreným využitím je aj práca s I2C (2-wire), či SPI (4-wire) hardvérom, napr. typicky EEPROM pamäťami v automobilovej sfére. CH341 sa používa aj na flashovanie BIOS-u na základných doskách počítačov, či inej elektroniky.

Prostredníctvom tohto programátora môžete pracovať s EEPROM pamäťami, ktoré sú umiestnené na plošných spojoch riadiacich jednotiek, budíkov, rádii... Veľmi populárne je jeho použitie pre autá značky Volkswagen, keďže verzia programátora s čipom CH341 pre I2C a SPI býva uspôsobená na EEPROM pamäte rady 24, či 25, ktoré využívali najmä staršie, no stále veľmi rozšírené ročníky automobilov. Programátorom dokážete vyčítať obsah EEPROM pamätí s rôznou veľkosťou, najčastejšie 2 kB u 24C16, či 4 kB u 24C32 (a iných) pamäte formou binárneho dumpu (.bin).

EEPROM programátor s USB-A konektorom a prevodníkom CH341

24C16 EEPROM pamäť v puzdre DIP-8

24C16 EEPROM pamäť v puzdre SOIC-8
Dump dokážete v obslúžnom, či pridruženom softvéri analyzovať, pozmeniť konkrétne bity, či bajty a programátorom opätovne nahrať späť do EEPROM pamäte. Medzi najčastejšie spôsoby využitia je získanie pinu (loginu) pre odomknutie autorádia, či jeho nahradenie za známy, čo umožní rádio pohodlne odomknúť. Alternatívne je možné vynulovať aj počítadlo pokusov zadania kódu, aby ste pri trvale napájanom rádiu nemuseli čakať hodinu pre zadanie kódu, kým vyjde zo SAFE režimu. Sú tu ale mnohé ďalšie funkcionality, ktoré viete obsluhovať v závislosti od konkrétnej jednotky, či súčasti. Môžete aktivovať pokročilé funkcionality, alebo ich vypnúť.
Programátor s čipom CH341 býva najčastejšie so ZIF socketom (8*2), ktorý umožnuje zafixovať priamo vloženú EEPROM pamäť, pokiaľ ju máte odspájkovanú a je v DIP puzdre. V závislosti od pamäte 24, alebo 25 býva tomu uspôsobený aj pinout na doske, aby ste čip vedeli priamo vložiť a mohli si byť istý, že pinout I2C, resp. SPI sedí na vložený čip. Samotná orientácia EEPROM pamäte (čipu) je dostupná aj na PCB formou silkscreenu. Alternatívne viete do ZIF socketu pripojiť aj káble, pokiaľ ich máte naspájkované napr. na PCB doske autorádia na SDA, SCL signáloch v prípade 24 EEPROM pamäte, ktorú tak nemusíte ani odspájkovať. ZIF socket využíva pružinový mechanizmus, kedy páčkou pritlačíte kontaktné plôšky k sebe a vytvoríte predpätie, čím zabezpečíte dostatočný kontakt.

ZIF socket 8*2
Existujú aj verzie programátora so štipcom, ktorý má pinout odpovedajúci týmto pamätiam. Má označený aj kábel, ktorý je napájací, aby ste si nepomýlili polaritu. Štipcom sa viete na PCB pripojiť priamo na čip, ktorý je naspájkovaný na doske. Hodí sa to predovšetkým na EEPROM pamäte v prevedení SOIC (SOP) puzdra. V praxi je ale použitia štipca na podobnú automobilovú elektroniku nepraktické, nakoľko je často potrebné rozobrať rádio, aby sa štipec zmestil a tiež SOIC puzdrá bývajú spájkované metódou SMT, teda na povrchu dosky a nie THT (napr. u DIP puzdra), kedy by boli piny prístupné aj z druhej strany. Preto býva pripojenie káblami priamo na SDA a SCL signály schodnejšie riešenie. Ak máte štipec, budete mať aj extra rozšírujúcu dosku na ktorú si viete naspájkovať piny s roztečou 2,54 mm a dosku zasunúť do ZIF konektora s káblami napájkovanými v pinoute EEPROM pamäte.

Programátor s prevodníkom CH341, štipcom pre priame pripojenie na SOIC puzdro EEPROM
Pri použití programátora, ktorý chcete pripojiť k EEPROM pamäte na doske, napríklad na autorádiu treba porozmýšľať aj nad spôsobom napájania. Priamo štipcom by ste mohli napájať EEPROM pamäť bez celého autorádia, ešte lepšie by ju bolo vyspájkovať, aby ste sa vyhli rôznym rušeniam, či možnosti ovplyvnenia súčiastky okolitými. Druhým riešením je vytiahnuť si iba signálové káble a zem, ktoré sa na dosku napájkujú a druhým koncom pripoja do ZIF socketu, pričom rádio budete externe napájať, napríklad autobatériou. Napríklad u rádia VW MFD1 by ste na 12V napojili vývody UB+, SAFE, S-kont, následne by ste pripojili ešte zem na zem batérie. Je potrebné, aby ste napájali všetky tieto piny, inak rádio nemusí nový kód po nahratí akceptovať pri zadaní.
Dnes si priblížime inštaláciu tohto programátora s prevodníkom CH341 v prostredí systému Windows, uvedieme si kompatibilný softvér a podobne. Pri samotnej inštalácii sa veľa ľudí popáli, alebo to aj dokonca vzdá, pretože im programátor nefunguje, prípadne majú aj po nainštalovaní ovládača v Správcovi zariadení zariadenie označené ako neznáme a z tohto kroku sa nevedia pohnúť ani po viacnásobnom preinštalovaní ovládača.
Je to dané tým, že čip CH340, či CH341 je často používaný v open-source hardvéri ako USB-UART prevodník. Tento prevodník tu pracuje v sériovom režime. No tento programátor pre prácu s EEPROM pamäťami je potrebné mať v režime paralélnom. Niektoré programátory majú aj prepojku, ktorá má byť po správnosti zapojená pre paralélny režim a v prípadne rozpojenie funguje CH341 v sériovom režime, ktorý je vhodný pre UART linku a podobne s RX TX signálmi. Táto prepojka býva označená P/S, alebo sú to piny 1 a 2 v závislosti od verzie programátora s čipom CH341. Štandardne pri spojenej prepojke býva aktívny paralélny režim a pri rozpojení sériový (u programátora s pinmi 1 2 3 je potrebné prepojiť jumper z 1 a 2 na 2 a 3).
Mnoho používateľov si stiahne ovládač na CH340 / CH341 pod označením CH341SER (CH341SER.INF), pretože im ako prvý vybehne vo vyhĺadávaní Google a to je chyba. Toto nainštaluje ovládač pre sériovú komunikáciu. Je nutné stiahnuť ovládač CH341PAR (CH341WDM.INF) pre paralélne rozhranie, ktoré zahŕňa aj nízkoúrovňový ovládač pre SPI / I2C komunikáciu. V tomto režime programátor dokáže prevádzať SPI / I2C signály na USB a opačne.
Kde stiahnutí ovládač CH341PAR?
Na oficiálnych stránkach Nanjing Qinheng Microelectronics Co., Ltd.:
https://www.wch-ic.com/downloads/CH341PAR_EXE.html
Kde stiahnuť obslúžny program?
Najviac používaný je CH341 Programmer, ktorým dokážete obsah EEPROM pamäte čítať, ale aj do nej zapisovať:
https://github.com/Keeyees/CH341A-Manual-NEW-JP/blob/main/CH341A%20Programmer%20v1.34.7z, prípadne AsProgrammer: https://github.com/YTEC-info/CH341A-Softwares/tree/main/Programas/Windows

Pokiaľ máte obslúžny Programmer softvér nainštalovaný, môžete do USB pripojiť programátor a overiť si, či obslúžny program indikuje stav Connected a umožňuje v hornej časti aj výber funkcionalít ako Read, Write. Pokiaľ nemáte ovládač nainštalovaný, resp. zlyhalo pripojenie, tieto možnosti budú nedostupné. Rovnako tak v správcovi zariadení pod COM zariadeniami programátor v paralélnom režime neuvidíte, je to normálne.

Pre náhľad obsahu EEPROM pamäte pre analýzu, porovnávanie .bin súborov odporúčam HxD HEX Editor:
https://mh-nexus.de/en/hxd/
Ako vyčítať obsah EEPROM v rádiu MFD1 VW?
Správny postup by mal byť následovný za prepokladu externého napájania rádia + využitie káblov napájkovaných na PCB pre GND a signály I2C zbernice SDA, SCL:
V prvom rade si skontrolujte napäťové úrovne cieľovej pamäte. Najčastejšie pôjde u VW rádii o 5V operačnú logiku, avšak je možné aj to, že niekde bude 3.3V logika a vtedy je nutné prevádzať napäťové úrovne, nakoľko hrozí odpálenie komunikačného portu. Niektoré PCB s programátormi na báze CH341 mávajú aj sekundárnu prepojku na prepnutie medzi 3V3 a 5V logikou, avšak nebýva to pravidlom.
- Pripojiť programátor skrz SDA, SCL, GND na PCB
- Pripojiť napájanie k rádiu - 3x 12V (UB+, SAFE, S - kont) + GND

Blaupunkt - MFD1 rádio, pripojenie signálov I2C a zeme na PCB rádia
- Zapnúť napájanie programátora (USB)
- Zapnúť napájanie rádia Počkať, kým obrazovka rádia nabehne a skočí na zadávanie kódu / SAFE obrazovke
- Spustiť CH341 (Programmer) / AsProgrammer - obslúžny program
- Nastaviť v programe:
- 24 EEPROM a typ podľa veľkosti pamäte a adresný typ tomu prislúchajúci
- Kliknúť na READ
- Po zobrazení obsahu EEPROM môžete tento dump uložiť cez Save pre zálohu, analýzu
- Pre samotné vytiahnutie kódu na odomknutie autorádia potrebujete špeciálny softvér, pokiaľ neviete ako to urobiť manuálne.
- Pokiaľ viete kód z iného rádia, nakopírujete príslušné riadky z druhého MFD1 rádia, aby ste dané rádio dokázali odomknúť so známym kódom. Ide o riadky 10, 20, 30 pre 24C16 (2 kB), alebo 20, 40, 60 pre 24C32 (4 kB) / 24C64 (8 kB).
Prečítajte si .bin aj niekoľko krát a uložte samostatne. V prípade, že nemáte dobrý kontakt, môžete medzi .bin dumpami vidieť nezrovnalosti, čo je zlé, nakoľko po opätovnom prehratí nebude rádio fungovať ako predtým a riskujete aj to, že sa vôbec nepustí z dôvodu zlého obsahu EEPROM pamäte.
Datasheet CH341: https://www.wch-ic.com/downloads/CH341DS1_PDF.html