En avancerad metod för Arduino & AVR programmering (2 / 7 steg)

Steg 2: Vad är skillnaden mellan core AVR & Arduino



Detta är den första grundläggande frågan för dem som är relativt ny på Arduino/AVR grejer...

AVR:

Tja, är AVR en familj av mikrokontrollers från "Atmel halvledare"

Som en familj innehåller många medlemmar, innehåller AVR familjen även annan typ av mikrokontroller. De alla följer Havard arkitektur. De är 8-bitars mikrokontroller. (Det finns 32 bit AVR chips också).

AVRs kan huvudsakligen delas i tre grupper

1) tinyAVR. (lägre pincount med lägre programmering utrymme)

2) megaAVR. (med medellång programmering mellanslag)

3) xmegaAVR. (högre programmering utrymme med några utökade funktioner som "DMA").

Det finns så många marker under dessa 3 grupper.

Som för Ex-.

ATMEGA8/Atmega16/Atmega32/Atmega328 är alla olika mega familj med några lite annorlunda egenskaper från varandra.

För säga Atmega328p har 32 k flash / 1k EEPROM / 2k SRAM Atmega8 har 8 k flash/512 byte EEPROM / 1K SRAM även om båda har samma nr av pincount(28).

Å andra sidan Atmega32 har också 32k flash som Atmega328p men med högre pincount(40).

ATTINY45 är en populär mikrokontroller från tinyAVR familj med endast 8 stift och med 4 k flash/512 byte EEPROM & SRAM.

Så har du att välja Microcontroller enligt din krets behöver. Som om du vill att blinka en enda LED, sedan ATTINY45 är perfekt men om du vill köra en komplex LCD som 128 x 64 eller 20 x 4 måste du välja mega8/328/32.

Denna mikrokontroller är tomma chips med bara programmeras i deras flash/bootloader. Vad fan är nu bootloader? Jag kommer att diskutera det senare.

Du har att utforma en ordentlig strömkrets att mata den, lämna de klocka för att köra den. Du behöver också någon form av programmerare att bränna program in i dem.

De kan programmeras på många olika sätt, får vi se i kommande steg hur det går. Du behöver också någon sorts IDE där du kan skriva ditt program. WinAVR är en IDE. Atmel studio är också en annan IDE för att skriva program för Atmel mikrokontroller.

Vi kommer att välja WinAVR programmera våra core microcontrollers.

ARDUINO:

Vi kan säga att Arduino är plattform (inklusive maskinvara och programvara) som främst används för prototyptillverkning. Den stora fördelen med arduino är att detta är ett "open source".

Jag antar att jag måste fokusera mer ljus på detta... för här kommer den största skillnaden mellan AVR och Arduino

Arduino UNO rev3 är exempelvis en styrelse som innehåller en AVR Microcontroller och alla nödvändiga tillbehör för att få det att fungera som som sagt innan, strömförsörjningen, klocka krets etc. Mikrokontroller används här är en Atmega328p.

Det finns också en ombord "arrangemang" programmera mega328p utan en programmerare. Nu vad är arrangemanget???

Det finns en enkel USB till seriell omvandlare ombord som du kan programmera mega328p. Men hur??? Det är där, "bootloader" kommer in.

"bootloader" är ett litet program i ett visst område av den microcontroller flash. När chipet är restarted/påslagen, chip först träder i området bootloader (denna verksamhet måste också programmeras via säkring bitar) och exekverar koden skrivs in i den. Men hur koden är kunna programmera chip själv???

Säga att koden är skriven på ett sådant sätt, att det väntar programmering byte att anlända från USB till seriell omvandlare. När programmering byte som tagits emot, lagras byten i det programmet flash och när alla byte fick, den startar om sig själv och kör den kod som är nyskrivna till programmet flash.

Men en fråga nu uppstår som efter programmering, om mega328p är uppstart från programmet flash (undvika bootloader), sedan hur det kan programmeras i nästa cykel??

Svaret är ganska enkelt, mega328p hoppar aldrig till start var programmet flash först. Det alltid hoppar till avsnittet bootloader först och vänta det lite tid för ankomsten av databytes via seriell port. Om data anländer inom ämne, sedan börjar det programmera själv som sagt tidigare, om data inte kommer fram inom viss tid, då det lämnar avsnittet bootloader och börjar koden körs från programmet flash.

Den byte skickar sekvens är känd av både bootloader och ArduinoIDE.This är hur arduino programmering fungerar utan hjälp av en programmerare.

Men...

För att bränna bootloader till AVR: s flash, måste någon form av programmerare (antingen parallell/ISP) användas för första gången. Det är där kommer nödvändigheten av de fristående programmerarna.

Nu om IDE av arduino.

I Arduino IDE finns det många typer av styrelser att välja mellan. Varje bräda använder olika typ av mikrokontroller. Som UNO använder rev3 styrelsen Atmega328p.The mega2560 använder Atmega2560 etc etc.

Då kommer det en annan spännande del av Arduino." Biblioteket". Biblioteken är massa program att köra olika moduler av mikrokontroller (som TWI, SPI, PORT etc) eller att köra en annan extern hårdvara som LCD, Stepper motor, olika typer av sensorer och många många andra. För att göra mikrokontroller fungerar, måste du skriva några nominella koder med funktioner från det befintliga biblioteket. Också är det språk som används i Arduino IDE C/C++. Men du behöver inte att direkt interagera med hårdvaran i atmega. Dessa tas om hand i bakgrunden. Kommandona är mycket enklare än att använda core "C". Jag kommer att programmera atmega chip i två olika IDEs senare.

Å andra sidan, om du har för att programmera en kärna AVR med Winavr eller sådana andra C baserad IDE, då du måste veta rätt arkitektur, hårdvara, moduler av mikrokontroller och sedan bara du kan programmera den. Men varför skulle man gå i sådan en coplexity??? Detta är en miljoner dollar fråga...

Har du någonsin känt, att du endast använder andras skriftliga kod/funktioner och du kan inte ändra det per dina behov eller inte kan se hur den totala programmet fungerar i bakgrunden eller har du någonsin känt behov av kodkörning rad för rad???

Om du någonsin känt någon av de ovan nämnda, då det är dags för dig att skriva core ' C'code du AVR.

Även om du vill frigöra kraften i den låga nivå core AVR programmeringen med din egen skriven bibliotek/kod och vill ändra koder per dina behov och parallelly vill ha en bättre förståelse av hela koden... måste du spela med core AVR programmering.

Hoppas jag har rensat dina tvivel om Arduino och AVR grejer. Nu dags för lite bryta innan de träder i nästa avsnitt...

Se Steg
Relaterade Ämnen

Arduino AVR programmering sköld

Behöver du ett snabbt och enkelt sätt att programmet AVR marker. Visste du att du kan använda din Arduino och Arduino IDE? Denna Arduino shield gör processen mycket enklare.Du kan:Bränn en bootloader på en ersättare Atmega328 för din UNO.Göra ett fri...

AVRSH: Ett kommando tolken skal för Arduino/AVR.

Någonsin velat "logga in" till din AVR microcontroller? Någonsin trodde det skulle vara häftigt att "katt" ett register att se dess innehåll? Har du alltid velat ha ett sätt att driva upp och stänga enskilda perifera sub system din AVR...

Setup AVR programmering på OS X använder Eclipse

En tid lyckades tillbaka jag setup Eclipse för AVR programmering på både Windows 8 och Ubuntu. Att inte vara en expert i programmering eller i elektronik, måste jag erkänna jag fann det utmanande.Nu ville jag setup Eclipse för AVR återigen på OS X Yo...

Telnet till din Arduino/AVR!

Häromdagen var jag vill kolla på en av min AVR: s men jag var på övervåningen och Gud vet det var för mycket jobbigt att gå ner till där mikrokontroller var. Men det fanns två inaktiv datorer sitter på övervåningen bredvid min lata rumpa, så jag hade...

Arduino Bluetooth programmering sköld (trådlöst ladda upp koden)

Detta projekt kommer att visa dig hur man gör en trådlös uppladdning Arduino kod från din dator via Bluetooth.Steg 1: Steg #1: Breadboard Bluetooth modul setup kretsen. •Den Bluetooth-modul används i detta projekt är HC-05. Det är billigt och en av d...

AVR programmering med Arduino, AVRdude och AVR-gcc

AVR är en gemensam, billig typ av mikro-controller som kan verka skrämmande att arbeta med, men oroa dig inte! När du har Ställ in grundläggande kunskap och kan de bli inte bara nyttigt, men viktigt att nya projektidéer som du drömmer upp!Denna handl...

Att lägga till ICSP header till din Arduino/AVR styrelse

så du kanske har spelat med Arduino's, eller snarare Hackduino. Om du gjort din egen Hackduino eller liknande projekt, kanske du undrar hur du lägger till i ICSP huvudet. I grund och botten gör med ICSP-huvudet att du kan använda en extern programmer...

Hur du gör din egen AVR programmering station för under 8 dollar

Hej igen!Det senaste året har jag tränat med AVR microcontrollers och Arduinos.Jag köpte först en * klassiska * Attiny85 och programmeras det genom min arduino Leonardo. Det var häftigt att se en kala marker göra programmerade saker (i en bråkdel av...

Parallella AVR programmering styrelsen

några veckor sedan bestämde jag mig för att göra en enkel webserver baserat på vissa AVR chip (en instructable som beskriver projektet kommer att följa snart :-) ). Tanken var att hålla kretsen så enkla som möjligt och att återanvända de befintliga t...

Driva din Arduino/AVR med ett Hand-Cranked batteri

om du någonsin velat driva din Arduino eller AVR från ett batteri för utveckling testning (batterierna har olika makt leverans kvaliteter än, säg, transformerad AC eller ens en reglerad vägg vårta i DC) testning men var trötta för att gå igenom batte...

Arduino ATtiny2313 programmering sköld

idag, jag gjorde en liten 3 x 3 x 3 LED cube med en ATtiny2313 som jag hade från ca 2 veckor sedan. När jag hade att programmera om LED kuben när jag tänkte på mer awesome mönster, jag var tvungen att få ut min skärbräda och sedan tråd upp allt igen...

PIC/AVR programmering adapter/chip hållare.

Detta är en hemmagjord adapter som jag gjorde för programmering SOIC/integrerad krets storlek mikrochips som jag använder i min micro flygplan (http://maxoffsky.com/tech-blog/rc-micro-spitfire-airplane-build-log/).Jag hade problem med att ansluta mar...

Arduino UNO - programmering Atiny85

Vi kan berätta att Arduino är ganska stora i storlek och inte så mycket portabel. När du skala ner designa bärbara tech en Arduino UNO det är ganska stor, faktiskt även atmega328 är ganska stor i vissa fall en enkel lösning vore att använda en ATtiny...

Baserade Arduino enkel programmering tutorials: 1 med LED

detta är bara början på en helt fantastisk serie! fortfarande awesome saker framöver!Steg 1: Bara några enkla steg... Detta är i princip helt enkel programmering;int ledde = 13. deklarerade ledde på stift 13;void setup() {pinMode(led,OUTPUT); deklare...

Arduino IDE programmering

Här är de steg att följa för programmering ombord chipKit p32 använder Arduino IDE.Steg 1: Se till att du installerar MPLAB X IDE och X32 kompilator innan du tycker om programmering i Arduino IDE.Steg 2: Installera Arduino IDE 1.6.7 (eller senaste)Kl...

Arduino Attiny programmering sköld

En Attiny är ett bra alternativ till atmega328, det är för de projekt som behöver några GPIO stift och behöva vara portabel. Men till skillnad från atmgea328 attiny kan inte ansluta till en Arduino ombord och programmeras. Ett annat sätt är att använ...

Nybörjarguide - AVR programmering

du kommer att få detta gjort i 30 min.Steg 1: delar1. 1 x någon typ av kretskort2. 1 x Atmel AVR Atmega16 mikrokontroller3. 8 x 330 ohm motstånd4. 8 X lysdioder5. 1 X AVR programmerare (Använd bara data överför koden, jag använde en STK500)Steg 2: By...

Vattennivån Sensormodul för Arduino AVR ARM STM32 STM8

Grattis till ICStation -teamet! De har utvecklat denna underbara vattennivån Sensormodul av stora ansträngningar. Denna modul med liten storlek och hög kostnadseffektiva är lätt att använda. I denna artikel, kommer att vi använda digital lagring osci...

Rover 5 Tank, Arduino Outdoor programmering utmaning

Hej killar/tjejerDetta projekt startade ursprungligen att se om vi kunde program ut egna avlägsen kontrollerade rover men förvandlas till mer sedan att vi beställde 3 Rover 5 enheter eftersom de verkar ha en mycket lätt att använda drivrutinen styrel...