Programatorul de memorii CH341A

 Autor:   Publicat pe:   Actualizat pe:  2019-06-29T13:08:55Z

Află cum poți utiliza un programator de memorii bazat pe CH341A pentru rescrierea firmware-ului la plăci de bază și alte dispozitive care folosesc memorii SPI și I2C

CH341A este un cip cu interfață USB și mai multe porturi: paralel, serial, I2C și SPI. Este utilizat de unele programatoare de memorii seriale (din seriile 24xx și 25xx). Unul dintre cele mai populare dispozitive, dar și printre cele mai ieftine, este programatorul negru „MiniProgrammer”. Vei afla în acest articol cum să instalezi și să utilizezi acest programator pentru rescrierea memoriilor cu interfață I2C și SPI. Acestea sunt utilizate pe scară largă la plăci de bază pentru stocarea firmware-ului BIOS, dar și la alte dispozitive pentru stocare firmware și configurări. Poți să restaurezi modul de funcționare după scrieri nereușite ale firmware-ului (în timpul operațiunilor de actualizare) folosind acest programator.

Deși a devenit foarte popular, programatorul negru are ceva probleme cu nivelurile de tensiune. Dacă l-ai achiziționat deja, îl poți modifica în sensul furnizării aceleiași tensiuni atât la alimentarea memoriei cât și pe interfața de comunicații. Vom vedea apoi cum instalezi driver-ele și se software folosești pentru comunicarea cu programatorul. În cele din urmă, vom vorbi despre adaptoarele pe care le poți adăuga acestuia.

Programatorul negru CH341A MiniProgrammer

Programatorul negru CH341A MiniProgrammer

Niveluri de tensiune

Dacă nu ai achiziționat încă un programator bazat pe CH341A, nu te grăbi să cumperi programatorul negru, chiar dacă este mai ușor de găsit (disponibil și în România). CH341A este compatibil atât cu tensiuni de 3,3 V, cât și cu 5 V. El poate fi alimentat de la 3,3 V și în acest caz, toate semnalele generate de el au nivelul de 3,3 V. În caz contrar, dacă este alimentat la 5 V, va genera semnale de 5 V. În cazul programatorului negru (cel din poza de mai sus), CH341A este alimentat direct din portul USB, adică la 5 V. Totuși, vedem pe placa de circuit și un stabilizator liniar de 3,3 V. Ieșirea acestuia este legată numai la soclul ZIF negru pentru memorii.

Deci, memoriile conectate la acest programator vor fi alimentate cu 3,3 V. Dar interfața serială I2C și SPI folosește tensiuni de 5 V pentru că integratul este alimentat la 5 V. Nerecomandat! Trebuie să menționez că am conectat în acest fel memorii SPI de 3,3 V (extrase din circuit) și nu au avut probleme.

Ce se poate face?

Varianta 1: Există și alte programatoare cu CH341A, care nu sunt atât de populare, dar care au comutator de tensiune. Le poți vedea la sfârșitul acestui articol.

Varianta 2: Totuși, dacă ai deja acest programator, poți încerca să schimbi alimentarea CH341A la 3,3 V, în concordanță cu tensiunea de alimentare a memoriilor. Modificarea necesită un letcon de mică putere. Va trebui să întrerupi conexiunea pinului 28 cu placa de circuit, ridicându-l ușor. Trebuie să lipești un fir scurt de acest pin, apoi să realizezi conexiunea cu pinul 9 și cu ieșirea stabilizatorului de 3,3 V. Pinul 9 merge la condensatorul C4 și este mai ușor de lipit firul acolo. Este foarte important ca pinul 28 sa nu atingă sub nicio formă placa de circuit! Iată cum arată această modificare realizată de Chuck Nemeth.

Modificare programator CH341A pentru 3,3 V (by Chuck Nemeth)

Modificare programator CH341A pentru 3,3 V (foto de Chuck Nemeth)

Varianta 3: Poți folosi un convertor de nivel. Există convertoare, dar numai pentru 1,8 V. Așadar va trebui să îți construiești propriul convertor.

Driver și software

Driver-ul pentru acest cip poate fi descărcat de la producător. Fără a conecta programatorul la portul USB, rulează fișierul descărcat și apasă Install.

