Avr-Controller. AVR – was ist das? Zuweisung der automatischen Reservebuchung. Wie funktioniert AVR?

Die Stromversorgungsquellen sind nicht völlig zuverlässig und fallen manchmal aus, was negative Auswirkungen auf Konsumgüter hat. Dies ist für kritische Geräte nicht akzeptabel, sodass diese aus zwei oder mehr zusätzlichen Quellen mit Strom versorgt werden. Beim Anschluss kommen ATS-Geräte zum Einsatz. Was das ist, wird durch die Dekodierung der Abkürzung „Automatische Reservebuchung“ erklärt. Es handelt sich um eine Möglichkeit, einen Verbraucher mit zwei oder mehr Stromeingängen unterbrechungsfrei mit Strom zu versorgen. Dies wird durch die automatische Verbindung des Backup-Eingangs gewährleistet, wenn der Haupteingang verloren geht.

Beide Netzteile können gleichzeitig angeschlossen werden. Die Nachteile dieser Methode sind hohe Kurzschlussströme, hohe Verluste und die Komplexität der Netzabsicherung. Die Bereitstellung der Reserve erfolgt üblicherweise über ein Schaltgerät, das die Hauptstromquelle abschaltet. Die Reserveleistung muss den Lasten entsprechen. Reicht es nicht aus, werden nur die wichtigsten Verbraucher angeschlossen.

Anforderungen für ATS

  • Schnelles Einbringen der Reserve nach dem Auslösen
  • Schaltet auf jeden Fall bei Stromausfall ein, mit Ausnahme von Kurzschlüssen.
  • Fehlende Reaktion auf Spannungsabfall beim Starten starker Lasten am Verbraucher.
  • Einmalige Operation.

Einstufung

Geräte werden nach ihrem Funktionsprinzip unterteilt.

  • Einseitig. Der Stromkreis besteht aus zwei Abschnitten: Stromversorgung und Backup. Letzterer wird bei Ausfall der Hauptspannung zugeschaltet.
  • Beidseitig. Jede der Leitungen kann entweder funktionieren oder als Backup dienen.
  • Wiederherstellbare AVRs. Bei Wiederherstellung der Hauptstromversorgung wird der bisherige Stromkreis automatisch in Betrieb genommen und der Backup-Stromkreis abgeschaltet.
  • Keine automatische Wiederherstellung. Der Betriebsmodus mit der Hauptstromquelle wird manuell konfiguriert.

Funktionsprinzip von AVR

In Niederspannungsnetzen ist es zweckmäßig, spezielle Relais zu verwenden, die die Spannung in Schutzschaltungen (ATS-Schaltungen usw.) steuern. ATS ist hier vorzuziehen, da nicht alle Geräte einem häufigen Wechseln der Stromversorgung standhalten. Wie sieht AVR aus? Was ist das und wie funktioniert es? Dieses Gerät ist aus jedem einfachen Diagramm deutlich erkennbar.

  • Das Relais EL-11 steuert die dreiphasige Spannung und überwacht Phasenunsymmetrie, Bruch und Wechsel.
  • Zum Anschluss von Lasten werden elektromagnetische Relais mit leistungsstarken Kontakten eingesetzt. Im Normalbetrieb wird die Haupteingangsspule von dieser mit Strom versorgt und verbindet mit ihren Kontakten KM 1 die Stromversorgung mit der Last.
  • Wenn die Spannung im Hauptstromkreis verschwindet, wird das Relais KM 1 ausgeschaltet und die Spule des Relais KM 2, das den Backup-Eingang verbindet, wird mit Strom versorgt.

Diese ATS-Schaltung kann in Privathäusern, Industrie- und Verwaltungsgebäuden eingesetzt werden, wo die geschaltete Last mehrere zehn Kilowatt erreicht. Der Nachteil des Schemas ist die Komplexität der Auswahl eines Relais für hohe Ströme. Zum Schalten von Verbrauchern mit geringer Leistung eignet es sich weiterhin, für schwere Lasten ist es jedoch besser, einen ATS-Starter oder Triac zu verwenden.

Unverzichtbare Quellen für zusätzliche Energie sind Benzin oder letztere werden aufgrund ihrer Effizienz und höheren Leistung häufig eingesetzt. Der Markt bietet eine breite Palette an Hochüberlastschutzsystemen.

AVR-Betrieb

Wie funktioniert AVR? Wie hoch ist die Zuverlässigkeit der Stromversorgung der Verbraucher? Geräte sind in 3 Kategorien unterteilt. Die Stromversorgung von Wohngebäuden gehört zu den niedrigsten. Bei häufigen Ausfällen der Stromversorgung ist es besser, eine Reserve im Haus zu installieren, da davon die Langlebigkeit der Haushaltsgeräte sowie komfortable Wohnbedingungen abhängen. In Wohnungen werden unterbrechungsfreie Stromversorgungssysteme mit Batterien installiert, die hauptsächlich für elektronische Geräte verwendet werden. Generatoren werden am häufigsten als Notstromquelle für Privathaushalte eingesetzt.

In seiner einfachsten Form wird ein Benzingenerator über einen Umschalter an die Stromversorgung des Hauses angeschlossen. Dies verhindert einen Kurzschluss bei falscher Eingabe der Reserve bei nicht abgeschalteter automatischer Stromversorgung des Hauses. Der Schalter ist in drei Stellungen wählbar, wobei die mittlere den Strom komplett abschaltet.

Sie können das ATS selbst im Automatikmodus installieren, wenn Sie den Generator mit einer automatischen Startvorrichtung ausstatten und ihn vom Schrank aus über Schütze steuern, die auch die Eingänge schalten. Die Automatisierung erfolgt mikroprozessorgesteuert, beispielsweise über Easy-Relais-Controller. Zur Eingabe der ATS-Reserve werden Spannungssensoren verwendet. Sobald der Strom abgeschaltet wird, startet der Generatormotor sofort. Es dauert einige Zeit, bis der Betriebsmodus erreicht ist. Danach schaltet das ATS die Last auf Reserve. Solche Verzögerungen sind für den inländischen Bedarf akzeptabel.

Automatische Generatorstarteinheit (BAZG)

AVR ist ein privates Heimsystem, das den Start und die Steuerung eines Notstromgenerators im Falle eines Stromausfalls gewährleistet. Letzterer ist mit einer speziellen BAZG-Einheit ausgestattet, die bei Stromausfällen im Hauptnetz eine kostengünstige Lösung darstellt. Nach dem Wegfall der Haupteingangsspannung werden innerhalb von 5 Sekunden jeweils fünf Startversuche durchgeführt. Darüber hinaus steuert es die Luftklappe und schließt diese beim Start.

Tritt am Haupteingang wieder Spannung auf, schaltet das Gerät die Last zurück und stoppt den Generatormotor. Im Ruhezustand des Generators wird die Kraftstoffzufuhr durch ein Magnetventil unterbrochen.

Merkmale des AVR eines Privathauses

Die gebräuchlichste Methode ist die Verwendung von zwei Eingängen, wobei der erste Vorrang hat. Bei Anschluss an das Netz arbeiten Haushaltsverbraucher meist einphasig. Wenn es verschwindet, ist es nicht immer bequem, den Generator anzuschließen. Es reicht aus, eine weitere Leitung als Backup anzuschließen. Bei dreiphasigem Eingang wird die Leistung durch ein Relais in jeder Phase gesteuert. Wenn die Spannung den normalen Bereich verlässt, wird das Phasenschütz ausgeschaltet und das Haus wird über die beiden verbleibenden Phasen mit Strom versorgt. Fällt eine weitere Leitung aus, wird die gesamte Last auf eine Phase umverteilt.

Für ein kleines Häuschen oder eine Datscha wird ein Dieselgeneratorsatz mit einer Leistung von nicht mehr als 10 kW für ein Panel mit 25 kW verwendet. Ein solcher Generator reicht völlig aus, um das Haus kurzzeitig mit dem nötigen Minimum an Strom zu versorgen. Tritt ein Notfall ein, schaltet das Spannungssteuerrelais den Verbraucherbus auf Notstrom um und sendet ein Signal zum Starten des Dieselgeneratorsatzes. Wenn die Hauptstromversorgung wiederhergestellt ist, schaltet das Relais darauf um, woraufhin der Generator stoppt.

Erweiterung der ATS-Funktionen

