Un programator JDM simplu pentru microcontrolere PIC - Programatori de microcontrolere - Circuite de dispozitive de microcontroler. Cum să programați microcontrolere PIC sau programator JDM simplu compatibil Jdm

Ce primii pași ar trebui să facă un radioamator dacă decide să monteze un circuit pe un microcontroler? Desigur, este necesar un program de control - „firmware”, precum și un programator.

Și dacă nu există probleme cu primul punct - „firmware-ul” finit este de obicei încărcat de autorii circuitelor, atunci cu programatorul lucrurile sunt mai complicate.

Prețul programatorilor USB gata făcute este destul de mare și cea mai bună soluție ar fi să le asamblați singur. Iată o diagramă a dispozitivului propus (poate face clic pe imagini).

Parte principală.

Panou de instalare MK.

Diagrama originală a fost preluată de pe site-ul LabKit.ru cu permisiunea autorului, pentru care îi mulțumesc mult. Aceasta este o așa-numită clonă a programatorului proprietar PICkit2. Deoarece versiunea dispozitivului este o copie „ușoară” a proprietarului PICkit2, autorul și-a numit dezvoltarea PICkit-2 Lite, care subliniază ușurința de asamblare a unui astfel de dispozitiv pentru radioamatorii începători.

Ce poate face un programator? Folosind programatorul, puteți să flashați cele mai ușor disponibile și populare MCU din seria PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A etc.), precum și cipurile de memorie EEPROM din seria 24LC. În plus, programatorul poate funcționa în modul convertor USB-UART și are unele dintre funcțiile unui analizor logic. O funcție deosebit de importantă pe care o are programatorul este calcularea constantei de calibrare a generatorului RC încorporat al unor MCU-uri (de exemplu, cum ar fi PIC12F629 și PIC12F675).

Schimbări necesare.

Există unele modificări în circuit care sunt necesare pentru ca folosind programatorul PICkit-2 Lite să fie posibilă scrierea/ștergerea/citirea datelor de pe cipurile de memorie EEPROM din seria 24Cxx.

Din modificările care au fost aduse schemei. S-a adăugat conexiunea de la pinul 6 al DD1 (RA4) la pinul 21 al panoului ZIF. Pinul AUX este utilizat exclusiv pentru lucrul cu cipuri de memorie 24LC EEPROM (24C04, 24WC08 și analogi). Transmite date, motiv pentru care este marcat cu cuvântul „Date” pe diagrama panoului de programare. La programarea microcontrolerelor, pinul AUX nu este de obicei folosit, deși este necesar la programarea MK-urilor în modul LVP.

A fost adăugat și un rezistor pull-up de 2 kOhm, care este conectat între pinii SDA și Vcc ai cipurilor de memorie.

Am făcut deja toate aceste modificări pe placa de circuit imprimat, după asamblarea PICkit-2 Lite conform schemei originale a autorului.

Cipurile de memorie 24Cxx (24C08 etc.) sunt utilizate pe scară largă în echipamentele radio de uz casnic și, uneori, trebuie să fie flash, de exemplu, la repararea televizoarelor CRT. Ei folosesc memoria 24Cxx pentru a stoca setările.

Televizoarele LCD utilizează un alt tip de memorie (memorie flash). Am vorbit deja despre cum să flashi memoria unui televizor LCD. Daca e cineva interesat, arunca o privire.

Din cauza necesității de a lucra cu microcircuite din seria 24Cxx, a trebuit să „terminăm” programatorul. Nu am gravat o nouă placă de circuit imprimat, am adăugat pur și simplu elementele necesare pe placa de circuit imprimat. Asta s-a intamplat.

Miezul dispozitivului este un microcontroler PIC18F2550-I/SP.

Acesta este singurul cip din dispozitiv. MK PIC18F2550 trebuie să fie „flash”. Această operațiune simplă provoacă confuzie pentru mulți, deoarece apare așa-numita problemă „pui și ou”. Vă voi spune cum am rezolvat-o puțin mai târziu.

Lista pieselor pentru asamblarea programatorului. În versiunea mobilă, trageți tabelul la stânga (glisați stânga-dreapta) pentru a vedea toate coloanele acestuia.

Nume Desemnare Evaluare/Parametri Marca sau tipul articolului
Pentru partea principală a programatorului
Microcontroler DD1 microcontroler pe 8 biți PIC18F2550-I/SP
Tranzistoare bipolare VT1, VT2, VT3 KT3102
VT4 KT361
Dioda VD1 KD522, 1N4148
Dioda Schottky VD2 1N5817
LED-uri HL1, HL2 orice 3 volți, roșuȘi verde culori strălucitoare
Rezistoare R1, R2 300 ohmi
R3 22 kOhm
R4 1 kOhm
R5, R6, R12 10 kOhm
R7, R8, R14 100 ohmi
R9, R10, R15, R16 4,7 kOhmi
R11 2,7 kOhmi
R13 100 kOhm
Condensatoare C2 0,1 μ K10-17 (ceramic), analogi importați
C3 0,47 microni
Condensatoare electrolitice C1 100uF * 6,3V K50-6, analogi importați
C4 47 uF * 16 V
Inductor (sufocare) L1 680 uH tip unificat EC24, CECL sau de casă
Rezonator cu cuarț ZQ1 20 MHz
mufa USB XS1 tip USB-BF
Săritor XT1 orice tip de „salt”
Pentru panoul de instalare a microcontrolerului (MK)
panou ZIF XS1 orice panou ZIF cu 40 de pini
Rezistoare R1 2 kOhm MLT, MON (putere de la 0,125 W și mai sus), analogi importați
R2, R3, R4, R5, R6 10 kOhm

Acum puțin despre detalii și scopul lor.

Verde LED-ul HL1 se aprinde atunci când programatorul este alimentat și roșu LED-ul HL2 emite atunci când datele sunt transferate între computer și programator.

Pentru a oferi dispozitivului versatilitate și fiabilitate, se folosește o priză USB XS1 tip „B” (pătrată). Computerul folosește o priză USB de tip A. Prin urmare, este imposibil să amestecați prizele cablului de conectare. Această soluție contribuie și la fiabilitatea dispozitivului. Dacă cablul devine inutilizabil, acesta poate fi înlocuit cu ușurință cu unul nou, fără a recurge la lucrări de lipire sau instalare.

Ca inductor L1 de 680 µH, este mai bine să utilizați unul gata făcut (de exemplu, tipurile EC24 sau CECL). Dar dacă nu găsiți un produs finit, puteți face singur clapeta de accelerație. Pentru a face acest lucru, trebuie să înfășurați 250 - 300 de spire de fir PEL-0.1 pe un miez de ferită dintr-un inductor de tip CW68. Merită să luați în considerare faptul că, datorită prezenței PWM cu feedback, nu este nevoie să vă faceți griji cu privire la acuratețea ratingului inductanței.

Tensiunea pentru programarea de înaltă tensiune (Vpp) de la +8,5 la 14 volți este creată de regulatorul cheie. Include elementele VT1, VD1, L1, C4, R4, R10, R11. Impulsurile PWM sunt trimise de la pinul 12 al PIC18F2550 la baza VT1. Feedback-ul este furnizat de divizorul R10, R11.

Pentru a proteja elementele circuitului de tensiune inversă de la liniile de programare atunci când utilizați un programator USB în modul ICSP (Programare în serie în circuit), este utilizată o diodă VD2. VD2 este o diodă Schottky. Ar trebui să fie selectat cu o cădere de tensiune la joncțiunea P-N de cel mult 0,45 volți. De asemenea, dioda VD2 protejează elementele de tensiune inversă atunci când programatorul este utilizat în modul de conversie USB-UART și analizor logic.

Când utilizați programatorul exclusiv pentru programarea microcontrolerelor din panou (fără a utiliza ICSP), puteți elimina complet dioda VD2 (așa am făcut eu) și instalați în schimb un jumper.

Compactitatea dispozitivului este realizată de panoul universal ZIF (Zero Insertion Force - cu zero efort de instalare).

Datorită acestuia, puteți „conecta” un microcontroler în aproape orice pachet DIP.

Diagrama „Panoul de instalare a microcontrollerului (MK)” indică modul în care microcontrolerele cu carcase diferite trebuie instalate în panou. Când instalați MK, ar trebui să acordați atenție faptului că microcontrolerul din panou este poziționat astfel încât cheia de pe cip să fie pe partea laterală a pârghiei de blocare a panoului ZIF.

Acesta este modul în care trebuie să instalați microcontrolere cu 18 pini (PIC16F84A, PIC16F628A etc.).

Și aici sunt microcontrolere cu 8 pini (PIC12F675, PIC12F629 etc.).

Dacă trebuie să flashizați un microcontroler într-un pachet de montare la suprafață (SOIC), puteți utiliza un adaptor sau pur și simplu lipiți 5 pini la microcontroler care sunt de obicei necesari pentru programare (Vpp, Clock, Data, Vcc, GND).

Puteți găsi desenul final al plăcii de circuit imprimat cu toate modificările la linkul de la sfârșitul articolului. Prin deschiderea fișierului în programul Sprint Layout 5.0, folosind modul „Print”, nu numai că puteți imprima un strat cu un model de conductori imprimați, ci și să vizualizați poziționarea elementelor pe placa de circuit imprimat. Acordați atenție jumperului izolat care conectează pinul 6 al DD1 și pinul 21 al panoului ZIF. Trebuie să imprimați desenul pe tablă în imagine în oglindă.

Puteți face o placă de circuit imprimat folosind metoda LUT, precum și un marker pentru plăci de circuit imprimat, folosind tsaponlak (asta am făcut) sau metoda „creion”.

Iată o imagine a poziționării elementelor pe o placă de circuit imprimat (pe care se poate face clic).

La instalare, primul pas este să lipiți jumperii din fire de cupru cositorit, apoi să instalați elemente cu profil redus (rezistoare, condensatoare, cuarț, conector ISCP pin), apoi tranzistori și un MK programat. Ultimul pas este instalarea panoului ZIF, priza USB și etanșarea firelor în izolație (jumpers).

„Firmware” al microcontrolerului PIC18F2550.

Fișier cu firmware - PK2V023200.hex este necesar să scrieți PIC18F2550I-SP MK în memorie folosind orice programator care acceptă microcontrolere PIC (de exemplu, Extra-PIC). Am folosit programatorul JDM JONIC PROG și programul WinPic800.

Puteți încărca firmware-ul în MCU PIC18F2550 folosind același programator proprietar PICkit2 sau noua sa versiune PICkit3. Desigur, poți face asta cu un PICkit-2 Lite de casă, dacă unul dintre prietenii tăi a reușit să-l monteze înaintea ta :).

De asemenea, merită să știți că „firmware-ul” microcontrolerului PIC18F2550-I/SP (fișier PK2V023200.hex) este scris la instalarea programului PICkit 2 Programmer într-un folder împreună cu fișierele programului însuși. Locația aproximativă a fișierului PK2V023200.hex - „C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex” . Pentru cei care au o versiune de Windows pe 32 de biți instalată pe computer, calea locației va fi diferită: „C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex” .

Ei bine, dacă nu ați putut rezolva problema „pui și ou” folosind metodele propuse, atunci puteți cumpăra un programator PICkit3 gata făcut de pe site-ul AliExpress. Acolo costa mult mai ieftin. Am scris despre cum să cumpăr piese și kituri electronice de pe AliExpress.

Actualizarea firmware-ului programatorului.

Progresul nu stă pe loc și, din când în când, Microchip lansează actualizări pentru software-ul său, inclusiv pentru programatorul PICkit2, PICkit3. Desigur, putem actualiza și programul de control al PICkit-2 Lite de casă. Pentru a face acest lucru veți avea nevoie de programul PICkit2 Programmer. Ce este și cum se folosește - puțin mai târziu. Între timp, câteva cuvinte despre ce trebuie făcut pentru a actualiza firmware-ul.

Pentru a actualiza software-ul programatorului, trebuie să închideți jumperul XT1 de pe programator când acesta este deconectat de la computer. Apoi conectați programatorul la PC și lansați PICkit2 Programmer. Când XT1 este închis, modul este activat bootloader pentru a descărca noua versiune de firmware. Apoi, în PICkit2 Programmer, prin meniul „Tools” - „Download PICkit 2 Operation System”, deschideți fișierul hex pregătit anterior al firmware-ului actualizat. În continuare, va avea loc procesul de actualizare a software-ului programatorului.

După actualizare, trebuie să deconectați programatorul de la computer și să eliminați jumperul XT1. În modul normal, jumperul este deschis. Puteți afla versiunea software-ului de programare prin meniul „Ajutor” - „Despre” din programul PICkit2 Programmer.

Totul este legat de probleme tehnice. Și acum despre software.

Lucrul cu programatorul. Programator PICkit2.

Pentru a lucra cu programatorul USB, va trebui să instalăm programul PICkit2 Programmer pe computer. Acest program special are o interfață simplă, este ușor de instalat și nu necesită configurare specială. Este de remarcat faptul că puteți lucra cu programatorul folosind mediul de dezvoltare MPLAB IDE, dar pentru a flash-a/șterge/citi MK-ul este suficient un program simplu - PICkit2 Programmer. Vă recomand.

După instalarea programului PICkit2 Programmer, conectați programatorul USB asamblat la computer. În același timp, se va aprinde verde LED („putere”), iar sistemul de operare recunoaște dispozitivul ca „Programator de microcontroler PICkit2” și instalați driverele.

Lansați programul PICkit2 Programmer. Ar trebui să apară o inscripție în fereastra programului.

Dacă programatorul nu este conectat, fereastra programului va afișa un mesaj înfricoșător și instrucțiuni scurte „Ce să faci?” în limba engleză.

Dacă programatorul este conectat la un computer cu un MK instalat, programul îl va detecta la lansare și ne va anunța despre asta în fereastra PICkit2 Programmer.

Felicitări! Primul pas a fost făcut. Și am vorbit despre cum să utilizați programul PICkit2 Programmer într-un articol separat. Urmatorul pas .

Fișiere necesare:

    Manual de utilizare PICkit2 (rusă) ia sau.

S-a întâmplat că am început să fac cunoștință cu microcontrolerele cu AVR. Deocamdată am evitat microcontrolerele PIC. Dar, cu toate acestea, au și modele unice care sunt interesante de repetat! Dar și aceste microcontrolere trebuie să fie flash. Scriu acest articol în principal pentru mine. Pentru a nu uita de tehnologie, cum să flash un microcontroler PIC fără probleme și pierdere de timp.

Cum să programați microcontrolere PIC sau programator JDM simplu

Pentru primul circuit - am încercat mult și din greu să fac un programator PIC folosind circuite găsite pe Internet - nu a rezultat nimic. Este păcat, dar a trebuit să apelez la un prieten pentru a-mi emite MK-ul. Dar nu este o idee bună să alergi în mod constant cu prietenii! Același prieten a recomandat un circuit simplu care funcționează dintr-un port COM. Dar chiar și când l-am asamblat, nimic nu a funcționat. La urma urmei, nu este suficient să asamblați programatorul - trebuie, de asemenea, să personalizați programul pentru acesta, pe care îl vom folosi pentru a-l flash. Dar exact asta nu puteam face. Există o grămadă de instrucțiuni pe internet și puține dintre ele m-au ajutat...

Apoi, am reușit să flash un microcontroler. Dar, din moment ce făceam cusăturile sub presiune severă a timpului, nu m-am gândit să salvez măcar un link către instrucțiuni. Și nu am găsit-o după aceea. Prin urmare, repet - scriu un articol pentru a avea propriile instrucțiuni.

Deci, un programator pentru microcontrolere PIC. Simplu, deși nu 5 fire ca microcontrolerele AVR pe care le folosesc încă. Iată diagrama:

Aici este placa de circuit imprimat ().

Conectorul COM este lipit cu pini direct pe plăcuțele de contact (principalul este să nu se confunde cu numerotarea). Al doilea rând de pini este conectat la placă cu jumperi mici (am spus-o foarte neclar, da). Voi încerca să vă fac o fotografie... chiar dacă este înfricoșător (nu am o cameră normală în acest moment).
Cel mai rău lucru este că microcontrolerele PIC necesită 12 volți pentru firmware. Și e mai bine nu 12, ci puțin mai mult. Să zicem 13. Sau 13,5 (apropo, experți – corectați-mă în comentarii dacă greșesc. Vă rog.). 12 volți se mai pot obține undeva. Unde este 13? Pur și simplu am ieșit din situație - am luat o baterie litiu-polimer proaspăt încărcată, care avea 12,6 volți. Ei bine, sau chiar o baterie cu patru celule, cu 16 volți ai ei (am afișat un PIC așa - nicio problemă).

Dar m-am distras din nou. Deci - instrucțiuni pentru intermiterea microcontrolerelor PIC. Căutăm programul WinPIC800 (din păcate, icprog-ul simplu și popular nu a funcționat pentru mine) și îl setăm așa cum se arată în captură de ecran.

