Programmierung in Assembler und C am Beispiel der ATtiny-Familie
Dieses Buch bietet einen eingehenden Blick auf die 8-Bit-AVR-Architektur in ATtiny- und ATmega-Mikrocontrollern, hauptsächlich aus der Sicht der Software und der Programmierung. Erforschen Sie die AVR-Architektur unter Verwendung von C und Assembler in Microchip Studio (früher Atmel Studio) mit ATtiny-Mikrocontrollern.
Lernen Sie die Details der internen Funktionsweise von AVR-Mikrocontrollern kennen, einschließlich der internen Register und des Speicherplans von ATtiny-Bausteinen.
Programmieren Sie ATtiny-Mikrocontroller mit einem Atmel-ICE-Programmiergerät/Debugger oder verwenden Sie ein preiswertes Hobby-Programmiergerät oder sogar einen Arduino Uno als Programmiergerät.
Die meisten Code-Beispiele können mit dem Microchip Studio AVR-Simulator ausgeführt werden.
Lernen Sie, Programme für ATtiny-Mikrocontroller in Assembler zu schreiben.
Erfahren Sie, wie Assemblersprache in Maschinencodebefehle umgewandelt wird.
Finden Sie heraus, wie Programme, die in der Programmiersprache C geschrieben wurden, in Assemblersprache und schließlich in Maschinencode umgewandelt werden.
Verwenden Sie den Microchip Studio Debugger in Kombination mit einem Hardware-USB-Programmierer/Debugger, um Assembler- und C-Programme zu testen oder verwenden Sie den Microchip Studio AVR-Simulator.
ATtiny-Mikrocontroller im DIP-Gehäuse werden verwendet, um eine einfache Nutzung auf Breadboards zu ermöglichen.
Erfahren Sie mehr über Timing und Taktimpuls in AVR-Mikrocontrollern mit ATtiny-Bausteinen.
Werden Sie zu einem AVR-Experten mit fortgeschrittenen Debugging- und Programmierfähigkeiten.
Atmel AVR ist eine 8-bit-Mikrocontroller-Familie des Herstellers Atmel. Diese Controller sind wegen ihres einfachen Aufbaus, ihrer leichten Programmierbarkeit, den kostenlosen Entwicklungswerkzeugen und der Verfügbarkeit in DIP-Gehäuseformen auch bei Elektronikern und Makern äußerst beliebt. Darüber hinaus sind diese Controller bereits ab zwei Euro erhältlich. Im Arduino Uno-Board wird der ATmega328 verwendet.
AVR-Programmierung für Quereinsteiger besteht aus zwei Teilen. Im ersten Teil wird in einfachen Worten erklärt, wie eine MCU (= Micro Controller Unit) im Detail arbeitet. Dem folgt eine Einführung in die Programmiersprache C. Anschließend taucht der Leser im zweiten Teil des Buches in die Welt der Register und ihre Bits ein. Dort findet man auch ein umfangreiches Glossar aller Register- und Bit-Namen. Das Buch dient somit auch als Nachschlagewerk, wenn man sich durch das Datenblatt oder andere Texte arbeiten muss.
Das Buch wendet sich an alle, die bisher mit dem Arduino programmiert haben und nun nach technischen Möglichkeiten und Wegen suchen, ihre Elektronik- und Programmierkenntnisse zu erweitern. Dazu eignet sich die AVR-Programmierung im besonderen Maße.
Programmierung in Assembler und C am Beispiel der ATtiny-Familie
Dieses Buch bietet einen eingehenden Blick auf die 8-Bit-AVR-Architektur in ATtiny- und ATmega-Mikrocontrollern, hauptsächlich aus der Sicht der Software und der Programmierung. Erforschen Sie die AVR-Architektur unter Verwendung von C und Assembler in Microchip Studio (früher Atmel Studio) mit ATtiny-Mikrocontrollern.
Lernen Sie die Details der internen Funktionsweise von AVR-Mikrocontrollern kennen, einschließlich der internen Register und des Speicherplans von ATtiny-Bausteinen.
Programmieren Sie ATtiny-Mikrocontroller mit einem Atmel-ICE-Programmiergerät/Debugger oder verwenden Sie ein preiswertes Hobby-Programmiergerät oder sogar einen Arduino Uno als Programmiergerät.
Die meisten Code-Beispiele können mit dem Microchip Studio AVR-Simulator ausgeführt werden.
Lernen Sie, Programme für ATtiny-Mikrocontroller in Assembler zu schreiben.
Erfahren Sie, wie Assemblersprache in Maschinencodebefehle umgewandelt wird.
Finden Sie heraus, wie Programme, die in der Programmiersprache C geschrieben wurden, in Assemblersprache und schließlich in Maschinencode umgewandelt werden.
Verwenden Sie den Microchip Studio Debugger in Kombination mit einem Hardware-USB-Programmierer/Debugger, um Assembler- und C-Programme zu testen oder verwenden Sie den Microchip Studio AVR-Simulator.
ATtiny-Mikrocontroller im DIP-Gehäuse werden verwendet, um eine einfache Nutzung auf Breadboards zu ermöglichen.
Erfahren Sie mehr über Timing und Taktimpuls in AVR-Mikrocontrollern mit ATtiny-Bausteinen.
Werden Sie zu einem AVR-Experten mit fortgeschrittenen Debugging- und Programmierfähigkeiten.
AVR Architecture and Programming An in-depth look at the 8-bit AVR architecture found in ATtiny and ATmega microcontrollers, mainly from a software and programming point of view. Explore the AVR architecture using C and assembly language in Microchip Studio (formerly Atmel Studio) with ATtiny microcontrollers. Learn the details of how AVR microcontrollers work internally, including the internal registers and memory map of ATtiny devices. Program ATtiny microcontrollers using an Atmel-ICE programmer/debugger, or use a cheap hobby programmer, or even an Arduino Uno as a programmer. Most code examples can be run using the Microchip Studio AVR simulator. Learn to write programs for ATtiny microcontrollers in assembly language. See how assembly language is converted to machine code instructions by the assembler program. Find out how programs written in the C programming language end up as assembly language and finally as machine code instructions. Use the Microchip Studio debugger in combination with a hardware USB programmer/debugger to test assembly and C language programs, or use the Microchip Studio AVR simulator. DIP packaged ATtiny microcontrollers are used in this volume for easy use on electronic breadboards, targeting mainly the ATtiny13(A) and ATtiny25/45/85. Learn about instruction timing and clocks in AVR microcontrollers using ATtiny devices. Be on your way to becoming an AVR expert with advanced debugging and programming skills.
Mikrocontroller haben sich in den letzten Jahren in praktisch allen Bereichen der modernen Technik etabliert. In zunehmendem Maße dringen sie auch in die Gebiete der Künstlichen Intelligenz und der Robotertechnik vor. Das vorliegende Buch gibt eine umfassende Einführung in die Welt der Controller-Technik mit all ihren Facetten, von der einfachen Steuerung über die Sensor-Technik bis hin zur Datenübertragung in das Internet.
Als Basis dafür dient das von Elektor entwickelte AVR-Playground-Board. Das Board kann mit Controllern der ATmega-Familie bestückt werden und ist mit dem bekannten Arduino-System kompatibel, so dass auch die verschiedenen Arduino-Hardware-Erweiterungen verwendet werden können.
Für die Programmierung kommt die Sprache „C“ zum Einsatz. Auch hier wird im Buch auf das Arduino-System zurückgegriffen. Die frei verfügbare Arduino-Entwicklungsumgebung erlaubt den leichten Einstieg, ohne dass später Einschränkungen in Kauf genommen werden müssen. Die Hardware-nahe Programmierung steht dabei besonders im Fokus. Nach der Erläuterung von grundlegenden Anwendungen wird auf die anspruchsvolleren Themen wie Interrupts, Timer und Counter, Pulsweitenmodulation und Analog-Digital-Wandlung eingegangen.
Praktische Anwendungen können sowohl mit einem Arduino als auch mit dem AVR-Playground-Board durchgeführt werden. Da das AVR-Playground-Board bereits über eine Vielzahl von Peripherie-Einheiten verfügt, sind nur noch wenige externe Bauteile erforderlich. Das Board kann im Elektor-Shop hier bezogen werden.
De schrijver laat niet alleen beginners maar ook gevorderden op professionele wijze en met verstand van zaken kennismaken met dit uiterst interessant onderwerp. Ook hobbyisten of professionals die hun kennis willen verdiepen of uitbreiden, krijgen daartoe in dit boek volop mogelijkheid. De moderne state-of-the-art AVR-processoren van Atmel vormen in combinatie met programmering in C een platform dat gedurende lange tijd actueel zal blijven.
Na een inleiding en een kennismaking met de vereiste ontwikkelomgeving komen projecten aan bod die stap voor stap naar het gewenste doel leiden. Voor de meeste projecten wordt het Mini-Megaboard gebruikt – een experimenteerprint die oorspronkelijk in het maandblad Elektor is beschreven. Dit garandeert dat de beschreven projecten probleemloos kunnen worden nagebouwd. Maar natuurlijk kunnen ook eigen experimenteerprinten worden gebruikt – een van de doelstellingen van dit boek is immers dat de lezer uiteindelijk zelfstandig eigen schakelingen kan ontwerpen en bouwen.
Een greep uit de inhoud:
De juiste microcontroller
De ontwikkelomgeving
De eerste experimenten met de ?C
Het Mini-Mega-board
Beginselen van I/O
Vloeibaar-kristal-displays
Seriële data-overdracht
Analoge in- en uitvoer
Programmasturing met interrupts
Timers en counters
Geheugenoperaties
De seriële I²C-bus en SPI
Voorbeeldprojecten
Mikrocontroller haben sich in den letzten Jahren in praktisch allen Bereichen der modernen Technik etabliert. In zunehmendem Maße dringen sie auch in die Gebiete der Künstlichen Intelligenz und der Robotertechnik vor. Das vorliegende Buch gibt eine umfassende Einführung in die Welt der Controller-Technik mit all ihren Facetten, von der einfachen Steuerung über die Sensor-Technik bis hin zur Datenübertragung in das Internet.
Als Basis dafür dient das von Elektor entwickelte AVR-Playground-Board. Das Board kann mit Controllern der ATmega-Familie bestückt werden und ist mit dem bekannten Arduino-System kompatibel, so dass auch die verschiedenen Arduino-Hardware-Erweiterungen verwendet werden können.
Für die Programmierung kommt die Sprache „C“ zum Einsatz. Auch hier wird im Buch auf das Arduino-System zurückgegriffen. Die frei verfügbare Arduino-Entwicklungsumgebung erlaubt den leichten Einstieg, ohne dass später Einschränkungen in Kauf genommen werden müssen. Die Hardware-nahe Programmierung steht dabei besonders im Fokus. Nach der Erläuterung von grundlegenden Anwendungen wird auf die anspruchsvolleren Themen wie Interrupts, Timer und Counter, Pulsweitenmodulation und Analog-Digital-Wandlung eingegangen.
Praktische Anwendungen können sowohl mit einem Arduino als auch mit dem AVR-Playground-Board durchgeführt werden. Da das AVR-Playground-Board bereits über eine Vielzahl von Peripherie-Einheiten verfügt, sind nur noch wenige externe Bauteile erforderlich. Das Board kann im Elektor-Shop hier bezogen werden.
Bouw uw eigen projecten met het Elektor Arduino Nano MCCAB Training Board
De microcontroller is waarschijnlijk het meest fascinerende onderwerp van de moderne elektronica. Door de veelheid aan functies die hij op zijn chip combineert is het een universeel multi-tool voor ontwikkelaars om hun projecten mee te bouwen. Vrijwel elk dagelijks gebruikt apparaat wordt tegenwoordig bestuurd door een microcontroller. Voor een elektronica-leek is het realiseren van de eigen ideeën met een microcontroller echter tot nu toe een utopie gebleven vanwege de complexiteit ervan. Het Arduino-concept heeft het gebruik van microcontrollers sterk vereenvoudigd, zodat zelfs onervaren starters nu hun eigen elektronica ideeën kunnen realiseren met een microcontroller.
Book & Hardware in de bundel: 'Leren door te doen'
Het boek, dat ook in de bundel zit, leert ons hoe je zelfs zonder veel ervaring met elektronica en programmeertalen je eigen projecten met een microcontroller kunt bouwen. Het is een echte hands-on cursus microcontrollers voor starters. Want na een beschrijving van het inwendige van de microcontroller en een introductie in de programmeertaal C, ligt de focus van de cursus op praktische oefeningen. De lezer bouwt de nodige kennis op met 'leren door te doen': in het uitgebreide praktische gedeelte van het boek, met 12 projecten en 46 oefeningen, wordt het geleerde in het voorste deel van het boek met veel voorbeelden onderbouwd. Elke oefening wordt gevolgd door een uitgewerkt voorbeeld met uitleg en toelichting, wat de lezer helpt om de vraagstukken op te lossen en met de eigen oplossing te vergelijken.
Arduino IDE
De Arduino IDE is een software ontwikkelomgeving die gratis op de eigen pc kan worden gedownload, en die alle software bevat die nodig is voor uw eigen microcontroller-projecten. U schrijft de programma's ('apps') met de editor van de IDE in de programmeertaal C. En U vertaalt ze naar bits en bytes die de microcontroller begrijpt met behulp van de ingebouwde compiler van de Arduino IDE. En kunt ze vervolgens via een USB-kabel laden naar het geheugen van de microcontroller op het Elektor Arduino MCAB Nano Training Board.
Externe sensoren, motoren of schakelingen checken of besturen
Naast een Arduino Nano microcontroller module bevat het Elektor Arduino Nano MCCAB Training Board ook alle componenten die nodig zijn voor de oefeningen, zoals LED’s, schakelaars, drukknoppen, buzzer enz. Ook externe sensoren, motoren of modules kunnen worden gecheckt of bestuurd met dit microcontroller-trainingssysteem.
Specificaties (Arduino Nano Training Board MCCAB)
Voeding
Via de USB-aansluiting van de aangesloten pc of een externe voeding (niet inbegrepen)
Spanning
+5 Vcc
Ingangsspanning
Alle ingangen
0 V tot +5 V
VX1 en VX2
+8 V tot +12 V (alleen bij gebruik van een externe voeding)
Hardware
LCD
2x16 karakters
Potentiometer P1 & P2
JP3: Selectie van de werkspanning van P1 & P2
Verdelers
SV4: Verdeler voor de werkspanningenSV5, SV6: Verdelers voor de in-/uitgangen van de microcontroller
Schakelaars en knoppen
RESET knop op de Arduino Nano module; 6x drukknop schakelaars K1 ... K6; 6x Schuifschakelaars S1 ... S6; JP2: Jumper van de schakelaars met de ingangen van de microcontroller
Buzzer
Piezo buzzer ‘Buzzer1’ met jumper op JP6
Indicator LED’s
11 x LED: Status indicator voor de ingangen/uitgangen LED L op de Arduino Nano module, aangesloten op GPIO D13 JP6; Aansluiting van LED's LD10 ... LD20 met GPIO's D2 ... D12
Seriële interfacesSPI & I²C
JP4: Selectie van het signaal op pin X van de SPI-connector SV12 SV9 naar SV12: SPI-interface (3,3 V/5 V) of I²C-interface
Uitgangen voor externe apparaten
SV1, SV7: Geschakelde uitgang (maximaal +24 V/160 mA, extern aangesloten) SV2: 2x13 pinnen voor aansluiting van externe modules
3x3 LED matrix(9 rode LED's)
SV3: Kolommen van de 3x3 LED matrix (uitgangen D6 ... D8) JP1: Verbinding van de rijen met de GPIO's D3 ... D5
Software
MCCABLib library
Controle van hardware componenten (schakelaars, knoppen, LED's, 3x3 LED matrix, buzzer) op het MCCAB Training Board
Werktemperatuur
Tot +40 °C
Afmetingen
100 x 100 x 20 mm
Specificaties (Arduino Nano)
Microcontroller
ATmega328P
Architectuur
AVR
Spanning
5 V
Flash memory
32 KB, waarvan 2 KB gebruikt door de bootloader
SRAM
2 KB
Kloksnelheid
16 MHz
Analoge IN Pinnen
8
EEPROM
1 KB
DC stroom per I/O-pin
40 mA op één I/O-pin, totaal maximaal 200 mA op alle pinnen samen
Ingangsspanning
7-12 V
Digitale I/O-pinnen
22 (waarvan 6 PWM)
PWM Uitgangen
6
Stroomverbruik
19 mA
Afmetingen
18 x 45 mm
Gewicht
7 g
Inbegrepen
Elektor Arduino Nano MCCAB Training Board
Arduino Nano
Boek: Microcontrollers Hands-on Course for Arduino Starters
Mit dem Elektor Arduino Nano Trainingsboard (MCCAB) eigene Projekte realisieren
Der Mikrocontroller ist das wohl faszinierendste Teilgebiet der Elektronik, denn aufgrund der Vielzahl von Funktionen, die er auf seinem Chip vereinigt, ist er für den Entwickler ein universelles Multi-Tool zur Realisierung seiner Projekte. Praktisch jedes Gerät des täglichen Gebrauchs wird heute von einem Mikrocontroller gesteuert. Für einen elektronischen Laien blieb es aufgrund der Komplexität bisher allerdings ein Wunschtraum, eigene Ideen mit einem Mikrocontroller zu realisieren. Das Arduino-Konzept hat den Einsatz von Mikrocontrollern weitgehend vereinfacht, sodass jetzt auch Laien eigene Elektronik-Ideen mit einem Mikrocontroller verwirklichen können.
Buch & Hardware im Bundle: 'Learning by Doing'
Dieses im Bundle mitgelieferte Buch (im großen A4-Format) zeigt, wie man auch ohne große Erfahrung in Elektronik und Programmiersprachen eigene Projekte mit einem Mikrocontroller realisieren kann. Es ist ein Mikrocontroller-Praxiskurs für Einsteiger, denn nach einem Überblick über die Interna des Mikrocontrollers und einer Einführung in die Programmiersprache C liegt der Schwerpunkt des Kurses auf den praktischen Übungen. Der Leser eignet sich die erforderlichen Kenntnisse durch 'Learning by Doing' an: in dem umfangreichen Praxisteil mit 12 Projekten und 46 Übungen wird das im vorderen Teil des Buches Gelernte mit vielen Beispielen unterlegt. Die Übungen sind dabei so aufgebaut, dass der Bearbeiter eine Aufgabenstellung erhält, die er mit seinem im Theorieteil des Buches aufgebauten Wissen löst. Für jede Übung gibt es anschließend eine ausführlich erklärte und kommentierte Musterlösung, die dem Bearbeiter bei Problemen weiterhilft und die er mit seiner eigenen Lösung vergleichen kann.
Arduino IDE
In der Arduino IDE, einer Software-Entwicklungsumgebung, die kostenlos auf den eigenen PC heruntergeladen werden kann und die das gesamte Softwarepaket enthält, das für ein eigenes Mikrocontroller-Projekt benötigt wird, schreibt der Bearbeiter mit dem Editor der IDE seine Programme („Apps“) in der Programmiersprache C. Der in die Arduino IDE integrierte Compiler übersetzt sie in die Bits und Bytes, die der Mikrocontroller versteht und die dann über ein USB-Kabel in den Speicher des Mikrocontrollers auf dem Elektor Arduino Nano Trainingsboard (MCCAB) geladen werden.
Externe Sensoren, Motoren oder Baugruppen abfragen oder steuern
Das Elektor Arduino Nano Trainingsboard (MCCAB) enthält neben einem Mikrocontrollermodul Arduino Nano alle für die Übungen benötigten Bauteile wie Leuchtdioden, Schalter, Taster, akustische Signalgeber usw. Auch externe Sensoren, Motoren oder Baugruppen können mit diesem Mikrocontroller-Übungssystem abgefragt oder gesteuert werden.
Technische Daten (Arduino Nano Trainingsboard MCCAB)
Stromversorgung
Über die USB-Verbindung des zur Erstellung der Programme sowieso angeschlossenen PCs oder ein externes Netzteil (nicht im Lieferumfang enthalten)
Betriebsspannung
+5 Vcc
Eingangsspannung
Alle Eingänge
0 V bis +5 V
VX1 und VX2
+8 V bis +12 V (nur bei Verwendung eines externen Netzteils)
Mikrocontrollermodul
Arduino Nano
Hardwareperipherie
LCD
2x16 Zeichen
Potenziometer P1 & P2
JP3: Auswahl der Betriebsspannung von P1 & P2
Verteiler
SV4: Verteiler für die BetriebsspannungenSV5, SV6: Verteiler für die Ein-/Ausgänge des Mikrocontrollers
Schalter und Taster
RESET-Taster auf dem Arduino Nano-Modul6x Tastschalter K1 … K66x Schiebeschalter S1 … S6JP2: Verbindung der Schalter mit den Eingängen des Mikrocontrollers
Summer
Piezo-Summer Buzzer1 mit Steckbrücke auf JP6
Leuchtanzeigen
LED L auf dem Arduino Nano-Modul, verbunden mit GPIO D1311x LED: Zustandsanzeige für die Ein-/AusgängeJP6: Verbindung der LEDs LD10 … LD20 mit den GPIOs D2 … D12
Serielle SchnittstellenSPI & I²C
JP4: Auswahl des Signals an Pin X der SPI-Steckerleiste SV12SV9 bis SV12: SPI-Interface (3,3 V/5 V) bzw. I²C-Interface
Schaltausgang für externe Geräte
SV1, SV7: Schaltausgang (maximal +24 V/160 mA, extern zugeführt)SV2: 2x13 Pins zum Anschluss externer Module
3x3 LED-Matrix (9 rote LEDs)
SV3: Spalten der 3x3 LED-Matrix (Ausgänge D6 … D8)JP1: Verbindung der Reihen mit den GPIOs D3 … D5
Software
Library MCCABLib
Steuerung der Hardware-Komponenten (Schalter, Taster, Leuchtdioden, 3x3 LED-Matrix, Summer) auf dem MCCAB Trainingsboard
Betriebstemperatur
bis +40 °C
Abmessungen
100 x 100 x 20 mm
Technische Daten (Arduino Nano)
Mikrocontroller
ATmega328P
Architektur
AVR
Betriebsspannung
5 V
Flashspeicher
32 KB, davon 2 KB vom Bootloader belegt
SRAM
2 KB
Taktfrequenz
16 MHz
Analoge IN-Pins
8
EEPROM
1 KB
DC-Strom pro I/O-Pin
40 mA an einem I/O-Pin, insgesamt maximal 200 mA an allen Pins gemeinsam
Eingangsspannung
7-12 V
Digitale I/O-Pins
22 (6 davon sind PWM-fähig)
PWM-Ausgänge
6
Stromverbrauch
19 mA
Abmessungen
18 x 45 mm
Gewicht
7 g
Lieferumfang
Elektor Arduino Nano MCCAB Trainingsboard
Arduino Nano
Buch: Mikrocontroller-Praxiskurs für Arduino-Einsteiger