Cuprins:

Înțelegerea ICSP pentru microcontrolerele PIC: 4 pași (cu imagini)
Înțelegerea ICSP pentru microcontrolerele PIC: 4 pași (cu imagini)

Video: Înțelegerea ICSP pentru microcontrolerele PIC: 4 pași (cu imagini)

Video: Înțelegerea ICSP pentru microcontrolerele PIC: 4 pași (cu imagini)
Video: Cum se încarcă un fișier HEX într-un microcontroler folosind PICKit 2 2024, Iulie
Anonim
Înțelegerea ICSP pentru microcontrolerele PIC
Înțelegerea ICSP pentru microcontrolerele PIC

Programarea microcontrolerelor nu este grea. Construirea unui programator face un mare proiect de electronică. Scopul acestui instructable este de a explica metoda simplă „în circuit serial de programare” utilizată cu microcip PIC-uri.

Pasul 1: De ce ICSP?

De ce ICSP?
De ce ICSP?

Programarea unui cip mare DIP (prin gaură) este ușoară. Introduceți-l într-un programator cu soclu, ardeți și reveniți la circuitul aplicației. Testați și repetați.

Lucrurile devin mai dificile cu jetoanele mai mici (montate pe suprafață). Nu există prize standard pentru QFN, SSOP, QFP sau chiar pachetele SOIC.300 mari. Există clipuri foarte scumpe (100 de dolari) care se pot atașa și programa aceste jetoane. Este necesar un clip diferit pentru fiecare tip de cip și numărul de pini pe care îl utilizați. Există o alternativă. Se numește ICSP. ICSP înseamnă „în circuit serial programator (ing?)”. Este un mod de a programa un PIC în timp ce este încă atașat la circuitul aplicației. Așa este, nu mai există schimb de cipuri. De ce ICSP? 1. Nu există prize de programare pentru cipuri de pachet mic. Clipurile sunt scumpe. 2. Este o durere să mutați jetoanele din programator în timpul dezvoltării. Imposibil pentru piesele de montare la suprafață.

Pasul 2: Ce este ICSP?

Ce este ICSP?
Ce este ICSP?
Ce este ICSP?
Ce este ICSP?
Ce este ICSP?
Ce este ICSP?
Ce este ICSP?
Ce este ICSP?

Sunt necesare cinci conexiuni pentru a programa un PIC în timp ce este atașat la un circuit de aplicație. Am adăugat un antet cu 5 pini pe circuitele mele pentru a face această conexiune rapidă și ușoară. Noțiunile de bază ale programării PIC. Sunt necesare cinci conexiuni pentru a programa un PIC. Alimentare, împământare, tensiune de programare, ceas și date. + (Vdd) / - (Vss) Acestea sunt conexiunile de alimentare și de împământare (Vdd, Vss). Destul de standard. Dacă utilizați un programator cu niveluri de tensiune „reale” (NU un JDM2!), Aplicația dvs. poate rula de la propria sursă de alimentare atunci când este programată, eliminând aceste conexiuni. Vpp Aceasta este tensiunea de programare. PIC-urile intră în modul de programare atunci când ~ 13 volți sunt plasate pe pinul MCLR / Vpp (de obicei pinul 1 pe PIC-urile moderne, mai multe despre cel de mai jos). firmware. Acestea sunt de obicei aceleași pini ca PORTB6 și PORTB7. Exercițiu: Identificați punctele de conexiune ICSP de pe PIC-uri în imaginile de mai jos. Dacă PIC se potrivește, purtați-l. Am multe întrebări despre designul meu JDM2 pe instructabile. Cel mai frecvent este „Va programa PIC X? '”' - iată cum puteți spune: 1) Uitați-vă la fișa tehnică. Găsiți „Diagrama pinului” care arată ca imaginea de mai jos. 2) Identificați locația pinilor care trebuie conectați pentru programare (Vpp, Vdd, Vss, date și ceas). 3) Uitați-vă la conexiunea socket de pe programator. Puteți asorta pinii necesari cu o priză de pe programator?

Pasul 3: Cum ICSP?

Cum ICSP?
Cum ICSP?
Cum ICSP?
Cum ICSP?
Cum ICSP?
Cum ICSP?
Cum ICSP?
Cum ICSP?

În funcție de design, puteți face acum toate conexiunile necesare și puteți programa PIC. Există câteva capturi despre care ar trebui să știți. Proiectarea pentru ICSP este importantă. Microchip oferă o notă frumoasă despre aplicația PDF despre proiectarea pentru ICSP. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011744 Iată câteva sfaturi și exemple de modele ICSP din instructabilele mele anterioare. Sfat # 1, Nivel de amenințare: Important Nu conectați nimic altceva la Ceas și pinii DATA (de obicei RB6 și RB7, PGC și PGD). Doar nu o faceți. Există situații în care tipurile de inginerie foarte inteligente scapă de ea, dar nu o fac. Componentele atașate pinilor vor distorsiona ceasul și semnalele de date, rezultând o programare imprevizibilă. În plus, dacă vreți vreodată să utilizați un debugger serial în circuit, nu puteți. Sfat # 2 Nivel de amenințare: Exploziv Utilizați întotdeauna o diodă între tensiunea de programare și tensiunea sistemului. Dacă utilizați MCLR (master clear) pe un PIC trebuie să furnizați o anumită tensiune pe pinul MCLR printr-un rezistor de 10 Kish. Acesta este și pinul la care veți aplica ~ 13 volți pentru a intra în modul de programare. Am pus o diodă 1n4148 (echivalentă) între rezistor și pinul MCLR / Vpp (așa cum se arată în schematică și redarea de mai jos). Acest lucru menține tensiunea de programare pe pinul Vpp, împiedicând distrugerea altor componente de pe placa dvs. Sfat # 3 Nivel de amenințare: (re) obosit Programarea cu tensiune scăzută vă împiedică, omule. Nu am avut niciodată succes cu LVP. Nu l-am văzut niciodată funcționând (în mod constant) cu ochii mei. Mușcați glonțul și cheltuiți 2,50 USD pentru a construi un programator JDM2.

Pasul 4: Programatori ICSP

Programatori ICSP
Programatori ICSP
Programatori ICSP
Programatori ICSP

ICSP nu necesită un protocol de programare diferit. Un programator bazat pe socket produce deja semnalizarea necesară, dar o trimite către socket mai degrabă decât prin fire. Majoritatea programatorilor socket pot fi folosiți ca ICSP prin instalarea firelor de la priză la circuitul aplicației. De exemplu, programatorul original JDM2 (aici: https://www.jdm.homepage.dk/newpic.htm) poate fi utilizat pentru efectuați programarea ICSP aducând cele 5 semnale necesare într-un antet. Acest lucru poate fi văzut în programator aici: https://www.belza.cz/digital/jdm.htm. Pentru a menține lucrurile la îndemână, am refăcut acest design în Eagle Cad și l-am atașat acestui instructiv. Urmăriți orientarea tranzistorului, una dintre urme ar putea fi incorectă (am făcut asta acum mai bine de un an, nu-mi mai amintesc). În mod similar, programatorul meu actualizat JDM2 (aici: https://www.instructables.com/id/EN28KZDDYVEP286GRI/) poate fi utilizat pentru ICSP prin lipirea firelor în prizele DIP și conectarea lor la PIC-ul țintă. ***** JDM2 utilizează tensiuni funky … conectați-l la circuit FĂRĂ alimentare externă (sau chiar la masă) conectată la circuitul aplicației. Scoateți conexiunile ICSP înainte de a alimenta. Eșecul de a face acest lucru nu este distructiv, dar va avea ca rezultat eșecul de programare ******* O altă opțiune este un (semi-) programator ICD adecvat. ICD vă permite să controlați executarea firmware-ului pe PIC prin setarea punctelor de întrerupere în cod sau citirea valorilor de memorie și port. Un ICD poate anima, de asemenea, execuția codului, alimenta circuitul aplicației și poate programa PIC. Face toate acestea prin aceeași conexiune ICSP cu 5 pini pe care am discutat-o. Mai multe clone ICSP pe care le puteți crea singure pot fi văzute aici: https://www.icd2clone.com/wiki/Main_Page. Am construit PiCS (rev. B) acum câteva luni și îl ador.

Recomandat: