Innholdsfortegnelse:

Programmering av ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP: 9 trinn (med bilder)
Programmering av ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP: 9 trinn (med bilder)

Video: Programmering av ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP: 9 trinn (med bilder)

Video: Programmering av ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP: 9 trinn (med bilder)
Video: Lesson 01 Arduino Boards | Robojax Arduino Step By Step Course 2024, Juli
Anonim
Programmering av ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP
Programmering av ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP
Programmering av ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP
Programmering av ATTiny85, ATTiny84 og ATMega328P: Arduino As ISP

Forord

Jeg har nylig utviklet noen få ESP8266 -baserte IoT -prosjekter og fant at kjerneprosessoren sliter med å utføre alle oppgavene jeg trengte den for å håndtere, så jeg bestemte meg for å distribuere noen av de mindre viktige aktivitetene til en annen mikrokontroller (r) i på denne måten frigjør du ESP8266 for å fortsette jobben med å være en IoT -enhet.

Siden jeg ønsket å publisere prosjektet mitt for et så bredt publikum som mulig, valgte jeg å bruke Arduino IDE som valgfri utviklingsplattform siden det har et så bredt støttet fellesskap.

Designbegrensninger

For å sørge for en rimelig spredning av målenheter som gjør det mulig å velge en passende mikrokontroller for den aktuelle applikasjonen, bestemte jeg meg for følgende Atmel -deler; ATMega328P, ATTiny84 og ATTiny85. For å begrense kompleksiteten til den nødvendige programmereren begrenset jeg valget av klokke til intern for alle enheter og 16MHz eksternt for bare ATMega328P og ATTiny84.

Det som følger er en samling notater om programmering med Arduino og en beskrivelse av hvordan jeg satte sammen en enkel Arduino Uno -basert programmerer for disse enhetene (bildene ovenfor).

Hvilke deler trenger jeg?

For å bygge programmereren trenger du følgende deler

  1. 1 av Arduino Uno
  2. 2 av 28 pin Zero Insertion Force (ZIF) DIP -kontakter (for å holde ATMega328P, ATTiny85, ATTiny84)
  3. 1 av Arduino prototypeskjold (jeg har min her;
  4. 2 av 5MM lysdioder
  5. 2 av 1K motstander
  6. 1 av 10K motstand
  7. 4 av 22pF keramiske kondensatorer
  8. 2 av 16MHz krystaller
  9. 3 av 0,1 uF keramiske kondensatorer
  10. 1 av 47uF elektrolytisk kondensator
  11. 1 av 10uF elektrolytisk kondensator
  12. Wirewire i forskjellige lengder.

Hvilken programvare trenger jeg?

Arduino IDE 1.6.9

Hvilke ferdigheter trenger jeg?

  1. Kunnskap om Arduino IDE
  2. Noe kunnskap om elektronikk og hvordan man lodder
  3. Mye manuell fingerferdighet
  4. Mye tålmodighet og godt syn

Emner dekket

  1. Generell introduksjon til programmering av Atmel mikrokontrollere
  2. ISP eller Bootloader: Det hele er litt forvirrende
  3. Kretsoversikt
  4. Setter opp programmereren din
  5. Bruke din Arduino ISP -programmerer
  6. Utvikler kode på målsystemet
  7. Gotchas
  8. Konklusjon
  9. Referanser brukt

Ansvarsfraskrivelse

Som alltid bruker du disse instruksjonene på egen risiko, og de kommer ikke støttet

Trinn 1: Generell introduksjon om programmering av Atmel mikrokontrollere

Generell introduksjon om programmering av Atmel mikrokontrollere
Generell introduksjon om programmering av Atmel mikrokontrollere
Generell introduksjon om programmering av Atmel mikrokontrollere
Generell introduksjon om programmering av Atmel mikrokontrollere
Generell introduksjon om programmering av Atmel mikrokontrollere
Generell introduksjon om programmering av Atmel mikrokontrollere

Det er to metoder tilgjengelig for programmering av Atmel mikrokontrollere;

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

Den tidligere metoden (1) programmerer mikrokontrolleren direkte via SPI -grensesnittet etter først å ha satt enheten i reset. Med mindre annet er instruert, skrives et kompilert kjørbart kildeprogram til enheten trinnvis i kodehukommelsen hvor det kjøres ved oppstart. Det er mange ISP -enheter som er i stand til å programmere Atmel -enheter, hvorav noen er (bilde 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Bilde 2 viser hvordan ISP -enheten kobles til ATMega328P (merkelig ICSP) på Arduino Uno R3 -kortet (bilde 3 gir ISP -pinnen ut). Det er også mulig å programmere en Atmel -mikrokontroller via SPI -grensesnittet ved hjelp av en Arduino Uno som ISP (bilde 4), her brukes Uno til å programmere en ATMega328P.

Den sistnevnte metoden (2) bruker en liten kodestubbe kjent som en 'bootloader' som er permanent bosatt i kjørbart kodeminne (vanligvis låst for å forhindre utilsiktet overskriving av bilde 5). Denne koden utføres først ved oppstart eller tilbakestilling av enheten, og lar mikrokontrolleren omprogrammere seg selv med ny kode mottatt via et av grensesnittene fra en kilde ekstern til seg selv. Bootloader-metoden brukes av Arduino IDE til å omprogrammere Arduinos kartlagt som en USB-kommandoport på PCen (Eller MAC, Linux-boks etc., bilde 6) og i tilfelle av Arduino Uno kommuniserer med Atmel-enheten via den serielt grensesnitt på IC Pins 2 og 3 i ATMega328P. Også Arduino Uno (med ATMega328P micrcontroller fjernet) kan brukes til å programmere en ATMega328P via bootloader -metoden som effektivt fungerer som en USB til seriell adapter (bilde 7).

Hva er en USB til seriell adapter?

En USB til seriell adapter er en maskinvare som kobles til PC-ens USB-port og ser ut som en seriell com-port (en arv fra tidligere tider da datamaskiner brukte en seriell kommunikasjonsstandard kjent som EIA-232, V24 eller RS232) slik at du kan sende og motta serielle data på de samme elektriske nivåene til mikrokontrolleren. Når du velger Verktøy -> Port -> COMx fra Arduino IDE kobler/grensesnitt du PC -en til Arduino.

En enhet som denne blir noen ganger referert til som en FTDI (bilde 8, som egentlig er et merkenavn) eller CH340G etc. USB til seriell på Arduino uno oppnås via en ATMega16U2-MU (R) IC ZU4 som i Arduino-skjemaet under.

For klarhetens skyld identifiserer bilde 9 de to Atmel -enhetene og deres respektive ISP -kontakter på Arduino Uno R3.

Merknad 1: Hvis du velger å gå nedover FTDI -enhetsruten, må du kjøpe fra en anerkjent selger, da det har vært mange billige forfalskede enheter på markedet som har mislyktes ved bruk av en Windows -oppdatering.

Anbefalt: