Inhaltsverzeichnis:

VUSBTiny AVR SPI-Programmierer - Gunook
VUSBTiny AVR SPI-Programmierer - Gunook

Video: VUSBTiny AVR SPI-Programmierer - Gunook

Video: VUSBTiny AVR SPI-Programmierer - Gunook
Video: FlyCam AVR ISP Programmer v2.0 2024, November
Anonim
VUSBTiny AVR SPI-Programmierer
VUSBTiny AVR SPI-Programmierer

Nachdem ich einen usbtiny-ISP-Programmierer erstellt und 6 Monate lang verwendet hatte, überlegte ich, einen anderen zum Mitnehmen zu erstellen. ich mag die Einfachheit des usbtiny isp-designs, möchte es aber noch kleiner machen und weniger teile nehmen. Eine Sache im ursprünglichen Design, die ich ändern möchte, ist, die Verwendung von Uhrenquarz zu eliminieren. Eine Lösung, die ich gefunden habe, ist, dass V-USB-Treiber den internen 16,5-MHz-Oszillator auf attiny25/45/85-Geräten unterstützen. also beginne ich dieses projekt, um usbtiny isp verwendet v-usb für die usb-kommunikation. Der unmittelbare Vorteil ist, dass es Platz spart und weniger Komponenten benötigt (keine Kristalle mehr). usbtiny description from https://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny ist eine Softwareimplementierung des USB-Low-Speed Protokoll für die Atmel ATtiny Mikrocontroller. Natürlich wird es auch bei der ATmega-Serie funktionieren. Die Software ist für einen mit 12 MHz getakteten AVR geschrieben. Bei dieser Frequenz benötigt jedes Bit auf dem USB-Bus 8 Taktzyklen, und mit viel Tricks ist es möglich, die USB-Wellenformen per Software zu dekodieren und zu kodieren. Der USB-Treiber benötigt je nach Konfiguration und Compilerversion ca. 1250 bis 1350 Byte Flash-Speicher (ohne die optionalen Identifikationsstrings) und 46 Byte RAM (ohne Stack-Speicher). Die C-Schnittstelle besteht aus 3 bis 5 Funktionen, je nach Konfiguration.vusb Beschreibung von https://www.obdev.at/products/vusb/ V-USB ist eine reine Software-Implementierung eines Low-Speed-USB-Gerätes für Atmels AVR-Mikrocontroller, die es ermöglichen, USB-Hardware mit fast jedem AVR-Mikrocontroller zu bauen, ohne dass ein zusätzlicher Chip erforderlich ist. Video zu Konstruktion und Verwendung

Schritt 1: Funktionen und Teile

Funktionen und Teile
Funktionen und Teile

* Programmierlogik von usbtiny isp, ausgereifte avr-dude-Unterstützung * kleiner Platzbedarf * minimale Komponenten * Stromversorgung des Zielgeräts Beachten Sie, dass die io-Leitungen zum Ziel-Mcus nicht geschützt sind. Sie können SCK und MOSI 1k-2k-Widerstände hinzufügen und gegen mögliche falsche Verbindungen schützen. nl/~dicks/avr/usbtiny/parts list * attiny45/85 (85 ist einfacher zu bekommen) * 3,6 V Zenerdioden (1n747, BZX79,.. 1W-Typen vermeiden) * 68 Ohm Widerstand x 2 * 1,5 K Widerstand * Mini-Steckbrett 170 Verbindungspunkte * USB-Kabel (USB-Druckerkabel für Dollarshop ist in Ordnung) * 1k / 2k-Widerstände für den Schutz von IO-Leitungen (optional) Erforderliche Werkzeuge * ein funktionierender AVR-Programmierer (ja, es ist ein Catch22, wir brauchen einen, um einen zu machen) * funktionierende avr-Programmierumgebung

Schritt 2: Breadboard-Layout, Schaltplan und Konstruktion

Breadboard-Layout, Schaltplan und Konstruktion
Breadboard-Layout, Schaltplan und Konstruktion
Breadboard-Layout, Schaltplan und Konstruktion
Breadboard-Layout, Schaltplan und Konstruktion

Konstruktion

* Folgen Sie dem Steckbrett-Layout, es gibt nicht viele Komponenten, 3 Widerstände, 2 Dioden, 1 Kappe und einen 8-Pin-MCU. * Holen Sie sich ein Dollar-Shop-USB-Druckerkabel, das das Druckerende abschneidet, es werden 4 freiliegende Drähte vorhanden sein, sichern und zu einem 4-poligen Stecker machen, wir werden es verwenden, um eine Verbindung zum Steckbrett herzustellen. Layout und Pinbelegung entnehmen Sie bitte dem Schaltplan (J1). * Achten Sie auf die Polarität der Dioden.

Bauen und flashen des Projekts

das projekt wurde in einer linux-ubuntu-lucid-box mit avr-gcc-toolchain erstellt. Es wird davon ausgegangen, dass Sie bereits über eine solche Umgebung verfügen, oder Sie können im Internet herausfinden, wie Sie eine einrichten können. Quellcodes sind gnu gpl v2 aus Vererbung lizenziert.

der Quellcode einer von v-usb empfohlenen Konvention folgt, können Sie das Quellpaket vusbtiny.tgz herunterladen und in ein Projektverzeichnis entpacken. In Ihrem Quellverzeichnis gibt es eine main.c, die meine Version des modifizierten usbtiny-Programmierers ist. und ein usbdrv-Unterverzeichnis, das die v-usb-Schicht enthält. Bitte beachten Sie beim Bau die Lizenzbedingungen der beiden oben genannten Projekte. meine Quelle zur Programmierlogik basiert auf der Dick Streefland-Version und nicht auf der Ladyada-Version (obwohl sie fast gleich sind).

Für diejenigen, die keine Build-To-Chain haben, können Sie die folgende Binärdatei verwenden

Klicken Sie hier, um vusbtiny.hex herunterzuladen

und benutze avrdude, um Firmware zu flashen

avrdude -c usbtiny -p t45 -e -V -U flash:w:usbtiny.hex

(Wenn Ihr Gerät ein tiny85 ist, ersetzen Sie -p t45 mit -p t85)

Quelle kann hier heruntergeladen werden Klicken Sie hier, um vusbtiny.tgz herunterzuladen

entpacke das Quellpaket in dein Arbeitsverzeichnis

tar -zxvf vusbtiny.tgz

* tun Sie cd vsubtiny, um in das Arbeitsverzeichnis von vusbtiny zu wechseln. * Erstellen Sie ein Makefile für das Zielgerät entsprechend dem Chip, den Sie verwenden werden. d.h. PROGRAMMER_MCU=t45 oder t85 * mache ein Make * füge deinen bevorzugten ISP-Programmierer hinzu * modifiziere das Makefile und ändere deine avrdude-Parameter bei Bedarf. den Vorrat nimmt man USBTiny Programmierer an. d.h. AVRDUDE_PROGRAMMERID=usbtiny * Firmware über make install flashen

Nach dem Flashen der Firmware müssen wir die Sicherung richtig einstellen, wir verwenden Pin 1 Reset als io in diesem Projekt

* ppl-Takt wird wie von der v-usb-Schicht für das USB-Timing benötigt * Reset-Pin deaktiviert, da wir ihn als io verwenden müssen

avrdude -c usbtiny -p t45 -V -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xff:m

Diese Einstellung deaktiviert die weitere Programmierung über 5V SPI, da wir den RESET-Pin (Pin1) für io benötigen. Sie benötigen Zugriff auf einen HVSP-Programmierer, um die Sicherung wiederherzustellen.

Schritt 3: Nutzung und Anwendung

Nutzung und Anwendung
Nutzung und Anwendung
Nutzung und Anwendung
Nutzung und Anwendung
Nutzung und Anwendung
Nutzung und Anwendung

direktes Blinken auf Steckbrett

Wenn Sie vusbtiny verwenden, um 8-Pin-AVR-Geräte zu flashen, können Sie einfach Ihr Zielgerät auf das Programmiergerät drücken. Der Programmierer war so konzipiert, dass die Programmierstifte mit den Zielen übereinstimmen. Es gibt jedoch einen Trick, Sie müssen Pin 2 und 3 am Programmierer-MCU isolieren, da dies die USB D+ und D- Pins sind, die mit dem PC verbunden sind. Ich verwende dafür ein Stück Klebeband, das Sie auf den Fotos sehen können. unten zeigen ist ein tiny13v, das auf dem tiny45 "reitet", bereit, Firmware zu empfangen.

ISP blinkt über Jumper

Um eine Zielschaltung über ISP (In-System Programming) zu programmieren, benötigen Sie ein ISP-Kabel. Hier verwende ich nicht die Standard 2x3 oder 2x5 Stiftleisten. Stattdessen verwende ich einen 1x6-Jumper, der steckbrettfreundlicher ist. Sie können 2x3- oder 2x5-Stiftleisten erstellen, indem Sie sie J2 zuordnen, wie auf dem Steckbrett-Layout und den Schaltplänen gezeigt. Das folgende Foto zeigt einen tiny2313, der bereit ist, über ISP geflasht zu werden.

Fehlerbehebung

* kann die Firmware nicht flashen? Überprüfen Sie Ihren ursprünglichen Programmierer, müssen Sie möglicherweise das Timing über das Flag -B in avrdude anpassen. Versuchen Sie, den ersten Chip zu lesen, möglicherweise ist die Sicherung defekt, möglicherweise benötigt Ihr Chip ein externes Taktsignal. Möglicherweise müssen Sie Ihren Chip auf die Standardeinstellung zurücksetzen. * Verbindungen überprüfen * Wenn verschiedene IO-Pins verwendet werden, Code und Verbindungen überprüfen * Sie können Zenerdioden mit 500 mw, 400 mw-Typen ersetzen * Sie können versuchen, den R3-Wert auf 1,2 K oder weniger zu reduzieren * Sie werden eher auf Avrdude-Timing-Probleme stoßen, versuchen Sie es -B-Flagge von avrdude, ein kürzeres USB-Kabel haben alles hilft

Empfohlen: