Inhaltsverzeichnis:
Video: Programmierung des ATTiny85, ATTiny84 und ATMega328P: Arduino als ISP - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Vorwort
Ich habe vor kurzem ein paar ESP8266-basierte IoT-Projekte entwickelt und festgestellt, dass der Core-Prozessor Schwierigkeiten hatte, alle Aufgaben auszuführen, die ich benötigte Auf diese Weise wird der ESP8266 frei, um seiner Aufgabe als IoT-Gerät nachzukommen.
Da ich mein Projekt einem möglichst breiten Publikum zugänglich machen wollte, entschied ich mich, die Arduino IDE als Entwicklungsplattform der Wahl zu verwenden, da sie eine so breit unterstützte Community hat.
Designeinschränkungen
Um eine angemessene Streuung von Zielgeräten bereitzustellen, die die Auswahl eines geeigneten Mikrocontrollers für die jeweilige Anwendung ermöglicht, habe ich mich für die folgenden Atmel-Teile entschieden; ATMega328P, ATTiny84 und ATTiny85. Um die Komplexität des notwendigen Programmierers zu begrenzen, habe ich die Wahl des Takts auf intern für alle Geräte und auf 16 MHz extern für nur den ATMega328P und ATTiny84 beschränkt.
Was folgt, ist eine Sammlung von Hinweisen zur Programmierung mit dem Arduino und eine Beschreibung, wie ich einen einfachen Arduino Uno-basierten Programmierer für diese Geräte zusammenstelle (Bilder oben).
Welche Teile brauche ich?
Um den Programmierer zu bauen, benötigen Sie die folgenden Teile
- 1 Stück Arduino Uno
- 2 von 28-poligen Zero Insertion Force (ZIF) DIP-Buchsen (zur Aufnahme von ATMega328P, ATTiny85, ATTiny84)
- 1 von Arduino-Prototyp-Schild (ich habe meinen hier;
- 2 aus 5MM LEDs
- 2 von 1K Widerständen
- 1 von 10K Widerstand
- 4 von 22pF Keramikkondensatoren
- 2 von 16MHz Quarzen
- 3 von 0,1uF Keramikkondensatoren
- 1 von 47uF Elektrolytkondensator
- 1 von 10uF Elektrolytkondensator
- Drahtwickeldraht in verschiedenen Längen.
Welche Software benötige ich?
Arduino-IDE 1.6.9
Welche Fähigkeiten brauche ich?
- Kenntnisse der Arduino-IDE
- Einige Kenntnisse in Elektronik und Löten
- Viel handwerkliches Geschick
- Viel Geduld und gutes Sehvermögen
Behandelten Themen
- Allgemeine Einführung in die Programmierung von Atmel-Mikrocontrollern
- ISP oder Bootloader: Es ist alles ein bisschen verwirrend
- Schaltungsübersicht
- Einrichten Ihres Programmierers
- Verwenden Ihres Arduino ISP-Programmierers
- Entwicklung von Code auf Ihrem Zielsystem
- Fallstricke
- Abschluss
- Verwendete Referenzen
Haftungsausschluss
Wie immer verwenden Sie diese Anweisungen auf eigene Gefahr und werden nicht unterstützt
Schritt 1: Allgemeine Einführung in die Programmierung von Atmel-Mikrocontrollern
Für die Programmierung von Atmel-Mikrocontrollern stehen zwei Methoden zur Verfügung;
- In der Systemprogrammierung (ISP)
- Selbstprogrammierung (über einen Bootloader).
Die erstere Methode (1) programmiert den Mikrocontroller direkt über die SPI-Schnittstelle, nachdem das Gerät zuerst in einen Reset versetzt wurde. Sofern nicht anders angewiesen, wird ein kompiliertes ausführbares Quellprogramm inkrementell in den Codespeicher auf das Gerät geschrieben, von wo es beim Start ausgeführt wird. Es gibt viele ISP-Geräte, die Atmel-Geräte programmieren können, von denen einige sind (Bild 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Bild 2 zeigt, wie das ISP-Gerät mit dem ATMega328P (seltsamerweise mit ICSP gekennzeichnet) auf der Arduino Uno R3-Platine verbunden ist (Bild 3 gibt den ISP-Pin an). Es ist auch möglich, einen Atmel-Mikrocontroller über seine SPI-Schnittstelle mit einem Arduino Uno als ISP zu programmieren (Bild 4), hier wird der Uno verwendet, um einen ATMega328P zu programmieren.
Die letztere Methode (2) verwendet einen kleinen Code-Stub, der als 'Bootloader' bekannt ist und sich permanent im ausführbaren Code-Speicher befindet (normalerweise gesperrt, um ein versehentliches Überschreiben von Bild 5 zu verhindern). Dieser Code wird als erstes beim Einschalten oder Zurücksetzen des Geräts ausgeführt und ermöglicht es dem Mikrocontroller, sich selbst mit neuem Code neu zu programmieren, der über eine seiner Schnittstellen von einer externen Quelle empfangen wird. Die Bootloader-Methode wird von der Arduino IDE verwendet, um Arduinos neu zu programmieren, die als USB-Comm-Port auf dem PC (oder MAC, Linux-Box usw serielle Schnittstelle an den IC Pins 2 und 3 des ATMega328P. Auch das Arduino Uno (mit entferntem ATMega328P-Mikrocontroller) kann verwendet werden, um einen ATMega328P über die Bootloader-Methode zu programmieren, die effektiv als USB-zu-Seriell-Adaptergerät fungiert (Bild 7).
Was ist ein USB-Seriell-Adapter?
Ein USB-zu-Seriell-Adapter ist ein Stück Hardware, das an den USB-Port Ihres PCs angeschlossen wird und wie ein serieller COM-Port aussieht (ein Erbe aus früheren Zeiten, als Computer einen seriellen Kommunikationsstandard namens EIA-232, V24 oder RS232 verwendeten). Senden und empfangen Sie serielle Daten auf den gleichen elektrischen Ebenen des Mikrocontrollers. Wenn Sie Tools -> Port -> COMx von der Arduino IDE auswählen, verbinden Sie Ihren PC mit Ihrem Arduino.
Ein solches Gerät wird manchmal als FTDI (Bild 8, eigentlich ein Markenname) oder CH340G usw. bezeichnet. USB zu seriell auf dem Arduino uno wird über einen ATMega16U2-MU(R) IC ZU4 wie im Arduino-Schema erreicht unter.
Aus Gründen der Übersichtlichkeit identifiziert Bild 9 die beiden Atmel-Geräte und ihre jeweiligen ISP-Anschlüsse auf dem Arduino Uno R3.
Hinweis 1: Wenn Sie sich für den FTDI-Geräteweg entscheiden, stellen Sie sicher, dass Sie bei einem seriösen Verkäufer kaufen, da es viele billige gefälschte Geräte auf dem Markt gibt, die nach der Anwendung eines Windows-Updates fehlgeschlagen sind.
Empfohlen:
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i
So richten Sie die Programmierung in C/C++ ein.: 5 Schritte
So richten Sie die Programmierung in C/C++ ein.: C und C++ sind beliebte Programmiersprachen, die einen schnellen Zugriff auf die Erstellung von Formeln und die Lösung komplexer Probleme mit minimalem Ressourcenaufwand ermöglichen. Das Problem besteht darin, einen Weg zu finden, das Programm zu kompilieren und ausführbar zu machen. Eine Ihrer Optionen könnte sein
Programmierung des Open DSKY: 5 Schritte (mit Bildern)
Programmierung des Open DSKY: Willkommen zu unseren laufenden Instructables zur Programmierung Ihres Open DSKY. Stellen Sie sicher, dass Sie wiederkommen, da dieses Instructable weiter wachsen wird, da wir ständig neues Programmiermaterial produzieren und veröffentlichen. Also folgen Sie ihm, mögen Sie es und bevorzugen Sie es. Diese Videoserie
So fügen Sie Meldungsfelder in der Batch-Programmierung hinzu: 3 Schritte
So fügen Sie Nachrichtenfelder in der Batch-Programmierung hinzu: Wollten Sie schon immer eine grafische Oberfläche für Ihre Batch-Dateien hinzufügen, wie Sie es in VBScript können? Ich habe sicher. Aber jetzt können Sie mit diesem fantastischen Programm namens MessageBox
Programmierung in Scratch.: 4 Schritte
Programmieren in Scratch.: Dieses Tutorial zeigt Ihnen einige Programmiermöglichkeiten, die beim Programmieren Ihres eigenen DDR-Spiels nützlich sind