tinyAVR0/1-Controller mit pymcuprog
Der ATTiny202/402
Wegen
der Chip-Knappheit hatte ich mein Interesse an diesen Controllern etwas
zurückgestellt. Aber die Krise ist jetzt überwunden, und die neuen
ATtiny-Controller mit UPDI sind jetzt sogar bei Reichelt zu bekommen.
Also wollte ich wieder neu einsteigen. Aber irgendwas hat sich in der
Zeit verändert, und meine alte Konfiguration wollte nicht mehr
funktionieren. In Verdacht hatte ich eine Versionsänderung von Python,
sodass pyupdi.py nicht mehr funktioniert. Wenn ich aber im Netz
danach suche, wird klar, dass pyupdi.py in dem neuen und erweiterten
Programm pymcuprog aufgegangen ist: https://pypi.org/project/pymcuprog/ Unter Windows wird es installiert, indem man in der Eingabeaufforderung pip install pymcuprog schreibt. Dabei erfährt man auch, wo das Verzeichnis landet.
Das eigentliche Programm liegt nun als .exe vor, muss also nicht
mehr mit Python gestartet werden. Pymcuprog.exe kann auch allein in ein
beliebiges Verzeichnis kopiert werden. Ein typischer Aufruf lautet:
pymcuprog write -f firmware.hex --erase --verify-d attiy202 -t uart -u
com4 Dazu kann man die Eingabeaufforderung
verwenden. Hier sieht man einen misslungenen Aufruf (USB-Kabel steckte
nicht) und einen gelungenen Programmiervorgang der Datei firmware.hex.
Eine sehr einfache Möglichkeit ist es, jedes weitere Hex-File wieder in
firmware.hex umzubenennen und den Aufruf in eine Batch-Datei zu
schreiben.
Die
Batchdatei enthält nur den bekannten Aufruf mit dem Dateinamen und der
COM-Nummer. Zusätzlich sorgt der pause-Befehl dafür, dass man alle
Meldungen in Ruhe lesen kann. Jetzt reicht ein Klick auf firmware_t202.bat
dafür, dass firmware.hex in den ATtins202 gebrannt wird.
Das
"Programmiergerät" besteht wieder nur aus einem USB/Seriell-Wandler und
einem Widerstand von 4,7 k zwischen RXD und TXD. Auf der Steckplatine
gibt es neben dem ATtiny202 auch einen ATtiny3216. Das UPDI-Kabel kann
abwechselnd an beide angesteckt werden. Die Stromversorgung kommt auch
vom USB.
Auch
der direkte Aufruf im AtmelStudio 7 ist wieder möglich. Hier sieht man
noch die älteren Versuche mit jtag2updi und mit pyupdi. Mit dem
Fenster External Tools wurde der neue Weg über pymcuprog202 erzeugt.
Die volle Arguments-Zeile lautet: write -f $(TargetDir)$(TargetName).hex --erase --verify -d attiny202 -t uart -u com4