Instalare driver programator CH341A

Instalare driver programator CH341A

CH341A are două moduri distincte de funcționare: adaptor USB-Serial și adaptor USB la celelalte protocoale (paralel, I2C și SPI). Modul programator poate fi selectat conectând pinul 1 la masă. La programatorul negru acest mod este selectat de jumperul aflat la marginea baretei de pini situată pe partea mânerului soclului de memorii. Când acesta este la margine (pinii 1-2), CH341A este în modul programator. Altfel, fără jumper sau cu acesta pe pinii 2-3, CH341A se comportă ca și un adaptor USB-Serial.

În acest mod, portul USB vede un alt dispozitiv, cu alte ID-uri, deci este necesar alt driver. Deși inclus în Windows 10, îl poți instala manual, descărcându-l de pe site-ul producătorului.

În ceea ce privește aplicația de programare utilizată, pe Windows ai două opțiuni. Software-ul dezvoltat de SkyGz costă 10 USD și poate fi obținut urmând instrucțiunile din acest review. Pe scurt, trebui să te adresezi dezvoltatorului prin e-mail, care îți va trimite un link PayPal pentru plată, apoi îți va trimite software-ul și licența.

Dar, există și alternativa gratuită. Este vorba de AsProgrammer, aplicație dezvoltată în regim open-source. Descarcă fișierul ZIP de la adresa menționată și extrage-l într-un folder. Nu necesită instalare. Rulează inclusiv pe Windows XP (cel puțin versiunea 1.4.0 testată de mine). Suportă CH341A, UsbAsp și AVRISP-MKII.

Aplicația AsProgrammer pentru CH341A

Aplicația AsProgrammer pentru CH341A

Înainte de toate, mergi la meniul Hardware și alege CH341a. În cazul memoriilor I2C, trebuie să alegi tipul memoriei din meniul IC. Nu trebuie să mai faci alte setări pentru a putea citi sau scrie memoria. La memoriile SPI, nu trebuie să știi tipul memoriei. În bara de unelte bifează SPI și dă click pe butonul Read ID (pictograma cu un semn de întrebare). Dacă memoria a fost detectată, se va deschide un dialog în care trebuie să dai dublu click pe tipul memoriei pentru a aplica toate setările specifice. Acum poți citi și scrie memoria. Lângă butonul Read ID ai Unprotect. Utilizează-l în cazul memoriilor protejate la scriere.

Conexiuni

În soclul programatorului negru vei plasa memorii punând pinul 1 spre mâner. Cele cu interfață I2C stau în jumătatea de lângă mâner, pe când cele SPI trebuie puse în cealaltă jumătate. Atenție: Aplicația dezvoltată de SkyGz sugerează conectarea inversă a memoriilor în soclu. În cazul programatorului negru MiniProgrammer, plasează memoriile cu pinul 1 spre mâner, conform desenului următor.

Așezarea memoriilor în soclul programatorului negru CH341A

Așezarea memoriilor în soclul programatorului negru CH341A

Adaptoare

Poate cel mai util adaptor este cleștele pentru memorii SOIC8. Acesta permite programarea directă, în circuit a memoriilor suportate. Trebuie utilizat cu prudență, într-un circuit nealimentat, dar în care nivelurile de tensiune în regim de funcționare sunt cunoscute și similare cu cele folosite de programator. Cele mai multe memorii sunt alimentate fie la 3,3 V, fie la 5 V, iar cele din urmă sunt compatibile și cu 3,3 V. În concluzie, folosește un programator la care problema cu nivelurile mixte de tensiune (3,3 V pe alimentare, 5 V pe interfață) a fost rezolvată. La utilizarea cleștelui, cablul acestuia are un fir roșu. Aliniază acest fir la pinul 1 al memoriei.

Cleștele pentru programare în circuit

Cleștele pentru programare în circuit

Reține că există și memorii care funcționează la 1,8 V. Există un convertor de nivel pentru această situație. La programarea în circuit, necesarul de curent este greu de estimat, deoarece la alimentarea memoriei, există posibilitatea ca și procesorul la care este conectată, dar și alte dispozitive să primească tensiune.

Resurse

Un comentariu :

Vă recomandăm să citiți regulamentul comentariilor înainte de a scrie un comentariu.