Innehållsförteckning:

Programmering av ATTiny85, ATTiny84 och ATMega328P: Arduino As ISP: 9 steg (med bilder)
Programmering av ATTiny85, ATTiny84 och ATMega328P: Arduino As ISP: 9 steg (med bilder)

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

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

Förord

Jag har nyligen utvecklat några ESP8266 -baserade IoT -projekt och upptäckte att kärnprocessorn kämpade med att utföra alla de uppgifter jag behövde för att hantera, så jag bestämde mig för att distribuera några av de mindre viktiga aktiviteterna till en eller flera olika mikrokontroller i på så sätt frigörs ESP8266 för att fortsätta arbetet med att vara en IoT -enhet.

Med tanke på att jag ville publicera mitt projekt för en så bred publik som möjligt valde jag att använda Arduino IDE som den valda utvecklingsplattformen eftersom den har en så omfattande community.

Designbegränsningar

För att tillhandahålla en rimlig spridning av målenheter som möjliggör val av en lämplig mikrokontroller för den aktuella applikationen bestämde jag mig för följande Atmel -delar; ATMega328P, ATTiny84 och ATTiny85. För att begränsa komplexiteten hos den nödvändiga programmeraren begränsade jag valet av klocka till intern för alla enheter och 16MHz extern för endast ATMega328P och ATTiny84.

Det som följer är en samling anteckningar om programmering med Arduino och en beskrivning av hur jag satte ihop en enkel Arduino Uno -baserad programmerare för dessa enheter (bilder ovan).

Vilka delar behöver jag?

För att bygga programmeraren behöver du följande delar

  1. 1 av Arduino Uno
  2. 2 av 28 -stifts ZIF -ingångskraft (ZIF) DIP -uttag (för att hålla ATMega328P, ATTiny85, ATTiny84)
  3. 1 av Arduino prototypsköld (jag fick min här;
  4. 2 av 5MM lysdioder
  5. 2 av 1K motstånd
  6. 1 av 10K motstånd
  7. 4 av 22pF keramiska kondensatorer
  8. 2 av 16MHz kristaller
  9. 3 av 0,1 uF keramiska kondensatorer
  10. 1 av 47uF elektrolytkondensator
  11. 1 av 10uF elektrolytkondensator
  12. Olika trådar i olika längder.

Vilken programvara behöver jag?

Arduino IDE 1.6.9

Vilka färdigheter behöver jag?

  1. Kunskap om Arduino IDE
  2. Viss kunskap om elektronik och hur man lödar
  3. Mycket manuell fingerfärdighet
  4. En massa tålamod och god syn

Ämnen som behandlas

  1. Allmän introduktion till programmering av Atmel Microcontrollers
  2. ISP eller Bootloader: Det är lite förvirrande
  3. Kretsöversikt
  4. Konfigurera din programmerare
  5. Använda din Arduino ISP -programmerare
  6. Utveckla kod på ditt målsystem
  7. Gotchas
  8. Slutsats
  9. Referenser används

varning

Som alltid använder du dessa instruktioner på egen risk och de kommer inte att stödjas

Steg 1: Allmän introduktion om programmering av Atmel mikrokontroller

Allmän introduktion om programmering av Atmel mikrokontroller
Allmän introduktion om programmering av Atmel mikrokontroller
Allmän introduktion om programmering av Atmel mikrokontroller
Allmän introduktion om programmering av Atmel mikrokontroller
Allmän introduktion om programmering av Atmel mikrokontroller
Allmän introduktion om programmering av Atmel mikrokontroller

Det finns två metoder för programmering av Atmel -mikrokontroller;

  1. I systemprogrammering (ISP),
  2. Självprogrammering (via en bootloader).

Den tidigare metoden (1) programmerar mikrokontrollern direkt via SPI -gränssnittet efter att enheten först har återställts. Om inte annat instrueras skrivs ett sammanställt körbart källprogram till enheten stegvis i kodminnet från var det körs vid start. Det finns många ISP -enheter som kan programmera Atmel -enheter, varav några är (bild 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Bild 2 visar hur ISP -enheten ansluter till ATMega328P (märkligt märkt ICSP) på Arduino Uno R3 -kortet (bild 3 visar ISP -stiftet). Det är också möjligt att programmera en Atmel -mikrokontroller via sitt SPI -gränssnitt med en Arduino Uno som ISP (bild 4), här används Uno för att programmera en ATMega328P.

Den senare metoden (2) använder en liten kodstubbe som kallas en "bootloader" som är permanent bosatt i körbart kodminne (vanligtvis låst för att förhindra oavsiktlig överskrivning av bild 5). Denna kod exekveras först vid uppstart eller återställning av enheten och tillåter mikrokontrollern att omprogrammera sig själv med ny kod som tas emot via ett av dess gränssnitt från en källa utanför sig själv. Bootloader-metoden används av Arduino IDE för att omprogrammera Arduinos mappade som en USB comm-port på datorn (eller MAC, Linux-box etc., bild 6) och i fallet med Arduino Uno kommunicerar med Atmel-enheten via den seriellt gränssnitt på IC Pins 2 och 3 i ATMega328P. Arduino Uno (med ATMega328P micrcontroller borttagen) kan också användas för att programmera en ATMega328P via bootloader -metoden som effektivt fungerar som en USB till seriell adapter (bild 7).

Vad är en USB till seriell adapter?

En USB till seriell adapter är en hårdvara som ansluts till datorns USB-port och ser ut som en seriell port (ett arv från tidigare tider då datorer använde en seriell kommunikationsstandard som kallas EIA-232, V24 eller RS232) så att du kan skicka och ta emot seriell data på samma elektriska nivåer för mikrokontrollern. När du väljer Verktyg -> Port -> COMx från Arduino IDE ansluter/kopplar du din dator till din Arduino.

En enhet som denna kallas ibland för en FTDI (bild 8, som faktiskt är ett varumärke) eller CH340G etc. USB till seriell på Arduino uno uppnås via en ATMega16U2-MU (R) IC ZU4 som i Arduino Schemat Nedan.

För tydlighetens skull identifierar bild 9 de två Atmel -enheterna och deras respektive ISP -kontakter på Arduino Uno R3.

Not 1: Om du väljer att gå ner på FTDI -enhetsvägen, se till att du köper från en ansedd säljare eftersom det har funnits många billiga förfalskade enheter på marknaden som har misslyckats vid tillämpning av en Windows -uppdatering.

Rekommenderad: