Een geavanceerde benadering van programmering van Arduino & AVR (2 / 7 stap)

Stap 2: Wat is het verschil tussen core AVR & Arduino


Dit is de eerste fundamentele vraag voor degenen die relatief nieuw voor Arduino/AVR spullen zijn...

AVR:

Nou, is AVR een familie van microcontrollers vanaf "Atmel Semiconductors"

Zoals een familie vele leden bevat, bevat de AVR-familie ook ander soort microcontrollers. Ze volgt de Havard het platform. Ze zijn 8 bit microcontrollers. (Er zijn 32-bits AVR chips ook).

AVR's kunnen vooral worden ingedeeld in drie groepen

1) tinyAVR. (lagere pincount met lagere programmering ruimte)

2) megaAVR. (met middellange programmering ruimte)

3) xmegaAVR. (hogere programmering ruimte met een aantal uitgebreide eigenschappen zoals "DMA").

Er zijn dus veel chips onder deze 3 groepen.

Zoals voor Ex-.

ATMEGA8/Atmega16/Atmega32/Atmega328 zijn al verschillende leden van mega familie met sommige enigszins verschillende kenmerken van elkaar.

Voor bijvoorbeeld Atmega328p heeft 32 k flash / 1k EEPROM / 2k SRAM terwijl Atmega8 heeft 8 k flash/512 byte EEPROM / 1K SRAM hoewel beide dezelfde geen van pincount(28) hebben.

Aan de andere kant Atmega32 heeft ook 32k flash als Atmega328p maar met hogere pincount(40).

ATTINY45 is een populaire microcontroller van tinyAVR familie met slechts 8 pinnen en met 4 k flash/512 byte EEPROM & SRAM.

Je moet dus kiezen dat microcontroller volgens uw circuit moet. Net als als u een enkele LED knipperen wilt, dan ATTINY45 is perfect, maar als je wilt een complexe LCD zoals 128 x 64 of 20 x 4 rijden dan moet u kiezen mega8/328/32.

Deze microcontrollers zijn lege chips met niets geprogrammeerd in hun flits/bootloader. Nu, wat de hel is bootloader? Ik zal later bespreken.

U moet het ontwerpen van een goede macht circuit te voeden, leveren het klok om te draaien. Ook moet je een soort van programmeurs te branden programma's in hen.

Ze kunnen op veel verschillende manieren worden geprogrammeerd, zullen we zien in de komende stappen hoe het kan worden gedaan. Ook moet je een soort van IDE waarin u uw programma kunt schrijven. Winavr is een IDE. Atmel studio is ook een andere IDE voor het schrijven van programma's voor Atmel microcontrollers.

Wij zal WinAVR onze core-microcontrollers programmeren kiezen.

ARDUINO:

We kunnen zeggen dat Arduino platform is (met inbegrip van hardware & software) vooral gebruikt voor prototyping. Het grote voordeel van arduino is dat dit een "open source".

Nou, ik denk dat ik moet concentreren meer licht op dit... want hier het belangrijkste verschil tussen AVR en Arduino komt

Arduino UNO rev3 is bijvoorbeeld een bord waarin een AVR Microcontroller en alle nodige randapparatuur te laten werken als, zoals ik al zei, de voeding, klok circuit enz. De microcontroller die hier gebruikt is een Atmega328p.

Ook is er een aan boord "regeling" voor het programmeren van de mega328p zonder een programmeur. Wat is nu de regeling???

Er is een eenvoudige USB naar seriële converter aan boord waarmee u de mega328p kunt programmeren. Maar hoe??? Dit is waar, de "bootloader" komt.

"bootloader" is een stukje programmaatje gelegen in een bepaald gebied van de microcontroller de flitser. Wanneer de chip opnieuw opgestart/ingeschakeld is, wordt de chip eerst invoert in het gebied van de bootloader (deze activiteit moet ook worden geprogrammeerd via fuse-bits) en voert de code die is geschreven in het. Maar hoe kan de code voor het programmeren van de chip zelf???

Voor bijvoorbeeld de code is geschreven op zodanige wijze, dat hij wacht op de programmering bytes te komen van de USB naar seriële converter. Bij het programmeren van ontvangen bytes, het slaat de bytes in het programma flash en wanneer alle bytes ontvangen, het zelf wordt opnieuw opgestart en wordt de code die onlangs in flash programma geschreven is uitgevoerd.

Maar nu een vraag ontstaat die na de programmering, als de mega328p is opstarten vanaf de programma-flitser (het vermijden van de bootloader), dan hoe het kan worden geprogrammeerd in de volgende cyclus??

Het antwoord is vrij eenvoudig, het mega328p nooit springt naar de beginlocatie voor het programma flash eerst. Het altijd springt naar de bootloader sectie eerst en wachten er enige tijd voor de komst van databytes via de seriële poort. Wanneer gegevens binnen de timeperiod aankomen, dan begint het te program zelf zoals verklaard voordat, als gegevens niet binnen de bepaalde tijd aankomt, dan het verlaat de bootloader sectie begint en uitvoeren van de code van programma flash.

De byte volgorde verzenden is bekend door zowel de bootloader en de ArduinoIDE.This is de werking van arduino programmeren zonder de hulp van een programmeur.

MAAR...

Om te branden de bootloader in AVR van flash, moet een soort programmeur (ofwel Parallel/ISP) worden gebruikt voor de eerste keer. Dit is waar komt de noodzaak van de zelfstandige programmeurs.

Nu over de IDE van de arduino.

In de Arduino IDE zijn er vele soorten boards om uit te kiezen. Elk bord maakt gebruik van verschillende soort microcontrollers. Als de UNO gebruikt rev3 bestuur Atmega328p.The mega2560 gebruik Atmega2560 enz enz.

Vervolgens komt er een ander opwindend deel van de Arduino." De bibliotheek". De bibliotheken zijn bos van programma's om te rijden van de verschillende modules van de microcontroller (zoals TWI, SPI, poort, enz.) of om te rijden een andere externe Hardware zoals LCD, Stepper motor, verschillende soorten sensoren en vele vele anderen. Om de microcontroller die werken, die u moet schrijven van sommige nominale codes met behulp van de functies van de bestaande bibliotheek. Ook is de taal die wordt gebruikt in de Arduino IDE C/C++. Maar je hoeft niet rechtstreeks communiceren met de hardware van de atmega. Deze worden verzorgd op de achtergrond. De opdrachten zijn veel eenvoudiger dan het gebruik van kern 'C'. Ik zal de atmega-chip programmeren in twee verschillende IDEs later.

Aan de andere kant, hebt u voor het programmeren van een kern AVR met Winavr of dergelijke andere C gebaseerde IDE, dan u moet weten de juiste architectuur, de hardware, de modules van de microcontroller en vervolgens alleen u kunt het programma. Maar waarom men zou gaan in een dergelijke coplexity??? Dit is een miljoen dollarkwestie...

Heb je ooit gevoeld, dat u alleen elkaars geschreven code/functies gebruikt en u bent niet in staat om het te wijzigen volgens uw behoeften of u bent niet in staat om te zien hoe het totale programma werkt op de achtergrond of heb je ooit gevoeld de noodzaak voor de uitvoering van de code regel voor regel???

Als je ooit gevoeld om het even welk van bovengenoemde, dan is het tijd voor u om te schrijven van de kern ' C'code voor je AVR.

Ook als u wilt unleash the power van de programmering van de AVR kern van laag niveau met uw eigen bibliotheek/code geschreven en wilt wijzigen van de codes volgens uw behoeften en parallelly willen een beter inzicht in uw hele code... moet dan je spelen met kern AVR programmering.

Hoop dat ik je twijfels over de Arduino en AVR spullen hebt uitgeschakeld. Nu tijd voor een beetje breken vóór het aangaan van de volgende sectie...

Gerelateerde Artikelen

Een secundaire benadering van UltraViolet fotografie

Een secundaire benadering van UltraViolet fotografie

dit is een inferieur benadering UV fotografie. Om eerlijk te zijn heb ik terughoudend om dit bericht. Maar kan iemand een gebruik voor dit vinden.En omwille van de openbaarmaking ik was geïnspireerd door deze gentleman's werk. Het "zachtheid" va
Een kinestetic benadering van leesvaardigheid (hoe te leren lezen op een leuke manier)

Een kinestetic benadering van leesvaardigheid (hoe te leren lezen op een leuke manier)

4 en 5-jarigen wilt verplaatsen terwijl ze aan het leren bent.  Dit instructable toont hoe maak je een super leuke kinesthetische lezing les.  Met behulp van fysieke gebaren met postbladen, zal studenten zitten kundig voor zitten kundig voor herinner
Biologisch pluimvee. Nesten en vaders. Een holistische benadering van broeden & uitbroeden van kuikens. Deel twee. Onderhouds - Poule couveuse bio

Biologisch pluimvee. Nesten en vaders. Een holistische benadering van broeden & uitbroeden van kuikens. Deel twee. Onderhouds - Poule couveuse bio

het maken van een stressless omgeving waarin de broody voelt comfortabel om te zitten van haar eieren. Voorbereiden op voorhand de hatch en gratis opgezette kuikens - een rol voor de Haan/cockerel.De verschillende soorten wilde jungle fowl waaruit de
Hoe maak je een digitale klok van Arduino

Hoe maak je een digitale klok van Arduino

Digitale klokken zijn een van de geweldige uitvinding op het gebied van de wetenschap.Heb je je ooit afgevraagd "Hoe te maken van uw eigen digitale klokken, net zoals in films!"???Nou die ik heb het ook, mijn kindertijd in een droom aan mijn zee
Waarom gaan kippen broody? Biologisch pluimvee. Een holistische benadering van broeden en kuikens broedeieren. Part One

Waarom gaan kippen broody? Biologisch pluimvee. Een holistische benadering van broeden en kuikens broedeieren. Part One

Is er een dergelijk wezen als een standaard broody duivin? Kijken naar hoe en waarom uw kip doet of niet gaan broody zal helpen u zowel uitkomen en kuikens met succes te verhogen. Slechts één probleem, nadat u begonnen bent, het is heel moeilijk om t
Obstakel te vermijden met behulp van Arduino Robot

Obstakel te vermijden met behulp van Arduino Robot

Hey kerels in dit instructable zullen we zien hoe maak je een autonome obstakel te vermijden Robot.This robot is ontworpen en geprogrammeerd op een zodanige wijze dat het voorkomt botsing. De robot in principe in een voorwaartse richting beweegt en w
Programmering van de 'AtTiny85' met de 'Tiny AVR Programmer' en 'Arduino IDE' aangevuld

Programmering van de 'AtTiny85' met de 'Tiny AVR Programmer' en 'Arduino IDE' aangevuld

Met behulp van Atmel's kleine 8 pin AtTiny85 is microcontroller als een standalone een geweldig alternatief voor de grotere 28 pin AtMega328 gemonteerd op een Arduino Uno-bord. Ik heb overgeschakeld van de ene naar de andere op verschillende manieren
Macht van uw Arduino/AVR met een batterij Hand-Cranked

Macht van uw Arduino/AVR met een batterij Hand-Cranked

als u ooit hebt willen macht uw Arduino of AVR uit een batterij voor het testen van de ontwikkeling (batterijen hebben verschillende macht levering kwaliteiten dan, zeg, getransformeerde AC of zelfs een gereglementeerde muur wrat in DC) testen maar w
Het wijzigen van de fuse-bits AVR Atmega328p - 8-bit microcontroller met behulp van Arduino

Het wijzigen van de fuse-bits AVR Atmega328p - 8-bit microcontroller met behulp van Arduino

In dit instructable leert u hoe u kunt wijzigen van de fuse-bits van Atmega328p microcontroller. Ik ben met behulp van Arduino mega als programmeur aan programma Atmega328P-PU op breadboard. Het komt met een standaard 1MHz interne gekalibreerd oscill
Bouwen van een systeem van volledige AVR en Mastermind spelen!

Bouwen van een systeem van volledige AVR en Mastermind spelen!

Het spel Mastermind is al een lange tijd, en ik herinner me het krijgen van een versie van de Raad van bestuur met gekleurde pinnen, toen ik een kind was. Ik hou van dit spel, want het is gewoon door pure logica oplosbaar. Één speler (of een computer
Draadloze programmering van Arduino

Draadloze programmering van Arduino

ik heb het opbouwen van robots voor een paar jaar nu en een van de dingen die ik meest frustrerende gevonden heb is tijdens het testen en debuggen. Er lijkt altijd te zijn een noodzaak voor een USB-kabel die kan krijgen in de manier waarop en beperke
Ontwikkeling van een ATtiny firefly project met behulp van Arduino en het is IDE

Ontwikkeling van een ATtiny firefly project met behulp van Arduino en het is IDE

Ik zag onlangs een interessant project door Karl Lunt waarmee een ATtiny13 nabootsen een firefly (http://www.seanet.com/~karllunt/fireflyLED.html). Dit op zich is zeker niet uniek, maar het kreeg me denken over een van mijn vroege microcontroller pro
Honey, I Shrunk de Arduino: verplaatsen van Arduino naar ATtiny en schrijven van uw code in zuivere AVR-C

Honey, I Shrunk de Arduino: verplaatsen van Arduino naar ATtiny en schrijven van uw code in zuivere AVR-C

Arduino is een geweldig hard- en softwareplatform, maar met alle functies is het ook een beetje opgeblazen en vaak hoeft u alleen een klein deel van alle functies. Uw project vereist soms om kleinere en goedkopere apparaten te hebben. Wat je misschie
Hoe wordt een ATtiny85 met behulp van Arduino - Como programar um ATtiny85 usando Arduino

Hoe wordt een ATtiny85 met behulp van Arduino - Como programar um ATtiny85 usando Arduino

Hoe te easly krimpen eenvoudige projecten?Como diminuir seus projetos mais simples?ATtiny85 is een eenvoudig te gebruiken, goedkoop en kleine (8 poten) microcontroller. U kunt het programma met een Arduino en kunt de Arduino IDE zelf schrijven en upl