După aceea, deschideți fișierul firmware, conectați microcontrolerul și flash-l.

Am folosit programatorul JDM pentru controlere PIC16F676, PIC16F630Și PIC16F629. Versiunea mea diferă de cea originală prin faptul că tensiunea de programare Vpp poate fi aplicat înaintea tensiunii de alimentare Vdd pentru reprogramarea controlerelor. Tranzistorul din partea de sus a circuitului servește acestui scop. Se deschide atunci când tensiunea la pinul 3 al prizei DB9F atinge aproximativ 8 V în raport cu pinul 5 al prizei sau 13 V în raport cu minusul controlerului Vss. Intrerupator Vdd_Vppîn stare închis permite tensiunea de alimentare Vdd apar pe bornele controlerului înainte de tensiunea de programare Vpp.

Circuit programator JDM

Pentru programare, va fi folosit un port COM, care va folosi următorii pini - 3, 4, 5, 7 și 8. Circuitul include capacitatea de a programa cipuri de memorie ale seriei 24сХХ. Pentru a face acest lucru, cele 8 contacte inferioare sunt utilizate în blocul DIP16; primul contact al microcircuitului este introdus în al cincilea contact al blocului. Jumper J1 vă permite să dezactivați protecția la scriere.

Tranzistorul inferior din circuit, ca și înainte, este folosit pentru a schimba tensiunile, deoarece este un plus pentru sursa de alimentare a controlerului. Vdd se conectează la pinul 5 al prizei - firul comun al portului și minusul de putere Vss se obține folosind diode conectate la pinii 3 și 7 ai prizei și o diodă zener.

Tranzistoare utilizate în programatorul JDM 2SC945Și BC548, diode - 1N4148. Condensatorul u1 trebuie plasat cât mai aproape de pinii de alimentare a microcontrolerului. Rezistorul de 1k este opțional dacă rezistența de 10k și jumperul J1 sunt instalate pe blocul DIP16.

Acest programator funcționează cu succes cu programe și

Distribuie la:
Asamblarea rapidă a unui circuit care vă place pe un microcontroler nu este o problemă pentru mulți radioamatori. Dar mulți oameni care încep să lucreze cu microcontrolere se confruntă cu întrebarea cum să-l programeze. Una dintre cele mai simple opțiuni de programare este programatorul JDM.
Programmer ProgCode v 1.0 Acest program funcționează în WindowsXP. Permite programarea controlerelor PIC din familia de mijloc (PIC16Fxxx) prin portul COM al computerului. Indicatorul de conectare a programatorului (din colțul din dreapta sus al ferestrei) devine roșu dacă nu există niciun programator pe portul selectat în setări. Dacă programatorul este conectat, programul îl detectează și indicatorul din colțul din dreapta sus ia forma prezentată în Figura 1. Panoul de control este situat în partea stângă a ferestrei programului. Acest panou poate fi minimizat făcând clic pe butonul din bara de instrumente sau făcând clic pe marginea stângă a ferestrei (acest lucru este convenabil când fereastra programului este maximizată la ecran complet).

Figura (captură de ecran a programului ProgCode v1.0)


Dacă în program este încărcat un fișier HEX, atunci este recomandabil să selectați mai întâi în lista de controlere MK-ul pentru care este proiectat firmware-ul încărcat. Dacă acest lucru nu se face, atunci fișierul proiectat pentru un microcontroler cu o memorie mai mare decât cea selectată în listă va fi tăiat și părți din program se vor pierde - cu această opțiune de încărcare a fișierului, este afișat un avertisment.

Dacă acest lucru nu se întâmplă, atunci puteți selecta controlerul dorit după încărcarea fișierului în program.

Format de fișier SFR Programatorul ProgCode acceptă lucrul cu propriul format de fișier. Aceste fișiere au extensia .SFR și vă permit să stocați informații suplimentare despre programul destinat microcontrolerului. Acest fișier stochează informații despre tipul de microcontroler. Acest lucru vă permite să nu vă faceți griji cu privire la preselectarea tipului MK în setări atunci când încărcați un fișier SFR.

Setări de port și protocol la conectarea programatorului După instalarea programului, sunt setate în mod implicit toate setările care sunt necesare pentru ca programatorul să funcționeze cu circuitul JDM prezentat în această pagină.
Inversarea semnalului în circuitul de mai sus este necesară numai pentru ieșirea OutData, deoarece în acest circuit semnalul este inversat de tranzistorul de potrivire. Pe toți ceilalți pini, inversarea este dezactivată.



Întârzierea pulsului poate fi egală cu 0. Reglarea sa este oferită pentru cazurile de control „deosebit de dificile” care nu pot fi intermitente. Același lucru este valabil și pentru alocația pentru pauză de înregistrare - este zero în mod implicit. Dacă măriți aceste setări, timpul de programare a controlerului va crește semnificativ.

Caseta de validare „verificare la scriere” trebuie bifată dacă trebuie să verificați „din mers” tot ceea ce este scris în microcontroler pentru corectitudine și conformitate cu fișierul sursă. Dacă debifați această casetă, verificarea nu va fi efectuată deloc și nu vor apărea mesaje de eroare, chiar dacă astfel de erori există efectiv.
Selectați viteza portului - viteza poate fi oricare. Pentru un programator JDM, acest parametru nu are sens.

WindowsXP folosește tamponarea informațiilor transmise prin porturile COM. Acestea sunt așa-numitele tampon FIFO. Pentru a evita erorile la programarea prin JDM, acest mecanism trebuie dezactivat. Puteți face acest lucru în Windows Device Manager.

Accesați panoul de control, apoi:
Administrare - Management computer - Manager dispozitive

Apoi selectați portul la care este conectat programatorul JDM (de exemplu COM1) - uitați-vă la proprietăți - fila parametrii portului - suplimentar. Și debifați caseta „Utilizați tampon FIFO”

Figura - Configurarea unui port COM pentru a lucra cu un programator JDM



După aceasta, reporniți computerul.


Browser pentru proiecte locale În plus față de programarea directă a controlerelor, programul implementează un browser convenabil pentru proiecte pe MK, situat atât în ​​folderele locale de pe computer, cât și pe Internet. Acest lucru a fost făcut pentru ușurință în utilizare. Adesea, proiectele necesare sunt localizate în foldere diferite și trebuie să petreceți timp ajungând la directorul potrivit pentru a vizualiza proiectul. Aici puteți adăuga cu ușurință folderele necesare la lista de foldere și puteți vizualiza orice proiect cu două sau trei clicuri de mouse.

Când faceți dublu clic pe el în panoul browserului, orice fișier se va deschide în programul în sine - acest lucru este valabil pentru imagini, fișiere html, doc, rtf, djvu (cu pluginuri instalate), pdf, txt, asm. Fișierul poate fi deschis și făcând dublu clic într-un browser folosind un program extern instalat pe computer. Pentru a face acest lucru, extensia tipului de fișier dorit trebuie introdusă în lista „Asocieri de fișiere”. Dacă nu specificați calea către programul de deschidere, Windows va deschide fișierul în program în mod implicit (acest lucru este convenabil pentru deschiderea arhivelor care nu sunt întotdeauna deschise clar). Dacă în listă este specificată calea către programul de deschidere, fișierul se va deschide în programul specificat. Este convenabil să vizualizați fișiere precum SPL, LAY, DSN în acest fel.

Figura (captură de ecran a browserului programului ProgCode v1.0)



Iată cum arată fereastra de setări de asociere a fișierelor:




Browser de proiect pe Internet Browser de proiect de pe Internet, la fel ca browserul de proiect local, vă permite să accesați rapid site-ul dorit de pe Internet cu câteva clicuri, să vizualizați proiectul și, dacă este necesar, să flashați imediat programul în MK .



Când revizuiți proiecte pe Internet, dacă pe pagina proiectului există un link către un fișier cu extensia SFR (acesta este formatul de fișier al programului ProgCode), atunci când faceți clic pe el, un astfel de fișier se va deschide într-o nouă versiune. fila program și este imediat gata pentru a fi intermitent în microcontroler.
Lista de link-uri poate fi editată folosind butonul „Editare”. Aceasta va deschide o fereastră pentru editarea listei de link-uri:





Descrierea procesului de programare a cipurilor Cele mai multe cipuri moderne conțin memorie flash, care este programată folosind protocolul I2C sau protocoale similare.
Memoria reinscriptibilă se găsește în PIC, AVR și alte controlere, cipuri de memorie precum 24Cxx și altele similare, diverse carduri de memorie precum MMC și SD, carduri flash USB obișnuite care se conectează la computer printr-un conector USB. Să luăm în considerare scrierea informațiilor în memoria flash a microcontrolerului PIC16F628A.Există 2 linii DATE și CLOCK prin care se transmit informații. Linia CLOCK este folosită pentru a furniza impulsuri de ceas, iar linia DATA este folosită pentru a transmite informații.
Pentru a transfera 1 bit de informații către microcontroler, trebuie să setați 0 sau 1 (în funcție de valoarea bitului) pe linia de date (DATE) și să creați o cădere de tensiune (tranziție de la 1 la 0) pe linia de ceas ( CEAS).
Un bit pentru un controler nu este suficient. El așteaptă încă cinci pentru a percepe acest mesaj pe 6 biți ca o comandă. Controlerului îi plac foarte mult comenzile și trebuie să fie formate din 6 biți - așa este natura PIC16.
Iată lista și semnificația comenzilor pe care PIC le poate înțelege. Nu există atât de multe comenzi - vocabularul acestui controler este mic, dar să nu credeți că este complet stupid - există dispozitive cu mai puține comenzi „LoadConfiguration” 000000 - Încărcare configurație
"LoadDataForProgramMemory" 000010 - Se încarcă date în memoria programului
"LoadDataForDataMemory" - 000011 - Încărcarea datelor în memoria de date (EEPROM)
"IncrementAddress" 000110 - Mărește adresa PC MK
"ReadDataFromProgramMemory" 000100 - Citirea datelor din memoria programului
"ReadDataFromDataMemory" 000101 - Citirea datelor din memoria de date (EEPROM)
"BeginProgrammingOnlyCycle" 011000 - Începe ciclul de programare
„BulkEraseProgramMemory” 001001 - Ștergerea completă a memoriei programului
„BulkEraseDataMemory” 001011 - Ștergerea completă a memoriei de date (EEPROM)
"BeginEraseProgrammingCycle" 001000 - Începe un ciclu de programare Controlerul răspunde diferit la aceste comenzi. În moduri diferite, după emiterea comenzii, trebuie să continuați conversația cu el.
Pentru a începe un proces de programare complet, trebuie să aplicați, de asemenea, o tensiune de 12 volți la ieșirea MCLR a controlerului și apoi să aplicați tensiune de alimentare. În această secvență de alimentare cu tensiune există un anumit sens. După ce este aplicată alimentarea, dacă PIC-ul este configurat să ruleze de la oscilatorul RC intern, acesta poate începe să execute propriul program, ceea ce nu este permis la programare, deoarece eșecul este inevitabil.
Alimentarea preliminară cu 12 volți a MCLR vă permite să evitați o astfel de dezvoltare.
Când scrieți informații în memoria flash a programelor MK după comanda „LoadDataForProgramMemory” 000010 - Încărcarea datelor în memoria programului, datele în sine trebuie trimise controlerului - 16 biți,
care arată astfel: „0xxxxxxxxxxxxxx0”. Crucile din acest cuvânt sunt datele în sine, iar zerourile de la margini sunt trimise ca un cadru - acesta este standardul pentru PIC16. Există doar 14 biți semnificativi într-un cuvânt. Această serie de controlere are un format de reprezentare a comenzii de 14 biți.
După ce transmisia cuvântului de date s-a terminat, PIC-ul așteaptă următoarea comandă.
Deoarece scopul nostru este să scriem un cuvânt în memoria programului MK, următoarea comandă ar trebui să fie comanda
"BeginEraseProgrammingCycle" 001000 - Începeți ciclul de programare. După ce l-a primit, controlerul este deconectat de la lumea exterioară timp de 6 milisecunde, de care are nevoie pentru a finaliza procesul de înregistrare. Semnalele de la pinii microcontrolerului sunt generate de computer folosind programe speciale - programatori. Porturile COM, LPT sau USB pot fi folosite pentru transmiterea semnalului. Programe precum PonyProg, IsProg, WinPic800 funcționează cu programatorul JDM.
Circuitul de programare JDM Un circuit de programare foarte simplu este prezentat în figură. Deși acest circuit nu implementează controlul secvenței de alimentare cu tensiune, este foarte simplu și este posibil să se monteze un astfel de circuit foarte rapid, folosind un minim de piese.
Figura (circuit programator JDM)


Una dintre întrebările atunci când conectați un programator la un computer este cum să asigurați izolarea selectivă. Pentru a evita deteriorarea portului COM în cazul unei defecțiuni în circuit. Unele modele folosesc MAX232 IC, care asigură izolarea selectivă și potrivirea nivelului de semnal. În această schemă, problema este rezolvată mai simplu - prin utilizarea energiei bateriei. Nivelul semnalului care vine de la computer este limitat de diodele zener VD1, VD2 și VD3. În ciuda simplității circuitului programator JDM, acesta poate fi folosit pentru a programa majoritatea tipurilor de microcontrolere PIC.Jumperul dintre pinii COM6 (DSR) și COM7 (RTS) este proiectat astfel încât programul să poată determina dacă programatorul este conectat la computer .

Conexiunea ieșirilor programatorului la un anumit MK depinde de tipul MK. Adesea, pe placa de programare sunt montate mai multe panouri, care sunt proiectate pentru un anumit tip de controler.

Tabelul arată scopul picioarelor unor tipuri de MK în timpul programării.




Cifrele sunt prezentate cu alocarea pinilor celor mai obișnuite microcontrolere în timpul programării Pinout (pinout) a microcontrolerelor PIC16F876A, PIC16F873A într-un pachet DIP28.

Pinout-ul microcontrolerelor PIC16F874A, PIC16F877A în carcasă DIP40.
Pinout (pinout) al microcontrolerelor PIC16F627A, PIC16F628A, PIC16F648A în carcasă DIP18.
MCU-urile PIC16F84 și PIC16F84A au același aranjament de pini destinate programării.

Alocarea pinilor pentru microcontrolere din seria PIC16Fxxx, în funcție de tipul de carcasă, este în majoritatea cazurilor standard, dar dacă există vreo îndoială cu privire la acest lucru, atunci este cel mai de încredere să verificați fișa de date pentru o anumită instanță a MK. O parte din documentație este disponibilă pe site-ul web rusesc http://microchip.ru. O colecție completă de fișe de date și alte documentații se află pe site-ul web al producătorului de microcontroler PIC: http://microchip.com
Indexul proiectului Programul vă permite să mergeți direct la pagina de index, să vizualizați descrierea proiectului dorit în câteva clicuri și să introduceți imediat programul în controler.



Dacă trebuie să flashizați controlerul cu firmware-ul selectat, faceți clic pe fișierul SFR, de exemplu Timer_a.sfr
Programul descarcă fișierul de pe server într-o filă nouă.



După aceasta, tot ce rămâne este să introduceți MK-ul în soclul programatorului, dacă acest lucru nu a fost deja făcut, și să faceți clic pe butonul „Scrieți tot”.
Programul este înregistrat în MK. După aceasta, controlerul este introdus în placa dispozitivului și dispozitivul este gata de funcționare.

Puteți descărca programul pe pagina de descărcare a fișierului: http://cxema.my1.ru/load/proshivki/material_k_state_prostoj_jdm_programmator_dlja_pic_mikrokontrollerov/9-1-0-1613 Secțiunea:

Ca programator de bază, vă sugerăm să asamblați un programator compatibil JDM, pe care l-am numit programator NTV, folosind designul original. Mai jos este o diagramă a programatorului NTV (folosind o priză DB9; a nu fi confundat cu o mufă).

Programatorul a asamblat conform acestei scheme în mod repetat și cu precizie controlerele (și un număr de altele) și poate fi recomandat pentru repetare de radioamatorii începători.

Acest programator NU FUNCTIONEAZA atunci cand este conectat la laptopuri, deoarece... Nivelurile de semnal ale interfeței RS-232 (port COM) în sistemele mobile sunt subestimate. De asemenea, este posibil să nu funcționeze pe computerele moderne unde hardware-ul salvează curentul pe port. Așa că nu mă învinovăți, colectează-l și testează-l pe toate computerele care vin la îndemână.

Din punct de vedere structural, placa de programare este introdusă între contactele conectorului DB-9, care sunt lipite de plăcuțele de contact ale plăcii de circuit imprimat. Mai jos este un desen al plăcii și o fotografie a programatorului asamblat.



Pentru a completa informațiile, trebuie spus că există un alt programator similar pe care l-am asamblat pentru microcontrolere într-un pachet cu 8 pini ( și ). Programatorul funcționează excelent și cu aceste microcontrolere. Mai jos este un desen al tablei și fotografii.