Programator pic Ntv pentru microcontrolere recenzii compatibile jdm. Programator de casă pentru controlere PIC

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 buna solutieîl vei asambla singur. Iată o diagramă a dispozitivului propus (poate face clic pe imagini).

Partea 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 (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. Otrăvește unul nou placa de circuit imprimat Nu am făcut-o, doar am adăugat elementele necesare pe placa de circuit imprimat. Asta sa întâmplat.

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
Jumper XT1 orice tip de „salt”
Pentru panoul de instalare a microcontrollerului (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 de Joncţiunea P-N nu mai mult de 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 cu un marker pentru plăci de circuite imprimate, folosind tsaponlak (asta am făcut) sau folosind metoda „creionului”.

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. il recomand.

După instalarea programului PICkit2 Programmer, conectați programatorul USB asamblat la computer. În același timp, se va aprinde verde LED („putere”) și sistem 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. Următorul pas.

Fișiere necesare:

    Manual de utilizare PICkit2 (rusă) ia sau.

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 multe opțiuni simple programatori este programator JDM.

Programator ProgCode v 1.0

Acest program rulează pe WindowsXP. Permite programarea controlerelor PIC din familia de mijloc (PIC16Fxxx) prin portul COM al computerului. Indicator de conectare a programatorului (în dreapta colțul de sus fereastră) dacă nu există niciun programator pe portul selectat în setări, acesta devine roșu. Dacă programatorul este conectat, programul îl detectează și indicatorul din colțul din dreapta sus ia forma prezentată în Figura 1.

În partea stângă a ferestrei programului există un panou de control. 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 un program conceput pentru un microcontroler. 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 unui programator

După instalarea programului, în mod implicit sunt setate toate setările necesare pentru ca programatorul să lucreze cu circuitul JDM prezentat pe 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 prima de 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.


Local Project Explorer

Pe lângă programarea directă a controlerelor, programul oferă un browser convenabil pentru proiectele de pe MK, situat atât în ​​folderele locale ale computerului, cât și pe Internet. Acest lucru a fost făcut pentru ușurință în utilizare. Adesea, proiectele de care aveți nevoie sunt î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 înregistrată î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 Internet

Browserul 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 cipului

Majoritatea circuitelor integrate moderne conțin memorie flash care este programată folosind 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 sunt conectate la computer printr-un conector USB.

Să luăm în considerare scrierea informațiilor în memoria flash a unui microcontroler PIC 16 F 628 A

Există 2 linii DATE și CLOCK , prin care se transmiteinformaţii. Linia CEAS servește pentru a furniza impulsuri de ceas și linie DATE 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 PIC 16.
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 - Se încarcă configurația

"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)

Controlerul reacționează la aceste comenzi în moduri diferite. Î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 pinului MCLR al controlerului și apoi să aplicați o 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ă funcționeze de la oscilatorul RC intern, acesta poate începe să execute propriul program, ceea ce nu este permis la programare, deoarece defecțiunea 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ă comandă

"LoadDataForProgramMemory" 000010 - Se încarcă date în memoria programului

este necesar să trimiteți datele în sine către controler - 16 biți,
care arata asa:

„0xxxxxxxxxxxxxxx 0”.

Crucile din acest cuvânt sunt datele în sine, iar zerourile de la margini sunt trimise ca un cadru - acesta este standardul pentru PIC 16. Există doar 14 biți semnificativi într-un cuvânt. Această serie de controlere are o comandă de 14 biți format de reprezentare.
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 un ciclu de programare

După ce l-a primit, controlerul se deconectează 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 un 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.


Circuit programator JDM

Foarte circuit simplu programatorul 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 de programare JDM, acesta poate fi utilizat 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.

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 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 proiectelor

Programul vă permite să mergeți direct la pagina de index, să vizualizați descrierea proiectului dorit în câteva clicuri și să accesaț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.

Într-o zi m-am hotărât să asamblez un simplu LC-metru pentru pic16f628a și firește a trebuit să fie flash cu ceva. Aveam un computer cu port COM fizic, dar acum am doar USB și o placă pci-lpt-2com. Pentru început, am asamblat un programator JDM simplu, dar după cum s-a dovedit, nu a vrut să funcționeze nici cu placa pci-lpt-com, nici cu adaptorul usb-com (tensiune joasă a semnalelor RS-232). Apoi m-am grăbit să caut programatori USB pic, dar acolo, după cum s-a dovedit, totul s-a limitat la utilizarea scumpelor pic18f2550/4550, pe care desigur nu le aveam, și este păcat să folosesc astfel de MK-uri scumpe dacă am rareori fac ceva la varfuri (prefer av- Da, flash-ul nu este o problema, sunt mult mai ieftine, si mi se pare ca e mai usor sa scrii programe pe ele). După ce s-a scufundat mult timp pe Internet într-unul dintre numeroasele articole despre programatorul EXTRA-PIC și diferitele sale variante, unul dintre autori a scris că extrapic funcționează cu orice porturi com și chiar cu un adaptor usb-com.

Circuitul acestui programator folosește un convertor de nivel logic max232.

M-am gândit că, dacă folosești un adaptor usb, ar fi foarte stupid să transformi usb în usart TTL, TTL la RS232, RS232 înapoi la niveluri TTL de două ori, dacă poți doar să preiei semnalele TTL ale portului RS232 de la usb- cip convertor usart.

Așa am făcut-o. Am luat cipul CH340G (care are toate cele 8 semnale porturi com) și l-am conectat în loc de max232. Și asta s-a întâmplat.

În circuitul meu există un jumper jp1, care nu este în vârful suplimentar, l-am instalat pentru că nu știam cum se va comporta ieșirea TX la nivel TTL, așa că am făcut posibilă inversarea lui pe NAND-ul liber rămas. element și, după cum sa dovedit, am avut dreptate, există unul logic la pinul TX și, prin urmare, există 12 volți la pinul VPP atunci când este pornit, dar nu se va întâmpla nimic în timpul programării (deși puteți inversa TX în software) .

După asamblarea plăcii, a venit timpul pentru testare. Și aici a venit principala dezamăgire. Programatorul a fost identificat imediat (cu programul ic-prog) și a început să lucreze, dar foarte încet! În principiu - așa cum era de așteptat. Apoi, în setările portului com am setat viteza maximă (128 kilobaud) și am început să testez toate programele găsite pentru JDM. Ca rezultat, PicPgm s-a dovedit a fi cel mai rapid. Pic16f628a meu a fost complet flash (hex, eeprom și config) plus verificare timp de aproximativ 4-6 minute (citirea este mai lentă decât scrierea). Funcționează și IcProg, dar mai lent. Nu au existat erori de programare. De asemenea, am încercat să flash eeprom 24c08, rezultatul este același - totul coase, dar foarte încet.

Concluzii: programatorul este destul de simplu, nu conține piese scumpe (CH340 - 0,3-0,5 $, k1533la3 poate fi găsit în general printre gun-urile radio), funcționează pe orice computer, laptop (și poți folosi chiar și tablete pe Windows 8/10). ). Contra: este foarte lent. De asemenea, necesită alimentare externă pentru semnalul VPP. Drept urmare, mi s-a părut că pentru clipirea rar a vârfurilor, aceasta este o opțiune ușor de repetat și ieftină pentru cei care nu au un computer vechi cu porturile necesare la îndemână.

Iată o fotografie a dispozitivului terminat:

După cum spune cântecul, „L-am făcut din ceea ce a fost”. Setul de piese este foarte divers: atât SMD, cât și DIP.

Pentru cei care îndrăznesc să repete circuitul, aproape oricare va fi potrivit ca convertor usb-uart (ft232, pl2303, cp2101 etc.), în loc de k1533la3, k555 va fi potrivit, cred că chiar și seria k155 sau analog străin 74als00 , poate funcționa chiar și cu elemente logice NOT de tipul k1533ln1. Îmi atașez propria placă de circuit imprimat, dar oricine poate redesena cablajul acolo pentru elementele disponibile.

Lista radioelementelor

Desemnare Tip Denumirea Cantitate NotaMagazinBlocnotesul meu
IC1 ChipCH340G1 La blocnotes
IC2 ChipK1533LA31 La blocnotes
VR1 Regulator liniar

LM7812

1 La blocnotes
VR2 Regulator liniar

LM7805

1 La blocnotes
VT1 Tranzistor bipolar

KT502E

1 La blocnotes
VT2 Tranzistor bipolar

KT3102E

1 La blocnotes
VD1-VD3 Dioda redresoare

1N4148

2 La blocnotes
C1, C2, C5-C7 Condensator100 nF5 La blocnotes
C3, C4 Condensator22 pF2 La blocnotes
HL1-HL4 LEDOrice4 La blocnotes
R1, R3, R4 Rezistor

1 kOhm

3

Programatorul propus se bazează pe o publicație din revista „Radio” nr. 2, 2004, „Programarea modernă PIC16, PIC12 pe PonyProg”. Acesta este primul meu programator pe care l-am folosit pentru a flash cipuri PIC acasă. Programatorul este o versiune simplificată a programatorului JDM, circuitul original are un convertor RS-232 la TTL sub forma unui microcircuit MAX232, este mai universal, dar nu îl puteți asambla „în genunchi”. Acest circuit nu are deloc o singură componentă activă, nu conține piese rare și este foarte simplu, poate fi asamblat fără utilizarea unei plăci de circuit imprimat.

Orez. 1: Diagrama schematică programator

Descrierea funcționării circuitului
Circuitul programatorului este prezentat în Fig. 1. Rezistoarele din circuitele CLK (tac), DATE (informații), Upp (tensiune de programare) servesc la limitarea fluxului de curent. Controlerele PIC sunt protejate de defecțiuni prin diode zener încorporate, astfel încât există o anumită compatibilitate între logica TTL și RS-232. Circuitul prezentat conține diode VD1, VD2, care „preiau” tensiunea pozitivă de la portul COM în raport cu pinul 5 și o transferă pentru a alimenta controlerul, datorită cărora, în unele cazuri, este posibil să scăpați de o sursă de alimentare suplimentară.

Configurare
În practică, nu se întâmplă întotdeauna ca acest programator să funcționeze fără ajustare, la prima încercare, pentru că... Funcționarea acestui circuit depinde în mare măsură de parametrii portului COM. Cu toate acestea, pentru mine, pe două plăci de bază Gigabyte 8IPE1000 și WinFast sub XP, totul a funcționat imediat. Dacă ești prea leneș să faci față unui circuit de programare stricat și mai complex, atunci ar trebui să încerci să îl asamblați pe acesta. Iată câteva lucruri care pot afecta:

Cu cât covorașul este mai nou. bord, dezvoltatorii acordă mai puțină atenție acestor porturi, deoarece aceste porturi au devenit de mult învechite. Puteți scăpa de acest lucru achiziționând un adaptor USB-COM, deși din nou dispozitivul achiziționat poate să nu fie potrivit. Parametrii necesari sunt următorii: tensiunea variabilă trebuie să se schimbe cel puțin de la -10V la +10V (log. 0 și 1) în raport cu al 5-lea pin al conectorului. Curentul furnizat trebuie să fie cel puțin astfel încât atunci când un rezistor de 2,7 kOhm este conectat între al 5-lea contact și contactul testat, tensiunea să nu scadă sub 10V (eu nu am văzut astfel de plăci). De asemenea, portul trebuie să determine corect tensiunile care provin de la controler la un nivel de tensiune apropiat de 0V, dar nu mai mult de 2V, se determină zero și, în consecință, la un nivel de tensiune peste 2V, se determină unul.

Problemele pot apărea și din cauza software-ului.
Acest lucru este valabil mai ales pentru sistemul de operare LINUX, deoarece... Datorită prezenței unor emulatori precum wine, VirtualBox, este posibil ca porturile să nu funcționeze corect și sunt necesare o mulțime de capabilități de la acestea. Voi aborda aceste probleme mai detaliat într-un alt articol.

Cunoscând aceste caracteristici, să începem configurarea.
Pentru aceasta, este foarte de dorit să aveți programul ICProg 1.05D.
În meniul programului, trebuie mai întâi să selectați setarea corespunzătoare din setări. port (COM1. COM2), selectați programator JDM. Apoi deschideți fereastra „Verificare hardware”, în meniul „Setări”. În acest meniu, trebuie să verificați casetele una câte una și să utilizați un voltmetru pentru a măsura tensiunea la contactele conectorului conectat. Dacă parametrii de tensiune nu corespund normei, atunci, din păcate, aceasta poate fi cauza inoperabilității, atunci va trebui să asamblați un circuit cu un convertor RS-232 TTL. După ce ați verificat toate casetele, trebuie să vă asigurați că la dioda zener este generată o tensiune de alimentare de aproximativ 5V. Dacă tensiunile sunt normale și nu există erori de instalare, atunci totul ar trebui să funcționeze. Punem controlerul în priză, deschidem firmware-ul, îl programăm. Nu este nevoie să activați casetele de selectare precum „Inversați datele afară” (toate sunt debifate). De asemenea, nu uitați că unele loturi de controlere pot avea parametri nestandard și nu este posibil să le flashați în astfel de cazuri, cu acest programator, puteți încerca doar să reduceți tensiunea de alimentare de la 5V la 3-4V; conectându-se în consecință. diodă zener, uitați-vă la controler pentru activarea eronată a modului LVP (programare de joasă tensiune), cum să o preveniți, puteți citi pe Internet pentru un anumit tip de controler. Probabil că este posibilă creșterea tensiunii de programare a controlerului problematic doar prin complicarea circuitului prin introducerea unei etape de amplificare cu un emițător comun, alimentat de la o sursă suplimentară de alimentare.

Acum să vorbim mai multe despre problema cu sursa de alimentare a dispozitivului. Programatorul a fost testat cu programe ICProg și consola picprog sub Linux, ar trebui să funcționeze cu oricare care acceptă JDM dacă conectați o sursă de alimentare suplimentară (este conectat printr-un rezistor de 1 kOhm la dioda zener, diode cu rezistențe în acest caz pot fi complet exclus). Faptul este că algoritmii de control al programatorului pentru software individual sunt diferiți, programul ICProg este cel mai nepretențios. S-a observat că în sistemul de operare Windows, acest program a ridicat tensiunea de alimentare necesară pe pinul 2 nefolosit, același program sub emulator din Linux la un alt covor. Placa nu a mai putut face acest lucru, dar a fost găsită o cale de ieșire prin preluarea energiei de la tensiunea de programare. În general, cred că puteți utiliza acest programator cu ICProg fără putere suplimentară. Cu alte programe, acest lucru este puțin probabil să fie garantat, de exemplu, picprog-ul „nativ” din depozitele Ubuntu fără alimentare pur și simplu nu detectează programatorul, afișând mesajul „Hardware-ul JDM nu a fost găsit”. Probabil ori primeste niste date fara a aplica tensiunea de programare, ori o face prea repede, astfel incat condensatorul de filtru nu are inca timp sa se incarce.



Ți-a plăcut articolul? Împărtășește-l
Top