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.
Basteln brauchst Du gar nichts: https://github.com/mraardvark/pyupdi mit einem USP/Seriell-Adapter (ein cp2102) und eine Diode, das wars.
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.
Veit D. schrieb: > Hallo, > > wie muss man das Pythonscript verwenden?
1 | ~/Projekte/updi/pyupdi/pyupdi.py -d mega4809 -c /dev/ttyUSB2 -f test90.hex |
> 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.
:
Bearbeitet durch User
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.
Veit D. schrieb: > 50,- Euro ... https://www.microchipdirect.com/product/search/all/PG164140 Beitrag "PICkit 4 wird verkauft"
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?
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
Okay, Danke dir, ich kümmere mich darum wenn "AS" gelöst ist.
Hallo, bin weitergekommen. Mit der Windows Kommandozeile klappt das erstmal. Verschiedene Blinktimings stimmen auch.
1 | >> was bis jetzt funktioniert |
2 | |
3 | # Python 3.7 installiert. Installationspfad ist etwas merkwürdig, keine Ahnung warum. |
4 | # pyupdi Tool liegt bei mir in C:\avrToolchain\ |
5 | |
6 | # >> Windows Kommandozeile << (geht vielleicht auch in der Python Shell) |
7 | |
8 | # fehlende Module wie folgt nachinstallieren, Pfade anpassen |
9 | > C:\Users\devil\AppData\Local\Programs\Python\Python37\Scripts\pip.exe install intelhex pylint pyserial |
10 | |
11 | # .hex File flashen (mit Infoausgabe Option -v), Pfade anpassen |
12 | > C:\Users\devil\AppData\Local\Programs\Python\Python37\python.exe C:\avrToolchain\pyupdi\pyupdi.py -d mega4808 -c COM5 -f C:\Users\Worker\Documents\Led_Example_ATmega4808.hex -v |
Was nicht geht ist die Kommandozeilenoption in Atmel Studio. Wobei das angeblich funktionieren soll. Project -> Properties -> Tool -> select Custom Programming Tool 'Command'
1 | C:\Users\devil\AppData\Local\Programs\Python\Python37\python.exe C:\avrToolchain\pyupdi\pyupdi.py -d mega4808 -c COM5 -f $(OutputDirectory)$(OutputFileName).hex |
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.
1 | C:\Users\devil\AppData\Local\Programs\Python\Python37\python.exe C:\avrToolchain\pyupdi\pyupdi.py -d mega4808 -c COM5 -f "C:\Users\devil\Documents\Atmel Studio\7.0\WorkSpace_ATmega4808\Led_Example_ATmega4808\Led_Example_ATmega4808\Release\Led_Example_ATmega4808.hex" -v |
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.
:
Bearbeitet durch User
Selbstbau lohnt nicht, momentan der MPLAB Snap mit 50% Rabatt: https://www.microchipdirect.com/product/DevToolDeals
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?
1 | Sascha, falls du auf den MPLAB® Snap In-Circuit Debugger/Programmer |
2 | abzielst, der soll leider nicht in Atmel Studio funktionieren. |
Ja, aber funktioniert in MPLABX, GCC für AVR gibt es dafür auch.
@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.
:
Bearbeitet durch User
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.
1 | Title: FlashAvrdudeUPDI |
2 | Command: C:\avrToolchain\avrdude\avrdude.exe |
3 | Arguments: -c jtag2updi -P com5 -p m4808 -v -U flash:w:"$(ProjectDir)Release\$(TargetName).hex":i |
4 | |
5 | und "Use Output Window" aktivieren |
und
1 | Title: FlashPythonUPDI |
2 | Command: C:\Users\Devil\AppData\Local\Programs\Python\Python37\python.exe |
3 | Arguments: C:\avrToolchain\pyupdi\pyupdi.py -d mega4808 -c COM5 -f "$(ProjectDir)Release\$(TargetName).hex" -v |
4 | |
5 | und "Use Output Window" aktivieren |
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, oh, dass freut mich, wenn meine Texte jemanden weiterhelfen. Danke.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.