Inhaltsverzeichnis:

ATTiny HV Programmierer - Gunook
ATTiny HV Programmierer - Gunook

Video: ATTiny HV Programmierer - Gunook

Video: ATTiny HV Programmierer - Gunook
Video: ATtiny Flasher ATtiny85 high voltage programming demo 2024, November
Anonim
ATTiny HV Programmierer
ATTiny HV Programmierer
ATTiny HV Programmierer
ATTiny HV Programmierer

Dieses anweisbare ist für ein ATTiny-Programmierdienstprogramm mit einem ESP8266 und einer browserbasierten Benutzeroberfläche. Es folgt einem früheren anweisbaren Sicherungseditor zum Lesen und Einstellen der Sicherungen, unterstützt jedoch jetzt das Löschen, Lesen und Schreiben der Flash- und EEPROM-Speicher.

Die Fuse-Unterstützung ermöglicht es, Änderungen an den von den 2 Fuse-Bytes gesteuerten Einstellungen sehr einfach vorzunehmen.

Der Speicher unterstützt das Sichern und Wiederherstellen des Inhalts von Flash und EEPROM. Es können auch neue Inhalte aus Hex-Dateien geschrieben werden. Dies macht das Wiederherstellen oder Schreiben neuer Micronucleus-Bootloader sehr einfach.

Das Gerät verfügt über die folgenden Funktionen.

  • Webserver, der das Lesen und Schreiben von Sicherungsdaten unterstützt, und eine Editorseite für einfachen Zugriff auf Sicherungsoptionen
  • Löschchip (benötigt vor dem Schreiben von neuem Material)
  • Lesen und Schreiben von Flash-Programmdaten aus Hex-Dateien
  • Lesen und Schreiben von EEPROM-Daten aus Hex-Dateien
  • Unterstützung für ATTiny 25, 45 und 85 Varianten
  • Stromversorgung über USB mit internem 12-V-Generator für Hochspannungsprogrammierung
  • WLAN-Netzwerkkonfiguration mit wifiManager Access PointBrowser-Zugriff auf das ESP8266 SPIFFS-Dateisystem zum Hoch- und Herunterladen von Dateien
  • OTA-Update der ESP8266-Firmware

Schritt 1: Komponenten und Werkzeuge

Komponenten

  • ESP-12F-Modul
  • 5V auf 12V Boost-Modul
  • Micro-USB-Buchse mit lötbarem Stecker
  • 220uF Tantalkondensator
  • xc6203 3.3V LDO-Regler
  • MOSFET-Transistoren 3x n-Kanal AO3400 1 x p-Kanal AO3401
  • Widerstände 2 x 4k7 1x 100k 1x 1K 1x470R 1x 1R27
  • Stiftleistenblock
  • Kleines Stück Steckbrett für Unterstützungsschaltungen
  • WireEnclosure anschließen (ich habe eine 3D-gedruckte Box bei https://www.thingiverse.com/thing:4208709) verwendet

Werkzeuge

  • Lötkolben mit feiner Spitze
  • Pinzette
  • Kabelschneider

Schritt 2: Elektronik

Elektronik
Elektronik

Das Schema zeigt, dass die gesamte Stromversorgung über eine 5-V-USB-Verbindung erfolgt. Ein Regler versorgt das ESP-12F-Modul mit 3,3 V. Ein kleines Boost-Modul erzeugt die 12V, die für die Hochspannungsprogrammierung benötigt werden.

Der ESP GPIO gibt die 4 Logiksignale aus, die bei der Hochspannungsprogrammierung verwendet werden (Takt, Dateneingang, Datenausgang und Befehlseingang).

Ein GPIO wird verwendet, um einen MOSFET-Transistor ein- und auszuschalten, der über einen 1K-Widerstand von der 12-V-Schiene gespeist wird. Wenn der GPIO hoch ist, ist der tMOSFET eingeschaltet und sein Drain liegt bei 0 V. Wenn der GPIO niedrig eingestellt ist, steigt der Drain auf 12 V, die zum Einstellen des Hochspannungsprogrammiermodus erforderlich sind. Ein zweiter GPIO kann verwendet werden, um die 12V-Hochspannung auf 4V zu senken, damit sie als konventionelles Reset-Signal verwendet werden kann. Diese Einrichtung ist derzeit ungenutzt, könnte aber eher zur Unterstützung der SPI-Programmierung als der Hochspannungsprogrammierung verwendet werden.

Ein GPIO wird verwendet, um einen 2-Stufen-MOSFET-Treiber für die 5-V-Versorgung des ATTiny ein- und auszuschalten. Diese Anordnung wird verwendet, um die Spezifikation zu erfüllen, dass die 5V beim Einschalten eine schnelle Anstiegszeit haben. Dies wird nicht erreicht, wenn die Versorgung direkt von einem GPIO aus gesteuert wird, insbesondere wenn der 4u7-Entkopplungskondensator auf den meisten ATTiny-Modulen vorhanden ist. Ein Widerstand mit niedrigem Wert wird verwendet, um die Stromspitze zu dämpfen, die durch das schnelle Einschalten der MOSFET-Transistoren verursacht wird. Es ist möglicherweise nicht erforderlich, wird aber hier verwendet, um Störungen zu vermeiden, die durch diese Einschaltspitze verursacht werden könnten.

Beachten Sie, dass sich der Schaltplan etwas von der vorherigen Version des Sicherungseditors unterscheidet. Die GPIO-Pins werden neu zugewiesen, um die SPI-Programmierung zu ermöglichen, obwohl die Software dies derzeit nicht verwendet. Die Pins, die Signale vom ATTiny lesen, haben einen zusätzlichen Schutz für die verwendeten 5V-Signale.

Schritt 3: Montage

Montage
Montage
Montage
Montage

Das Bild zeigt die zu einem kleinen Gehäuse zusammengebauten Komponenten. Ein kleines Steckbrett sitzt oben auf dem ESP-12F-Modul und enthält den 3,3-V-Regler und die 2 Spannungstreiberkreise.

Das 12-V-Boost-Modul befindet sich auf der linken Seite und wird über den USB mit Strom versorgt. Das Gehäuse verfügt über einen Steckplatz für den 7-poligen Header-Block, um Verbindungen zum ATTiny zu ermöglichen. Nach dem Verdrahten und Testen werden der USB- und Headerblock mit Harzkleber am Gehäuse befestigt.

Aus dem Bild kann ein Etikett gedruckt werden, das auf die Box geklebt wird, um das Anschließen der Signale zu erleichtern.

Schritt 4: Software und Installation

Die Software für den Programmierer ist in einer Arduino-Skizze ATTinyHVProgrammer.ino verfügbar unter

Es verwendet eine Bibliothek mit grundlegenden Webfunktionen, Unterstützung für die WLAN-Einrichtung, OTA-Updates und browserbasiertem Zugriff auf das Dateisystem. Dies ist verfügbar unter

Die Konfiguration der Software befindet sich in einer Header-Datei BaseConfig.h. Die 2 Elemente, die hier geändert werden müssen, sind Passwörter für den WLAN-Zugangspunkt und ein Passwort für OTA-Updates.

Kompilieren und von einer Arduino-IDE auf den ESP8266 hochladen. Die IDE-Konfiguration sollte eine SPIFFS-Partition zulassen, z. B. die Verwendung von 2M/2M ermöglicht OTA und ein großes Dateisystem. Weitere Updates können dann über OTA. durchgeführt werden

Bei der ersten Ausführung weiß das Modul nicht, wie es sich mit dem lokalen WLAN verbindet, und richtet daher ein Konfigurations-AP-Netzwerk ein. Verwenden Sie ein Telefon oder Tablet, um eine Verbindung zu diesem Netzwerk herzustellen, und navigieren Sie dann zu 192.168.4.1. Ein Bildschirm zur WLAN-Konfiguration wird angezeigt und Sie sollten das entsprechende Netzwerk auswählen und sein Passwort eingeben. Das Modul startet neu und verbindet sich von nun an mit diesem Passwort. Wenn Sie zu einem anderen Netzwerk wechseln oder das Netzwerkpasswort ändern, wird der AP wieder aktiviert, befolgen Sie also das gleiche Verfahren. Wenn Sie die Hauptsoftware aufrufen, nachdem Sie sich mit dem WLAN verbunden haben, laden Sie die Dateien in den Datenordner hoch, indem Sie zu den Modulen ip/upload navigieren. Damit kann eine Datei hochgeladen werden. Nachdem alle Dateien hochgeladen wurden, kann der weitere Zugriff auf das Dateisystem über ip/edit erfolgen. Wenn auf die IP/ zugegriffen wird, wird die index.htm verwendet und der Hauptbildschirm des Programmierers angezeigt. Auf diese Weise können Fuse-Daten angezeigt, bearbeitet und geschrieben, der Chip gelöscht und Flashh und EEPROM-Speicher gelesen und geschrieben werden.

Es gibt eine Reihe von Webaufrufen, um dies zu erreichen

  • ip/readFuses erhält aktuelle Sicherungsdaten
  • ip/writeFuses schreibt neue Sicherungsdaten
  • ip/erasechip.löscht den Chip
  • ip/dataOp unterstützt Lese- und Schreibspeicherfunktionen es liefert die folgenden Parameter

    • dataOp (0=lesen, 1=schreiben)
    • dataFile (Name der Hex-Datei)
    • eeprom (0= Flash, 1 = eeprom)
    • Ausführung (0= 25, 1=45, 2=85)

zusätzlich kann im Sketch vor dem Kompilieren ein AP_AUTHID Parameter definiert werden. Wenn es definiert ist, muss es auf der Webseite eingegeben werden, um Operationen zu ermöglichen.

ip/edit ermöglicht den Zugriff auf die Dateien; ip/firmware ermöglicht den Zugriff auf OTA-Updates.

Das Hex-Dateiformat ist Intel-Style-Datensätze, die mit denen von Arduino IDE kompatibel sind. Wenn ein Startadressdatensatz vorhanden ist, wird das Einfügen eines RJMP-Befehls an der Stelle 0 ausgelöst. Dies ermöglicht es, Mikronukleus-Bootloader-Dateien in einen gelöschten Chip zu programmieren und zu funktionieren. Der Einfachheit halber können auch einfache Hex-Dateien, die aus einer 4-stelligen Hex-Adresse gefolgt von 16 Hex-Datenbytes bestehen, gelesen und verwendet werden.

Empfohlen: