Innehållsförteckning:
Video: Programmering av ATTiny85, ATTiny84 och ATMega328P: Arduino As ISP: 9 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
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 av Arduino Uno
- 2 av 28 -stifts ZIF -ingångskraft (ZIF) DIP -uttag (för att hålla ATMega328P, ATTiny85, ATTiny84)
- 1 av Arduino prototypsköld (jag fick min här;
- 2 av 5MM lysdioder
- 2 av 1K motstånd
- 1 av 10K motstånd
- 4 av 22pF keramiska kondensatorer
- 2 av 16MHz kristaller
- 3 av 0,1 uF keramiska kondensatorer
- 1 av 47uF elektrolytkondensator
- 1 av 10uF elektrolytkondensator
- Olika trådar i olika längder.
Vilken programvara behöver jag?
Arduino IDE 1.6.9
Vilka färdigheter behöver jag?
- Kunskap om Arduino IDE
- Viss kunskap om elektronik och hur man lödar
- Mycket manuell fingerfärdighet
- En massa tålamod och god syn
Ämnen som behandlas
- Allmän introduktion till programmering av Atmel Microcontrollers
- ISP eller Bootloader: Det är lite förvirrande
- Kretsöversikt
- Konfigurera din programmerare
- Använda din Arduino ISP -programmerare
- Utveckla kod på ditt målsystem
- Gotchas
- Slutsats
- 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
Det finns två metoder för programmering av Atmel -mikrokontroller;
- I systemprogrammering (ISP),
- 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:
LED -klocka med 555 och 4017 (ingen programmering behövs): 8 steg (med bilder)
LED -klocka med hjälp av 555 och 4017 (ingen programmering behövs): Här ska jag presentera ett projekt som jag designade och gjorde för ungefär 7 år sedan. Tanken med projektet är att använda räknare -IC: er som 4017 för att generera signaler som styr blinkandet av lysdioder arrangerade som analoga klockans händer
Arduino fjärr-/trådlös programmering och powerbank hemlagad: 12 steg (med bilder)
Arduino Remote/wireless Programming and Power Bank Homemade: Problemet. Jag utvecklar en skiss nära PC och jag använder usb och seriell för att " felsöka " i det här fallet skapar jag lib för DHT12, jag levererar en version på bibliotekets github.Men det kommer ett problem: " när temperaturen går under 0 är det avlästa värdet wro
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
Programmera chips med din Arduino - AVR ISP som täcker ATTiny85, ATTiny2313 och ATMega328: 3 steg
Programmera chips med din Arduino - AVR ISP som täcker ATTiny85, ATTiny2313 och ATMega328: Jag hittade detta som ett utkast från många år sedan. Det är fortfarande användbart för mig åtminstone så jag kommer att publicera det! Denna instruerbara är en samling kunskap som samlats in från "nätet" och "nstructables". Det täcker programmeringen av AVR Microco
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid