Hallo,
ich möchte mir eine Platine bauen die als UPDI Programmer dient. So der
aktuelle Plan.
Bestehend aus FT232RL und ATmega328P.
Auf den ATmega wollte ich das Programm von "El Tangas" flashen.
https://github.com/ElTangas/jtag2updi
Damit möchte ich später aus Atmel Studio 7 heraus die neuen UPDI µC
programmieren. Ich möchte es zumindestens probieren. :-)
Jetzt tun sich im Vorfeld paar Fragen auf.
Als was wird der "El Tangas" Programmer in AS7 erkannt?
Irgendwie muss der mit einem Treiber zusammenarbeiten, sonst geht das
sicherlich nicht.
Anders gefragt. Was muss man noch alles beachten bzw. ändern damit das
dann alles funktioniert?
Eine Alternative wäre sich ein ATtiny416 Xplained Nano zu kaufen.
Muss ich hier zwischen dem mEDBG Chip und dem ATtiny alle Verbindungen
kappen?
Wie funktioniert die µC Erkennung?
Meldet sich der µC der dann gerade per UPDI angeklemmt ist?
Aktuell habe ich nur einen AVRISP mkII für meine ATmegas und ATtiny ohne
UPDI.
Willst du basteln oder Geld sparen?
Falls ersteres: versuch es. Ob es klappen kann kann ich nicht
einschätzen.
Falls es ums Geld geht: bei Microchip direct gibts immer wieder mal
Aktionen, ich meine ich hätte für den AT ATMEL-ICE full kit 50€ bezahlt.
Und finde den ziemlich gut.
Hallo,
eigentlich wollte ich basteln, auch wenn es länger dauert. Habe jetzt
mitbekommen das man die avrdude.conf anpassen muss. Vermutlich taucht
dann in AS ein Programmer names "jtag2updi" auf. Und dann muss man wohl
fehlende µC nachtragen falls einer noch nicht drin steht. Das muss man
demnach aktuell halten. Hat "El Tangas" aktuell gemacht. In meiner
avrdude.conf stehen jedenfalls keine aktuellen "UPDI µC" drin. Gefällt
mir schon nicht so sehr wenn man dabei auf fremde Leute angewiesen ist
die das jetzt machen und später vielleicht nicht mehr.
50,- Euro für ein Full-Kit wäre ein Schnäppchen. Das würde ich mir
gönnen. Wie bekommt man das mit?
Jede Woche vorbeischauen, oder?
Mich drängelt nichts.
Hallo,
habe mal etwas recherchiert. Die 50% Rabattaktion auf den Atmel-Ice war
vor über einem Jahr. Februar 2018. Könnte eine einmalige Aktion gewesen
sein. Glaube nicht das die das wiederholen. Werde wohl doch basteln
müssen.
Hallo,
wie muss man das Pythonscript verwenden? Geht das aus AS heraus oder
muss man dafür immer in die Konsole wechseln?
Wie würde sich die Hardwarelösung verhalten?
Taucht hier ein auswählbarer Programmer in AS auf?
Für mein Verständnis wäre es schön wenn meine obigen Fragen beantwortet
werden könnten. Dann kann ich besser entscheiden was mehr Sinn macht.
> Geht das aus AS heraus oder
keine Ahnung. Das verwende ich nicht.
> muss man dafür immer in die Konsole wechseln?> Wie würde sich die Hardwarelösung verhalten?
Verstehe ich nicht. UPDI ist eine halbduplex serielle Verbindung zu
einem dedizierten Pin (updi/reset).
> Taucht hier ein auswählbarer Programmer in AS auf?
s.o.
Der Programmer läuft anscheinend auf dem Raspi oder an einer seriellen
PC-Schnittstelle und erwartet ein "Intel HEX file to flash" wie im
Programmtext steht. Ich sehe keine Emulation irgendeines bekannten
Programmers im Text
https://github.com/mraardvark/pyupdi/blob/master/pyupdi.py
Hallo,
ihr beide redet vom pyupdi.py Script. Mir ist jetzt klar das man dazu
immer die Konsole verwenden muss. Soweit okay.
Am Anfang habe ich von der Hardwarelösung geredet. Also mit
programmierten ATmega328P. Davor muss auch ein USB-Serial-Wandler. Hier
ist meine Frage wie verhält der sich Softwaremäßig? Taucht hier ein
auswählbarer Programmer in AS auf? Der muss laut meinem Verständnis
irgendwas emulieren.
Was ich eigentlich nicht möchte oder vermeiden wollte ist, in AS
programmieren und zum flashen in die Konsole wechseln. Ist mir auf Dauer
zu umständlich und Fehleranfällig.
Hallo,
wenn mein Problem mit AS7 geklärt ist kann ich hier weitermachen. Vorher
macht das keinen Sinn. Eine kurze Recherche zum PICkit4 ergab jedoch
nichts Eindeutiges. Es ist nicht bekannt oder nicht sicher das es mit
den neuen µC mit UPDI funktioniert.
Veit D. schrieb:> Es ist nicht bekannt oder nicht sicher das es mit> den neuen µC mit UPDI funktioniert.
Wenn du den verlinkten Thread gelesen hättest, wüsstest du, was ich dazu
geschrieben habe.
Hab auch schon mal nachgedacht, mir so was zu bauen. Der Eigenbau hätte
für mich den Vorteil: Ich könnte den Progger direkt mit nem
Bluetooth-Modul ausstatten und hätte kein Kabel mehr (ist unpraktisch,
wenn die Zielschaltung fahren kann).
Wenn ich das so richtig verstehe, kommuniziert der verlinkte Quellcode
mit AVRDude. Das Programm wiederum beinhaltet CommandLine-Optionen, also
müsste man im AS7 wohl etwas für das AVRDude in die PostBuild-Events
eintragen?!?
Hallo,
Sorry, hatte ihn überflogen, jetzt deine Antwort darin richtig gelesen.
Okay Danke. Hatte jedoch auf der Microchipseite zum Teil die
Beschreibung gelesen, dort steht dazu nichts drin. Ich habe auch wie
gesagt z.Z. andere Sorgen mit AS. Das Problem hier ist nachgelagert.
Vielleicht kannst du mir helfen wie ich AS7 mit aktuellen avr-gcc-9.1
überredet bekomme C++ für die neuen µC kompilieren zu können?
Veit D. schrieb:> Vielleicht kannst du mir helfen wie ich AS7 mit aktuellen avr-gcc-9.1> überredet bekomme C++ für die neuen µC kompilieren zu können?
Leider keine Ahnung. Ich verwende C, damit gibt es (fast) keine
Probleme, außer aktuell dem Problem, dass der Linker manchmal mit
Fehlermeldung aussteigt. Lösung ist da, die Optimierungs-Optionen zu
ändern. Wenn man dann den Code weiter entwickelt und der Linker wieder
aussteigt, einfach andere Optionen, dann mag er wieder. Das wird dir
aber vermutlich nicht helfen.
Zum Programmer: es soll bei Microchip eine Liste geben, welche Devices
offiziell unterstützt werden und welche noch Beta sind. Danach habe ich
aber noch nicht gesucht.
Was nicht geht ist die Kommandozeilenoption in Atmel Studio. Wobei das
angeblich funktionieren soll.
Project -> Properties -> Tool -> select Custom Programming Tool
'Command'
Mit F5 erhalte ich eine Infomeldung das es mit Debugging nicht
funktioniert.
Wähle ich Debug -> Start without Debugging kompiliert es überträgt aber
nicht.
Was mache ich falsch?
Hallo,
ich habe nun einen ATmega328PB mit dem jtag2updi Code geflasht. Ich habe
in der main.cpp F_CPU 8MHz eingetragen und in der sys.cpp alles rumd um
das PRR Register korrigiert. Testweise auch das zweite PRR1 Register
hinzugefügt. Kompiliert fehlerfrei. Dann alles nach Schaltplan
angeklemmt. https://github.com/ElTangas/jtag2updi
Aber avrdude scheitert schon am ersten Test mit der Meldung
> jtagmkII_getsync(): sign-on command: status -1
USB Serial Adapter ist ein Profilic.
Kommando lautet
> avrdude -c jtag2updi -P com5 -p m328pb
Klemme ich meinen mkII an reagiert avrdude wie es soll.
> avrdude -c avrispmkII -p m328pb -v
Ich weiß mittlerweile das der "µC updi Adapter" überflüssig ist, weil
auch damit muss man die Kommansozeile bemühen. Das mit Python ist schon
komfortabler und einfacher. Ich wollte es aber wenigstens probieren,
wenn möglich erfolgreich.
Gibt es jemanden der mit Tipps gegen könnte?
H.Joachim S. schrieb:> Falls es ums Geld geht: bei Microchip direct gibts immer wieder mal> Aktionen, ich meine ich hätte für den AT ATMEL-ICE full kit 50€ bezahlt.> Und finde den ziemlich gut.
Mittlerweile gibt es von Microchip den MPLAB Snap
(,https://www.microchipdirect.com/product/search/all/PG164100) der
kostet ca. 13€ und kann neben anderen Protokollen auch UPDI. Nachteilig
ist dass der nicht Atmel Studio unterstützt, sondern das neue MPLAB X
(von Microchip) braucht, und teilweise werden scheinbar noch nicht alle
AVRs unterstützt...
Außerdem dürfte der ähnlichen Probleme haben wie der PICKit 4 (das ist
quasi der kleine Bruder davon).
Hallo,
jetzt klappt das mit Python auch in Atmel Studio unter Custom
Programming Tool. Man muss auch dort den Pfad zum .hex explizit angeben.
Findet er nicht alleine, was ich fälschlicherweise annahm.
Bsp.
Bedeutet die Kommandozeile ist immer gleich egal wo man die eingibt. Ob
Terminal, in einer .bat oder in dem "AS Customfenster". Damit kann man
nun auch aus AS heraus fast wie gewohnt flashen.
Damit hat sich das mit dem µC als Programmer nun auch erledigt.
Vielleicht helfen die Zeilen der Nachwelt. :-)
Hallo,
ich hätte da noch eine Frage zum UDPI flashen. Kann es sein das mit den
"billig" Methoden keine echte Überprüfung des Flashvorgangs stattfindet?
Ich sehe im Datenlogger keinen separaten Schreibvorgang und
nachfolgenden Lesevorgang. Die Schreibdaten gelangen 1:1 vom Tx zum Rx
Pin und zurück. Bei der Pythonmethode mittels Widerstand kann das nur so
sein.
Wie das beim "El Tangas µC" ist weiß ich nicht.
Macht ihr euch darüber keine Sorgen? Ich meine auch ein
Hobbyprogrammierer möchte nicht einen kaputten µC flashen und bekommt es
nicht mit und wundert sich erstmal das der µC nicht das macht was er
soll.
Die Programmer wie ICE lesen doch bestimmt nach dem schreiben beim UDPI?
Macht ja mein AVRmkII auch für ISP.
Falls es doch mehr ums programmieren als ums basteln geht: ich verwende
dieses Board mit dem 817 (unter 10 Euro), einfach den UDPI-Pin
durchgetrennt und zum eigenen Projekt geleitet:
https://www.elektormagazine.de/news/review-attiny817-xplained-mini
Wenn man dann noch dem Atmel Studio sagt dass es alle Boards zur Auswahl
anzeigen soll kann man damit auch anderes als den 817 über UDPI
programmieren.
Hallo,
Sascha, falls du auf den MPLAB® Snap In-Circuit Debugger/Programmer
abzielst, der soll leider nicht in Atmel Studio funktionieren.
Lutz, klingt gut. Kann man zwischen 3,3V und 5V für den Ziel µC
umschalten? Theoretisch müßte das demzufolge mit meinem "ATmega4809
Curiosity Nano" auch funktionieren. Wo genau schaltest du in AS die
Auswahl frei? Oder meinst du in den Projekteigenschaften die
Device-Auswahl?
@Veit: Habe bisher mit dem Board nur mit 5 Volt gearbeit, über den
Jumper J100 kann man es wohl aber auch auf 3,3 Volt für das Target
umstellen. (Punkt 4.1 in dem PDF)
http://ww1.microchip.com/downloads/en/DeviceDoc/50002657A.pdf
Im Atmel Studio lässt sich die Auswahlmöglichkeit anderer Controller
über 'Tools' 'Options' 'Tools' 'Tool Settings' 'Hide unsupported
devices' = False einstellen.
Danach habe ich eine Weile gesucht, aber dann klappte es. Habe bisher
damit den 1614 und den 3217 programmiert und auch debuggt. Und Rx/Tx
über den virtuellen seriellen Port hat man auch zur Verfügung.
Mit weniger Aufwand geht es wohl kaum.
Hallo,
kurz vorm bestellen packte mich nochmal der Ergeiz den "El Tangas"
jtag2updi Programmer zum laufen zubekommen. Was heute auch
funktionierte. Da ich weiß das er ein Verify macht konnte ich die
Datenübertragung (Datalogger) mit der vom pyupdi vergleichen und kann
sagen, auch der pyupdi macht ein Verify. Frage ist damit selbst
beantwortet.
Der jtag2updi hat den Vorteil er ist avrdude kompatibel und man muss
kein Python installieren welches man ansonsten nie benötigt.
Das soll jetzt Lutz Tipp mit dem ATtiny817 Xplained Mini nicht
schmälern.
Jetzt hat man die Qual der Wahl.
Alles wird gut. :-)
Veit D. schrieb:> Das soll jetzt Lutz Tipp mit dem ATtiny817 Xplained Mini nicht> schmälern.
Da bin ich überhaupt nicht empfindlich, viele Wege führen nach Rom.
Ich lese immer interessiert mit wie andere ein Problem lösen.
Hab'scha Glück gehabt. :-)
Deswegen verrate ich dir noch eine Kleinigkeit, vielleicht kann man das
einmal gebrauchen. Die Ellenlangenpfade kann man abkürzen und den
Eintrag in "Custom Programming Tool" benötigt man auch nicht mehr. Darin
habe ich die abgekürzten Pfade nicht zum laufen bekommen.
Man kann sich in AS unter > Tools > External Tools...
mehrere Einträge anlegen. Ich habe mir zum rumspielen 2 angelegt.
avrdude und python kann man noch in die Systemumgebungsvariable
eintragen.
Ich denke damit ist das Thema erstmal erschöpfend ausgereizt.
Danke fürs zuhören. ;-)
Hallo Devil elec,
merci ... besten Dank, deine updi Beiträge u. Anliegen sind alle sehr
sinnvoll, praxisnah und normalo brauchbar !!!
Und nicht so verschrobben wie bei manchen anderen hier die für jeden
Baustein andere IDE s und dazu wieder andere Programmer empfehlen.
Diese Inflation von Pseudoexpertise geht mir ziemlich auf den Senkel,
weil man irgendwann nur noch im Datenschrott watet.
Hallo,
wenn hier mindestens Einer liest, dann stelle ich meinen ersten Adapter
vor. Das ist ein universeller USB-Serial Adapter. Zusatzlich stellt er
per Jumper das UPDI Signal und einen DTR Impuls zur Verfügung. Mit dem
Board und Pyhton kann man "UPDI µC" programmieren. Oder man programmiert
mittels Arduino IDE und dem DTR "Reset" Impuls "herkömmliche" ATmegas
die einen Bootloader draufhaben. Im Großen und Ganzen 3 Werkzeuge auf
einem Board. Falls es jemand 1:1 nachbauen möchte kann ich die passenden
Dateien rausgeben. Es sind Target 3001 Dateien. Die Platine ist 23x75mm
ohne USB Stecker gemessen. An meinem Monitor passen 2 nebeneinander in
die USB Buchsen.
Der zweite Adapter mit ATmega328PB ist noch unbestückt. Damit kann man
dann mittels avrdude nach Art "El Tangas" flashen.
Es lesen mindestens zwei...
... eine ganz einfache kabellose Lösung nach EL Tangas, die sich aus der
Zielschaltung versorgt. Das geht zwar nur bis 3,3V (darunter müsste man
das HC06-Modul einzeln versorgen), reicht bei mir aber für 95% der
Anwendungen.
Danke nochmal für's Prechecking.
Hallo,
ist auch eine praktische Lösung, mußte keine Kabel stecken. :-)
Hatte heute Zeit zum bestücken. Anbei der avrdude kompatible jtag2updi
Adapter. Kann man auch als USB Serial Wandler und Arduino Programmer
verwenden. Das solls nun erstmal hier gewesen sein.