categorieën: Praktische elektronica, Microcontroller-circuits
Aantal keer bekeken: 21376
Reacties op het artikel: 0

Typen en opstelling van AVR-microcontrollers

 


AVR - Dit is de naam van de populaire familie van microcontrollers die het bedrijf produceert Atmel. Naast ABP worden onder dit merk uitgegeven microcontrollers en andere architecturen zoals ARM en i8051.


Wat zijn AVR-microcontrollers?

Microcontrollers AVR

Er zijn drie soorten microcontrollers:

  1. AVR 8-bit.

  2. AVR 32-bit.

  3. AVR xMega

Al meer dan tien jaar is de 8-bits familie van microcontrollers het populairst. Veel hammen begonnen microcontrollers van hem te bestuderen. Bijna allemaal leerden ze de wereld van programmeerbare controllers door hun eenvoudige ambachten, zoals LED-knipperlichten, thermometers, klokken, evenals eenvoudige automatisering, zoals het aansturen van verlichting en verwarmingstoestellen.

Microcontrollers AVR 8-bit zijn op hun beurt onderverdeeld in twee populaire families:

  • attiny - de naam geeft aan dat de jongste (klein - jong, jong, jongst) in principe 8 pinnen of meer heeft. Het volume van hun geheugen en functionaliteit is meestal bescheidener dan in de volgende;

  • ATMEGA - Meer geavanceerde microcontrollers hebben meer geheugen, pinnen en verschillende functionele eenheden;

Microcontrollers Attiny

De krachtigste subfamilie van microcontrollers is xMega - deze microcontrollers zijn beschikbaar in gevallen met een groot aantal pinnen, van 44 tot 100. Er is zoveel nodig voor projecten met een groot aantal sensoren en actuatoren. Bovendien zorgen de verhoogde geheugencapaciteit en snelheid ervoor dat u hoge prestaties krijgt.

Microcontroller Atmega

transcript: Pin (eng. Pin - naald, pin) is de uitvoer van de microcontroller of, zoals ze zeggen, het been. Vandaar het woord "pinout" - d.w.z. informatie over het doel van elk van de benen.


Waar zijn microcontrollers voor en waarvoor dienen ze?

Microcontrollers worden bijna overal gebruikt! Bijna elk apparaat in de 21ste eeuw werkt op een microcontroller: meetinstrumenten, gereedschappen, huishoudelijke apparaten, horloges, speelgoed, muziekdozen en ansichtkaarten, en nog veel meer; opsomming alleen al duurt meerdere pagina's met tekst.

De ontwikkelaar kan het analoge signaal van onder naar de ingang van de microcontroller gebruiken en gegevens over de waarde ervan manipuleren. Dit werk wordt uitgevoerd door een analoog-naar-digitaal converter (ADC). Met deze functie kan de gebruiker communiceren met de microcontroller en met behulp van sensoren verschillende parameters van de omliggende wereld waarnemen.

AVR-microcontroller op broodplank

In algemene AVR-microcontrollers bijvoorbeeld ATmega328wat in 2017 het hart is van veel printplaten Arduinomaar over hen later. Gebruikt 8 kanaal ADCmet bitdiepte 10 bit. Dit betekent dat u de waarde van 8 analoge sensoren kunt lezen. En digitale sensoren zijn verbonden met de digitale uitgangen, wat vanzelfsprekend is. Een digitaal signaal kan echter slechts 1 (eenheid) of 0 (nul) zijn, terwijl een analoog signaal een oneindig aantal waarden kan aannemen.

Digitale en analoge signalen

toelichting:


hoedanigheid Is een waarde die de kwaliteit, nauwkeurigheid en gevoeligheid van de analoge ingang kenmerkt. Dat klinkt niet zo duidelijk. Een beetje oefening: een 10-bits ADC, neemt analoge informatie van een poort op in 10 bits geheugen, met andere woorden, een soepel veranderend digitaal signaal wordt door een microcontroller herkend als een numerieke waarde van 0 tot 1024.

Een 12-bit ADC ziet hetzelfde signaal, maar met een hogere nauwkeurigheid - in de vorm van 0 tot 4096, wat betekent dat de gemeten waarden van het ingangssignaal 4 keer nauwkeuriger zullen zijn. Om te begrijpen waar 1024 en 4096 vandaan komen, verhoogt u gewoon 2 tot een kracht gelijk aan de ADC-bitdiepte (2 tot een macht van 10, voor 10 bit, etc.)

Om het laadvermogen te regelen, zijn er PWM-kanalen tot uw beschikking, deze kunnen bijvoorbeeld worden gebruikt om de helderheid, temperatuur of motorsnelheid aan te passen. In dezelfde 328-controller zitten er 6.

Over het algemeen wordt de structuur van de AVR-microcontroller weergegeven in het diagram:

Microcontroller AVR-structuur

Alle knooppunten zijn ondertekend, maar toch zijn sommige namen misschien niet zo voor de hand liggend. Laten we hun notatie bekijken.

  • ALU - rekenkundig-logisch apparaat. Nodig om de berekening uit te voeren.

  • Registers voor algemeen gebruik (RON) - Registers die gegevens kunnen ontvangen en opslaan terwijl de microcontroller op stroom is aangesloten, worden na een herstart gewist. Dienen als tijdelijke cellen voor gegevensbewerkingen.

  • interrupts - zoiets als een gebeurtenis die optreedt als gevolg van interne of externe invloeden op de microcontroller - timeroverloop, externe interrupt van pin MK, enz.

  • JTAG - een interface voor in-circuit programmeren zonder de microcontroller van het bord te verwijderen.

  • Flash, RAM, EEPROM - soorten geheugen - programma's, tijdelijke werkgegevens, langdurige opslag onafhankelijk van de stroomvoorziening naar de microcontroller, volgens de volgorde in de namen.

  • Timers en tellers - de belangrijkste knooppunten in de microcontroller, in sommige modellen kan dit aantal oplopen tot een dozijn. Ze zijn nodig om het aantal metingen, respectievelijk tijdsintervallen, te rapporteren en de tellers verhogen hun waarde voor elk van de gebeurtenissen. Hun werk en de modus ervan zijn afhankelijk van het programma, maar deze acties worden uitgevoerd in hardware, d.w.z. parallel aan de hoofdtekst van het programma, kunnen ze onderbreking veroorzaken (door timeroverloop, als optie) in elk stadium van de uitvoering van de code, op elke regel ervan.

  • A / D (analoog / digitaal) - ADC, we hebben het doel ervan al beschreven.

  • WatchDogTime (Watchdog-timer) - een RC-oscillator onafhankelijk van de microcontroller en zelfs de klokgenerator, die een bepaalde tijdsperiode telt en een MK-resetsignaal genereert als het werkte, en wordt wakker als het in de slaapstand was (energiebesparing). De werking ervan kan worden uitgeschakeld door het WDTE-bit op 0 te zetten.


De uitgangen van de microcontroller zijn vrij zwak, wat betekent dat de stroom door hen meestal tot 20-40 milliampère is, wat voldoende is om de LED en LED-indicatoren te verlichten. Voor een krachtigere belasting zijn stroom- of spanningsversterkers nodig, bijvoorbeeld dezelfde transistoren.


Wat heb je nodig om microcontrollers te bestuderen?

Eerst moet u de microcontroller zelf aanschaffen. De rol van de eerste microcontroller kan elke Attiny2313, Attiny85, Atmega328 en andere zijn. Het is beter om het model te kiezen dat wordt beschreven in de lessen waarin u zult worden betrokken.

ATtiny2313

Het volgende dat je nodig hebt is programmeur. Het is nodig om firmware te downloaden naar het geheugen van MK, het wordt beschouwd als de goedkoopste en meest populaire USBASP.

programmeur

Een beetje duurder, maar niet minder gebruikelijk programmeur AVRISP MKII, wat je zelf kunt doen - vanaf een gewoon bord Arduino

Programmeur AVRISP MKII

Een andere optie is om ze door te flitsen USB UART adapter, wat meestal gebeurt op een van de converters: FT232RL, CH340, PL2303 en CP2102.

USB-UART-adapter

In sommige gevallen worden AVR-microcontrollers met ondersteuning voor USB-hardware gebruikt voor een dergelijke converter; er zijn niet zoveel modellen. Hier zijn enkele:

  • ATmega8U2;

  • ATmega16U2;

  • ATmega32U2.

Op USB-hardware gebaseerde AVR-microcontroller

Slechts één "maar" - de UART-bootloader moet eerst in het geheugen van de microcontroller worden geladen. Natuurlijk hebt u hiervoor nog steeds een programmeur voor AVR-microcontrollers nodig.


Interessant: Bootloader - Dit is een normaal programma voor een microcontroller, maar met een ongebruikelijke taak - na de lancering (aansluiten op stroom) verwacht het enige tijd dat er firmware in kan worden geladen. Het voordeel van deze methode is dat u elke USB-UART-adapter kunt flashen, en ze zijn erg goedkoop. Het nadeel is dat het lang duurt om de firmware te laden.

Voor werk UART (RS-232) -interface in de AVR-microcontrollers toegewezen een hele register UDR (UART-gegevensregister). UCSRA (RX, TX transceiver bitinstellingen), UCSRB en UCSRС - een set registers die verantwoordelijk zijn voor de interface-instellingen als geheel.


Hoe kan ik programma's schrijven?

Naast het programmeerprogramma hebt u voor het schrijven en downloaden van het programma een IDE - ontwikkelomgeving nodig. Je kunt natuurlijk code in kladblok schrijven, compilers passeren, enz. Waarom is het nodig als er uitstekende kant-en-klare opties zijn. Misschien is een van de krachtigste de IAR, maar deze wordt betaald.

De officiële Atmel IDE is AVR Studio, die op versie 6 werd omgedoopt tot Atmel studio. Het ondersteunt alle AVR-microcontrollers (8, 32, xMega), detecteert automatisch opdrachten en helpt bij het invoeren, markeert de juiste syntaxis en nog veel meer.Met zijn hulp kun je MK flashen.

De meest voorkomende is C AVR, dus vind er een tutorial over, er zijn tal van opties in de Russische taal, en een daarvan is Khartov V.Ya. “AVR-microcontrollers. Workshop voor beginners. "

Microcontroller programmeren

De eenvoudigste manier om AVR te leren

Koop of doe het zelf Arduino bord. Het arduino-project is specifiek ontworpen voor educatieve doeleinden. Het heeft tientallen borden met verschillende vormen en aantal contacten. Het belangrijkste in Arduino is dat u niet alleen een microcontroller koopt, maar een volwaardige debug-kaart gesoldeerd op een hoogwaardige textolite printplaat, bedekt met een masker en gemonteerde SMD-componenten.

De meest voorkomende zijn Arduino Nano en Arduino UNO, ze zijn in wezen identiek, behalve dat de "Nano" ongeveer 3 keer kleiner is dan de "Uno".

Arduino uno

Enkele feiten:

  • Arduino kan worden geprogrammeerd in een standaardtaal - "C AVR";

  • zijn eigen - bedrading;

  • standaard ontwikkelomgeving - Arduino IDE;

  • om verbinding te maken met een computer, hoeft u alleen de USB-kabel aan te sluiten op de micro-USB-aansluiting op het Arduino nano-bord, de stuurprogramma's te installeren (hoogstwaarschijnlijk gebeurt dit automatisch, behalve wanneer de converter op de CH340, ik had geen stuurprogramma's op Win 8.1, ik moest het downloaden, maar het Het heeft niet veel tijd gekost.) Vervolgens kun je je "schetsen" uploaden;

  • "Sketches" is de naam van de programma's voor Arduino.

Experimenten met Arduino UNO

bevindingen

Microcontrollers zullen een uitstekende hulp zijn in uw amateurradiopraktijk, waarmee u de wereld van digitale elektronica kunt ontdekken, uw eigen meetinstrumenten en domotica-apparatuur kunt ontwerpen.

Zie ook op i.electricianexp.com:

  • PIC-microcontrollers voor beginners
  • Microcontroller-programmering voor beginners
  • Arduino verbinden en programmeren voor beginners
  • Programmeerbare microcontrollers in JavaScript: welke te kiezen, kenmerken ...
  • Wat zijn microcontrollers - doel, apparaat, software

  •