Zur Steuerung der ausgewählten Algorithmen werden speicherprogrammierbare Steuerungen (SPS) eingesetzt. Sie enthalten bereits ein ATS-Programm, das nur noch für die Umsetzung der einen oder anderen Betriebsart konfiguriert werden muss. Der Einsatz einer SPS wie der AC500-Steuerung ermöglicht die Vereinfachung elektrischer Schaltkreise, auch wenn das Gerät auf den ersten Blick komplex erscheint. Die ATS-Steuerung kann in Form einer Reihe von Schaltern, Tasten und Anzeigen an der Schaltschranktür angebracht werden.

Die Standardlösung beinhaltet bereits Software. Es wird in der SPS installiert.

Abschluss

Ausfälle der Stromversorgung können für Verbraucher zu verschiedenen negativen Phänomenen führen. Die meisten Benutzer haben nur eine vage Vorstellung von ATS. Viele Menschen wissen nicht einmal, was es ist und verwechseln es mit einem Gerät, das für ganz andere Zwecke gedacht ist. Aufgrund der hohen Kosten für elektrische Geräte ist es wichtig, den richtigen automatischen Netzumschalter auszuwählen. Hierzu bedarf es fachkundiger Beratung. Mit ATS können Sie die Leistung von Haushaltsgeräten und Gegenständen verbessern, für die eine konstante Stromversorgung wichtig ist.

Mikrocontroller (im Folgenden MK genannt) sind fest in unserem Leben verankert; im Internet finden Sie viele interessante Schaltkreise, die auf MK ausgeführt werden. Was Sie nicht an einem MK montieren können: verschiedene Anzeigegeräte, Voltmeter, Haushaltsgeräte (Schutzgeräte, Schaltgeräte, Thermometer...), Metalldetektoren, verschiedene Spielzeuge, Roboter usw. Die Liste könnte sehr lange dauern. Ich sah den ersten Schaltkreis auf einem Mikrocontroller vor fünf bis sechs Jahren in einer Radiozeitschrift und blätterte fast sofort um und dachte mir: „Ich schaffe es immer noch nicht, ihn zusammenzubauen.“ Tatsächlich waren MKs damals für mich ein sehr komplexes und missverstandenes Gerät; ich hatte keine Ahnung, wie sie funktionierten, wie man sie flashte und was man mit ihnen machen sollte, wenn die Firmware falsch war. Aber vor etwa einem Jahr habe ich zum ersten Mal meine erste Schaltung auf einem MK zusammengebaut; es war eine digitale Voltmeter-Schaltung, die auf 7-Segment-Anzeigen und einem ATmega8-Mikrocontroller basierte. Zufällig kaufte ich zufällig einen Mikrocontroller. Als ich in der Abteilung für Funkkomponenten stand, kaufte der Typ vor mir einen MK, und ich beschloss auch, ihn zu kaufen und zu versuchen, etwas zusammenzubauen. In meinen Artikeln werde ich Ihnen davon erzählen AVR-Mikrocontroller, ich werde Ihnen beibringen, wie man damit arbeitet, wir schauen uns Programme für die Firmware an, wir erstellen einen einfachen und zuverlässigen Programmierer, wir schauen uns den Firmware-Prozess an und, was am wichtigsten ist, die Probleme, die möglicherweise nicht auftreten nur für Anfänger.

Grundparameter einiger Mikrocontroller der AVR-Familie:

Mikrocontroller

Flash-Speicher

RAM-Speicher

EEPROM-Speicher

E/A-Ports

U-Leistung

Zusätzliche Parameter des AVR mega MK:

Betriebstemperatur: -55…+125*С
Lagertemperatur: -65…+150*С
Spannung am RESET-Pin relativ zu GND: max. 13V
Maximale Versorgungsspannung: 6,0 V
Maximaler I/O-Leitungsstrom: 40 mA
Maximaler Stromversorgungsstrom VCC und GND: 200 mA

Pinbelegung des ATmega 8X-Modells

Pinbelegung für die Modelle ATmega48x, 88x, 168x

Pin-Layout für ATmega8515x-Modelle

Pin-Layout für ATmega8535x-Modelle

Pin-Layout für ATmega16, 32x-Modelle

Pin-Layout für ATtiny2313-Modelle

Ein Archiv mit Datenblättern einiger Mikrocontroller ist am Ende des Artikels angehängt.

MK AVR-Installations-FUSE-Bits

Denken Sie daran, dass eine programmierte Sicherung den Wert 0 hat und eine unprogrammierte Sicherung den Wert 1. Beim Setzen von Sicherungen sollten Sie vorsichtig sein; eine falsch programmierte Sicherung kann den Mikrocontroller blockieren. Wenn Sie nicht sicher sind, welche Sicherung Sie programmieren müssen, flashen Sie den MK beim ersten Mal besser ohne Sicherungen.

Die beliebtesten Mikrocontroller unter Funkamateuren sind ATmega8, gefolgt von ATmega48, 16, 32, ATtiny2313 und anderen. Mikrocontroller werden in TQFP- und DIP-Gehäusen verkauft; für Anfänger empfehle ich den Kauf in DIP. Wenn Sie TQFP kaufen, wird es problematischer, sie zu flashen; Sie müssen die Platine kaufen oder löten, weil Ihre Beine liegen sehr nahe beieinander. Ich empfehle Ihnen, Mikrocontroller in DIP-Paketen auf speziellen Sockeln zu installieren. Dies ist bequem und praktisch. Sie müssen den MK nicht ablöten, wenn Sie ihn erneut flashen oder für ein anderes Design verwenden möchten.

Fast alle modernen MKs verfügen über die Fähigkeit zur In-Circuit-ISP-Programmierung, d. h. Wenn Ihr Mikrocontroller mit der Platine verlötet ist, müssen wir ihn zum Ändern der Firmware nicht von der Platine ablöten.

Zur Programmierung werden 6 Pins genutzt:
ZURÜCKSETZEN- Melden Sie sich bei MK an
VCC- Plus Netzteil, 3-5V, abhängig von MK
GND- Gemeinsames Kabel, Minusstrom.
MOSI- MK-Eingang (Informationssignal in MK)
MISO- MK-Ausgang (Informationssignal von MK)
SCK- MK-Eingang (Taktsignal in MK)

Manchmal verwenden sie auch die Pins XTAL 1 und an Pin PE0 und MISO an Pin PE1 angeschlossen. Beim Anschluss des Mikrocontrollers an den Programmierer sollten die Anschlussdrähte möglichst kurz sein und auch das Kabel vom Programmierer zum LPT-Port sollte nicht zu lang sein.

Die Kennzeichnung des Mikrocontrollers kann seltsame Buchstaben mit Zahlen enthalten, zum Beispiel Atmega 8L 16PU, 8 16AU, 8A PU usw. Der Buchstabe L bedeutet, dass der MK mit einer niedrigeren Spannung arbeitet als der MK ohne den Buchstaben L, normalerweise 2,7 V. Die Zahlen nach dem Bindestrich oder Leerzeichen 16PU oder 8AU geben die interne Frequenz des Generators an, der sich im MK befindet. Wenn die Sicherungen so eingestellt sind, dass sie von einem externen Quarz betrieben werden, sollte der Quarz auf eine Frequenz eingestellt werden, die das Maximum laut Datenblatt nicht überschreitet. Diese beträgt 20 MHz für ATmega48/88/168 und 16 MHz für andere Atmegas.

Angenommen, Sie erhalten die Aufgabe, eine LED zum Blinken zu bringen.
Lassen Sie uns besprechen, wie Sie dieses Problem lösen können:

Option 1 ist die einfachste: Nehmen Sie einen Kippschalter/Knopf und platzieren Sie einen Sklaven neben sich, der die LED mit dem Kippschalter ein-/ausschaltet. Normalerweise werden in Russland die meisten Probleme auf diese Weise gelöst. Und was blinkt?)))
Option 2 – einen Multivibrator zusammenbauen. Schon interessanter. Zum Blinken ist eine LED durchaus eine gute Lösung. Darüber hinaus ist es einfach, günstig und zuverlässig.
Option 3 – Montage auf einem Mikrocontroller. Teurer als der Zusammenbau eines Multivibrators, aber meiner Meinung nach einfacher. Ich habe ein Programm geschrieben, es ausgeführt und das Ergebnis erhalten. Kein Setup. Das ist natürlich ein Idealfall.

Jetzt machen wir die Aufgabe komplizierter. Zum Beispiel 5 LEDs und 5 Optionen für ihr Blinken (die Geschwindigkeit und Reihenfolge ihres Blinkens ändert sich). Die erste Option verschwindet sofort; Methode 2 ist möglich, aber die Größe des Geräts nimmt stark zu. Option 3 bleibt ungefähr gleich groß, fügen Sie einfach ein paar Codezeilen hinzu. Daher gibt es verschiedene Fälle, in denen es ohne Mikrocontroller nicht möglich ist und in denen er überflüssig ist. Schätzen Sie daher immer die Arbeitskosten, den Zeitaufwand und die finanziellen Kosten ein.

Ein Mikrocontroller ermöglicht uns also die flexible Steuerung von Systemen, Prozessen etc., er hat kleine Abmessungen und ist von der Funktionalität her ein Minicomputer. Mikrocontroller werden von verschiedenen Firmen hergestellt. Eine der Varianten der AVR-Mikrocontroller von Atmel. Warum sie? Sie sind im Store recht leicht zu finden, es ist leicht, Beispiele für vorgefertigten Code zu finden, und die integrierte Funktionalität ermöglicht es Ihnen, auch komplexe Probleme zu lösen.

Damit der Mikrocontroller versteht, was wir von ihm wollen, müssen wir die Firmware in ihn laden – eine Abfolge von Aktionen, die er ausführen muss. Firmware ist eine Folge von Einsen und Nullen. Um es komfortabler zu machen, wurden Programmiersprachen erfunden. Wir schreiben zum Beispiel „turn on“ und der Compiler selbst wandelt es in eine für den Mikrocontroller verständliche Folge von Einsen und Nullen um. Die Abbildung zeigt die HEX-Firmware, wenn Sie sie mit Notepad öffnen.

Mikrocontroller werden üblicherweise in C oder Assembler programmiert. Im Großen und Ganzen gibt es keinen Unterschied darin, worüber geschrieben werden soll. Aufgrund der Vielzahl an vorgefertigten Beispielen habe ich mich für C entschieden. Darüber hinaus gibt es mehrere Programme, mit denen Sie in C schreiben können. Zum Beispiel das kostenlose Marken-AVR Studio, CodeVision, WinAVR usw. Obwohl ich in CodeVision schreibe, verwende ich AVR Studio sehr aktiv als Debugger.

Ich hoffe, dass Ihnen zumindest einiges davon klar geworden ist. Meiner Meinung nach ist es am schwierigsten, den ersten Schritt zu tun. Wer es tut, seine Angst und seine Faulheit überwindet, wird mit Sicherheit Ergebnisse erzielen. Viel Glück beim Erlernen von Mikrocontrollern.

Alles zum Studium und zur praktischen Programmierung von AVR-Mikrocontrollern: Literatur, Software, Schaltungen, Designs

Guten Tag, liebe Funkamateure!
Willkommen auf der Website „“

Dieser Abschnitt der Website ist gewidmet Mikrocontroller. Aufgrund persönlicher Vorlieben (und nicht nur) wird der Schwerpunkt auf Amateurfunkgeräten mit Mikrocontrollern liegen AVR Tiny- und Mega-Familie von ATMEL. Obwohl ATMEL-Mikrocontroller nicht die beliebtesten sind, verfügen sie über mehrere wesentliche Vorteile, die sie von anderen Mikrocontrollern unterscheiden. Darüber hinaus sind die Mikrocontroller der AVR-Familie aufgrund der Einfachheit und Vielseitigkeit der Geräte, der Kontinuität der Struktur für verschiedene Controller-Typen und der Einfachheit des Schaltungsdesigns gut für Anfänger im Funkamateure geeignet. In Zukunft ist auf der Website geplant, eine Reihe von Artikeln zu veröffentlichen, die sich hauptsächlich an beginnende Funkamateure richten und eine detaillierte Untersuchung der Struktur und der Schaltungsmerkmale der AVR-Mikrocontroller der Tiny- und Mega-Familien sowie der Verwendung ihrer Hauptfunktionen umfassen Fähigkeiten und Programmierung in Assembler.

Single-Chip-Mikrocontroller werden in den unterschiedlichsten Bereichen eingesetzt: von Messgeräten, Foto- und Videokameras, Druckern, Scannern und Kopierern bis hin zu elektronischen Unterhaltungsprodukten und Haushaltsgeräten aller Art.

Seit der Einführung der ersten Mikroprozessoren in den 1970er Jahren ist deren Komplexität durch die Einführung neuer Hardwarelösungen und die Hinzufügung neuer Anweisungen zur Lösung neuer Probleme kontinuierlich gestiegen. So entwickelte sich nach und nach die Architektur, die später den Namen CISC (Complete Instruction Set Computers – Computer mit einem komplexen Befehlssatz) erhielt. Anschließend entstand eine andere Richtung und fand aktive Entwicklung: die RISC-Architektur (Reduced Instruction Set Computers – Computer mit reduziertem Befehlssatz). Es ist diese Architektur, die die AVR-Mikrocontroller von Atmel und PIC von Microchip umfasst, denen dieses Buch gewidmet ist.

Der Hauptvorteil von RISC-Prozessoren besteht darin, dass sie einfach sind, einen begrenzten Befehlssatz ausführen und daher sehr schnell sind. Dies reduziert den Aufwand und die Komplexität ihrer Programmierung.

Der Nachteil der RISC-Architektur war die Notwendigkeit, zusätzliche Anweisungen in Assemblersprache zu erstellen, die in Hardware für CISC-Geräte implementiert werden. Anstatt beispielsweise einfach eine Divisionsanweisung aufzurufen, wie es für CISC-Geräte typisch ist, muss ein Entwickler, der mit einem RISC-Prozessor arbeitet, mehrere aufeinanderfolgende Subtraktionsanweisungen verwenden. Dieser Nachteil wird jedoch durch den Preis und die Geschwindigkeit von RISC-Geräten mehr als ausgeglichen. Wenn Sie außerdem Programme in C erstellen, haben solche Probleme für den Entwickler überhaupt keine Bedeutung mehr, da sie vom Compiler gelöst werden, der automatisch den gesamten fehlenden Assembler-Code generiert.

Zu Beginn der Mikroprozessoren erfolgte die Softwareentwicklung ausschließlich in der einen oder anderen Assemblersprache mit Schwerpunkt auf einem bestimmten Gerät. Im Wesentlichen handelte es sich bei solchen Sprachen um symbolische Mnemoniken der entsprechenden Maschinencodes, und die Übersetzung der Mnemoniken in Maschinencode erfolgte durch einen Übersetzer. Der Hauptnachteil von Assemblersprachen besteht jedoch darin, dass jede von ihnen an einen bestimmten Gerätetyp und die Logik seiner Funktionsweise gebunden ist. Darüber hinaus ist Assembler schwer zu erlernen, was einen recht hohen Lernaufwand erfordert, der sich zudem als Zeitverschwendung erweist, wenn man später auf Mikrocontroller anderer Hersteller umsteigen muss.

Die C-Sprache weist als Hochsprache keine derartigen Mängel auf und kann zum Programmieren jedes Mikroprozessors verwendet werden, für den es einen C-Compiler gibt. In der C-Sprache werden alle von Computern ausgeführten Low-Level-Operationen in Form dargestellt aus abstrakten Konstrukten, sodass sich Entwickler auf die Programmierung nur einer Logik konzentrieren können, ohne sich um Maschinencode kümmern zu müssen. Sobald Sie C erlernt haben, können Sie problemlos von einer Mikrocontrollerfamilie zur anderen wechseln und müssen viel weniger Zeit für die Entwicklung aufwenden.


AVR- und PIC-Mikrocontroller-Architektur

Generell sind alle Mikrocontroller nach dem gleichen Schema aufgebaut. Das Steuersystem, bestehend aus einem Programmzähler und einer Dekodierschaltung, führt Lese- und Dekodierungsanweisungen aus dem Programmspeicher aus, und das Bediengerät ist für die Durchführung arithmetischer und logischer Operationen zuständig; Die I/O-Schnittstelle ermöglicht den Datenaustausch mit Peripheriegeräten. und schließlich müssen Sie über ein Speichergerät zum Speichern von Programmen und Daten verfügen (Abb. 1.1).

Reis. 1.1. Verallgemeinerte Mikrocontroller-Struktur

Wir werden Mikrocontroller im Allgemeinen betrachten, ohne an einen bestimmten Typ von AVR-Mikrocontrollern gebunden zu sein. Daher werden wir im Folgenden nur Merkmale der Speicherarchitektur betrachten, die den meisten Mikrocontrollern gemeinsam sind, Probleme der Ein-/Ausgabe, Interrupt-Verarbeitung, Reset usw.

AVR-Mikrocontroller-Speicher

In AVR-Mikrocontrollern ist der Speicher gemäß der Harvard-Architektur implementiert, was eine Trennung von Befehls- und Datenspeicher impliziert. Dies bedeutet, dass der Zugriff auf Befehle unabhängig vom Datenzugriff erfolgt. Der Vorteil dieser Organisation ist die Erhöhung der Speicherzugriffsgeschwindigkeit.

Datenspeicher

Der Datenspeicher dient zum Schreiben/Lesen von Daten, die von Programmen verwendet werden. Es ist flüchtig, das heißt, wenn die Stromversorgung des Mikrocontrollers unterbrochen wird, gehen alle darin gespeicherten Daten verloren. Bei AVR-Mikrocontrollern weist der Datenspeicher im Vergleich zu PIC-Mikrocontrollern eine weiter entwickelte Struktur auf, wie in Abb. 2.1.


Reis. 2.1. Datenspeicherstruktur in AVR- und PIC-Mikrocontrollern

Der SRAM-Bereich (Static Random Access Memory) ist in Abb. dargestellt. 2.1 ist gepunktet, da es nicht von allen AVR-Mikrocontrollern verwendet wird (dies gilt sowohl für internes als auch externes SRAM). Seine Startadresse ist 0x060 und seine Top-Adresse variiert von Gerät zu Gerät.

Bei einigen AVR-Mikrocontrollern können Sie den SRAM-Speicherplatz durch den Anschluss externer Speicherblöcke auf bis zu 64 KB vergrößern. Dies erfordert jedoch den Verzicht auf die Ports A und C, die in diesem Fall zur Übertragung von Daten und Adressen verwendet werden.

Allzweckregister

Der allgemeine Registerbereich (Arbeitsregister) dient der vorübergehenden Speicherung von Variablen und Zeigern, die der Prozessor zur Ausführung von Programmen verwendet. Bei AVR-Mikrocontrollern besteht es aus 32 Acht-Bit-Registern (Adressbereich 0x000 – 0x01F). In PIC-Mikrocontrollern sind Allzweckregister ebenfalls 8-Bit-Register, ihre Anzahl und ihr Adressbereich hängen jedoch vom jeweiligen Gerätetyp ab.

In in C geschriebenen Programmen ist ein direkter Zugriff auf Allzweckregister normalerweise nicht erforderlich, es sei denn, es wird Assembler-Code verwendet.

Sonderfunktionsregister des PIC-Mikrocontrollers

Spezielle Funktionsregister werden in PIC-Mikrocontrollern zur Steuerung verschiedener Vorgänge verwendet. Wie bei Allzweckregistern unterscheiden sich ihre Anzahl und Adressierung von Gerät zu Gerät. In in C geschriebenen Programmen ist ein direkter Zugriff auf spezielle Funktionsregister normalerweise nicht erforderlich, es sei denn, es werden Assemblersprachenfragmente verwendet.

I/O-Bereich von AVR-Mikrocontrollern

Der I/O-Bereich von AVR-Mikrocontrollern enthält 64 Register, die zur Steuerung oder Speicherung von Daten von Peripheriegeräten verwendet werden. Auf jedes dieser Register kann über eine E/A-Adresse (beginnend bei 0x000) oder über eine SRAM-Adresse (in diesem Fall sollte 0x020 zur E/A-Adresse hinzugefügt werden) zugegriffen werden. C-Programme verwenden normalerweise herkömmliche I/O-Registernamen und Adressen sind nur für Assemblerprogramme von Bedeutung.

Die Namen, I/O- und SRAM-Adressen sowie eine kurze Beschreibung der Register aus dem I/O-Bereich der AVR-Mikrocontroller werden in der Tabelle dargestellt. 2.1. Es ist zu beachten, dass in verschiedenen Mikrocontrollermodellen einige der aufgeführten Register nicht verwendet werden und Adressen nicht in der Tabelle aufgeführt sind. 2.1 bleiben von Atmel für die zukünftige Verwendung vorbehalten.

Tabelle 2.1. Beschreibung der Register aus dem I/O-Bereich

Registrieren Sie den Namen E/A-Adresse SRAM-Adresse Beschreibung
ACSR 0x08 0x28 Analoge Komparatorsteuerung und Statusregister
UBRR 0x09 0x29 UART-Baudratenregister
UCR 0x0A 0x2A UART-Transceiver-Steuerregister
USR 0x0V 0x2V UART-Transceiver-Statusregister
UDR 0х0С 0x2С UART-Transceiver-Datenregister
SPCR 0x0D 0x2D SPI-Schnittstellen-Steuerregister
SPSR 0x0E 0x2E SPI-Schnittstellenstatusregister
SPDR 0x0F 0x2F SPI-Daten-E/A-Register
PIND 0x10 0x30 Port-D-Pins
DDRD 0x11 0x31 Port-D-Datenrichtungsregister
PORTD 0x12 0x32 Port-D-Datenregister
PINC 0x13 0x33 Port-C-Pins
DDRC 0x14 0x34 Port-C-Datenrichtungsregister
PORTC 0x15 0x35 Port-C-Datenregister
PINB 0x16 0x36 Port-B-Pins
DDRB 0x17 0x37 Datenrichtungsregister von Port B
PORTB 0x18 0x38 Datenregister von Port B
PINA 0x19 0x39 Port-A-Pins
DDRA 0x1A 0x3A Datenrichtungsregister von Port A
PORTA 0x1V 0x3V Port-A-Datenregister
EECR 0x1С 0x3С EEPROM-Speichersteuerregister
EEDR 0x1D 0x3D EEPROM-Datenregister
EEARL 0x1E 0x3E EEPROM-Speicheradressregister (Low Byte)
EEARH 0x1F 0x3F EEPROM-Speicheradressregister (High-Byte)
WDTCR 0x21 0x41 Watchdog-Timer-Steuerregister
ICR1L 0x24 0x44
ICR1H 0x25 0x45 Timer-/Zählererfassungsregister T/C1 (niedriges Byte)
OCR1BL 0x28 0x48 Vergleichsregister B des Timers T/C1 (Low Byte)
OCR1BH 0x29 0x49 Vergleichsregister B des Timers T/C1 (High-Byte)
OCR1AL 0x2A 0x4A Vergleichsregister A des Timers T/C1 (Low Byte)
OCR1AH 0x2V 0x4V Vergleichsregister A des Timers T/C1 (High-Byte)
TCNT1L 0x2С 0х4С Zählregister des Timers/Zählers T/C1 (Low-Byte)
TCNT1H 0x2D 0x4D Zählregister des Timers/Zählers T/C1 (High-Byte)
TCCR1B 0x2E 0x4E Steuerregister B des Timers/Zählers T/C1
TCCR1A 0x2F 0x4F Steuerregister A des Timers/Zählers T/C1
TCNT0 0x32 0x52 Zählregister des Timers/Zählers T/C0
TCCR0 0x33 0x53 Timer-/Zählersteuerregister T/C0
MCUCR 0x35 0x55 Mikrocontroller-Steuerregister
TIFR 0x38 0x58 Timer-/Zähler-Interrupt-Flag-Register
TIMSK 0x39 0x59 Timer-Interrupt-Maskierungsregister
GIFR 0x3A 0x5A Allgemeines Interrupt-Flag-Register
GIMSK 0x3V 0x5V Allgemeines Interrupt-Maskierungsregister
SPL 0x3D 0x5D Stapelzeiger (Low-Byte)
SPH 0x3E 0x5E Stapelzeiger (High-Byte)
SREG 0x3F 0x5F Statusregister

SREG-Statusregister von AVR-Mikrocontrollern

Das Statusregister enthält die Zustandsflags der AVR-Mikrocontroller und befindet sich im I/O-Bereich an der Adresse $3F (SRAM-Adresse ist $5F). Nachdem das Rücksetzsignal gegeben wurde, wird es auf Nullen initialisiert.

Fortsetzung des Themas:
Smartphone

Die Microsoft SharePoint-Technologie ist eine kostenlose Serverlösung, die es Webserver-Besuchern mithilfe integrierter Anwendungsfunktionen ermöglicht, ...