Ich möchte alle sechs E / A-Pins eines ATtiny85 verwenden, dh auch den Reset-Pin als E / A-Pin verwenden. Ich habe jedoch festgestellt, dass ich den ATtiny nicht mehr mit einem programmieren kann, wenn ich den RESET-Pin deaktiviere ISP-Programmierer.
Ich fand jedoch heraus, dass es Bootloader für ATtiny gibt, die es mir, soweit ich weiß, ermöglichen, den ATtiny über USB zu programmieren, ohne den RESET-Pin zu benötigen.
Meine Frage ist : Wie brenne ich einen solchen Bootloader (wie zum Beispiel einen Mikronukleus ) auf den ATtiny85? Und wie muss ich den ATtiny danach an USB anschließen ( so? )? Wie programmiere ich es danach? Denken Sie daran, dass ich in Bezug auf das Brennen von Bootloadern und das Ändern von Sicherungen ein absoluter Neuling bin.
Außerdem verwende ich die ArduinoISP-Skizze als meinen ISP-Programmierer, da ich keinen echten ISP-Programmierer habe, aber soweit ich das lese, ist das kein Problem.
EDIT: Ich habe dieses Ding, das ich für ein paar Dollar bei eBay gekauft habe, und ich weiß nicht, wie und ob ich es verwenden muss:
quelle
Antworten:
Ich habe gerade mein Arduino-Plugin mit der vollständigen Integration von TinySafeBoot (TSB) für ATtiny84A, ATtiny85 und ATmega328P fertiggestellt.
Das Projekt finden Sie hier:
https://mesom.de/atflash/index_english.html https://mesom.de/atflash/tinysafeboot/index_english.html
Sie können es so verwenden, wie es jetzt ist, und dann den Reset-Pin als Analogeingang verwenden. Achten Sie nur darauf, dass die Spannung niemals unterschreitet
0.6 * VCC
.Alternativ können Sie die Sicherungen so ändern
boards.txt
, dass dieser Pin verfügbar ist:Gehen Sie zu den Arduino-Einstellungen und klicken Sie auf den Link zu
preferences.txt
(Mine :)/Users/stefan/Library/Arduino15/preferences.txt
. Navigieren Sie in diesem Ordner zu/packages/atflash/hardware/avr/0.1.0
. Öffnen Sie dieboards.txt
und gehen Sie zum AbschnittATTSB85.name=ATtiny85 (TSB)(Int. 8 MHz)
Ändern Sie die Zeile
ATTSB85.bootloader.high_fuses=0xdf
in
ATTSB85.bootloader.high_fuses=0x5f
Starten Sie Arduino neu und brennen Sie den Bootloader über das Arduino-Menü.
Wenn Sie auch dann noch einen Pin von ATtiny85 erhalten möchten: Sie können den Bootloader so ändern, dass nur ein Pin für RX und TX verwendet wird (siehe TSB-Website). Aber warum all die Mühe? Nehmen Sie einfach den ATtiny84A. Es hat 14 statt 8 Pins und kostet fast das gleiche.
Stefan
quelle
quelle
Richtig, wenn Sie den Reset-Pin als
E / A verwenden,benötigen Sieeinen speziellen Programmierer, von dem ich glaube, dass er Hochspannung (12 V, wenn ich mich erinnere) oder ähnliches liefertUm eine 12-V-Quelle an diesen Pin anzulegen, um ihn in den Programmiermodus zu zwingen, programmieren Sie mit einem normalen Programmierer (oder einem anderen Arduino). Was Sie jedoch suchen, ist so etwas wie das, was im Arduino gemacht wird. Das Arduino wird mit einem speziellen Bootloader über den ISP programmiert. Wenn Sie also den Mikrocontroller mit Strom versorgen, wird dieser Bootloader zuerst ausgeführt und überprüft einige Millisekunden lang die UART-Pins auf Aktivitäten. Wenn er etwas Gültiges sieht, wechselt er in den Programmiermodus, wo er auf den neuen Code wartet Um über UART (nicht ISP) zu kommen und dies in den Programmspeicherort zu schreiben, übergibt der Bootloader die Codeausführung einfach an das vorhandene Programm, falls vorhanden.Hier ist eine einfache Erklärung der Funktionsweise: Angenommen, die Flash-Größe Ihres Mikrocontrollers beträgt 1 KB und der Bootloader 100 KB, sodass Ihr Programm an Position 101B + gespeichert werden kann und seine maximale Größe (1 KB-100B) beträgt. Wenn der Bootloader startet und keine Aktivität an den UART-Pins vorhanden ist, springt er zum Speicherort Ihres Programms (bei 101B). Wenn Programmieraktivität erkannt wird, beginnt er mit dem Lesen des neuen Codes und überschreibt den Flash ab 101B (also hat er gewonnen). t sich selbst überschreiben).
Und Sie benötigen den USBASP, um den Bootloader zum ersten Mal zu programmieren. Und Sie programmieren den ATtiny85 nicht über USB, da dieser Chip USB nicht unterstützt. Sie verwenden jedoch einen USB-zu-Seriell-Chip / Modul, der das serielle Protokoll über USB emuliert. Einige atmel-Mikrocontroller verfügen über eine integrierte serielle Unterstützung, andere können durch Softwareemulation erfolgen.
quelle
es ist unendlich besser als dein arduinoisp.
google avrdude / avrdudess.
quelle