Firmware med arduino. Arbeta med mikrokontroller: firmware med Arduino och Arduino IDE

Till exempel, om arduin är långt borta och det är obekvämt att gå runt för att flasha, kan du ansluta en Ethernet-modul på WIZnet W5100-kretsen

1. Vi tar några enkla arduino och flashar den med arduino isp-skissen från exemplen

2.Vi ansluter så här

Tavlan som blinkar

Brädan som sys

SS ->
mosi ->
miso ->
sck ->

återställa
51
50
52

Jag har till exempel Nano Flash Mega 2560

3.i arduino-id, klicka på filen - inställningar, ange där i ytterligare länkar för styrelsechefen: https://per1234.github.io/Ariadne-Bootloader/package_codebendercc_ariadne-bootloader_index.json

4.i arduino ide, klicka på verktyg - boards - board manager - klicka nedan Ariadne Bootloader - Installation

5. tryck på verktygen - board - och i Ariadne Bootloader-sektionen, välj önskat kort (som vi ska flasha. Jag har det mega 2560)

6.välj verktyg - programmerare - arduino som isp

7. Kontrollera allt igen - det ska vara så här:

8.tools - skriv starthanteraren (ett par gånger om fel dyker upp)

9. stäng av programmeraren, anslut nätverkskortet. standard ip är 192.168.1.128. för att ändra måste du blinka neteeprom-skissen en gång - writeNetworkSettings, efter att ha registrerat den nödvändiga IP-adressen där tidigare

10. efter det måste du försöka flasha genom nätverket - för detta måste du också göra några konstiga åtgärder. vi inkluderar i Arduino IDE genom en fil - inställningar för detaljerad utdata:

11.öppna önskad skiss till exempel Blinka från exemplen:

12. tryck på kompilera - och leta efter var arduino dumpar temporära filer under kompileringen. Jag har den här

13.öppna en kommandorad i den här mappen och kör:

"C: \ Program Files (x86) \ Arduino \ hårdvara \ verktyg \ avr \ bin \ avr-objcopy.exe" -I ihex Blink.ino.hex -O binär Blink.ino.bin

14.tryck sedan på reset och efter ett par sekunder kör tftp -i 192.168.1.128 PUT Blink.ino.bin på samma ställe

15. Att trycka på reset varje gång är obekvämt och för detta behöver vi en skissfil - exempel - ethernetreset - resetserver. detta är en speciell liten webbserver på port 8080, som vid mottagande av en förfrågan laddar om arduino http://192.168.1.128:8080/password/reset:

För automatisering, streckade jag av en batchfil - släpp den bara i din skissmapp och dra .ino-filen till den - den laddar upp den till dig. först, bara redigera - ange din server och lösenord:

@echo off set ip = 192.168.1.128 set passwd = parol mkdir "% ~ dp0build" del build / F / S / Q set home =% HOMEDRIVE %% HOMEPATH% set targetfn =% ~ n1% ~ x1 "C: \ Program Filer (x86) \ Arduino \ arduino-builder.exe "-compile -logger = maskin -hårdvara" C: \ Program Files (x86) \ Arduino \ hårdvara "-hardware"% home% \ AppData \ Local \ Arduino15 \ paket " -verktyg "C: \ Program Files (x86) \ Arduino \ tools-builder" -verktyg "C: \ Program Files (x86) \ Arduino \ hårdvara \ verktyg \ avr" -verktyg "% home% \ AppData \ Local \ Arduino15 \ paket "-built-in-libraries" C: \ Program Files (x86) \ Arduino \ libraries "-libraries"% home% \ Documents \ Arduino \ libraries "-fqbn = Ariadne-Bootloader: avr: ariadne2560: konfiguration = blink_shield -ide-version = 10610 -build-sökväg "% ~ dp0build" -warnings = inga -prefs = build.warn_data_percentage = 75 -verbose "% targetfn%" "C: \ Program Files (x86) \ Arduino \ hårdvara \ verktyg \ avr \ bin \ avr-objcopy.exe "-I ihex build /% targetfn% .hex -O binär build /% targetfn% .bin powershell -Command" Invoke-WebRequest http: //% ip%: 8080 /% passwd% / återställ rem 6 sek fördröjning P ING 127.0.0.1 -n 6> NUL 2> & 1 || PING :: 1 -n 6> NUL 2> & 1 tftp -i% ip% PUT build /% targetfn% .bin paus

@ eko av

set ip = 192.168.1.128

set passwd = parol

mkdir "% ~ dp0build"

del build / F / S / Q

ställ hem =% HOMEDRIVE%% HOMEPATH%

ställ in målfn =% ~ n1% ~ x1

"C: \ Program Files (x86) \ Arduino \ arduino-builder.exe"- kompilera - logger = maskin - hårdvara "C: \ Program Files (x86) \ Arduino \ hårdvara"- hårdvara - verktyg "C: \ Program Files (x86) \ Arduino \ Tools-builder"- verktyg "C: \ Program Files (x86) \ Arduino \ hårdvara \ verktyg \ avr"- verktyg "% home% \ AppData \ Local \ Arduino15 \ paket"- inbyggda - i - bibliotek "C: \ Program Files (x86) \ Arduino \ libraries"- bibliotek "% hem% \ Dokument \ Arduino \ bibliotek"- fqbn = Ariadne - Bootloader: avr: ariadne2560: konfiguration = blink_shield - ide - version = 10610 - build - sökväg "% ~ dp0build" - varningar = ingen - prefs = build. warn_data_percentage = 75 - verbose "% targetfn%"

Introduktion

Hälsningar till er, läsare av vår resurs. Idag ska vi prata om en kontroller från Arduino-serien, nämligen Arduino Pro Mini. Det här är en liten, kompakt kontroller som har alla fördelar med en Arduino, men som samtidigt är väldigt kompakt, man kan säga den minsta av alla Arduino-kontroller som finns för tillfället. Många lockas också av priset på dess kinesiska kopior, och de kostar från en till två dollar styck (ibland ännu mindre), vilket också får dem att fundera på att köpa det. Men det finns ett problem, det är inte så lätt att flasha det, särskilt de kinesiska kopiorna, som är utrustade med en Atmel ATmega168P-processor, som de officiella Arduino Pro Mini-kontrollerna aldrig var utrustade med, och som ett resultat vägrar Arduino IDE för att flasha dem och rapportera en felaktig processorsignatur.

Detta är vad vi ska prata om idag. Hur man flashar, vad som behövs för detta och hur man får Arduino IDE att fungera med kinesiska kopior.

Vad behövs för detta?

Arduino Pro Mini är väldigt kompakt, och kompaktheten kräver uppoffringar och uppoffringen är USB-gränssnittet som helt mejs ut i denna kontroller, d.v.s. du kommer inte att kunna ansluta Pro Mini till en dator direkt, och som ett resultat kommer du att behöva antingen en speciell USB till TTL-adapter eller en annan Arduino-kontroller.

  • Det första sättet. Vi flashar genom USB till TTL-adaptern - själva adaptern behövs i mängden ett stycke.
  • Andra sättet. Vi blinkar igenom Arduino UNO - vi behöver en Arduino UNO, men inte en enkel, men i en klassisk version är detta Arduino där processorn är gjord i ett DIP-paket och sätts in i en svart kontakt.
  • Tredje vägen. Vi flashar genom SPI-gränssnittet - du behöver vilken Arduino som helst: UNO, Nano, Mega, Leonardo - det spelar ingen roll, huvudsaken är att det finns en USB-kontakt för att ansluta till en PC.

Det första sättet. Flash via USB till TTL-adapter

Det första och enklaste sättet att ladda upp din skiss till Arduino Pro Mini är att köpa en speciell USB till TTL-adapter, eller som det kallas en UART-adapter. Som regel är denna adapter den del som klipptes från Arduino Nano, vilket gör den till en Arduino Pro Mini. Kostnaden för sådana adaptrar är billig, och valet är ännu större. Kineserna har stämplat så många av dem att ögonen bländar vilken man ska välja. Dessutom är priset på denna enhet inte mer än en evig grön. Efter att du har anslutit Pro Mini och UART-adaptern med kablar eller en bandkabel behöver du bara koppla in den (adaptern) till datorn, installera drivrutinen (alla adaptrar kräver dem inte) och det är allt. Din PC kommer att definiera adaptern som en annan COM-port som visas när du ansluter en Arduino till din PC. Välj det, tavlan du ska arbeta med (Arduino Pro Mini) och ladda lugnt upp din skiss.

Den enda varningen i dessa adaptrar är närvaron eller frånvaron av RST- eller DTR-kontakter. Jag rekommenderar att köpa adaptrar som har dessa kontakter. De gör livet mycket lättare och gör blinkningsprocessen problemfri. Om du redan har köpt en adapter, på vilken det inte finns några sådana kontakter, måste du varje gång du laddar upp en skiss till Arduino trycka på Reset-knappen, vilket inte alltid är möjligt att göra i tid, och detta ger sin eget besvär.

Du kan se anslutningen av adaptrarna i tabellen nedan:

Andra sättet. Blinkar genom Arduino UNO

För denna metod behöver vi den klassiska Arduino UNO. Den klassiska är den där mikrokretslådan är gjord i ett DIP-paket och sätts in i en speciell kontakt. Vi måste försiktigt bända denna mikrokrets med en skruvmejsel. Här är det viktigt att inte bryta processorn, bända loss den försiktigt, utan att böja benen.

Arduino UNO. Processorn är gjord i ett DIP-paket.

Bänd försiktigt på och ta ut processorn med en skruvmejsel.

Efter att vi drog ut processorn ur Arduino UNO fick vi i princip samma USB till TTL-adapter, det återstår bara att ansluta vår nya adapter och Arduino Pro Mini med kablar enligt följande schema:

Arduino UNO (ingen processor)
Arduino Pro Mini
RX
RX
TX
TX
GND
GND
5V
VCC
RST
RST

När du har kopplat ihop de två Arduinos kan du fortsätta med att blinka Arduino Pro Mini. Vi ansluter Arduino UNO via USB till en PC. Vi väljer COM-porten i Arduino IDE-inställningarna, indikerar att vi nu inte arbetar med Arduino UNO, utan med Arduino Pro Mini och det är allt, fyll i våra skisser. Metoden är ganska intressant om du inte är rädd för att förstöra Arduino och det inte fanns någon USB till TTL-adapter i närheten.

Tredje vägen. Vi blinkar genom SPI-gränssnittet

Det tredje och mest obekväma sättet att ladda upp din skiss till Arduino Pro Mini är att flasha den med ICSP-gränssnittet. Det här gränssnittet finns på de flesta Arduino-kort. Huvudkontakterna för detta gränssnitt förs ut till portarna 10 till 13, samt tas ut separat i form av sex stiftblock med ICSP-signaturen. Blocket ligger, som regel, i den centrala högra sidan av Arduino.

I det här fallet är Arduino Pro Mini-firmware uppdelad i två steg:

  1. Arduino-kortsfirmware som ISP-programmerare.

Först och främst måste vi förbereda vår framtida programmerare. Låt oss ta hela Arduino UNO som exempel. Ytterligare steg för steg:

  1. Starta Arduino IDE.
  2. Fil - Exempel - 11.ArduinoISP - ArduinoISP.
  3. Verktyg - Board - Arduino UNO.
  4. Verktyg - Port - Välj COM-porten.
  5. Vi kompilerar och laddar upp till Arduino UNO.
Arduino UNO (ISP)
Arduino Pro Mini
5V
VCC
GND
GND
10
RST
11 (MOSI)
11 (MOSI)
12 (MISO)
12 (MISO)
13 (SCK)
13 (SCK)

Öppna nu Arduino IDE igen. Öppna skissen i den som du vill fylla i Pro Mini och gör följande:

2. Verktyg - Board - Arduino Pro Eller Pro Mini
3. Verktyg - Processor - ATmega168 (5V, 16 MHz)
4. Verktyg - Port - Välj en port
5. Verktyg - Programmerare - Arduino som ISP
6. Sketch - Ladda ner via programmeraren

Som du kan se måste du ladda upp en skiss i det här läget genom specialmenyn "Ladda upp via programmerare", och inte genom "Ladda upp" -knappen på huvudformen av Arduino IDE. Det är här alla besvär ligger. Om du trycker på "Ladda upp"-knappen som du brukar, kommer du att ladda upp skissen till Arduino UNO, inte Arduino Pro Mini, som kommer att skriva över programmerarskissen där. Dessutom är klassen Serial inte tillgänglig i det här läget, det vill säga du kommer inte att kunna felsöka din skiss genom att utbyta meddelanden via COM-porten. Nåväl, ytterligare en slant är att efter detta blinkande kommer du i de flesta fall inte längre att kunna återflaska Arduino Pro Mini genom en adapter. Detta åtgärdas genom att fylla i en ny starthanterare via menyn "Verktyg" - "Skriv starthanterare".

Lägg till Chinese Pro Mini till Arduino IDE

Som jag sa i den här artikeln är kinesiska kloner ibland utrustade med processorer som inte var utrustade med de officiella versionerna av Arduino Pro Mini, och som ett resultat, när du blinkar dem, kan du se följande eller ett liknande fel.

Avrdude: Förväntad signatur för ATmega168 är 1E 94 06 Dubbelkontrollchip, eller använd -F för att åsidosätta denna kontroll. Fel mikrokontroller hittades. Har du angett rätt bräda i menyn Verktyg -> Bräde?

Detta fixas enkelt:

  • Först måste du öppna mappen där Arduino IDE finns.
  • Gå sedan till nästa mapp "Mapp med Arduino IDE \ hårdvara \ arduino \ avr \".
  • Leta efter filen "boards.txt" där och öppna den i en textredigerare.
  • Vi letar efter följande rad i filen "pro.menu.cpu.16MHzatmega168.build.mcu = atmega168".
  • Och ersätt den med "pro.menu.cpu.16MHzatmega168.build.mcu = atmega168p".
  • Starta om Arduino IDE och det är allt.
  • Har du till exempel en 328-processor så gör vi allt på samma sätt, bara vi letar efter en sträng med nummer 328.

Slutsats

I den här artikeln har jag gett så många som tre alternativ för att ladda upp skisser till Arduino Pro Mini. Jag använder personligen den andra. Jag gillar honom bättre.

Vad du ska använda är upp till dig. Lämna i kommentarerna vilket alternativ du föredrar.

Lycka till och lycka till till dig.

Vänligen aktivera javascript för att kommentarer ska fungera.

Att ladda ner en skiss eller blinka en Arduino-kontroller är den huvudsakliga operationen som alla arduinospelare förr eller senare kommer att möta. Det är möjligheten att snabbt och utan onödiga problem ladda kontrollprogrammet i styrenhetens minne och blev en av huvudorsakerna till framgången för Arduino-plattformen. I den här artikeln kommer vi att lära oss hur Arduino Uno, Nano, Mega och andra Atmega-baserade kort flashas med Arduino IDE, programmerare eller andra Arduino-kort.

Låt oss först förstå vad som händer inuti arduino när vi bestämmer oss för att ändra det interna programmet som styr den.

Vad händer när vi klickar på knappen Ladda ner

Arduino-kortet är en AVR-mikrokontroller (Atmega8 / 168/328 eller Atmega1280 / 2560) som flashas med en bootloader. Ett program som kallas firmware skrivs in i mikrokontrollern, vilket gör att den kan ta emot signaler från sensorer, bearbeta knapptryckningar, kommunicera med olika enheter via gränssnitt och styra exekutiva processer.

Vanligtvis skrivs den fasta programvaran in i mikrokontrollerkristallen med hjälp av speciella enheter som kallas programmerare. Det finns olika programmerare för olika mikrokontroller – från specialiserade till universella. En viktig skillnad mellan Arduino och andra kontroller är möjligheten att ladda upp firmware via en vanlig USB-kabel. Detta uppnås med hjälp av ett speciellt program - bootloader (Bootloader). Inga extra kablar krävs för firmware, inget behov av att ansluta ytterligare enheter eller trycka på något på kortet. När du arbetar genom starthanteraren kan du inte komma till farliga inställningar som kommer att inaktivera Arduino.

När Arduino-kortet är anslutet till en strömkälla börjar mikroprogrammens aktiva aktivitet inuti den. När mikrokontrollern startar får starthanteraren kontroll. Under de första 2 sekunderna kontrollerar den om en ny kod kom från användaren. Dessutom skickar bootloadern pulser till stiftet som lysdioden är ansluten till, och den börjar blinka. Det betyder att starthanteraren är installerad och fungerar korrekt. När en skiss skickas in skriver starthanteraren den till mikrokontrollerns flashminne. Därefter skickas detta program in för utförande. Om ingen data tas emot startar starthanteraren det föregående programmet. Under körningen av programmet inuti Arduino utförs ett antal operationer för att initiera och ställa in miljön, och först efter det börjar exekveringen av koden.

Ring inställning och loop vid uppstart

I själva koden finns det flera huvudfunktioner; genom deras exempel kan du överväga hur mikrokontrollern fungerar.

Kommandot void setup () - det registrerar data som mikrokontrollern kör vid tidpunkten för laddning, och sedan kan den glömma dem. I den här funktionen indikeras numren på stiften som enheten är ansluten till, biblioteken är anslutna och initierade, arbetshastigheten med serieporten är inställd.

Void loop-funktionen - kommandon som måste utföras medan kortet är påslaget placeras i den. Mikrokontrollern kommer att börja köra program från det första, och när den når slutet kommer den omedelbart att återgå till början för att upprepa samma sekvens ett oändligt antal gånger.

I Arduino IDE startar skisskompilering när du klickar på Verifiera-knappen, därefter kan skissen laddas upp till Arduino-minnet via USB med hjälp av Upload-knappen. Innan du laddar programkoden måste du ställa in alla parametrar i menyn Verktyg. Denna meny väljer porten som kortet är ansluten till och plattformen. Arduino IDE-fönstret visar förloppet för skisskompileringen längst ner. Om skissen har laddats upp kommer meddelandet "Klar med uppladdning" att tas emot. Skissen börjar köras direkt efter att nedladdningen är klar. För att utöka funktionerna kan du ansluta ytterligare externa bibliotek utvecklade av Arduino-teamet eller tredjepartsförfattare.

Översikt över möjliga alternativ för att ladda upp en skiss

Kortfattat kan hela algoritmen skrivas på följande sätt: Skriva koden >> kompilera >> ladda in i mikrokontrollern. Bootloader används när du laddar en skiss. Det är ett litet program som laddas in i en Arduino mikrokontroller. Med det här programmet kan du ladda upp en skiss utan att behöva ytterligare hårdvara. När starthanteraren är igång kommer lysdioden på kortet att blinka.

  1. Snabbare uppladdning av skiss till Arduino IDE. Med den här metoden kan du dubbla nedladdningshastigheten till mikrokontrollern. För att göra detta behöver du bara gå till Inställningar och avmarkera kryssrutan Kontrollera kod. Om du hoppar över kontrollsteget minskar antalet byte som överförs vid uppstart. Samtidigt kommer vissa typer av kontroller fortfarande att genomföras, men de tar inte lång tid. Det rekommenderas inte att inaktivera kodkontroll om Arduino är placerad i något viktigt projekt (till exempel i en satellit). Du kan också kontrollera om anslutningen görs via en mycket lång USB-kabel (ca 10 meter).

Att minska uppstartstiden genom att inaktivera validering fungerar med alla Arduino-kort som använder en USB-anslutning. Alla dessa mikrokontroller använder avrdude bootloader. Boards som använder Catarina bootloader behöver inte inaktivera kodkontroll, eftersom denna bootloader är snabbare.

  1. Laddar upp en skiss till Arduino via Bluetooth. Denna metod används när du behöver klara dig utan den fysiska anslutningen av Arduino och datorn - till exempel i strömkretsar eller RF-kretsar. För att implementera nedladdningen behöver du en Bluetooth-modul, som är utrustad med ett adapterkort för Arduino. Denna modul måste anslutas till en dator via en USB-UART-TTL-adapter. Arbetet med modulen utförs med hjälp av AT-kommandon.
  2. Ladda ner med en Android-enhet. För att utföra denna typ av kodnedladdning behöver du USB-A - USB-B och USB-Host (OTG-kabel), Arduino och en Android-enhet med stöd för värdläge. Du måste installera programmet ArduinoDroid eller ArduinoCommander från Google Play på din Android-enhet. Alla enheter måste anslutas med kablar, sedan kan du slå på Arduino och ladda koden på den. Du måste köra det installerade programmet. När den är aktiverad kommer IDE att börja uppdatera, vilket kommer att ta lite tid.

Först kommer arbetet att övervägas med exemplet med ArduinoCommander-programmet. När du har startat den måste du klicka på USB-enhet. Sedan måste du lägga till Autodetect så att Android-enheten söker efter Arduino och visar den på skärmen. Så fort Arduino dyker upp på skärmen måste du klicka på den. För att gå till menyn måste du klicka i det nedre högra hörnet. I den här menyn kan du ladda en skiss från ett SD-kort.

ArduinoDroid är en utvecklingsmiljö, kompilator och bootloader på samma gång. Du måste börja kompilera skissen genom att klicka på blixtknappen. När kompileringen är klar måste du klicka på nedladdningsknappen. Laddningen tar några sekunder. När nedladdningen är klar kommer arduino att lansera ny kod för exekvering.

  1. Programmering med Raspberry Pi. Du kan ladda upp skisser på två sätt - med Arduino IDE och med arduino-mk-paketet. Paketet låter dig bygga och ladda ner Arduino-skisser från kommandoraden.

Arduino minnesstruktur där skissen och data finns

Arduino mikrokontroller har 3 typer av minne - flashminne som används för att lagra skisser, RAM för att lagra variabler och EEPROM för att lagra permanent information. Av dessa typer av minne är flashminne och EEPROM icke-flyktiga, det vill säga information behålls när strömmen stängs av. RAM används endast för att lagra data som är relevant för det körbara programmet.

ATmega168-mikrokontrollern, som används på en del av Arduino-korten, har 16 KB flashminne, 1024 byte för RAM och 512 byte EEPROM. Det är viktigt att vara uppmärksam på den lilla mängden RAM. Stora program kan använda det helt, vilket gör att programmet kraschar. Av denna anledning måste du hålla reda på hur många rader programmet tar upp och om möjligt radera onödiga. Det finns flera sätt att minska mängden kod:

  • Du kan skicka en del av informationen till din dator.
  • För tabeller och andra stora arrayer, använd den minsta datatypen för lagring.
  • Data som förblir oförändrade kan deklareras konstanter genom att använda ordet const före variabeldeklarationen.
  • Mindre användning av rekursion. När det anropas i minnet, kallat stacken, allokeras ett fragment i vilket olika data lagras. Om rekursion anropas ofta kommer stackar att ta upp en stor mängd minne och kan förbruka det.
  • Oföränderliga strängar kan lagras i flashminnet medan programmet körs. PROGMEM-funktionen används för detta.

Minnesstorleken påverkas inte av storleken på variabelnamnen och kommentarerna. Kompilatorn är utformad på ett sådant sätt att den inte inkluderar dessa data i den sammanställda skissen.

För att mäta mängden upptaget RAM-minne används en skiss från MemoryFree-biblioteket. Den har en speciell funktion freeMemory som returnerar mängden tillgängligt minne. Det här biblioteket används också i stor utsträckning för att diagnostisera problem i samband med otillräckligt minne.

Flash-minnesoptimering. Så snart kompileringsproceduren är klar kommer fönstret att visa information om minnet som upptas av koden. Om skissen tar upp det mesta av minnet måste du optimera användningen av flashminne:

  • Använda konstanter. På samma sätt som för RAM, ställ in oföränderliga värden med konstanter.
  • Ta bort onödig Serial.println. Detta kommando används när du behöver se värden för variabler på olika ställen i programmet, ofta behövs denna information helt enkelt inte. I det här fallet tar kommandona upp plats i minnet, därför kan vissa rader tas bort efter att ha kontrollerat att programmet fungerar korrekt.
  • Att överge starthanteraren - du kan programmera mikrokontrollern genom ICSP-stiften på kortet med hjälp av hårdvaruprogrammerare.

Flash-minne är ett säkert och bekvämt sätt att lagra data, men vissa faktorer begränsar användningen. Flashminne kännetecknas av dataregistrering i block om 64 byte. Flashminnet garanterar också informationssäkerheten under 100 000 inspelningscykler, varefter informationen förvrängs. Flash innehåller en starthanterare som inte kan tas bort eller manipuleras. Detta kan förstöra själva brädan.

EEPROM-minne används för att lagra all data som krävs efter avstängning. För att skriva information till EEPROM, måste du använda ett speciellt bibliotek EEPROM.h, som är ett av standardbiblioteken i Arduino IDE. Att läsa och skriva information till EEPROM går långsamt, cirka 3 ms. Tillförlitlighet för datalagring garanteras också för 100 000 skrivcykler, så det är bäst att inte skriva i en cykel.

Arduino firmware alternativ

Firmware med Arduino IDE

Du kan flasha ett kort med Arduino IDE i några få steg. Först och främst måste du ladda ner och installera själva Arduino IDE-programmet. Du måste också ladda ner och installera CH341-drivrutinen. Arduino-kortet måste anslutas till datorn och vänta några minuter för att Windows ska känna igen och komma ihåg det.

Efter det måste du ladda ner Arduino IDE-programmet och välja önskat kort: Verktyg - Styrelse. Du måste också välja porten som den är ansluten till: Verktyg - Port. Den färdiga firmwaren öppnas med ett dubbelklick, för att ladda ner den till kortet måste du klicka på knappen Ladda ner längst upp i verktygsfältet.

I vissa situationer kan ett fel uppstå på grund av närvaron av kyrilliska (ryska bokstäver) i sökvägen till mappen med koder. För att göra detta är det bättre att skapa en fil med skisser och spara den i roten på skivan med ett engelskt namn.

Firmware som använder programmeraren

Ett av de enklaste sätten att flasha ett kort är med en programmerare. Fyllningen kommer att göras i flera steg.

Först och främst måste du ansluta programmeraren till kortet och till datorn. Om programmeraren inte känns igen av datorn måste du ladda ner och installera drivrutinerna.

Efter det måste du välja kortet som du vill flasha bootloader för. Detta görs i menyn Service >> Styrelse.

Sedan måste du välja den programmerare som styrenheten är ansluten till. I det här fallet används USBasp.

Det sista steget är att klicka på "write bootloader" i menyn Verktyg.

Nedladdningen startar sedan. Slutförande kommer att ske inom cirka 10 sekunder.

Arduino firmware via Arduino

För att flasha ett kort med ett annat måste du ta 2 Arduinos, sladdar och USB. Först och främst måste du konfigurera kortet, som kommer att fungera som en programmerare. Du måste ansluta den till din dator, öppna Arduino IDE-utvecklingsmiljön och hitta en speciell ArduinoISP-skiss i exemplen. Du måste välja detta exempel och flasha tavlan.

Nu kan du ansluta det andra kortet som ska flashas till det första. Efter det måste du gå till menyn Verktyg och ställa in kortet så att det blinkar och typen av programmerare där.

Du kan börja blinka enheten. Så fort den fasta programvaran har öppnats eller skrivits måste du gå till nedladdningsmenyn Sketch >> via programmeraren. Standardnedladdningsknappen är inte lämplig för att ladda upp den fasta programvaran, eftersom den fasta programvaran i det här fallet kommer att laddas ner till det första kortet där den fasta programvaran redan är tillgänglig.

Slutsats

I den här artikeln täckte vi olika aspekter av att ladda upp skisser till Arduino Uno och Nano. Blinkande kort baserade på ATmega328 och ATmega256 mikrokontroller är vanligtvis okomplicerat och kan göras med en knapptryckning i Arduino IDE. För denna enkelhet måste vi tacka det inbyggda lastarprogrammet, som gör alla grundläggande åtgärder för oss på en låg nivå.

Ett annat alternativ för att blinka styrenheten är att använda ett annat aduinokort eller speciella programmerare som använder CP2102 CH340, FTDI och andra. Denna metod kräver ytterligare ansträngningar och kostnader, men tillåter flexibel ändring av firmwareparametrarna. Vilket av de två alternativen att välja är upp till dig. För nybörjare är naturligtvis det första steget att använda Arduino IDE, eftersom dess skapare har gjort allt för att förenkla denna process.

Har du någonsin tänkt på att en billig kinesisk Arduino-klon faktiskt skulle kunna fungera?
Du betalar bara ett par dollar och du får samma produkt. Låter för bra för att vara sant, eller hur?

Sanningen är att vissa av dem fungerar och andra inte.
Läs artikeln till slutet så lär du dig hur du får vilken kinesisk klon som helst att fungera på ett par minuter.

Jag använder Arduino Uno för det här exemplet, men processen är densamma för andra modeller.
Här har vi originalet Arduino Uno och dess kinesiska kopia (Lagra på,).

Låt oss köra tester.

Min Arduino-mjukvara är installerad på min dator och fungerar bra. Först kopplar jag in originalet Arduino och allt fungerar som det ska.
Nu kopplar jag in min billiga kinesiska kopia av Arduino och datorn kan inte upptäcka enheten.

Problemet är att den kinesiska klonen inte använder standardkretsen Serial to USB, även om chippet heter CH340. Din dator kommer inte att känna igen dessa CH340-chips om du kopplar in dem.
Fixningen är enkel.

Ladda ner programvara från en kinesisk tillverkare och installera den på din dator. Denna programvara kommer att fungera på alla Windows-versioner.
Windows: http://www.wch.cn/download/CH341SER_EXE.html

Anslut nu din kinesiska klon och försök igen. Allt ska fungera. Den kinesiska klonen bör visas i Arduino-mjukvaran och vara redo att användas. Jag laddar ner det blinkande programmet och allt fungerar bra.

Men i vissa fall kanske den kinesiska styrelsen fortfarande inte fungerar. Detta beror på att starthanteraren inte var installerad på Atmel-kontrollern.
För att lösa detta problem behöver vi en fungerande Arduino och en Arduino-klon som vi vill flasha.

Först ansluter vi den fungerande Arduino till datorn och öppnar Arduino-mjukvaran.
Vi går till Arkiv -> Exempel och väljer ArduinoISP. Vi laddar upp det till tavlan. Efter laddning kopplar du bort Arduino.

Nu ansluter vi Arduino-klonen med ledningar till en fungerande Arduino enligt detta schema:

  • Kontakt 10 ansluts till Reset,
  • Kontakt 11 ansluts till kontakt 11,
  • Kontakt 12 till 12,
  • Kontakt 13 - till 13,
  • 5 volt - till 5 volt,
  • Jorden - till jorden.

Nästa steg är att ansluta den fungerande Arduino till datorn.

  1. Gå till Tools -> Board och välj en kinesisk bräda som inte fungerar. I mitt fall är det här Arduino Uno.
  2. Gå nu till Verktyg -> Programmerare igen och välj "Arduino som ISP"
  3. Återigen gå till Verktyg och välj "Burn Bootloader".
  4. Verktyg -> Programmera igen och installera "ArduinoISP".

Din kinesiska kopia bör nu fungera bra.

Arduino är fantastisk programvara och är helt gratis att använda. Om du köper kinesiska kopior av Arduino-kontroller, överväg en donation för utvecklarstöd.

Hoppas artikeln var till hjälp. Lämna kommentarer.

I den här artikeln kommer vi inte att berätta vad är arduino, eftersom sådan information finns överallt i bulk på Internet. Och låt oss gå vidare till hur och med vad vi ska flasha den. Programmet finns också i denna artikel.

1. Ladda ner och installera Arduino IDE *.

När du installerar Arduio IDE bör drivrutinerna installeras automatiskt, det vill säga när fönstret " om man ska gå med på att installera drivrutiner»Klicka på ja.
* Detta är ett program för att skriva skisser och firmware för Arduino

2. För kinesiska Arduino NANO ladda ner och installera CH341 * drivrutin, länk nedan, se skärmdump.


* På den kinesiska ANAS finns USB-kontroller CH340 / CH341, för korrekt funktion behöver du en speciell drivrutin. Detta är den enda skillnaden mellan de kinesiska arduinerna och de ursprungliga.

    När du installerar Arduio IDE bör drivrutinerna installeras automatiskt.
    Om inte, installera Arduino-drivrutinerna från Arduino IDE-mappen (C: \\ Programfiler ...), se den andra skärmdumpen.

    Anslut Arduino till datorn, vänta tills Windows känner igen och kommer ihåg det (första anslutningen).
    P.S. Ett fönster dyker upp som informerar om att enheten känns igen och ansluten till en COM-port med ett visst nummer (2, 3, 6, 9 ...)

Konfigurera Arduino IDE

Starta Arduino IDE, välj kortet (Verktyg \ tavla \ "din styrelse"). Se den första skärmdumpen.

Välj port: verktyg \ port \ "COM annan än COM1, till exempel COM3, COM5 ..." Se den andra skärmdumpen. Vilken port du kunde se när du först kopplade Arduino till en dator.
Notera: om du bara har COM1, så kom antingen inte förarna upp eller så dog kortet.

Som ett exempel - ett bibliotek för en display på ett TM1637-chip, se skärmdump

TM1637-mappen bör visas i biblioteksmappen, som innehåller exempelmappen och två filer med tilläggen .h och .cpp. Dessa två filer bör finnas i varje bibliotek.

Andra sättet. Biblioteksmappen placeras i skissmappen. Då kan skissen som använder biblioteket använda den. Men för resten av skisserna kommer detta bibliotek inte att vara tillgängligt!

Grundläggande fel med Arduino Firmware (FAQ)

Kompileringsfel

Uppstår i skedet av att bygga och kompilera firmware, kompileringsfel orsakas av problem i firmware-koden, det vill säga problemet är rent mjukvara. Till vänster om "ladda ner"-knappen finns en bockknapp - bocka. Under kontrollen kompileras den fasta programvaran och eventuella fel upptäcks. Arduino i det här fallet kan vara inte alls ansluten till datorn.

    I vissa fall uppstår felet när det finns kyrilliska(ryska bokstäver) i sökvägen till mappen med skissen. Lösning: lägg till en separat pappa för skisser i roten av skivan med engelskt namn.

    I det svarta fönstret längst ner på Arduino IDE kan du läsa Full text fel.

    I färdiga skisser nedladdade från Internet uppstår ofta ett fel med beskrivningen "filnamn" ingen sådan fil eller katalog... Det betyder att biblioteket "filnamn" används i skissen, och du måste lägga in det Programfiler / Arduino / bibliotek... Alla mina projekt har alltid en mapp med begagnade bibliotek som behöver installeras. Dessutom kan bibliotek sökas i Google med "filnamn".

    När du använder vissa speciella metoder och funktioner, en felaktigt vald bräda i " Verktyg/bräda«.

    Om du skriver firmware så kommer eventuella syntaxfel i koden att markeras och längst ner i det svarta fönstret kan du läsa en mer detaljerad beskrivning av vad jamben är.

laddningsfel

Det inträffar i det skede när den fasta programvaran kompileras, den innehåller kritiska fel och den laddas ner till kortet via kabel. Ett fel kan uppstå både på grund av hårdvarufel och på grund av mjukvara.

    USB-kabeln som Arduino är ansluten till måste vara Datakabel... Det finns kablar designade endast för laddning, de har 2 trådar inuti. Datakabel har 4 ledningar, varav två behövs för dataöverföring.

    Avinstallerad / sned installerad orsakar nedladdningsfelet drivrutinen CH340 om du har en kinesisk NANO.

    Det blir också ett fel om ingen COM-port vald som Arduino är ansluten till. Om det inte finns några andra portar än COM1, läs de två punkterna ovanför detta, eller prova en annan USB-port, eller ens en annan dator.

    De flesta startproblem som orsakas av arduino eller bootloader-frysning kan botas genom att helt koppla bort arduin från strömförsörjningen... Sedan sätts USB in och blinkar.

    Om felbeskrivningen innehåller ordet averdude eller bootloader svarar inte- med en sannolikhet på 95 % är bootloadern död, till exempel vid en oavsiktlig kortslutning av ledningen till kortet. De återstående 5% - starthanteraren har misslyckats, och den kan flashas igen med en programmerare eller en annan Arduina. Du kan läsa mer om detta i Google av " hur man laddar om bootloadern på Arduino«.