Overzicht de Arduino sketch uploaden proces en ISP (1 / 10 stap)

Stap 1: FTDI of seriële uploaden


FTDI is eigenlijk een merk van chips. De FTDI bedrijf is gespecialiseerd in chips gebruikt voor het aansluiten via USB. In het land van de Arduino, worden USB-naar-serieel chips gebruikt op een computer met de Arduino IDE naar je Arduino de hoofdprocessor voor het uploaden van nieuwe schetsen en voor interactie met uw schetsen via een seriële monitorvenster interface. De USB-naar-serieel chip interfaces met de UART-interface van de ATMEL processor op je Arduino.

Het draait om de Arduino te aanvaarden van een schets van de seriële interface, een programma genaamd een bootloader, die aanvaardt de schets en schrijft u deze naar Flash-geheugen. De bootloader eigenlijk woont in een klein gedeelte van het Flash-geheugen in het bovenste bereik van geheugenadressen, die is gereserveerd voor gebruik van de bootloader. Zoals de bootloader programma de schets ontvangt, slaat het in het onderste gedeelte van Flash-geheugen.

Deze seriële programmering maakt gebruik van een protocol genaamd TTL seriële. Het is gebaseerd op een oud communicatieprotocol RS-232 genoemd. RS-232 communicatie gebruiken spanningen die snel van een positieve spanning van 3 tot en met 25 volt, met een negatieve spanning van -3 tot-25 volt veranderen. Personal computers meestal niet meer worden geleverd met RS-232-interfaces, maar ze gewend aan een paar jaar geleden. Een PC met een dergelijke interface gebruikt meestal spanningen die slingeren tussen 12 tot-12 volt een RS-232-signaal te sturen. De ATMEL processor op een Arduino gebruikt signalen in het bereik 0 tot en met 5 volt. De versie van deze RS-232-protocol dat compatibel is met de spanningen in het bereik dat de Arduino processor aankan heet TTL seriële, of soms hoor je kan dat het TTL-232, of gewoon seriële genoemd.

Meeste Arduinos hebben een USB-naar-serieel adapter chip ingebouwd, dus u de Arduino rechtstreeks op uw computer zonder speciale interface of programmeur kunt. Sommige Arduinos, zoals de LilyPad, Mini en Pro Mini, niet uitgerust met een USB-naar-serieel adapter en u wilt uw eigen externe een leveren. De externe adapters worden vaak genoemd FTDI adapters, zelfs als het merk van chip niet FTDI.

Er zijn verschillende draden of verbindingen die betrokken zijn bij seriële communicatie. De belangrijkste heten RX (korte voor ontvangen) en TX (korte voor verzenden).

Zoals de naam al impliceert, ontvangt de RX-draad of pin van een ander apparaat. Het luistert naar inkomende communicatie. De TX-draad of pin verzendt gegevens naar een ander apparaat. De TX-draad vanaf uw USB-naar-serieel adapter snel geschakeld tussen 0 en 5 volt in een patroon, en het is aangesloten op de RX-pin op de Arduino-processor, die naar die patronen luistert.

De mededeling is twee richtingen, zodat van de Arduino processor signalen naar de USB-naar-serieel adapter sturen kunt. Het gebruik van de processor is het eigen TX pin om een signaal van de USB-naar-serieel adapter RX pin. De USB-naar-serieel adapter vertaalt de signalen heen en weer tussen de Arduino en uw computer via de USB-kabel.

De computer stuurt de schets aan de Arduino, en ontvangt de schets terug uit de Arduino, zodat de computer controleren kan dat het programma oke geladen. Dezelfde seriële verbinding kan worden gebruikt door uw uitgevoerd op de Arduino schets te communiceren naar je via het venster seriële monitor. Het is gebruikelijk om deze methode te gebruiken om te debuggen uw schetsen, omdat u kunt strooi Serial.print verklaringen in uw code op strategische plaatsen te rapporteren van de waarde van variabelen of om te vertellen wat je code doet op dit moment. En u kunt verzenden van gegevens naar uw computer, zoals de sensor of invoer pin lezingen. U kunt ook gegevens van de computer naar verzenden de schets waarop je Arduino met behulp van de seriële monitor.

Je kunt je afvragen hoe de Arduino weet wanneer seriële communicatie is proberen te sturen een schets te laden, of gewoon communiceren door middel van de seriële monitor met de schets die al op de Arduino is uitgevoerd? Het antwoord is simpel. De bootloader programma dat accepteert schetsen en reprograms van de Arduino alleen worden uitgevoerd in de eerste paar seconden nadat de Arduino de processor wordt teruggesteld. Als het programma van de bootloader draait op de Arduino niet een bepaalde reeks van tekens die aangeeft dat een schets probeert ontvangt te uploaden, het programma wordt afgesloten hardlopen en begint de schets die u eerder hebt geladen.

Toen Arduinos werden aanvankelijk ontwikkeld, had de persoon die het uploaden van een schets aan de Arduino druk op de reset-knop op de Arduino rechts aan het begin van de upload-proces, en het correct, of probeer het opnieuw. Latere versies van Arduino maakte gebruik van een aanvullend protocol van de seriële kabel genoemd DTR automatisch opnieuw instellen van de Arduino. Aangezien het DTR-signaal uit 5V op 0 op dit moment die een nieuwe verbinding met de Arduino is gestart, gaat als u dit signaal aan de lijn van de reset van de Arduino de processor afgeven, herstelt het. Als reden die de nieuwe seriële verbinding tot stand wordt gebracht is omdat de Arduino IDE is het verzenden van een schets naar de bootloader bootloader doorgaat en accepteert de schets en opgeslagen. Als reden dat de nieuwe seriële verbinding tot stand wordt gebracht is omdat u de seriële monitor van de Arduino IDE opent, het opnieuw instellen van de Arduino, de bootloader loopt dan net lang genoeg om te beseffen dat de IDE is niet probeert om een schets, en de schets die u geüpload eerder begint actief te sturen.

Het is handig om te weten over deze signalen zoals het DTR-signaal gebruikt voor automatische reset, vooral als u een USB-naar-serieel adapter correct verbinden met een Arduino waaraan nog geen de adapter gebouwd in, zoals LilyPad, Mini of Pro Mini. Of, als u wilt oplossen van problemen met een Arduino, of een Arduino met behulp van een ander programma. Ik noemde in het vorige lid dat het DTR-signaal gaat van 5V tot 0 op dit moment die een nieuwe verbinding tot stand is gebracht. Nou, dit signaal gaat laag en blijft laag voor de hele tijd die het is aangesloten. Als dat signaal rechtstreeks op de resetpin van de processor aangesloten waren, de processor in een staat van reset zou blijven en zou nooit aan de slag met de bootloader of de schets die u eerder hebt geüpload.

Dus, hier is de truc: het DTR-signaal wordt verzonden via een kleine condensator op de resetpin van de processor. De condensator verandert de spanning van het DTR-signaal (die gaat laag en blijft laag) in een tijdelijke piek die lage gaat naar 0V en komt terug naar 5V. Dit stelt de Arduino en laat het begin van de bootloader, die later de schets begint.

Een USB-naar-serieel adapter vereist een stuurprogramma moet worden geladen op uw computer, zodat uw computer hoe begrijpen zal te communiceren met het. Echte Arduinos gebruiken bepaalde en eindige lijst van modellen van USB-naar-serieel adapters zodat de IDE kan vooraf worden verpakt met alle stuurprogramma's die moet u wellicht. Als u een kloon, fake, afgeleide, eigengemaakte, of anders niet-ondersteunde ontwikkel bord gemaakt door iemand anders dan arduino.cc of één van de producenten van hun partner, dat is eigenlijk enkel fijn omdat het opensource hardware en software. Om het even wie kunt maken. Maar de Raad van bestuur kan gebruik maken van een USB-naar-serieel adapter die een stuurprogramma nodig voor uw computer en dat is niet opgenomen in de softwaredownload voor de Arduino IDE. Een voorbeeld hiervan is de CH340G USB-naar-serieel-chip die is heel gebruikelijk op Arduino-compatibele boards verkocht op eBay en Amazon. Het is goed voor u om kennis te hebben van dit zodat u uw computer met het juiste stuurprogramma bereiden.

Deze seriële communicatie gebeurt met de Arduino de processor meestal gebeurt door middel van gespecialiseerde pinnen op de processor die speciaal zijn ontworpen voor TTL seriële communicatie. De processor is speciale hardware genoemd een UART, die de gegevens uit de TX-pin verzenden of ontvangen van gegevens op de RX-pin afhandelt. De logica voor de afhandeling van deze signalen is ingebouwd in de processor op een zeer fundamenteel niveau. Als u niet de RX en TX pinnen op de processor voor seriële communicatie met behulp van de UART gebruikt, zijn de pinnen beschikbaar voor het doen van andere dingen, zoals het activeren van Relais, transistors, LEDs, of digitale signalen ontvangen van sensoren. Ze zijn gewoon digitale pinnen als niet bezet met seriële signalen. Sommige processor chips hebben meerdere UARTs en dus verschillende sets van RX en TX pinnen. Deze pinnen zijn ook gewone digitale pinnen als niet wordt gebruikt door het gedeelte van de UART van de processor voor seriële communicatie.

Een bootloader kan worden ontworpen om het accepteren van schetsen via elk protocol met behulp van bijna alle pinnen op de processor. De processor heeft een verscheidenheid van pinnen die gewone digitale pinnen maar deze pinnen kunnen desgewenst worden gebruikt voor gespecialiseerde protocollen. Er is bijvoorbeeld een aantal pinnen dat kan worden gebruikt voor IIC of I2C protocol, dat is een speciale seriële bus protocol kan communiceren met meerdere apparaten. En er is een andere groep van pinnen dat kan worden gebruikt voor de SPI-protocol, dat is nog een ander verschillende seriële bus protocol gebruikt om te communiceren met apparaten. De processor is speciale hardware die ontworpen is voor de uitvoering van deze verschillende protocollen voor de verschillende speciale pennen en de logica voor de afhandeling van deze signalen is ingebouwd in de processor op een zeer fundamenteel niveau.

Twister #1: Deze verschillende protocollen zoals TTL seriële I2C en SPI hebben de low-level logica ingebouwd in de processor voor de verwerking van de protocollen als de specifieke pinnen voor het protocol zijn aangesloten op een ander apparaat, maar de protocollen kunnen worden toegepast om te werken op een van de digitale pennen op de processor door het schrijven van software die het gedrag van de processor van de ingebouwde logische circuits emuleert. Dit heet bits bonzen. Een programma kan worden geschreven die drijft de pinnen in een patroon dat voldoet aan de vereisten of de specificaties van het protocol. Bijvoorbeeld, kan een serieel protocol van software worden geschreven die gebruikmaakt van niet-UART pinnen van de processor. De software neemt dan de plaats van hardware UART circuits. Dit is handig als de pennen die u normaal voor een bepaald protocol gebruiken zou anders zijn bezet, en u wilt andere pennen gebruiken. Of, als u wilt dat meer dan de één ingebouwde seriële interface. Bijvoorbeeld, de ATmega328P-processor heeft slechts één UART en het maakt gebruik van digitale pinnen 0 en 1. Het normaal alleen communiceert met één ander serieel apparaat tegelijk. Als u koppelen een ander seriële apparaat op pin 2 en 3 wilt, kunt u dat doen met een seriële softwareprogramma dat bits-pony het protocol. De Optiboot bootloader kan worden gecompileerd om te communiceren door middel van software op niet-UART-pins seriële.

Arduinos komen vaak met een seriële bootloader, geïnstalleerd, die gebruik maakt van de hardware UART aan boord de ATMEL processor, en de Arduino IDE op uw computer is ontworpen om te communiceren met die bootloader.

Twister #2: U hoeft niet een bootloader! Lees meer over ISP volgende.

Gerelateerde Artikelen

LC-2000 (PA)-P2P 2,4 GHz RF afstandsbediening Arduino Sketch uploaden Demo

LC-2000 (PA)-P2P 2,4 GHz RF afstandsbediening Arduino Sketch uploaden Demo

Dit document geeft een voorbeeld van het gebruik van LC-2000 (PA)-P2P tot finish draadloos uploaden. De LC-2000-P2P seriële module werkt onder tot per vervoerswijze, een paar van LC-2000-P2P heeft bevat twee unis, is een meester en een ander is SLAAF
Palm Arduino Plus

Palm Arduino Plus

UPDATE: is er een opmerking met betrekking tot de PCB die niet voor hem werkte. Op did werkzaamheden voor mij, niet alleen in deze post, maar ook in de R/C LEGO 'Velocipede' Droid of om het even welk van mijn projecten waarmee Palm Arduino Plus.Ik be
RedBitOne - kleine maar krachtige

RedBitOne - kleine maar krachtige

Een kleine atmega328p-au-uitbraak met de kracht van de Arduino(TM) UNO, zie het rijden uw volgende micro project!Bezoek de Blog en neem deel aan een poll over een 10$ AVRisp!OPEN SOURCE---alle bestanden zijn op De GITHUBGebruik gerust het schema! zij
Draadloze vinger Drum

Draadloze vinger Drum

kwam ik deze Kracht gevoelige weerstanden. Ik vind ze veel en ik wilde iets met hen te doen kan worden waardoor ze meer usesable dan staande op het breadboard.Paar maanden geleden, heb ik de zakformaat RevIO - Arduino compatibel en plezier maken met
Instellen de Linkit één bord en laad de batterij

Instellen de Linkit één bord en laad de batterij

Hallo mensen! Pure koolstof hier met een ander Instructable, ik heb me onlangs aangemeld voor het ontvangen van een Linkit een boord van MediaTek via Instructables en over een maand later kreeg ik het bord in de mail. Het kwam met een mooie kleine to
Hoe gebruik Arduino Mega 2560 als Arduino isp

Hoe gebruik Arduino Mega 2560 als Arduino isp

wanneer ik het opbouwen van mijn Atmega328p-pu op een Printplaat voor mijn bromfiets ik het nodig had om te bootload.Omdat ik er geen externe hebben programmering apparatuur ik nodig had om mijn Arduino Mega 2560 gebruiken als ArduinoISP ( http://ard
Arduino Etch-A-Sketch Klok

Arduino Etch-A-Sketch Klok

ik heb gezien verschillende Arduino aangedreven etsen-A-schets klokken op het web, maar niets met instructies (is het een soort van geheim? Is iemand van plan op het maken van het rijk in de mondiale markt van Etch-A-Sketch Klok?). Ik heb gebruikt Ar
Hoe maak je het gemakkelijkste Breadboard Arduino-compatibele Sanguino-Equivalent... OOIT! & Hoe schetsen rechtstreeks uploaden naar het!!

Hoe maak je het gemakkelijkste Breadboard Arduino-compatibele Sanguino-Equivalent... OOIT! & Hoe schetsen rechtstreeks uploaden naar het!!

Oke dus de titel inderdaad een beetje een mondvol lol is!Ive geweest hoeft te prutsen met een verlangen naar meer Input/Output pinnen dan de Arduino UNO en tegenwoordig de UNO gebruikt een Atmega328microcontroller, & zijn beperkt tot slechts ongeveer
Arduino Bluetooth programmering Shield (draadloos uploaden Code)

Arduino Bluetooth programmering Shield (draadloos uploaden Code)

Dit project zal u tonen hoe te maken van een code van de Arduino draadloos uploaden vanaf uw Computer via Bluetooth.Stap 1: Stap #1: het Bluetooth module setup circuit Breadboard. •De Bluetooth-module gebruikt in dit project is de HC-05. Het is goedk
Arduino #1 - installeren van Arduino en het uploaden van een schets hoe

Arduino #1 - installeren van Arduino en het uploaden van een schets hoe

ik laten zien hoe Arduino installeren op een Mac, praten een beetje over de Arduino Nano, uploaden van een schets aan de Arduino, dan praten over hoe breadboard werken.
Hookup een LCD-scherm aan een Arduino in 6 seconden met 3, niet 6 pins

Hookup een LCD-scherm aan een Arduino in 6 seconden met 3, niet 6 pins

het toevoegen van een LCD-scherm aan de Arduino projecten kan echte waarde toevoegen de kosten doen dus kan echter aanzienlijk. Niet een financiële kosten - u kunt oprapen 16 (tekens) x 2 (rijen) LCD voor zo weinig zoals £3,50. De kosten is het telle
Een geavanceerde benadering van programmering van Arduino & AVR

Een geavanceerde benadering van programmering van Arduino & AVR

Dit instructable is een must read voor iedereen die vertrouwd is met core AVR chips en Arduino.Nou, om meer specifieke, bij het lezen van de instructable, zal u zitten kundig voor:1) weten het juiste verschil tussen AVR en Arduino.2) programmering Ar
Arduino AVR Progamming Shield

Arduino AVR Progamming Shield

Je heb een snelle en gemakkelijke manier aan programma AVR chips nodig. Wist u dat u kunt uw Arduino en de Arduino IDE? Dit schild Arduino maakt het proces veel gemakkelijker.U kunt:Branden een bootloader op een vervanging Atmega328 voor uw UNO.Een z
Sensorino draadloze home verlichting met Arduino

Sensorino draadloze home verlichting met Arduino

Domotica bestaat voor een tijdje (sinds de jaren 90?) en is vrij duur, maar met de komst van Arduino en vooral goedkope sensoren, Relais, andere onderdelen van Ebay is niet langer een inherente reden voor een maker niet voor het automatiseren van hun