AVR-microcontrolere oferă utilizatorului cu mai multe interfete de programare diferite. Acest lucru este în concordanță cu programarea de înaltă tensiune, programarea secvențială la joasă tensiune prin SPI, programare paralelă de înaltă tensiune pentru programare și interfață JTAG. Primul tip de programare se găsește doar în modelele ATtiny familia AVR, acesta din urmă - disponibil în unele modele mai vechi ale familiei. ATmega modele cu cele mai avansate periferice pot suporta până la trei interfețe diferite de programare.
Marea majoritate a AVR-microcontroler, de asemenea, capabil de auto-programare, astfel încât să puteți modifica conținutul memoriei program direct de programul de utilizator. În afară de memorie flash poate fi reprogramat în modul de depanare printr-o interfață cu un singur fir dW, este disponibil într-un număr de ATmega și toate noile modele de modele ATtiny.
Programarea la tensiuni înalte (paralele și seriale) necesită un număr substanțial de pinii microcontrolerului și sursa de tensiune suplimentară de 12 V. Din acest motiv, programatorii design-ul este destul de complicată. Atunci când o tensiune ridicată se realizează prin programarea viteza maximă de scriere și oferă acces maxim la resursele AVR. Cel mai adesea, acest tip de software este utilizat în producția de fabrică pe scară largă.
interfață JTAG este foarte util în cazurile în care aveți nevoie pentru a menține programare și depanare într-un singur ciclu de dezvoltare. Din păcate, JTAG are nu toate modelele AVR, și programatori de proprietate sunt bani considerabile.
Mai ales de joasă tensiune de programare serială
Pentru a comunica cu programare microcontroler de programare secvențială folosind joasă tensiune SPI modul hardware. Aceasta este o soluție foarte practic de a utiliza numărul minim de pini și de a schimba algoritmii de funcționare a dispozitivului de pre-lipire la bord. Deoarece acesta din urmă cauzele de programare prin intermediul SPI este, de asemenea, numit în circuit de programare sau chiar ISP-ul (în sistemul de programare).
În circuit de programare va necesita utilizarea microcontrolerului într-un total de 5 ieșiri. Această linie modulul 3 SPI (MISO, MOSI, SCK) și RESET ieșire sârmă comune GND. În modelele ATmega familia având la bord 64 și un flash-Kbytes de memorie, în schimb MISO, MOSI utilizate terminalele DOP și IGP, respectiv. În cazul în care programator și microcontrolerul este alimentat de o singură sursă, nevoia suplimentară ca ieșire VCC, care face legătura între magistrala de alimentare. Traducere modul de programare microcontroler prin aplicarea unui nivel scăzut logica pe linia RESET. Lungimea bucla de conectare programator la dispozitivul nu trebuie să depășească 15 ... 20 cm.
Fig.1A Cablarea programator la
în circuit de programare microcontroler
Figura 1 prezintă schema de conectare cu AVR-programare microcontroler, în timpul programării prin ISP. Pentru linii operare secvențial mai fiabile MISO, MOSI, SCK se recomandă să se includă o rezistență nominală mică. dispozitiv de alimentare și programator nu ar trebui să aibă prea mare diferență. In circuit de programare a două sau mai multe microcontrolere asemenea posibile (1b). În acest caz, este necesar să ne amintim o condiție importantă: atunci când un singur microcontroler de programare activă trebuie să fie pe autobuz. Prin urmare, atunci când proiectarea bord în avans este necesar pentru a furniza comutatoare (jumperii J1, J2 1b), prin care este posibil să se aplice în mod selectiv de tensiune la fiecare microcontroler programabil. După programarea modulului SPI sau o linie de intrare-ieșire care coincide cu MISO, MOSI și SCK, pot fi utilizate în scopul propus.
Atunci când în circuit de programare pentru citire și scriere sunt disponibile memorie flash program, biți de protecție a datelor EEPROM-memorie și de control fuse-biți. În plus, calibrarea se poate citi și ID-ul celulei al celulei.
Fig.1A Cablarea programator la
Programarea în circuit de 2 sau mai multe microcontrolere
Modificări în unele fuse-biți trebuie făcută cu mare precauție. Mai ales dacă demonteze microcontroler nu mai este posibilă. Aceasta se referă în principal biți RSTDISBL și DWEN (dacă sunt disponibile). Pentru a reseta oricare dintre acestea, în viitor, va face imposibilă utilizarea microcontroler linia RESET. Când RSTDISBL = linia de ieșire 0 RESET este configurat ca port de intrare-ieșire și la DWEN = 0 - RESET de intrare este o singură interfață de depanare sârmă dW. Firește, în ambele cazuri, activitatea de programare microcontroler este blocat. De asemenea, în timpul în circuit microcontrolere AVR de programare trebuie să lucreze pe cont propriu sursa de ceas, alegerea pe care aceasta are loc biți CKSEL3: CKSEL0. Dacă reglarea lor efectuată incorect (de exemplu, în loc de interne RC-oscilatorul, este selectat un rezonator cristal extern), atunci dispozitivul poate opta să funcționeze. Un alt fuse-biți, care ar trebui să fie amintit - o SPIEN. SPIEN nu este disponibil în timpul joasă tensiune de programare în serie. Cu toate acestea, instalarea sa cu programare în orice alt mod ar interzice locuri de muncă modul SPI. Reamintim că activat Fuzibili biți corespunde logicii 0 stare.
Toate microcontrolere AVR disponibile comercial optimizat inițial pentru programarea în circuit. Biții DWEN, RSTDISBL, SPIEN sunt 1, 1 și 0, respectiv, și CKSEL3: set CKSEL0, astfel încât ca sursa de ceas este pornit intern RC-oscilator (în mod tipic la 1 MHz), necesită nici orice piese suplimentare .