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 Ihren 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.
Der Arduino Nano ist eine kleine, vollständige und Breadboard-freundliche Platine, die auf dem ATmega328 (Arduino Nano 3.x) basiert. Er hat mehr oder weniger die gleiche Funktionalität wie der Arduino Duemilanove, aber in einem anderen Gehäuse. Es fehlt nur eine DC-Strombuchse und arbeitet mit einem Mini-B-USB-Kabel anstelle eines Standardkabels.
Technische Daten
Mikrocontroller
ATmega328
Betriebsspannung (Logikpegel)
5 V
Eingangsspannung (empfohlen)
7-12 V
Eingangsspannung (Grenzwerte)
6-20 V
Digitale E/A-Pins
14 (davon 6 mit PWM-Ausgang)
Analogeingangs-Pins
8
DC-Strom pro I/O-Pin
40 mA
Flash-Speicher
16 KB (ATmega168) oder 32 KB (ATmega328), davon 2 KB für den Bootloader
SRAM
1 KB (ATmega168) oder 2 KB (ATmega328)
EEPROM
512 bytes (ATmega168) oder 1 KB (ATmega328)
Taktfrequenz
16 MHz
Abmessungen
18 x 45 mm
Stromversorgung
Der Arduino Nano kann über den Mini-B-USB-Anschluss, eine ungeregelte externe 6-20-V-Stromversorgung (Pin 30) oder eine geregelte externe 5-V-Stromversorgung (Pin 27) mit Strom versorgt werden. Die Stromquelle wird automatisch auf die höchste Spannungsquelle eingestellt.
Speicher
Der ATmega168 verfügt über 16 KB Flash-Speicher zum Speichern von Code (davon 2 KB für den Bootloader), 1 KB SRAM und 512 Byte EEPROM
Der ATmega328 verfügt über 32 KB Flash-Speicher zum Speichern von Code (2 KB werden auch für den Bootloader verwendet), 2 KB SRAM und 1 KB EEPROM.
Input und Output
Jeder der 14 digitalen Pins des Nano kann mit den Funktionen pinMode(), digitalWrite(), und digitalRead() als Eingang oder Ausgang verwendet werden.
Jeder Pin kann maximal 40 mA liefern oder empfangen und hat einen internen Pull-up-Widerstand (standardmäßig ausgeschaltet) von 20-50 kOhm.
Kommunikation
Der Arduino Nano verfügt über eine Reihe von Möglichkeiten zur Kommunikation mit einem Computer, einem anderen Arduino oder anderen Mikrocontrollern.
Der ATmega168 und ATmega328 bieten eine serielle UART-TTL-Kommunikation (5 V), die an den digitalen Pins 0 (RX) und 1 (TX) verfügbar ist. Ein FTDI FT232RL auf dem Board leitet diese serielle Kommunikation über USB weiter, und die FTDI-Treiber (in der Arduino-Software enthalten) stellen der Software auf dem Computer einen virtuellen Com-Port zur Verfügung.
Die Arduino-Software enthält einen seriellen Monitor, mit dem einfache Textdaten zum und vom Arduino-Board gesendet werden können. Die RX- und TX-LEDs auf dem Board blinken, wenn Daten über den FTDI-Chip und die USB-Verbindung zum Computer übertragen werden (jedoch nicht bei serieller Kommunikation über die Pins 0 und 1).
Eine SoftwareSerial-Bibliothek ermöglicht die serielle Kommunikation über jeden der digitalen Pins des Nano.
Programmierung
Der Arduino Nano kann mit der Arduino-Software (Download) programmiert werden.
Der ATmega168 oder ATmega328 auf dem Arduino Nano verfügt über einen Bootloader, mit dem Sie neuen Code ohne ein externes Hardware-Programmiergerät hochladen können. Er kommuniziert mit dem ursprünglichen STK500-Protokoll (Referenz, C-Header-Dateien).
Sie können den Bootloader auch umgehen und den Mikrocontroller über den ICSP-Header (In-Circuit Serial Programming) programmieren, indem Sie Arduino ISP oder ein ähnliches Programm verwenden; Einzelheiten finden Sie in dieser Anleitung.
Automatischer (Software-)Reset
Anstatt den Reset-Knopf vor einem Upload physisch zu betätigen, ist der Arduino Nano so konzipiert, dass er durch eine auf einem angeschlossenen Computer laufende Software zurückgesetzt werden kann.
Eine der Hardware-Flusskontrollleitungen (DTR) desFT232RL ist über einen 100 nF-Kondensator mit der Reset-Leitung des ATmega168 oder ATmega328 verbunden. Wenn diese Leitung aktiviert wird (low), fällt die Reset-Leitung lange genug ab, um den Chip zurückzusetzen.
Die Arduino-Software nutzt diese Fähigkeit, um das Hochladen von Code durch einfaches Drücken der Upload-Taste in der Arduino-Umgebung zu ermöglichen. Dies bedeutet, dass der Bootloader ein kürzeres Timeout haben kann, da das Absenken von DTR gut mit dem Beginn des Uploads koordiniert werden kann.
Das Elektor MultiCalculator Kit ist ein Arduino-basierter Multifunktionsrechner, der über einfache Berechnungen hinausgeht. Es bietet 22 Funktionen, darunter Licht- und Temperaturmessung, Differenztemperaturanalyse und NEC-IR-Fernbedienungsdekodierung. Der Elektor MultiCalculator ist ein praktisches Werkzeug für den Einsatz in Ihren Projekten oder für Bildungszwecke.
Das Kit enthält ein Pro Mini-Modul als Recheneinheit. Die Platine lässt sich mithilfe von Durchgangslochkomponenten einfach zusammenbauen. Das Gehäuse besteht aus 11 Acrylplatten und Montagematerial für eine einfache Montage. Darüber hinaus ist das Gerät mit einem 16x2 alphanumerischen LCD, 20 Tasten und Temperatursensoren ausgestattet.
Der Elektor MultiCalculator ist über einen 6-Wege-PCB-Header mit der Arduino-IDE programmierbar. Der Rechner kann mit einem Programmieradapter programmiert werden und wird über USB-C mit Strom versorgt.
Betriebsmodi
Rechner
4-Ring-Widerstandscode
5-Ring-Widerstandscode
Konvertierung von Dezimalzahlen in Hexadezimalzahlen und Zeichen (ASCII)
Konvertierung von Hexadezimalzahlen in Dezimalzahlen und Zeichen (ASCII)
Dezimal-zu-Binär- und Zeichen-Konvertierung (ASCII)
Binär-zu-Dezimal- und Hexadezimal-Konvertierung
Berechnung von Hz, nF und kapazitiver Reaktanz (XC)
Hz, µH, Berechnung der induktiven Reaktanz (XL)
Widerstandsberechnung zweier parallel geschalteter Widerstände
Widerstandsberechnung zweier in Reihe geschalteter Widerstände
Berechnung des unbekannten Parallelwiderstands
Temperaturmessung
Differenztemperaturmessung T1&T2 und Delta (δ)
Lichtmessung
Stoppuhr mit Rundenzeitfunktion
Artikelzähler
NEC IR-Fernbedienungsdekodierung
AWG-Umwandlung (American Wire Gauge)
Würfeln
Startnachricht personalisieren
Temperaturkalibrierung
Technische Daten
Menüsprachen: Englisch, Niederländisch
Abmessungen: 92 x 138 x 40 mm
Bauzeit: ca. 5 Stunden
Lieferumfang
Leiterplatten- und Durchgangslochkomponenten
Vorgeschnittene Acrylplatten mit allen mechanischen Teilen
Pro Mini Mikrocontroller-Modul (ATmega328/5 V/16 MHz)
Programmieradapter
Wasserdichte Temperatursensoren
USB-C Kabel
Downloads
Software
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 Ihren 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.
Der Autor führt Einsteiger und auch Fortgeschrittene gekonnt und professionell in eine hochinteressante Thematik ein. Auch wer seine Elektronik- und Programmierkenntnisse weiter ausbauen und vertiefen möchte, hat dazu gute Möglichkeiten. Die modernen und zeitgemäßen Atmel AVR-Prozessoren sowie die Programmierung in C sind in Kombination eine zukunftssichere Plattform für lange Zeit. Nach Einführung und Vorstellung der notwendigen Entwicklungsumgebung werden Projekte vorgestellt, die schrittweise zum Ziel führen.Für die meisten Projekte kommt das Atmel AVR-Evaluation-Board zum Einsatz – eine Experimentierplatine aus dem Hause Pollin Electronic. Das gewährleistet den reibungslosen Nachbau der vorgeschlagenen Projekte. Natürlich ist auch die Verwendung eigener Experimentierschaltungen möglich, denn ein erklärtes Ziel des Buches ist es, den Anwender zu selbständigem Arbeiten und Entwickeln zu befähigen.Aus dem Inhalt:• Der passende Mikrocontroller• Die Entwicklungsumgebung• Erste Schritte mit dem Mikrocontroller• Das AVR-Evaluation-Board• I/O-Grundlagen• Flüssigkristalldisplays (LCDs)• Serielle Datenübertragung• Analoge Ein- und Ausgabe• Programmablaufsteuerung mit Interrupts• Timer/Counter• Speicherzugriffe, Bootloader• Serieller Datenbus I²C (TWI) und SPI• Beispielprojekte: DCF 77, GPS, GLONASS, Fernwirken per Handy, Bluetooth, USB, SD-Speicherkarten und mehr
Dieser USB-Stick enthält eine Auswahl von über 300 Arduino-bezogenen Artikeln, die im Elektor-Magazin veröffentlicht wurden. Der Inhalt umfasst sowohl Hintergrundartikel als auch Projekte zu folgenden Themen:
Software- und Hardware-Entwicklung: Tutorials zur Arduino-Softwareentwicklung mit der Arduino IDE, Atmel Studio, verschiedenen Shields und grundlegenden Programmierkonzepten.
Lernen: Das Mikrocontroller-Bootcamp bietet einen strukturierten Einstieg in die Programmierung eingebetteter Systeme.
Datenerfassung und -messung: Projekte wie ein 16-Bit-Datenlogger, ein Drehbank-Tachometer und ein AC-Netzanalyzer ermöglichen die Erfassung und Analyse von Echtzeitsignalen.
Drahtlose Kommunikation: Erfahren Sie, wie man drahtlose Netzwerke implementiert, eine Android-Schnittstelle erstellt und effektiv mit Mikrocontrollern kommuniziert.
Robotik und Automatisierung: Lernen Sie den Arduino Nano Robot Controller, unterstützende Automatisierungs-Boards sowie diverse Arduino-Shields zur Funktionserweiterung kennen.
Selbstbauprojekte: Einzigartige DIY-Projekte wie Laserprojektion, eine Numitron-Uhr mit Thermometer, ein ELF-Empfänger, Theremino-Module und Touch-LED-Schnittstellen zeigen kreative Einsatzmöglichkeiten auf.
Egal, ob Sie Einsteiger oder erfahrener Maker sind – diese Sammlung ist eine wertvolle Ressource zum Lernen, Experimentieren und Erweitern der Möglichkeiten mit Arduino.
Dieses Buch behandelt Softwaretechniken, die es gestatten, auch anspruchsvollere Programme für AVR-Mikrocontroller zu entwickeln. Speziell wird im ersten Teil, welcher den Datenstrukturen gewidmet ist, besonders auf die Harvard-Architektur der Controller und die daraus resultierenden Programmiertechniken eingegangen. Die kleinen Arbeitsspeicher der meisten AVR-Controller erfordern immer wieder angepasste Implementierungsmethoden, davon werden einige im Buch vorgestellt, beispielsweise die verdichtete Speicherung und das Sortieren kurzer Zahlenfolgen mit Sortiernetzwerken. Die Implementierung der Buddy-Methode zur Arbeitsspeicherverwaltung zeigt, dass bei der Programmierung von AVR-Controllern nicht nur simple Algorithmen verwendet werden können.Im zweiten Teil des Buches wird die Arithmetik der Controller analysiert. Diese Analyse ist aber kein Selbstzweck, denn sie führt auf Programmiertechniken, die ohne sie nur schwer zu erlangen oder zu erklären wären. Ferner wird eine Fixkommaarithmetik entwickelt, die der Rechenleistung der Controller in vielen Fällen besser angepasst ist als eine rechenleistungsintensive Fließkommaarithmetik. An zwei Beispielen wird gezeigt, wie auf dieser Basis auch höhere Funktionen implementiert werden können.Für die Programme wird durchweg der AVR-Assembler eingesetzt, der kostenlos zur Verfügung steht. Der Simulator, welcher Teil der Programmierumgebung ist, der auch der Assembler angehört, gestattet es, die Programme des Buches nachzuvollziehen oder mit ihnen zu experimentieren, ohne einen echten Controller einzusetzen.
Programming and Projects for the Minima and WiFi
Based on the low-cost 8-bit ATmega328P processor, the Arduino Uno R3 board is likely to score as the most popular Arduino family member, and this workhorse has been with us for many years. Eleven years later, the long-overdue successor, the Arduino Uno R4, was released. It is built around a 48 MHz, 32-bit Arm Cortex-M4 microcontroller and provides significantly expanded SRAM and Flash memory. Additionally, a higher-precision ADC and a new DAC are added to the design. The Uno R4 board also supports the CAN Bus with an interface.
Two versions of the board are available: Uno R4 Minima, and Uno R4 WiFi. This book is about using these new boards to develop many different and interesting projects with just a handful of parts and external modules. All projects described in the book have been fully tested on the Uno R4 Minima or the Uno R4 WiFi board, as appropriate.
The project topics include the reading, control, and driving of many components and modules in the kit as well as on the relevant Uno R4 board, including
LEDs
7-segment displays (using timer interrupts)
LCDs
Sensors
RFID Reader
4x4 Keypad
Real-time clock (RTC)
Joystick
8×8 LED matrix
Motors
DAC (Digital-to-analog converter)
LED matrix
WiFi connectivity
Serial UART
CAN bus
Infrared controller and receiver
Simulators
… all in creative and educational ways with the project operation and associated software explained in great detail.
An 8-in-1 test & measurement instrument for the electronics workbench
A well-equipped electronics lab is crammed with power supplies, measuring devices, test equipment and signal generators. Wouldn‘t it be better to have one compact device for almost all tasks? Based on the Arduino, a PC interface is to be developed that’s as versatile as possible for measurement and control. It simply hangs on a USB cable and – depending on the software – forms the measuring head of a digital voltmeter or PC oscilloscope, a signal generator, an adjustable voltage source, a frequency counter, an ohmmeter, a capacitance meter, a characteristic curve recorder, and much more.
The circuits and methods collected here are not only relevant for exactly these tasks in the "MSR" electronics lab, but many details can also be used within completely different contexts.
Lerne die Grundlagen der Elektronik, indem du manuell deinen Arduino Uno zusammenbaust, gewinne Erfahrung im Löten, indem du jedes einzelne Bauteil montierst, und entfalte dann deine Kreativität mit dem einzigen Kit, das sich zu einem Synthesizer verwandelt!
Das Arduino Make-Your-Uno-Kit ist wirklich der beste Weg, um zu lernen, wie man lötet. Und wenn du fertig bist, ermöglicht dir die Verpackung, einen Synthesizer zu bauen und deine eigene Musik zu machen.
Ein Kit mit allen Komponenten, um deinen eigenen Arduino Uno und einen Audio-Synthesizer-Schild zu bauen.
Das Make-Your-Uno-Kit wird mit einem kompletten Satz von Anweisungen in einer dedizierten Inhaltsplattform geliefert. Dazu gehören Videomaterial, ein 3D- interaktiver Viewer zur detaillierten Anleitung und wie man das Board programmiert, sobald es fertig ist.
Dieses Kit enthält:
Arduino Make-Your-Uno
1x Make-Your-Uno-PCB
1x USB-C-Serieller Adapter
7x Widerstände 1 kOhm
2x Widerstände 10 kOhm
2x Widerstände 1 MOhm
1x Diode (1N4007)
1x 16 MHz Quartz
4x gelbe LEDs
1x grüne LED 1x Drucktaster
1x MOSFET
1x LDO (3,3 V)
1x LDO (5 V)
3x Keramikkondensatoren (22pF)
3x Elektrolytkondensatoren (47uF)
7x Polyesterkondensatoren (100nF)
1x Sockel für ATMega 328p
2x I/O-Steckverbinder
1x Steckerleiste 6-polig
1x Buchsenstecker
1x ATmega 328p-Mikrocontroller
Arduino Audio Synth
1x Audio Synth PCB
1x Widerstand 100kOhm
1x Widerstand 10 Ohm
1x Audio-Verstärker (LM386)
1x Keramikkondensator (47nF)
1x Elektrolytkondensator (47uF)
1x Elektrolytkondensator (220uF)
1x Polyesterkondensator (100nF)
4x Anschluss-Pin-Header
6x Potentiometer 10kOhm mit Kunststoffknöpfen
Ersatzteile
2x Elektrolytkondensatoren (47uF)
2x Polyesterkondensatoren (100nF)
2x Keramikkondensatoren (22pF)
1x Drucktaster
1x gelbe LED
1x grüne LED
Mechanische Teile
5x Abstandshalter 12 mm
11x Abstandshalter 6 mm
5x Schraubmuttern
2x Schrauben 12 mm
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.