Sadržaj:

Programiranje ATTiny85, ATTiny84 i ATMega328P: Arduino kao ISP: 9 koraka (sa slikama)
Programiranje ATTiny85, ATTiny84 i ATMega328P: Arduino kao ISP: 9 koraka (sa slikama)

Video: Programiranje ATTiny85, ATTiny84 i ATMega328P: Arduino kao ISP: 9 koraka (sa slikama)

Video: Programiranje ATTiny85, ATTiny84 i ATMega328P: Arduino kao ISP: 9 koraka (sa slikama)
Video: Minimal Arduino (Subtittle) 2024, Srpanj
Anonim
Programiranje ATTiny85, ATTiny84 i ATMega328P: Arduino kao ISP
Programiranje ATTiny85, ATTiny84 i ATMega328P: Arduino kao ISP
Programiranje ATTiny85, ATTiny84 i ATMega328P: Arduino kao ISP
Programiranje ATTiny85, ATTiny84 i ATMega328P: Arduino kao ISP

Predgovor

Nedavno sam razvijao nekoliko IoT projekata temeljenih na ESP8266 i otkrio da se jezgreni procesor bori sa izvršavanjem svih zadataka koji su mi bili potrebni za upravljanje, pa sam odlučio neke manje važne aktivnosti raspodijeliti na različite mikrokontrolere u na ovaj način oslobađajući ESP8266 da nastavi sa svojim poslom kao IoT uređaj.

S obzirom na to da sam želio objaviti svoj projekt što je moguće široj publici, odlučio sam koristiti Arduino IDE kao razvojnu platformu po izboru jer ima tako široko podržanu zajednicu.

Ograničenja dizajna

Kako bih osigurao razumno širenje ciljnih uređaja koji omogućuje odabir odgovarajućeg mikrokontrolera za datu aplikaciju, odlučio sam se o sljedećim dijelovima Atmela; ATMega328P, ATTiny84 i ATTiny85. Kako bih ograničio složenost potrebnog programera, ograničio sam izbor takta na unutarnji za sve uređaje i vanjski na 16 MHz samo za ATMega328P i ATTiny84.

Slijedi zbirka bilješki o programiranju s Arduinom i opis kako sam sastavio jednostavan programer zasnovan na Arduinu Uno za ove uređaje (slike gore).

Koji dijelovi mi trebaju?

Za izradu programatora trebat će vam sljedeći dijelovi

  1. 1 popusta na Arduino Uno
  2. 2 isključena DIP utičnice sa 28 pinova Zero Insertion Force (ZIF) (za držanje ATMega328P, ATTiny85, ATTiny84)
  3. 1 off Arduino prototip štita (ja imam svoj ovdje;
  4. 2 isključene 5 mm LED diode
  5. 2 isključena 1K otpornika
  6. 1 off 10K otpornik
  7. 4 off 22pF keramički kondenzatori
  8. 2 kristala od 16 MHz
  9. 3 off 0,1uF keramički kondenzatori
  10. 1 off 47uF elektrolitički kondenzator
  11. 1 off 10uF elektrolitički kondenzator
  12. Žičana žica različitih dužina.

Koji softver mi treba?

Arduino IDE 1.6.9

Koje vještine su mi potrebne?

  1. Poznavanje Arduino IDE -a
  2. Malo znanja o elektronici i načinu lemljenja
  3. Velika ručna spretnost
  4. Puno strpljenja i dobrog vida

Tema završena

  1. Opći uvod u programiranje Atmel mikrokontrolera
  2. ISP ili Bootloader: Sve je to pomalo zbunjujuće
  3. Pregled kruga
  4. Postavljanje programatora
  5. Korištenje vašeg Arduino ISP programera
  6. Razvoj koda na vašem ciljnom sustavu
  7. Razumijem
  8. Zaključak
  9. Korištene reference

Odricanje

Kao i uvijek, koristite ove upute na vlastitu odgovornost i one dolaze bez podrške

Korak 1: Opći uvod u programiranje Atmel mikrokontrolera

Opći uvod u programiranje Atmel mikrokontrolera
Opći uvod u programiranje Atmel mikrokontrolera
Opći uvod u programiranje Atmel mikrokontrolera
Opći uvod u programiranje Atmel mikrokontrolera
Opći uvod u programiranje Atmel mikrokontrolera
Opći uvod u programiranje Atmel mikrokontrolera

Postoje dvije metode za programiranje Atmel mikrokontrolera;

  1. U sistemskom programiranju (ISP),
  2. Samoprogramiranje (putem pokretačkog programa).

Prva metoda (1) izravno programira mikrokontroler putem SPI sučelja nakon prvog stavljanja uređaja u reset. Osim ako nije drugačije upućeno, sastavljeni izvršni izvorni program se postupno zapisuje na uređaj u memoriju koda odakle se izvršava pri pokretanju. Postoji mnogo ISP uređaja koji mogu programirati Atmel uređaje, od kojih je nekoliko (slika 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Slika 2 prikazuje kako se ISP uređaj povezuje s ATMega328P (čudno označen ICSP) na ploči Arduino Uno R3 (slika 3 prikazuje pin ISP -a). Također je moguće programirati Atmel mikrokontroler putem njegovog SPI sučelja koristeći Arduino Uno kao ISP (slika 4), ovdje se Uno koristi za programiranje ATMega328P.

Potonja metoda (2) koristi mali kôd kôd poznat kao 'bootloader' koji je stalno nastanjen u izvršnoj memoriji koda (obično zaključan kako bi se spriječilo slučajno prepisivanje slika 5). Ovaj se kôd prvo izvršava nakon uključivanja ili resetiranja uređaja i omogućuje mikrokontroleru da se ponovno programira s novim kodom primljenim putem jednog od njegovih sučelja od izvora koji je vanjski. Arduino IDE koristi metodu bootloader za ponovno programiranje Arduinosa preslikanog kao USB comm priključak na računalu (ili MAC, Linux okvir itd., Slika 6), a u slučaju Arduino Uno komunicira s uređajem Atmel putem serijsko sučelje na IC pinovima 2 i 3 ATMega328P. Također Arduino Uno (sa uklonjenim mikrokontrolerom ATMega328P) može se koristiti za programiranje ATMega328P metodom bootloader -a učinkovito djelujući kao USB adapter za serijski adapter (slika 7).

Što je USB -serijski adapter?

USB na serijski adapter dio je hardvera koji se priključuje na USB priključak vašeg računala i izgleda kao serijski com port (naslijeđe iz ranijih vremena kada su računala koristila serijski komunikacijski standard poznat kao EIA-232, V24 ili RS232) koji vam omogućuje da slati i primati serijske podatke na istim električnim razinama mikrokontrolera. Kad odaberete Alati -> Port -> COMx iz Arduino IDE -a, povezujete/povezujete svoje računalo s Arduinom.

Ovakav uređaj ponekad se naziva FTDI (slika 8, što je zapravo robna marka) ili CH340G itd. USB za serijski prijenos na Arduino uno postiže se putem ATMega16U2-MU (R) IC ZU4 kao na Arduino shemi ispod.

Radi jasnoće, slika 9 identificira dva Atmel uređaja i njihove odgovarajuće ISP konektore na Arduino Uno R3.

Napomena 1: Ako se odlučite krenuti putem FTDI uređaja, pobrinite se da kupite od uglednog prodavatelja jer je na tržištu bilo mnogo jeftinih krivotvorenih uređaja koji su zakazali nakon primjene ažuriranja za Windows.

Preporučeni: