- Erforderliche Komponenten zum Programmieren von ATtiny85 über USB
- ATtiny85 Microcontroller IC - Einführung
- Flashender Bootloader auf ATtiny85 mit Arduino Uno
- Schaltplan für ATtiny Programmer
- Digispark-Treiber installieren
- Einrichten der Arduino IDE zum Programmieren von ATttiny85
Die ATtiny-Familie ist eine Serie eines der kleinsten Mikrocontroller auf dem AVR-Markt. Diese Mikrocontroller können viele der auf der Arduino-Plattform verfügbaren Bibliotheken nutzen. Der ATtiny85-Mikrocontroller-Chip ist ein 8-poliger 8-Bit-AVR-Mikrocontroller. Aufgrund seiner geringen Größe und seines geringen Stromverbrauchs eignet es sich hervorragend für tragbare Projekte mit geringem Platzbedarf und geringem Strombedarf. Es kann jedoch eine kleine Herausforderung sein, Ihren Code auf den Chip zu bringen, da er keine USB-Schnittstelle wie Mikrocontroller-Karten hat.
In unserem vorherigen Tutorial haben wir den ATtiny85 mit Arduino Uno programmiert. Das Verbinden von Attiny85 mit Arduino und die Verwendung von Arduino als ISP kann jedoch schwierig und zeitaufwändig sein. In diesem Tutorial werden wir eine ATtiny85-Programmierkarte erstellen, damit wir sie wie andere Mikrocontroller-Karten direkt anschließen und programmieren können.
Erforderliche Komponenten zum Programmieren von ATtiny85 über USB
- Arduino UNO (Nur zum ersten Mal beim Hochladen des Bootloaders)
- ATtiny85 IC
- USB A-Stecker
- 3 Widerstände (2 × 47 Ω & 1 × 1 kΩ)
- 3 Dioden (2 × Zenerdiode & 1 × IN5819 Diode)
- 8-polige IC-Basis
- Steckbrett
- Überbrückungsdrähte
ATtiny85 Microcontroller IC - Einführung
Der ATtiny85 von Atmel ist ein leistungsstarker 8-Bit-Mikrocontroller mit geringem Stromverbrauch, der auf der Advanced RISC Architecture basiert. Dieser Mikrocontroller-Chip verfügt über einen 8-KB-ISP-Flash-Speicher, ein 512-B-EEPROM, einen 512-Byte-SRAM, 6 Allzweck-E / A-Leitungen, 32 Allzweck-Arbeitsregister, einen 8-Bit-Timer / Zähler mit Vergleichsmodi und einen 8-Bit-Hochgeschwindigkeits-Chip Timer / Zähler, USI, interne und externe Interrupts, 4-Kanal-10-Bit-A / D-Wandler, programmierbarer Watchdog-Timer mit internem Oszillator, drei per Software wählbare Energiesparmodi und debugWIRE für On-Chip-Debugging. Die Pinbelegung von ATtiny85 ist unten angegeben:
Die meisten E / A-Pins des Chips haben mehr als eine Funktion. Die Beschreibung des ATtiny85-Pins für jeden Pin ist in der folgenden Tabelle aufgeführt:
Pin Nr. |
Pin Name |
Pin Beschreibung |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Pinwechsel- Interrupt 0, Quelle5 RESET: Pin zurücksetzen ADC0: ADC-Eingangskanal 0 dW: Debuggen von WIRE I / O. |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Pinwechsel- Interrupt 0, Quelle3 XTAL1: Kristalloszillator Pin1 CLKI: Externer Takteingang ADC3: ADC-Eingangskanal 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Pinwechsel- Interrupt 0, Quelle 4 XTAL2: Kristalloszillator Pin 2 CLKO: System Clock - Ausgang OC1B: Timer / Counter1 Vergleiche Match B-Ausgang ADC2: ADC-Eingangskanal 2 |
4 |
GND |
Erdungsstift |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: SPI-Stammdatenausgang / Slave-Dateneingang DI: USI-Dateneingang (Drei-Draht-Modus) SDA: USI-Dateneingang (Zweidrahtmodus) AIN0: Analogkomparator, positiver Eingang OC0A: Timer / Counter0 Compare Match A-Ausgang AREF: Externe analoge Referenz PCINT0: Pinwechsel- Interrupt 0, Quelle 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: SPI-Stammdateneingabe / Slave-Datenausgabe DO: USI-Datenausgang (Drei-Draht-Modus) AIN1: Analogkomparator, negativer Eingang OC0B: Timer / Counter0 Vergleiche Match B-Ausgang OC1A: Timer / Counter1 Compare Match A-Ausgang PCINT1: Pinwechsel- Interrupt 0, Quelle 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: Serieller Takteingang USCK: USI-Uhr (Drei-Draht-Modus) SCL: USI Clock (Zweidrahtmodus) ADC1: ADC-Eingangskanal 1 T0: Taktquelle Timer / Zähler0 INT0: Externer Interrupt 0 Eingang PCINT2: Pinwechsel- Interrupt 0, Quelle 2 |
8 |
VCC |
Versorgungsspannungsstift |
Flashender Bootloader auf ATtiny85 mit Arduino Uno
Um den ATtiny85 ohne Arduino zu programmieren, müssten wir zuerst einen Bootloader mit einer Arduino UNO- Karte in ihn hochladen. Dies ist ein einmaliger Vorgang. Danach benötigen wir die UNO- Karte nicht mehr. Der Bootloader ist ein spezielles Programm, das auf dem zu programmierenden Mikrocontroller ausgeführt wird. Eine der bequemsten Möglichkeiten, Ihre Programmdaten auf den Mikrocontroller zu laden, ist ein Bootloader. Der Bootloader befindet sich auf der MCU, führt die eingehenden Anweisungen aus und schreibt dann neue Programminformationen in den Speicher des Mikrocontrollers. Durch das Flashen eines Bootloaders auf einem Mikrocontroller ist keine spezielle externe Hardware (Programmer Boards) zum Programmieren des Mikrocontrollers erforderlich, und Sie können ihn direkt über eine USB-Verbindung programmieren. Der Digispark ATtiny85Auf dem Board läuft der Bootloader „micronucleus tiny85“, der ursprünglich von Bluebie geschrieben wurde. Der Bootloader ist der Code, der auf Digispark vorprogrammiert ist und es ihm ermöglicht, als USB-Gerät zu fungieren, damit er von der Arduino IDE programmiert werden kann. Wir werden auch den gleichen Digispark Attiny85 Bootloader auf ATtiny85 flashen.
Eine schrittweise Anleitung zum Flash-Bootloader auf ATtiny85 mit Arduino Uno und Arduino IDE finden Sie unten:
Schritt 1: Konfigurieren von Arduino Uno als ISP:
Da der ATtiny85 nur ein Mikrocontroller ist, muss ein ISP (In-System Programming) programmiert werden. Um das ATtiny85 zu programmieren, müssen wir zuerst Arduino Uno als ISP konfigurieren, um als Programmierer für das ATtiny85 zu fungieren. Verbinden Sie dazu das Arduino Uno mit dem Laptop und öffnen Sie die Arduino IDE. Navigieren Sie danach zu Datei> Beispiel> ArduinoISP und laden Sie den Arduino ISP-Code hoch .
Schritt 2: Schaltplan für den blinkenden Bootloader auf ATtiny85:
Das vollständige Schema für Flashing Boot-Loader auf ATtiny85 ist unten angegeben:
Ein 10-µf-Kondensator ist zwischen dem Reset- und dem GND-Pin von Arduino angeschlossen. Die vollständigen Anschlüsse sind in der folgenden Tabelle aufgeführt:
ATtiny85 Pin |
Arduino Uno Pin |
Vcc |
5V |
GND |
GND |
Pin 2 |
13 |
Pin 1 |
12 |
Pin 0 |
11 |
Zurücksetzen |
10 |
Schließen Sie nun das Arduino Uno an den Laptop an und öffnen Sie die Arduino IDE. Finden Sie heraus, mit welchem COM-Port das Uno verbunden ist. In meinem Fall ist es COM5.
Laden Sie anschließend die ATtiny85-Bootloader-Dateien über den angegebenen Link herunter. Öffnen Sie " Burn_AT85_bootloader.bat " und ändern Sie die COM-Portnummer "PCOM5" mit der COM-Portnummer, mit der Ihr Uno verbunden ist. Speichern Sie die Änderungen vor dem Beenden.
Verschieben Sie nun die bearbeiteten Dateien " Burn_AT85_bootloader.bat " und " ATtiny85.hex " in den Arduino IDE-Stammordner (C: \ Programme (x86) Arduino).
Klicken Sie danach mit der rechten Maustaste auf " Burn_AT85_bootloader.bat " und wählen Sie "Als Administrator ausführen ". Das Flashen des Bootloaders dauert ca. 5 bis 6 Sekunden. Wenn alles gut gegangen ist, sollten Sie die Meldung "AVRdude erledigt. Danke. Drücken Sie eine beliebige Taste, um fortzufahren…" erhalten.
Damit ist der Bootloader erfolgreich auf dem ATtiny85-Chip installiert. Jetzt ist es Zeit, USB mit ATtiny85 zu verbinden, damit wir es direkt programmieren können. Der Schaltplan für die Programmierung von ATtiny85 über USB ist unten angegeben:
Schaltplan für ATtiny Programmer
Der Schaltplan stammt aus dem Digispark ATtiny85-Schaltplan. Da wir jedoch einen Programmierer für ATtiny85 erstellen möchten, verbinden wir nur den USB-Stecker mit ATtiny85.
Der R3 ist ein Pull-up-Widerstand, der zwischen den Vcc- und PB3-Pins des IC angeschlossen ist, während die Zenerdioden (D1-D2) für einen vollständigen Schutz der USB-Schnittstelle hinzugefügt werden. Nach dem Löten aller Komponenten auf der Perf-Platine sieht es ungefähr so aus:
Digispark-Treiber installieren
Um den ATtiny85 über USB zu programmieren, müssen Digispark-Treiber auf Ihrem Laptop installiert sein. Wenn Sie diese nicht haben, können Sie sie über den oben angegebenen Link herunterladen. Extrahieren Sie dann die Zip-Datei und doppelklicken Sie auf die Anwendung " DPinst64.exe ", um die Treiber zu installieren.
Sobald die Treiber erfolgreich installiert wurden, schließen Sie Ihr ATtiny85-Board an den Laptop an. Gehen Sie nun unter Windows zum Geräte-Manager und das ATtiny85-Gerät wird unter "libusb-win32-Geräte" als "Digispark Bootloader" aufgeführt. Wenn Sie im Geräte-Manager keine 'libusb-win32-Geräte' finden, gehen Sie zu Ansicht und klicken Sie auf 'Versteckte Geräte anzeigen'.
Einrichten der Arduino IDE zum Programmieren von ATttiny85
Um das ATtiny85-Board mit Arduino IDE zu programmieren, müssen wir zunächst die Digispark-Board-Unterstützung zu Arduino IDE hinzufügen. Gehen Sie dazu zu Datei> Einstellungen, fügen Sie den folgenden Link in die URLs des Additional Boards Manager ein und klicken Sie auf "OK".
Gehen Sie danach zu tools> Board> Board Manager, suchen Sie nach 'Digistump AVR' und installieren Sie die neueste Version.
Nach der Installation sehen Sie jetzt einen neuen Eintrag im Board-Menü mit dem Titel "Digispark".
Gehen Sie nun zu Datei> Beispiele> Grundlagen und öffnen Sie das Blink-Beispiel.
Ändern Sie dort die Pin-Nummer von LED_BUILTIN auf 0.
Gehen Sie nun zurück zu Extras -> Karte und wählen Sie die Karte „ Digispark (Standard - 16 MHz) “. Klicken Sie dann in der Arduino IDE auf die Schaltfläche zum Hochladen.
Hinweis: Schließen Sie die ATtiny85-Karte nur dann an den Computer an, wenn auf der Arduino IDE die Meldung "Plugin-Gerät jetzt" angezeigt wird.
Sobald der Code hochgeladen ist, sollte die an ATtiny85 angeschlossene LED zu blinken beginnen.
Auf diese Weise können Sie Ihre eigene ATtiny85 Arduino-Programmierkarte erstellen. Ein Arbeitsvideo davon ist unten angegeben. Wenn Sie Fragen haben, lassen Sie diese im Kommentarbereich. Bei weiteren technischen Fragen können Sie auch eine Diskussion in unseren Foren beginnen.