În părțile anterioare, am dat seama ce este controlorul, cum funcționează și cum se scrie un program pentru el. Următorul lucru pe care trebuie să-l facem este să încărcați programul recepționat în memoria controlerului (sau altcineva spun "bloca controlerul"). Pentru aceasta, există instrumente speciale - programatori.
Programatorul este alcătuit din partea hardware (de obicei, acasă este această parte hardware numită programator, așa că vom mai restrânge și termenul "programator" doar la partea sa hardware) și partea software. Partea hardware este destinată organizării fizice a semnalelor necesare programării (cu niveluri și fronturi corecte). Partea software este concepută pentru a controla hardware-ul, implementează algoritmi corecți (secvențe și întârzieri la pornirea și oprirea diferitelor semnale hardware) necesare pentru a scrie programul în memoria controlerului. Cel mai adesea, partea programului este realizată sub forma unui program de calculator și gestionează hardware-ul prin orice interfață de computer la care este conectată partea hardware (de obicei RS-232, LPT sau USB).
Deci, în microcontrolere PIC, firmă Microchip, programarea pe o interfață serială este de obicei realizată. În acest caz, cele două picioare ale controlerului sunt folosite pentru organizarea interfeței (semnale de ceas - ceas și date - date) și încă una sau mai multe picioare sunt utilizate pentru controller în programul de traducere și mențineți-l în acest mod (Vpp, PGM ...).
Există două metode principale de programare: tensiune înaltă (HVP - programare de înaltă tensiune) și tensiune joasă (LVP - programare de joasă tensiune). În prima metodă, în plus față de tensiunea de lucru (Vdd) se utilizează o tensiune mai mare (Vpp - tensiune de programare) pentru a transfera controlerul în modul de programare. În cea de-a doua metodă, nu sunt necesare eforturi suplimentare. În cadrul controlorilor, în funcție de model, ambele metode pot fi implementate simultan și poate fi implementată numai una dintre metode.
În ambele metode există diferite algoritmi pentru transferarea controlerului în modul de programare (din nou, în funcție de modelul particular). Mai mult, mai mulți astfel de algoritmi pot fi încorporați în controler.
În continuare, voi încerca să descriu algoritmii cei mai frecvenți pentru conversia controlerelor PIC în modul de programare din ambele metode.
1. Programare înaltă tensiune, "Vpp-first". Esența metodei: în primul rând, tensiunea de programare (Vpp) este aplicată la piciorul special, apoi este furnizată energia (Vdd) nu mai devreme decât după un anumit interval de timp (T1). După o anumită perioadă de timp (T2), controlerul va intra în modul de programare și va fi posibilă începerea schimbului de date (folosind liniile de ceas și date). În stadiul inițial, tot timpul, în timp ce controlerul este comutat în modul de programare, picioarele interfeței trebuie să fie zero. Următoarea diagramă prezintă semnalele corespunzătoare acestui algoritm:
2. Programarea înaltă tensiune, "Vdd-first". Metoda, primul servit tensiunea de lucru (VDD), atunci, nu mai devreme decât după o anumită perioadă de timp (T1), un picior special servit tensiunea de programare (Vpp). După o anumită perioadă de timp (T2), controlerul va intra în modul de programare și va fi posibilă începerea schimbului de date (folosind liniile de ceas și date). La fel ca în algoritmul anterior, în stadiul inițial (în timp ce controlerul este comutat în modul de programare), picioarele de interfață trebuie să aibă un nivel zero. Schema de semnal corespunzătoare este prezentată mai jos:
3. Programe de joasa tensiune, "Secventa speciala". Esența metodei: după un anumit interval de timp (T1) după aplicarea tensiunii de funcționare (Vdd), controlerul primește o cheie specială de 32 biți, după care controlerul intră în modul de programare. În acest caz, piciorul MCLR / Vpp ar trebui să fie atras de firul comun. A doua variantă a aceluiași algoritm (în cazul în care tensiunea de operare este deja aplicată la controler) este după cum urmează: MCLR / Vpp picior este tras la masă printr-un anumit interval de timp (T2), după regulatorul trimite o tastă specială pe 32 de biți, atunci încasările controlerului în modul programare. Următoarele diagrame de semnale sunt prezentate mai jos:
4. Programare la joasă tensiune, "Pin special". Metoda: atunci când este instalat într-o configurație de cuvânt special de biți (LVP), una dintre bornele (PGM), controlerul începe să fie utilizat pentru regulatorul transferă modul de programare (în consecință, utilizați acest PIN ca intrare digitală / ieșire nu poate fi). Deci, în acest caz, operatorul de transfer în modul de programare prin aplicarea unui nivel ridicat (VDD) pe piciorul PGM și după un anumit timp (T1) al ofertei de nivel înalt (VDD) pe picior (MCLR / Vpp). Următoarele diagrame de semnale sunt prezentate mai jos:
După examinarea detaliată, se poate observa că unii algoritmi (2,3,4) permit intrarea în modul de programare fără a scoate tensiunea de alimentare de la controler. Cu un layout special al plăcii, acești algoritmi vă permit să programați controlerul, așa cum se spune, "în zbor". Modul în care controlerul este programat direct în produsul finit se numește ICSP - în programarea serială a circuitelor (în limba rusă este de obicei spus simplu - programarea în circuit).
Despre asta, poate, asta e tot. Aici puteți găsi un controler de tabel al companiei PIC Microchip, care să indice care algoritmi de traducere în modul de programare acceptă modele specifice de controlere, precum și intervalele de valori admise Vpp (pentru controlere care acceptă HVP).