Kazalo:

Programiranje ATTiny85, ATTiny84 in ATMega328P: Arduino kot ISP: 9 korakov (s slikami)
Programiranje ATTiny85, ATTiny84 in ATMega328P: Arduino kot ISP: 9 korakov (s slikami)

Video: Programiranje ATTiny85, ATTiny84 in ATMega328P: Arduino kot ISP: 9 korakov (s slikami)

Video: Programiranje ATTiny85, ATTiny84 in ATMega328P: Arduino kot ISP: 9 korakov (s slikami)
Video: Программирование МК AVR. УРОК 38. Atmega 328p Pro Mini 2024, Julij
Anonim
Programiranje ATTiny85, ATTiny84 in ATMega328P: Arduino kot ISP
Programiranje ATTiny85, ATTiny84 in ATMega328P: Arduino kot ISP
Programiranje ATTiny85, ATTiny84 in ATMega328P: Arduino kot ISP
Programiranje ATTiny85, ATTiny84 in ATMega328P: Arduino kot ISP

Predgovor

Pred kratkim sem razvijal nekaj projektov IoT, ki temeljijo na ESP8266, in ugotovil, da se jedrni procesor trudi izvesti vse naloge, ki sem jih potreboval za upravljanje, zato sem se odločil, da bom nekatere manj pomembne dejavnosti razdelil na različne mikrokrmilnike v na ta način osvobodite ESP8266, da nadaljuje svojo nalogo naprave IoT.

Ker sem hotel svoj projekt objaviti čim širšemu občinstvu, sem se odločil za uporabo Arduino IDE kot izbrane razvojne platforme, saj ima tako široko podprto skupnost.

Oblikovalske omejitve

Da bi zagotovil razumen razpon ciljnih naprav, ki omogočajo izbiro ustreznega mikrokrmilnika za posamezno aplikacijo, sem se odločil za naslednje dele podjetja Atmel; ATMega328P, ATTiny84 in ATTiny85. Da bi omejili kompleksnost potrebnega programerja, sem omejil izbiro ure na notranjo za vse naprave in 16 MHz na zunanjo samo za ATMega328P in ATTiny84.

Sledi zbirka zapiskov o programiranju z Arduinom in opis, kako sem sestavil preprost programer, ki temelji na Arduino Uno za te naprave (slike zgoraj).

Katere dele potrebujem?

Za izdelavo programatorja boste potrebovali naslednje dele

  1. 1 off Arduino Uno
  2. 2 izhodni 28 -polni DIP vtičnici Zero Insertion Force (ZIF) (za držanje ATMega328P, ATTiny85, ATTiny84)
  3. 1 off Artuino prototip ščit (tukaj imam svojega;
  4. 2 izklopa 5 mm LED
  5. 2 od 1K uporov
  6. 1 off 10K upor
  7. 4 off 22pF keramični kondenzatorji
  8. 2 kristala s 16 MHz
  9. 3 off 0,1uF keramični kondenzatorji
  10. 1 off 47uF elektrolitski kondenzator
  11. 1 off 10uF elektrolitski kondenzator
  12. Žica za zavijanje različnih dolžin.

Kakšno programsko opremo potrebujem?

Arduino IDE 1.6.9

Kakšne veščine potrebujem?

  1. Poznavanje Arduino IDE
  2. Nekaj znanja o elektroniki in kako spajkati
  3. Velika mera ročne spretnosti
  4. Veliko potrpljenja in dobrega vida

Zajete teme

  1. Splošni uvod v programiranje mikrokontrolerjev Atmel
  2. ISP ali zagonski nalagalnik: Vse je nekoliko zmedeno
  3. Pregled vezja
  4. Nastavitev programatorja
  5. Uporaba programatorja ponudnikov internetnih storitev Arduino
  6. Razvoj kode v vašem ciljnem sistemu
  7. Razumem
  8. Zaključek
  9. Uporabljene reference

Zavrnitev odgovornosti

Kot vedno uporabljate ta navodila na lastno odgovornost in niso podprta

1. korak: Splošen uvod v programiranje mikrokontrolerjev Atmel

Splošni uvod v programiranje mikrokontrolerjev Atmel
Splošni uvod v programiranje mikrokontrolerjev Atmel
Splošni uvod v programiranje mikrokontrolerjev Atmel
Splošni uvod v programiranje mikrokontrolerjev Atmel
Splošni uvod v programiranje mikrokontrolerjev Atmel
Splošni uvod v programiranje mikrokontrolerjev Atmel

Za programiranje mikrokrmilnikov Atmel sta na voljo dve metodi;

  1. Pri sistemskem programiranju (ISP),
  2. Samoprogramiranje (preko zagonskega nalagalnika).

Prva metoda (1) mikroprocesor neposredno programira prek vmesnika SPI po tem, ko je naprava ponastavljena. Če ni naročeno drugače, se sestavljen izvršljivi izvorni program v napravo postopoma zapiše v kodni pomnilnik, od koder se izvede ob zagonu. Obstaja veliko naprav ponudnikov internetnih storitev, ki lahko programirajo naprave Atmel, od katerih jih je nekaj (slika 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Slika 2 prikazuje, kako se naprava ISP poveže z ATMega328P (nenavadno označen ICSP) na plošči Arduino Uno R3 (slika 3 prikazuje pin ISP). Možno je tudi programiranje mikrokrmilnika Atmel prek njegovega vmesnika SPI z uporabo Arduino Uno kot ponudnika internetnih storitev (slika 4), tukaj se Uno uporablja za programiranje ATMega328P.

Slednja metoda (2) uporablja majhno kodo, imenovano "zagonski nalagalnik", ki je stalno nastanjena v izvršljivem pomnilniku kod (običajno zaklenjena, da se prepreči nenamerno prepisovanje slika 5). Ta koda se najprej izvede ob vklopu ali ponastavitvi naprave in omogoča mikrokontrolerju, da se znova programira z novo kodo, prejeto prek enega od njegovih vmesnikov od zunanjega vira. Arduino IDE uporablja metodo zagonskega nalagalnika za ponovno programiranje Arduinosa, preslikanega kot vrata USB comm v računalniku (ali MAC, Linux box itd., Slika 6), v primeru Arduino Uno pa komunicira z napravo Atmel prek serijski vmesnik na IC 2 in 3 ATMega328P. Tudi Arduino Uno (z odstranjenim mikrokrmilnikom ATMega328P) je mogoče uporabiti za programiranje ATMega328P z metodo zagonskega nalagalnika, ki učinkovito deluje kot naprava USB z zaporednim vmesnikom (slika 7).

Kaj je USB -serijski adapter?

Vmesnik USB v serijsko je kos strojne opreme, ki se priključi na vrata USB vašega računalnika in je videti kot serijska vrata Com (dediščina iz prejšnjih časov, ko so računalniki uporabljali serijski komunikacijski standard, znan kot EIA-232, V24 ali RS232), ki vam omogoča, da pošiljanje in sprejemanje serijskih podatkov na istih električnih nivojih mikrokrmilnika. Ko v Arduino IDE izberete Orodja -> Vrata -> COMx, povezujete/povezujete računalnik z Arduinom.

Takšna naprava se včasih imenuje FTDI (slika 8, ki je pravzaprav blagovna znamka) ali CH340G itd. USB do serijske povezave na Arduino uno je dosežen prek ATMega16U2-MU (R) IC ZU4, kot je na shemi Arduino spodaj.

Zaradi jasnosti slika 9 identificira dve napravi Atmel in njuna priključka ISP na Arduino Uno R3.

Opomba 1: Če se odločite za pot naprave FTDI, se prepričajte, da kupujete pri uglednem prodajalcu, saj je bilo na trgu veliko poceni ponarejenih naprav, ki niso uspele ob uporabi posodobitve sistema Windows.

Priporočena: