Indholdsfortegnelse:

Programmering af ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP: 9 trin (med billeder)
Programmering af ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP: 9 trin (med billeder)

Video: Programmering af ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP: 9 trin (med billeder)

Video: Programmering af ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP: 9 trin (med billeder)
Video: Arduino Uno or Pro Micro as an AVR ISP Programmer 2024, Juli
Anonim
Programmering af ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP
Programmering af ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP
Programmering af ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP
Programmering af ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP

Forord

Jeg har for nylig udviklet et par ESP8266 -baserede IoT -projekter og fandt ud af, at kerneprocessoren kæmpede med at udføre alle de opgaver, jeg havde brug for til at styre, så jeg besluttede at distribuere nogle af de mindre vigtige aktiviteter til en eller flere forskellige mikrokontroller i på denne måde frigør ESP8266 for at komme videre med sit job med at være en IoT -enhed.

Da jeg ønskede at udgive mit projekt til et så bredt publikum som muligt, valgte jeg at bruge Arduino IDE som valgfri udviklingsplatform, da det har et så bredt understøttet samfund.

Designbegrænsninger

For at sikre en rimelig spredning af målenheder, der muliggjorde valg af en passende mikrokontroller til den aktuelle applikation, besluttede jeg mig for følgende Atmel -dele; ATMega328P, ATTiny84 og ATTiny85. For at begrænse kompleksiteten af den nødvendige programmør begrænsede jeg valget af ur til internt for alle enheder og 16MHz eksternt for kun ATMega328P og ATTiny84.

Det følgende er en samling noter om programmering med Arduino og en beskrivelse af, hvordan jeg sammensatte en simpel Arduino Uno -baseret programmer til disse enheder (billeder ovenfor).

Hvilke dele har jeg brug for?

For at bygge programmereren skal du bruge følgende dele

  1. 1 fra Arduino Uno
  2. 2 off 28 pin Zero Insertion Force (ZIF) DIP -stik (til at rumme ATMega328P, ATTiny85, ATTiny84)
  3. 1 off Arduino prototype skjold (jeg fik mit her;
  4. 2 slukkede 5MM lysdioder
  5. 2 off 1K modstande
  6. 1 off 10K modstand
  7. 4 off 22pF Keramiske kondensatorer
  8. 2 off 16MHz krystaller
  9. 3 off 0.1uF keramiske kondensatorer
  10. 1 off 47uF elektrolytkondensator
  11. 1 off 10uF elektrolytkondensator
  12. Wirewire i forskellige længder.

Hvilken software har jeg brug for?

Arduino IDE 1.6.9

Hvilke færdigheder har jeg brug for?

  1. Kendskab til Arduino IDE
  2. Noget kendskab til elektronik og hvordan man lodder
  3. Meget manuel fingerfærdighed
  4. En masse tålmodighed og godt syn

Emner dækket

  1. Generel introduktion til programmering af Atmel Microcontrollers
  2. ISP eller Bootloader: Det hele er lidt forvirrende
  3. Kredsløbsoversigt
  4. Opsætning af din programmør
  5. Brug af din Arduino ISP -programmerer
  6. Udvikling af kode på dit målsystem
  7. Gotchas
  8. Konklusion
  9. Referencer brugt

Ansvarsfraskrivelse

Som altid bruger du disse instruktioner på egen risiko, og de kommer ikke understøttet

Trin 1: Generel introduktion til programmering af Atmel mikrokontrollere

Generel introduktion til programmering af Atmel mikrokontrollere
Generel introduktion til programmering af Atmel mikrokontrollere
Generel introduktion til programmering af Atmel mikrokontrollere
Generel introduktion til programmering af Atmel mikrokontrollere
Generel introduktion til programmering af Atmel mikrokontrollere
Generel introduktion til programmering af Atmel mikrokontrollere

Der er to tilgængelige metoder til programmering af Atmel mikrokontroller;

  1. I systemprogrammering (ISP),
  2. Selvprogrammering (via en bootloader).

Den tidligere metode (1) programmerer mikrokontrolleren direkte via SPI -interface efter først at have sat enheden i nulstilling. Medmindre andet er instrueret, skrives et kompileret eksekverbart kildeprogram trinvist til enheden i kodehukommelsen, hvorfra det udføres ved opstart. Der er mange ISP -enheder i stand til at programmere Atmel -enheder, hvoraf nogle få er (billede 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Billede 2 viser, hvordan ISP -enheden opretter forbindelse til ATMega328P (mærkeligt markeret ICSP) på Arduino Uno R3 -kortet (billede 3 giver ISP -stiften ud). Det er også muligt at programmere en Atmel -mikrokontroller via dens SPI -interface ved hjælp af en Arduino Uno som ISP (billede 4), her bruges Uno til at programmere en ATMega328P.

Sidstnævnte metode (2) bruger en lille kodestub kendt som en 'bootloader', der er permanent bosat i eksekverbar kodehukommelse (normalt låst for at forhindre utilsigtet overskrivning af billede 5). Denne kode udføres først ved opstart eller nulstilling af enhed og giver mikrokontrolleren mulighed for at omprogrammere sig selv med ny kode, der modtages via en af dens grænseflader fra en kilde, der er ekstern til sig selv. Bootloader-metoden bruges af Arduino IDE til at omprogrammere Arduinos kortlagt som en USB comm-port på pc'en (Eller MAC, Linux-boks osv., Billede 6) og i tilfælde af Arduino Uno kommunikerer med Atmel-enheden via den serielt interface på IC Pins 2 og 3 i ATMega328P. Også Arduino Uno (med ATMega328P micrcontroller fjernet) kan bruges til at programmere en ATMega328P via bootloadermetoden, der effektivt fungerer som en USB til seriel adapterenhed (billede 7).

Hvad er en USB til seriel adapter?

En USB til seriel adapter er et hardware, der tilsluttes din pc'ers USB-port og ligner en seriel com-port (en arv fra tidligere tider, hvor computere brugte en seriel kommunikationsstandard kendt som EIA-232, V24 eller RS232), så du kan sende og modtage serielle data på de samme elektriske niveauer i mikrokontrolleren. Når du vælger Værktøjer -> Port -> COMx fra Arduino IDE, tilslutter/tilslutter du din pc til din Arduino.

En enhed som denne omtales undertiden som en FTDI (billede 8, som faktisk er et mærke) eller CH340G osv. USB til seriel på Arduino uno opnås via en ATMega16U2-MU (R) IC ZU4 som i Arduino-skematisk under.

For klarheds skyld identificerer billede 9 de to Atmel -enheder og deres respektive ISP -stik på Arduino Uno R3.

Bemærk 1: Hvis du vælger at gå ned på FTDI -enhedsruten, skal du sørge for at købe fra en velrenommeret sælger, da der har været mange billige forfalskede enheder på markedet, som har mislykkedes ved anvendelse af en Windows -opdatering.

Anbefalede: