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.
Réalisez vos propres projets avec la carte d'apprentissage Elektor Arduino Nano MCCAB
Le microcontrôleur est probablement le sous-domaine le plus fascinant de l'électronique. Grâce à la multitude de fonctions qu'il combine sur sa puce, il constitue un outil universel permettant aux développeurs de réaliser leurs projets. Pratiquement tous les appareils d'usage quotidien sont aujourd'hui dotés d'un microcontrôleur. Cependant, pour un débutant en électronique, réaliser ses propres idées avec un microcontrôleur est resté jusqu'à présent une chimère en raison de sa complexité. Le concept Arduino a largement simplifié l'utilisation des microcontrôleurs, de sorte que même les débutant peuvent désormais réaliser leurs propres idées électroniques avec un microcontrôleur.
Livre et matériel dans un pack : apprendre par la pratique
Ce livre, qui est inclus dans le pack, montre comment vous pouvez réaliser vos propres projets avec un microcontrôleur, même sans grande expérience en électronique et en langages de programmation. Il s'agit d'un cours pratique sur les microcontrôleurs pour débutants, car après un aperçu des éléments internes du microcontrôleur et une introduction au langage de programmation C, le cours se concentre sur les exercices pratiques. Le lecteur acquiert les connaissances nécessaires en apprenant par la pratique : dans la vaste section pratique comprenant 12 projets et 46 exercices, ce qui est appris dans la première partie du livre est étayé par de nombreux exemples. Les exercices sont structurés de telle sorte que l'utilisateur se voit confier une tâche à résoudre en utilisant les connaissances acquises dans la partie théorique du livre. Chaque exercice est suivi d'un exemple de solution qui est expliqué et commenté en détail, ce qui aide l'utilisateur à résoudre les problèmes et à les comparer avec sa propre solution.
Arduino IDE
L'Arduino IDE est un environnement de développement logiciel qui peut être téléchargé gratuitement sur votre PC et qui contient l'ensemble des logiciels nécessaires à la réalisation de vos propres projets de microcontrôleurs. Vous écrivez vos programmes (sketch) avec l'éditeur de l'IDE dans le langage de programmation C. Vous les traduisez en bits et octets que le microcontrôleur comprend à l'aide du compilateur intégré à l'IDE Arduino, puis vous les chargez dans la mémoire du microcontrôleur sur la carte d'apprentissage Elektor Arduino MCCAB Nano à l'aide d'un câble USB.
Interroger ou contrôler des capteurs, des moteurs ou des ensembles externes
Outre un module microcontrôleur Arduino Nano, la carte d'apprentissage Elektor Arduino Nano MCCAB contient tous les composants nécessaires aux exercices, tels que des diodes électroluminescentes, des interrupteurs, des boutons-poussoirs, des émetteurs de signaux acoustiques, etc. Ce système de formation à microcontrôleur permet également d'interroger ou de commander des capteurs, des moteurs ou des assemblages externes.
Spécifications (Carte de formation Arduino Nano MCCAB)
Alimentation électrique
Via la connexion USB du PC connecté ou un bloc d'alimentation externe (non inclus)
Tension de fonctionnement
+5 Vcc
Tension d'entrée
Toutes les entrées
0 V to +5 V
VX1 and VX2
+8 V to +12 V (uniquement en cas d'utilisation d'une alimentation externe)
Périphérie du matériel
LCD
2x16 caractères
Potentiomètre P1 & P2
JP3 : sélection de la tension de fonctionnement de P1 et P2
Distributeur
SV4 : Distributeur pour les tensions de fonctionnementSV5, SV6 : Distributeur pour les entrées/sorties du microcontrôleur
Interrupteurs et boutons
Bouton RESET sur le module Arduino Nano 6x interrupteurs à bouton poussoir K1 ... K6 6x interrupteurs à glissière S1 ... S6 JP2 : Connexion des interrupteurs avec les entrées du microcontrôleur
Buzzer
Buzzer piézo Buzzer1 avec cavalier sur JP6
Voyants lumineux
11 x LED : Indicateur d'état des entrées/sorties LED L sur le module Arduino Nano, connectée au GPIO D13 JP6 : Connexion des LED LD10 ... LD20 avec les GPIO D2 ... D12
Interfaces sérieSPI ET I²C
JP4 : Sélection du signal à la broche X du connecteur SPI SV12 SV9 à SV12 : interface SPI (3,3 V/5 V) ou interface I²C
Sortie de commutation pour les appareils externes
SV1, SV7 : sortie de commutation (maximum +24 V/160 mA, alimentation externe) SV2 : 2x13 connecteurs pour la connexion de modules externes
Matrice de 3x3 LED(9 LED rouges)
SV3 : Colonnes de la matrice LED 3x3 (sorties D6 ... D8) JP1 : Connexion des lignes avec les GPIOs D3 ... D5
Logiciel
Bibliothèque MCCABLib
Contrôle des composants matériels (interrupteurs, boutons, DEL, matrice de DEL 3x3, buzzer) sur la carte de formation MCCAB.
Température de fonctionnement
Jusqu'à +40 °C
Dimensions
100 x 100 x 20 mm
Spécifications (Arduino Nano)
Microcontrôleur
ATmega328P
Architecture
AVR
Tension de fonctionnement
5 V
Mémoire flash
32 Ko, dont 2 Ko utilisés par le chargeur de démarrage
SRAM
2 KB
Vitesse d'horloge
16 MHz
Connecteurs d'entrée analogique
8
EEPROM
1 KB
Courant continu par connecteur d'E/S
40 mA sur un connecteur d'E/S, maximum total de 200 mA sur l'ensemble des connecteurs
Tension d'entrée
7-12 V
Connecteurs E/S numériques
22 (dont 6 PWM)
Sortie PWMt
6
Consommation électrique
19 mA
Dimensions
18 x 45 mm
Poids
7 g
Inclus
Elektor Arduino Nano MCCAB Training Board
Arduino Nano
Livre : 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