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, Novembar
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 zasnovanih na ESP8266 i otkrio da se jezgreni procesor bori sa izvršavanjem svih zadataka koji su mi potrebni za upravljanje, pa sam odlučio raspodijeliti neke manje važne aktivnosti 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 htio 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

Da bih osigurao razumno širenje ciljnih uređaja koji omogućava odabir odgovarajućeg mikrokontrolera za datu aplikaciju, odlučio sam se o sljedećim dijelovima Atmela; ATMega328P, ATTiny84 i ATTiny85. Da bih ograničio složenost potrebnog programera, ograničio sam izbor takta na interni 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 Arduino Uno za ove uređaje (slike gore).

Koji dijelovi mi trebaju?

Za izradu programatora potrebni su vam sljedeći dijelovi

  1. 1 off 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 LED diode od 5 mm
  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 od 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. Dosta ručne spretnosti
  4. Puno strpljenja i dobrog vida

Obrađene teme

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

Odricanje odgovornosti

Kao i uvijek, koristite ove upute na vlastitu odgovornost i ona 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 (preko pokretačkog programa).

Prva metoda (1) direktno programira mikrokontroler preko SPI sučelja nakon što je uređaj prvi put resetiran. Osim ako nije drugačije naznačeno, kompajlirani izvršni izvorni program se postepeno 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 su neki (slika 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Slika 2 prikazuje kako se ISP uređaj povezuje sa ATMega328P (čudno označen ICSP) na Arduino Uno R3 ploči (slika 3 prikazuje pin ISP -a). Takođe je moguće programirati Atmel mikrokontroler preko njegovog SPI interfejsa koristeći Arduino Uno kao ISP (slika 4), ovdje se Uno koristi za programiranje ATMega328P.

Potonja metoda (2) koristi malu šifru koda poznatu kao 'bootloader' koja je stalno nastanjena u izvršnoj memoriji koda (obično zaključana kako bi se spriječilo slučajno prepisivanje slika 5). Ovaj kôd se prvo izvršava nakon uključivanja ili resetovanja uređaja i omogućava mikrokontroleru da se ponovo programira sa novim kodom primljenim preko jednog od njegovih interfejsa od izvora koji je van njega samog. Arduino IDE koristi metodu bootloader za ponovno programiranje Arduinosa preslikanog kao USB comm port na računaru (ili MAC, Linux box itd., Slika 6), a u slučaju Arduino Uno komunicira s Atmel uređajem 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 koji učinkovito djeluje kao USB adapter za serijski adapter (slika 7).

Šta je USB na serijski adapter?

USB na serijski adapter je komad hardvera koji se priključuje na USB port računara i izgleda kao serijski com port (naslijeđe iz ranijih vremena kada su računari koristili serijski komunikacijski standard poznat kao EIA-232, V24 ili RS232) koji vam omogućava da slati i primati serijske podatke na istim električnim nivoima mikrokontrolera. Kada odaberete Alati -> Port -> COMx iz Arduino IDE -a, povezujete/povezujete računalo sa svojim Arduinom.

Ovakav uređaj ponekad se naziva i FTDI (slika 8, što je zapravo robna marka) ili CH340G itd. USB za serijsku vezu na Arduino uno-u postiže se preko 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 prodavača jer je na tržištu bilo mnogo jeftinih krivotvorenih uređaja koji su zakazali nakon primjene ažuriranja za Windows.

Preporučuje se: