Översikt Arduino skiss belastande upp processen och ISP (1 / 10 steg)

Steg 1: FTDI eller seriell upp



FTDI är faktiskt ett chips. FTDI företaget specialiserat på marker används för att ansluta via USB. I Arduino mark för USB till seriell marker att interface en dator med Arduino IDE till din Arduino huvudsaklig processorn för att ladda upp nya skisser och för att interagera med dina skisser via en seriell Övervakningsfönstret. USB till seriell chip gränssnitten med UART gränssnitt av ATMEL processorn på din Arduino.

För Arduino att acceptera en skiss från det seriella gränssnittet, körs det ett program som heter en bootloader, som accepterar skissen och skriver den till Flash-minne. Bootloader faktiskt bor i en liten del av flashminnet i upperen spänna av minnesadresser, som är reserverad för bootloader. Som får bootloader programmet skissen, lagras in i nedre delen av blixt minne.

Denna Seriell programmering använder ett protokoll som kallas TTL följetong. Den är baserad på en gammal kommunikationsprotokoll kallas RS-232. RS-232 kommunikation använder spänningar som snabbt ändra från en positiv spänning av 3 till 25 volt, till en negativ spänning på -3 till-25 volt. Persondatorer normalt inte längre att komma med RS-232 gränssnitt, men de använde för några år sedan. En PC med ett gränssnitt används vanligtvis spänningar som svänga mellan 12 till-12 volt till en RS-232 signal. ATMEL processorn på en Arduino använder signaler i intervallet 0 till 5 volt. Versionen av detta RS-232-protokoll som är kompatibel med spänningar i intervallet Arduino processorn kan hantera kallas TTL seriell eller ibland du kan höra det som kallas TTL-232, eller bara följetong.

De flesta Arduinos har ett USB till seriell adapter chip inbyggt, så du kan ansluta Arduino direkt till datorn utan någon särskild gränssnitt eller programmerare. Vissa Arduinos, som LilyPad, Mini och Mini Pro, kommer inte med en USB-till-seriell adapter och du behöver för att leverera din egen utsida en. De externa adaptrarna kallas ofta FTDI adaptrar, även om märket på chip inte är FTDI.

Det finns flera ledningar eller anslutningar med seriell kommunikation. Viktigaste kallas RX (kort för får) och TX (kort för Sänd).

Som namnet antyder, RX tråd eller pin tar emot från en annan enhet. Det lyssnar efter inkommande kommunikation. TX vajer eller pin skickar data till en annan enhet. TX tråd från din USB till seriell adapter växlar snabbt mellan 0 och 5 volt i ett mönster, och den är kopplad till RX stift på den Arduino processor, som lyssnar på dessa mönster.

Kommunikationen är tvåvägs, så den Arduino processor kan skicka signaler till USB till seriell adapter. Processorn använder det är egna TX pin för att skicka en signal till USB till seriell adapter RX stift. USB till seriell adapter översätter signaler fram och tillbaka mellan Arduino och datorn via USB-kabeln.

Datorn skickar skissen till din Arduino och får skissa tillbaka från Arduino så att datorn kan kontrollera att programmet laddas okej. Samma seriell anslutning kan användas av din skiss på Arduino för att kommunicera tillbaka till dig via seriell Övervakningsfönstret. Det är vanligt att använda denna metod för att felsöka dina skisser, eftersom du kan stänka Serial.print uttalanden i koden på strategiska platser att rapportera tillbaka värdet på variabler eller berätta vad koden gör just nu. Och du kan skicka data till din dator, exempelvis sensor eller mata in pin avläsningar. Du kan också skicka data från datorn till skiss körs på din Arduino använder den seriella bildskärmen.

Du kanske undrar hur Arduino vet när seriell kommunikation är försöker skicka en skiss att ladda, eller bara kommunicera via seriell monitorn med skissen som redan körs på Arduino? Svaret är enkelt. Bootloader programmet som accepterar skisser och omprogrammerar Arduino körs endast under de första sekunder efter den Arduino processorn återställs. Om bootloader programmet körs på Arduino inte erhåller en viss sekvens av tecken som visar en skiss försöker ladda upp, det avslutas igång och startar den skiss som du laddade tidigare.

När Arduinos utvecklades först, tvungen den person som du laddar upp en skiss till Arduino att trycka på återställningsknappen på Arduino alldeles i början av ladda upp processen, och tid det korrekt, eller försök igen. Senare versioner av Arduino gjorde användning av en seriell tilläggsprotokollet kallas DTR återställa Arduino automatiskt. Eftersom DTR signalen går från 5V till 0 just nu en ny anslutning till Arduino startas, om du skicka denna signal till Återställ fodra av den Arduino processor, återställs. Om anledningen till den nya seriell anslutningen upprättas är att Arduino IDE är att skicka en skiss till bootloader, bootloader går framåt och accepterar skissen och lagrar den. Om anledningen till den nya seriell anslutningen upprättas är att du öppnar den seriella monitorn för Arduino IDE, sedan Arduino återställs, bootloader körs bara lång nog att inse IDE inte försöker skicka en skiss och skissen du tidigare lagt upp börjar köra.

Det är bra att veta om dessa signaler såsom DTR signalen används för automatisk återställning, särskilt om du vill att korrekt ansluta en USB-till-seriell adapter till en Arduino som inte har kortet byggdes, som LilyPad, Mini eller Pro Mini. Eller, om du vill felsöka problem med en Arduino, eller programmera en Arduino använder en annan. Jag nämnde i föregående punkt DTR signalen går från 5V till 0 just nu en ny anslutning har upprättats. Tja, denna signal går låg och stannar låg hela tiden den är ansluten. Om denna signal var ansluten direkt till processorns reset pin, processorn skulle bo i ett tillstånd av återställning och skulle aldrig komma igång med bootloader eller skiss du lagt upp tidigare.

Så här är tricket: The DTR signalen skickas genom en liten kondensator till Återställ PIN-koden av processorn. Kondensatorn blir spänningen från DTR signalen (som går låg och stannar låg) till en tillfällig stegring som går låg till 0V och kommer tillbaka upp till 5V. Detta återställer Arduino och låter det starta bootloader, som senare börjar skissa.

En USB till seriell adapter kräver en drivrutin som skall lastas på din dator, så att din dator kommer att förstå hur man kan kommunicera med den. Äkta Arduinos använda specifik och ändlig listan över modeller av USB-till-seriell adaptrar så IDE kan vara färdigförpackade med alla drivrutiner du kan behöva. Om du använder en klon, fake, derivat, hemgjorda, eller annars inte-stöttat utveckling styrelsen gjort av någon arduino.cc eller en av deras partner tillverkare, det är faktiskt bara bra eftersom det är öppen källkod maskin- och programvara. Vem som helst kan göra en. Men styrelsen kan du använda en USB-till-seriell adapter som kräver en drivrutin för din dator och som inte ingår i nedladdning av mjukvara för Arduino IDE. Ett exempel på detta är det CH340G USB till seriell chip som är mycket vanligt på Arduino-kompatibla skivor säljs på eBay och Amazon. Det är bra för dig att ha kunskap om detta så att du laga din dator med rätt drivrutin.

Denna seriell kommunikation sker med den Arduino processor oftast händer genom specialiserade stift på den processor som är speciellt utformade för TTL seriell kommunikation. Processorn har speciell hårdvara kallas en UART, som hanterar data ur TX PIN-koden skickas eller tar emot data på RX stift. Logiken för att hantera dessa signaler är inbyggda i processorn på en mycket grundläggande nivå. Om du inte använder RX och TX stiften på processorn för seriell kommunikation med UART, är stiften tillgängliga för att göra andra saker, till exempel aktivera reläer, transistorer, lysdioder, eller ta emot digitala signaler från givare. De är helt enkelt digital stift om inte upptagna med seriella signaler. Några processor marker har flera UARTs och därför flera uppsättningar av RX och TX stift. Dessa stift är också vanlig digital stift om inte används av UART del av processorn för seriell kommunikation.

En bootloader kan vara konstruerad för skisser via protokoll använder nästan alla stiften på processorn. Processorn har en mängd olika stift som är vanlig digital stift men dessa stift kan eventuellt användas för specialiserade protokoll. Till exempel finns det en grupp av stift som kan användas för IIC eller I2C-protokollet, som är en speciell seriell buss protokoll kan kommunicera med flera enheter. Och det finns en annan grupp av stift som kan användas för SPI-protokollet, vilket är ännu ett annat olika seriebuss protokoll används för att kommunicera med enheter. Processorn har speciell hårdvara för att genomföra dessa olika protokoll om olika dedikerad stiften och logik för att hantera dessa signaler är inbyggda i processorn på en mycket grundläggande nivå.

Twister #1: Dessa olika protokoll som TTL seriell, I2C och SPI har lägsta-nivå-logiken inbyggd i processorn för att hantera protokoll om särskilda stiften för protokollet är ansluten till en annan enhet, men protokollen kan genomföras för att arbeta med digital stiften på processorn genom att skriva program som emulerar uppförandet av processorns inbyggda logiska kretsar. Detta kallas lite smällar. Ett program kan skrivas som driver stiften i ett mönster som uppfyller de krav eller specifikationerna för protokollet. Till exempel kan ett mjukvaran följetong protokoll skrivas som använder icke-UART stift av processorn. Sedan tar programmet förlägga av hårdvara UART kretsar. Detta är användbart om stiften du normalt skulle använda för ett visst protokoll upptas annars och du behöver använda andra stift. Eller, om du vill ha mer än en inbyggd seriellt gränssnitt. Till exempel ATmega328P processorn har endast en UART och det använder digital stift 0 och 1. Det normalt bara kommunicerar med en annan seriell enhet i taget. Om du vill bifoga en annan seriell enhet på stift 2 och 3, kan du göra det med en seriell programvara som bit-bangs protokollet. Optiboot bootloader kan sammanställas för att kommunicera via mjukvaran följetong på icke-UART stift.

Arduinos kommer vanligen med en seriell bootloader installerat, som använder hårdvaran UART ombord ATMEL processorn, och Arduino IDE körs på datorn är utformat för att kommunicera med det bootloader.

Twister #2: Du behöver inte en bootloader! Läs om ISP nästa.

Se Steg
Relaterade Ämnen

LC-2000 (PA)-P2P 2.4GHz RF fjärrkontroll Arduino skiss ladda upp Demo

Detta dokument ger ett exempel på hur du använder LC-2000 (PA)-P2P till slut trådlöst ladda upp. LC-2000-P2P seriell modulen arbetar att varje steg, ett par av LC-2000-P2P har innehållit två unis, en är MASTER och en annan är slav, kan det avlägsen l...

Bygga en XBMC/KODI remote med Arduino, IR-Sensor sköld och VB.NET

Bygga en XBMC/KODI remote med Arduino och en IR-Sensor sköld, som kommer att arbeta med någon fjärrkontroll.Jag ville styra min XBMC/Kodi dator från min satellitdekoder avlägsen, eftersom jag antingen titta på filmer på XMBC/Kodi eller satellit-TV, s...

Bitars banka steg för steg: Arduino kontroll av WS2811, WS2812 och WS2812B RGB lysdioder

Disclaimer: under det senaste året, några olika bibliotek har skrivits för att kontrollera dessa allestädes närvarande RGB lysdioder av Karl beslutsfattare från Adafruit, PJRC och FastSPI projektet. Biblioteken fungerar mycket bra, och vi bör försöka...

Kissa Timer: Ansluta Arduino, Intel perceptuella Computing kameran och en Dränkbar vattenpump

i detta Instructables vandrar vi genom hur vi samman en Intel perceptuella Computing kamera, en Arduino Uno och en dränkbar pump så att vattenpumpen överför vatten från ett fartyg till ett annat när ingen sitter framför kameran.Vi skapade detta proje...

Rädda världen en droppe i taget, del 4: Uppladdning Arduino skiss koden

Detta kommer att gå igenom processen att ladda upp koden till din respektive scouter.För din vattenledning, packa upp filen "BootstrapHALL"För ditt uttag, packa upp filen "PiezoFinal"Du kommer att märka att dessa filer innehåller en ra...

Arduino Mega GPS med LCD och SD loggning

Använd din Audino Mega som en GPS logger med tydlig LCD display och 5 funktionsknappar. En bi-färg LED används för att ange statusinformation.SDcard kan vara kvar i och läsa med en kort läsaren skiss, med utgång till den seriella Monitor.Detta instru...

Logga Arduino skisser 101

så här lata gamla Geek (LOG) blir uttråkad ibland och vill ha något att göra. Faktiskt, ibland jag blir trött av att försöka lösa maskinvaruproblem, som ibland programvaruproblem. Så jag bestämde mig att göra en tutorial på Arduino skisser.Vad är en...

Skicka SMS från Arduino över Internet med ENC28J60 och Thingspeak

Detta Instructable förklarar hur du skickar ett SMS från en Arduino använder Internet. Det finns många sätt att närma sig detta och jag kommer att förklara ett av de olika metoder som används för att utföra denna uppgift.Några viktiga punkter som beh...

Xmas-box: Arduino/ioBridge internet kontrollerad Julljus och musik show

min xmas-box projektet består av en internet kontrollerad Julljus och musikföreställning. En julsång på begäran on-line som sedan sätta i en kö och spelas i den ordning de begärdes. Musiken sänds på en FM-station inom en radie av 300 ft från mitt hus...

Hem larm eller rörelsedetektor med Arduino,P.I.R Sensor och LCD.

Hej alla,Idag ska jag visa dig hur man gör ett intressant, underbar, Billigt hem larm. Denna Gadget hjälper dig att skydda ditt hus mot tjuvar. I detta projekt ska jag använda en Freeduino Board(Arduino Compatible),P.I.R Sensor module,LCD and some ot...

Mobile Robotics med repa: bygga en Arduino-baserad insekt-liknande Walker och programmera den med Scratch

Låt oss springa runt? Detta är en Arduino-baserad, lätt att bygga version av insekt-liknande walker med klädhängare tråd och ursprungligen skapades av Jerome Demers (se också detta instructable) och Gareth Branwyn. Det finns i två versioner:en fristå...

Fixa en leostick ladda upp problemet och göra det lättare att använda

jag har problem med uppladdning till min leostick, efter alla dag av forskande på hur man fixar det jag hittade denna fixinte hatar du det när du gjorde ett program för det och du behöver ladda upp det med den 3-7 andra gap där du behöver ladda upp,...

Enkla Arduino Bluetooth Cybot på flytta och Android Appplication (uppdaterad)

För ett tag sedan skrev jag ett par instructables användargränssnitt skapande och kontroll i Cybot base med kommandon från antingen tangentbordet eller från en streckkodsläsare.Länkar till dessa finns nedan:Användargränssnitt:Barcode kontroll:Både an...

Arduino skiss för retro analoga mätare grafik på en modern TFT-skärm

En annan skiss från min samling som kan vara av intresse...Visa små digitala siffror av temperatur och luftfuktighet etc på en liten skärm är inte alltid det bästa sättet att visa information. Gammal stil analoga mätarna är bättre i vissa situationer...

Arduino Temp/fukt med LCD och webbgränssnitt

jag nyligen hjälpt en kund flyttar sitt kontor som inkluderade att inrätta ett nytt datorrum.Jag ville ha dem för att kunna kontrollera temperaturen och luftfuktigheten i rummet både genom att kontrollera en LCD-display i rummet och även via en webbs...

Arduino roboten flytta framåt och bakåt med hjälp av HC-SR04 och L293D

Detta är ett projekt som jag har gjort att Visa eleverna hur de kan programmera en enkel robotbil att reagera beroende på den ingång som man får från en ultrasonic sensor. Roboten demonstrerade i timmen av koden i den 1: a Junior High School Papagos...

Dela upp trä och Alumilite flaska Stopper

Virket mest yrkanden träarbetare är alltid den mest extrema. Är mycket önskvärt för konsekvens och styrka på en extrem rak ådring. Och på den andra ytterligheten har vi burls där riktningen ändras ständigt och spalted skogen som är angripen av mögel...

Arduino Pickup Truck med ljus och avstånd Sensor

I denna tutorial kommer jag förklara hur man bygger denna Arduino kartong plocka upp lastbil med hinder skatteundandragande och cool rött ljus. Det är låg kostnad och har mer än bara robot rörelse.En annan fördel är strömförbrukning: endast 4 AA-batt...

3D companion cube. Det är dags att skjuta upp uppfinnare och göra min egen companion cube.

Portal (Valve Software - Orange Box) gå ut och köpa det! Då kommer du förstå varför du kanske vill en companion cube. Så efter flera timmar av spelet spelar borta, det är dags att skjuta upp uppfinnare och göra min egen companion cube.KdjamesSteg 1:...