ATTiny 2313a programmieren

OP #7548665
Lesenswert?

Hallo, Ich möchte eine Datei auf einen Attiny 2313a mittels einen arduinos brennen. In dem Softwarepaket dass ich auf den Controller brennen soll, ist eine .hex .eep un eine .elf Datei enthalten. Mit dem Arduino habe ich schon ein paar Programme geschrieben bin aber noch bei den Grundkenntnissen. Einen Microcontroller habe ich mit dem Arduino noch nie programmiert.

(Firma: matzetronics) #7548673
Lesenswert?

Nico schrieb:

Mit dem Arduino habe ich schon ein paar Programme geschrieben bin aber noch bei den Grundkenntnissen.

Du solltest den Arduino (welchen?) zum ISP Programmierer machen, dafür gibt es Sketche. Dann muss der 2313 mit den ISP Leitungen des Arduino verbunden werden (MOSI, MISO, SCLK, GND und Reset) und mit Strom versorgt werden. Den Rest kann AVRDUDE als Programmiersoftware erledigen. Dauert vermutlich ein wenig, ehe du das alles auf die Reihe kriegst, aber die Stichworte hast du jetzt.

#7548703
Lesenswert?

Joe schrieb:

Der TA trollt doch...

Denke nicht... Beitrag "drazzys package funktioniert nicht"

Er möchte einige Arduino-libs für die tinys nutzen. Gleichzeitig soll die Arduino-IDE zum Einsatz kommen.

Dafür muss man den tiny2313 halt über ISP flashen, da für einen Bootloader kein Platz ist.

Und genau dafür will er eine vorhandene Arduinoplatine (vermutlich 2009er o.ä.) kurzerhand zum ISP-Adapter machen.

mfg mf

(Firma: Gast) #7548709
Lesenswert?

Nico schrieb:

Naja eigentlich ist der Arduino nicht aus 2009 sondern vorgestern erst mit der Post aus dem original Arduino Shop gekommen.

Dann mache ihn zum "Arduino as ISP", wie es schon gesagt wurde.

Nico schrieb:

In dem Softwarepaket dass ich auf den Controller brennen soll, ist eine .hex .eep un eine .elf Datei enthalten.

Im Arduino Paket ist auch AVRdude. Damit hast du dann alle Tools in der Hand um die Dateien auf den Tiny zu spielen.

OP #7548712
Lesenswert?

Wenn ich den Arduino als ISP verwenden will muss ich zuerst den ISP Sketch auf den Arduino laden, das Board (2313a) und die Schaltung aufbauen. Und dann? Jetzt möchte ich mal ein von mir geschriebenes Projekt auf den Chip spielen. Das kann ich eh jederzeit überspielen oder?

Gast #7548866
Lesenswert?

Bei der "Arduino as ISP" Methode wird ein Arduino Board zum ISP Programmieradapter (STK500v2 kompatibel) gemacht. Die dazu nötige Firmware befindet sich in der Arduino IDE und wird auch mit dieser installiert. Danach schließt du die IDE und arbeitest mit avrdude und einer der beiden empfohlenen GUIs.

Wenn dir das zu kompliziert oder zu umständlich ist, dann kaufe dir einen fertigen ISP Programmieradapter, der zur Arduino IDE kompatibel ist. Derzeit am billigsten sind USBASP Sticks.

Nico schrieb:

In dem Softwarepaket dass ich auf den Controller brennen soll, ist eine .hex .eep und eine .elf Datei enthalten.

Ist das überhaupt ein Arduino Projekt? Ich frage, weil Arduino Projekte üblicherweise mit Quelltext veröffentlicht werden. Diese compiliert und brennt man mit der IDE.

Um .hex und .eep Dateien zu brennen, braucht du andere Software. Das kann die Arduino IDE nach meinem Kenntnisstand nicht. Lies dazu mal http://stefanfrings.de/isp_programmieradapter/index.html

(Firma: Gast) #7548877
Lesenswert?

Steve van de Grens schrieb:

Um .hex und .eep Dateien zu brennen, braucht du andere Software. Das kann die Arduino IDE nach meinem Kenntnisstand nicht.

Halb recht.

Natürlich kann die das! Allerdings nicht von Hause aus, da es dafür keine vorgefertigte Boarddefinition gibt, in der das vorgesehen ist. Aber sowas kann man erstellen .. irgendwann mal

Und nein, ihm braucht auch keine andere Software, da AVRdude mit im Arduino AVR Paket vorhanden ist. Der Aufwand ist einfach nur:

  1. den anderen Arduino zum ISP zu machen
  2. ein AVRdude Kommandozeilen Aufruf. Und fertig ist die Show.

Allerdings scheint der TO damit hoffnungslos überfordert zu sein.

#7548916
Lesenswert?

Hallo, Arduino F. schrieb im Beitrag #7548877:

  1. ein AVRdude Kommandozeilen Aufruf.

Da Nico als Anfänger mit dem Bedienen von AVRDUDE per Kommandozeile sichtlich überfordert sein dürfte, wäre es doch eine nette Geste von dir ihm die entsprechend Zeile zu schreiben und ihm zu erklären wie er sie aufruft.

rhf

(Firma: Gast) #7548929
Lesenswert?

Roland F. schrieb:

wäre es doch eine nette Geste von dir ihm die entsprechend Zeile zu schreiben und ihm zu erklären wie er sie aufruft.

Nachdem der TO jetzt in anderen Foren fragt, auch ohne zu zeigen, dass ihm auch nur ein bisschen von hier mitgenommen hat, sind weitere Erklärungen aus meiner Sicht überflüssig. Zudem unterstütze ich keine Crossposter! Ich halte Crosspostings für ein arg antisoziales Verhalten.

Steve van de Grens schrieb:

Was soll das, jemandem eine avrdude Kommandozeile nahezulegen, den du damit überfordert siehst?

Ich habe in dem Beitrag ganz explizit mit DIR gesprochen. DICH zitiert. Der Beitrag war nicht an den TO gerichtet. Wenn ihm davon was mitnehmen kann, auch gut, stört mich nicht.

Zudem sind "Überforderungen dank Nichtwissens" durchaus überwindbar! z.B. durch lesen der AVRdude Doku

OP #7549014
Lesenswert?

Arduino F. schrieb:

Nachdem der TO jetzt in anderen Foren fragt, auch ohne zu zeigen, dass ihm auch nur ein bisschen von hier mitgenommen hat, sind weitere Erklärungen aus meiner Sicht überflüssig.

Jetzt ganz ehrlich. Warum glaubst du dass ich anderen Foren frage? Von einigen hier weird man als Hoffnungslos etc abgestempelt. Da wundert dich noch was? Ich habe jetzt in drei Tagen durch selbststudie gelernt wie man mit einem Arduino einen Microchip mit einer .ino Datei bespielt. Ich bin im Maschinenbau tätig und hatte das erste Mal vor zwei Wochen mit einem Microcontroller kontakt. Ganz dumm bin ich nicht und ich versuche mich zu bemühen mein Projekt umzusetzen.

Vom AVRDUDE habe ich noch gar keine Ahnung. Ich werde mich jetzt mal informieren, trotzdem wäre es aber nett von euch wenn ihr mir helfen könntet.

LG

(Firma: Gast) #7549026
Lesenswert?

Nico schrieb:

trotzdem wäre es aber nett von euch wenn ihr mir helfen könntet.

Wobei? Du hast alles auf deinem Tisch liegen, laut deiner eigenen Aussage! Aus meiner Sicht hast du auch hier alle nötigen Informationen bekommen.

Eigentlich steht nichts, wirklich nichts, deiner selbst gewählten Aufgabe entgegen. (außer du dir selber)

Was wir nicht können: Bei dir zuhause Kabel stecken, Tasten drücken und Mäuschen schubsen.

Gast #7549080
Lesenswert?

Rainer W. schrieb:

Darum geht es hier nicht. Mit der Arduino IDE hat das wenig zu tun.

Eben weil ich das denke, der TO aber dies schrieb, hake ich nach:

Nico schrieb:

Mit dem Arduino habe ich schon ein paar Programme geschrieben bin aber noch bei den Grundkenntnissen. Einen Microcontroller habe ich mit dem Arduino noch nie programmiert.

Den Arduino gibt es ja bekanntlich nicht, was die Frage aufwirft, was er denn damit meinte.

Gast #7549083
Lesenswert?

Nico schrieb:

Ja genau, ich weiß mittlerweile dass eine .ino und eine .hex Datei ein völlig anderes Fundament haben und wie eine Excel und eine Word Datei völlig andere Sprachen verwenden.

Der Vergleich hinkt.

ino versus hex ist eher wie Backrezept versus Kuchen.

(Firma: Gast) #7549378
Lesenswert?

Nico schrieb:

Von Zurechtweisungen usw. werde ich nichts lernen...

Möchtest du denn einen Tipp? Dann: Falls du in der Arduino IDE die ausführlichen Ausgaben in den Einstellungen aktivierst, dann siehst du bei einem Hochladeversuch die AVRdude Kommandozeile. Diese könntest du dir fangen und für eigene Zwecke anpassen.

Nico schrieb:

Von Zurechtweisungen usw. werde ich nichts lernen...

Von haarklein vorkauen auch nicht. Aber das lesen der AVRdude Doku/Anleitung könnte schon was helfen.

#7549431
Lesenswert?

Hallo, Nico schrieb im Beitrag #7549369:

Und wie geht das?

Ich empfehle dir AVRDUDE solo zu installieren, die aktuelle Version findest du hier:

https://github.com/avrdudes/avrdude

Scroll ein wenig herunter bis "Getting AVRDUDE for Windows". Klick auf "Releases", klick die Version "avrdude-v7.2-windows-x64.zip" an (für ein 64-Bit-Windows) und speichere sie in deinem Download-Verzeichnis ab. Ganz unten auf der Seite findest du unter "For more information, refer to the AVRDUDE documentation" das entsprechende Handbuch.

Danach du entpackst die ZIP-Datei z.b: nach "c:\avrdude". Dieses Verzeichnis musst du dann in Burn-O-Mat unter "Setting -> AVRDUDE -> AVRDUDE location" eintragen.

rhf

Gast #7549587
Lesenswert?

Nico schrieb:

Und wie geht das?

Irgendwo in den Einstellungen, kann man eigentlich nicht übersehen. Da musst du auch einstellen, welchen Programmieradapter du verwendest.

Gibt es irgendwo eine Schritt für Schritt Anleitung wie ich jetzt meinen Microcontroller programmieren kann?

Für deinen speziellen Fall wohl nicht. In Arduino ist es eben nicht vorgesehen, hex Dateien anderer Projekte zu brennen. Und in anderen Projekten ist die Verwendung von Arduino Komponenten und Software nicht vorgesehen.

Daher auch mein Vorschlag, die einen fertigen Programmieradapter zu kaufen. Damit entfällt ein größer Teil der Arbeit, die du nicht durchblickst.

Die Benutzung von "Avr8 Burn O Mat" ist kinderleicht, da kann man sich einfach durch klicken.

Jedenfalls findet Google jede Menge Anleitungen, auch Videos. https://www.google.com/search?q=anleitung+avr8+burn+o+mat

Von Zurechtweisungen usw. werde ich nichts lernen...

Von Vorkauen auch nicht.

Bevor du jetzt noch weitere Fragen stellst, suche dir einen ISP Programmieradapter. Dann fragst du hier vor dem Kauf, ob er für deinen Fall geeignet ist. Wenn er geliefert wurde, geht es weiter.

Oder du machst ein Arduino Uno oder Nano Board mit dem "Arduino as ISP" Sketch zum Programmieradapter. Die Anleitung dazu befindet sich wie bereits gesagt direkt auf der Ardiuno.cc Webseite.

Jedenfalls brauchst du einen ISP Programmieradapter. Alles weitere hängt von dem Gerät und der dazu passenden Software ab.

Angehängte Dateien:
Gast #7549962
Lesenswert?

Dir sind in diesem Theead schon 2 empfohlen worden sowie eine Webseite mit weiteren, sowie die Empfehlung, dass DU dir einen aussuchst und uns dann fragst ob er taugt.

Deine Hartnäckigkeit mit der du unsere Ratschläge ignorierst geht mir auf die Nerven. Ich bin raus.

(Firma: Gast) #7549978
Lesenswert?

Nico schrieb:

Vorzüglich Amazon oder Conrad zwecks Versandkosten.

Hattest du nicht gesagt, dass du einen Arduino bei dir liegen hast? Was ist mit dem? Kaputt? Nicht schön genug? Falsche Farbe?

Nico schrieb:

Von Zurechtweisungen usw. werde ich nichts lernen...

Ob mit, oder ohne, macht scheinbar keinen Unterschied.

Weiterhin gilt: (bis das Gegenteil bewiesen wird) Arduino F. schrieb im Beitrag #7548709:

Damit hast du dann alle Tools in der Hand um die Dateien auf den Tiny zu spielen.

Stimmt das, oder nicht?

Arduino F. schrieb:

Eigentlich steht nichts, wirklich nichts, deiner selbst gewählten Aufgabe entgegen. (außer du dir selber)

Stimmt das, oder nicht?

#7550145
Lesenswert?

Hallo, Nico schrieb im Beitrag #7550041:

Bisher habe ich gemacht: -Buronomat heruntergeladen -avrdude heruntergeladen -avrdude.exe in Burnomat angegeben

Das ist soweit richtig. Als nächstes musst du erst auf dem Arduino einen Sketch installieren, der ihn zum Programmieradapter macht. Starte die Arduino-IDE, gehe dann auf "Datei -> Beispiele -> 11.ArduinoISP -> ArduinoISP". Diesen Sketch lädst du jetzt auf den Arduino. Wenn das geklappt hat meldest du dich wieder.

rhf

Gast #7551220
Lesenswert?

Roland F. schrieb:

Warum ist denn als Programmer der STK500 eingestellt?

Der "Arduino as ISP" ist zum STK500v1 kompatibel. Der Arduino Bootloader übrigens auch.

Nicht zu verwechseln mit "arduinoisp". Das ist eine Variante von USB Tiny Programmieradapter, ohne COM Port, sondern wird über libusb angesprochen.

(Firma: Gast) #7551241
Lesenswert?

Roland F. schrieb:

Warum ist denn als Programmer der STK500 eingestellt?

Wie schon gesagt wurde: Arduino as ISP emuliert einen STK500 V1 Allen beteiligten Komponenten und Benutzern ist das auch völlig recht. Nur dir nicht.

Und: Aber das kannst du offensichtlich nicht erkennen, nutze ich dort die mit Arduino gelieferte Version. Sage ich dort auch klar und deutlich. Die 6.3 kennt leider Arduino as ISP noch nicht namentlich. Verwendet habe ich sie, da ich weiß, dass der TO diese schon auf seinem Rechner hat. Also auch nicht ohne Grund.

Eingeweihte wüssten, dass Arduino as ISP erst in neueren Versionen Einzug gehalten hat. Es gibt/gab somit kaum eine andere Wahl in der Situation und deine "mogel" Kritik ist damit flüssiger als Wasser, überflüssig.

Bemerkenswert: Selbst die Zeit, die ich dir gelassen habe, um die Sache nochmal zu überdenken, zu überprüfen, ist ungenutzt verstrichen.

Kann es sein, dass deine Einschätzung/Kritik, hier, mehr auf Vorurteilen als auf Fakten basiert? Wäre Schade, eigentlich.

#7551315
Lesenswert?

Arduino F. schrieb:

Wie schon gesagt wurde: Arduino as ISP emuliert einen STK500 V1 Allen beteiligten Komponenten und Benutzern ist das auch völlig recht. Nur dir nicht.

...

Und: Aber das kannst du offensichtlich nicht erkennen, nutze ich dort die mit Arduino gelieferte Version. Sage ich dort auch klar und deutlich.

...

Es gibt/gab somit kaum eine andere Wahl in der Situation und deine "mogel" Kritik ist damit flüssiger als Wasser, überflüssig.

Bemerkenswert: Selbst die Zeit, die ich dir gelassen habe, um die Sache nochmal zu überdenken, zu überprüfen, ist ungenutzt verstrichen.

Kann es sein, dass deine Einschätzung/Kritik, hier, mehr auf Vorurteilen als auf Fakten basiert? Wäre Schade, eigentlich.

Die Art deiner Antwort bestätigt meine Meinung über dich, das du ein überheblicher, aufgeblasener Flegel bist.

rhf

(Firma: Gast) #7551397
Lesenswert?

Roland F. schrieb:

das du ein überheblicher, aufgeblasener Flegel bist.

Merke: Herabwürdigungen und Beleidigungen können keine Kompetenz und keine Aufmerksamkeit ersetzen.

Bedenke, du hast mich hier ohne Not, sogar ohne Grund, an den öffentlichen Pranger gestellt. Versucht zum mogelnden Deppen zu erklären. Und dann erwartest du von mir, dass ich dich dafür liebevoll umarme? Das wäre dann mindestens der zweite Irrtum. Einmal in der Sache und dann nochmal in der persönlichen Einschätzung.

Vorher hast du verpasst, dich kundig zu machen. Und jetzt vermisse ich Einsicht. Das Eingeständnis eines Irrtums. Aber ich weiß, die Gabe hat nicht jeder.

Beitrag #7551427 wurde von einem Moderator gelöscht.
OP #7551596
Lesenswert?

Das heißt für mich, dass ich einen Kondensator in die Schaltung einbauen muss oder nicht? Das mit der Zeile in der Arduino IDE habe ich noch nicht verstanden. Und was meinst du mit Baudrate? Nochmal versucht kann es sein dass eben diese Zeile in der IDE eine Veränderung fehlt weshalb er den "Programmer" nicht öffnen kann?

Angehängte Dateien:
(Firma: Gast) #7551608
Lesenswert?

Siehe: additional options

Nico schrieb:

Das heißt für mich, dass ich einen Kondensator in die Schaltung einbauen muss oder nicht?

Jain! Aber das sachte ich doch schon.

Nico schrieb:

Das mit der Zeile in der Arduino IDE habe ich noch nicht verstanden. kann es sein dass eben diese Zeile in der IDE eine Veränderung fehlt weshalb er den "Programmer" nicht öffnen kann?

Die Baudrate fehlt.

Die Arduino IDE nutzt auch avrdude. In einer funktionierenden Konfiguration. Da hättest du dir was abschauen können.

#7551612
Lesenswert?

https://mobatron.4lima.de/2020/03/servodecoder-selbst-bauen ->Software-Variante DCC Zubehördecoder SerDecD-TN und SerDecRD-TN V3.4 ->Handbuch SerDecD-TN und SerDecRD-TN V3.4 "Der SerDecD-TN Decoder ist das Bindeglied zwischen der Digitalsteuerung der Modellbahn nach DCC1 Norm und dem Modellbauservo" Schaltplan mit ISP-Anschluss: https://mobatron.4lima.de/wp-content/uploads/2023/08/serdecx_tn2_schaltplan.pdf

Da scheint tatsächlich ein 2313 in SMD verbaut zu sein. Wieso findet der avrdude dann einen ATmega328?

#7551646
Lesenswert?

Attiny 2313a-PU

https://ww1.microchip.com/downloads/en/DeviceDoc/8246S.pdf PU ist aber laut Tabelle auf S.12 die DIL-20 Version, die SO-20 heisst SU

Die Belegung der ISP-Schnittstelle am 2313 scheint zu stimmen: Arduino Attiny 13------------>19 =SCLK 12------------>18 =MISO 11------------>17 =MOSI 10------------>1 =RESET 5v------------>20 VCC GND-------->10 GND Zum Arduino-Programmer fehlt mir die Belegung. https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP

4,7nF auf den vier Signalleitungen scheint mir etwas hoch.

Die ursprüngliche Schaltung von 2003 benutzte noch den alten AT90S2313, der könnte Unterschiede zum Nachfolger ATtiny2313 haben.

der Prozessor auf dem UNO

den sollte man aber nicht überprogrammieren.

Beitrag #7551682 wurde von einem Moderator gelöscht.
Gast #7551683
Lesenswert?

Arduino F. schrieb:

H. H. schrieb:

Der hängt doch nicht fest auf COM3, sondern da wo das Betriebssystem gerade Lust und Laune hat.

Ein Arduino mit 16U2 hat eine Seriennummer und ändert seine COM nie. Es sei denn, man erzwingt das.

Das wird der Grund sein, dass er nicht unter COM3 gefunden wird...

(Firma: Gast) #7551692
Lesenswert?

H. H. schrieb:

Arduino F. schrieb:

Ich sehe im ganzen Thread Null Komma Null Indiz dafür, dass der Arduino nicht auf COM3 gefunden wird.

https://www.mikrocontroller.net/attachment/617175/Screenshot_2023-12-05_154845.png

Das ist eine Bestätigung für die Existenz des Ports.

Ein nicht vorhandener Port sieht so aus:

1
E:\Programme\avrdude\avrdude -C E:\Programme\avrdude\avrdude.conf -p t2313 -P com3 -c arduino_as_isp -D -b19200 -v -v -U flash:r:C:\Users\Admin\Documents\test.hex:i 
2

3
avrdude: Version 7.2
4
         Copyright the AVRDUDE authors;
5
         see https://github.com/avrdudes/avrdude/blob/main/AUTHORS
6

7
         System wide configuration file is E:\Programme\avrdude\avrdude.conf
8

9
         Using Port                    : com3
10
         Using Programmer              : arduino_as_isp
11
         Overriding Baud Rate          : 19200
12
avrdude ser_open() error: cannot open port \\.\com3: Das System kann die angegebene Datei nicht finden.
13

14

15
avrdude main() error: unable to open programmer arduino_as_isp on port com3
16

17
avrdude done.  Thank you.
(Firma: Gast) #7551698
Lesenswert?

H. H. schrieb:

Und was hängt dran?

Ich kann leider nicht auf den Monitor seines PC schauen! Muss ihm in soweit glauben und das tue ich auch.

H. H. schrieb:

Offensichtlichen kein als Programmer programmierter Arduino.

Nee! Offensichtlich ist das nicht.

Offensichtlich ist da nur, dass ihm keine Baudrate angegeben hat. Und dann sehen die Meldungen exakt so aus, wie auf dem von dir verlinkten Foto.

(Firma: Gast) #7551708
Lesenswert?

Christoph db1uq K. schrieb:

Im linken Screenshot war noch der arduino_as_ISP ausgewählt und hat einen Mega328 gefunden.

Vorsicht: Das ist das Mogelfoto!

Rechts: Da ist im Menue der Arduino as ISP eingetragen, welcher ohne Baudrate wohl nie funktionieren wird. Zumindest nicht in dieser Konfiguration.

Links: Da wird das arduino Protokoll verwendet. Welches wohl für den Bootloader vorgesehen ist. Dort scheint der Baudraten Default Wert zu passen. Aus dem Grund kommt dann auch die 328P Signatur.

Christoph db1uq K. schrieb:

Vielleicht, weil der Arduino vom ersten Versuch schon zerschossen ist.

Kann ich nicht beurteilen. Was ich aber weiß: Ohne erzwungene Baudrate geht es nicht. Der Rest ist Kaffeesatzleserei.

Gast #7551711
Lesenswert?

Ich denke, das Arduino Uno Board sieht und meldet seinen eigenen ATmega328, wenn der "Arduino as ISP" Sketch nicht läuft. Genau so funktioniert nämlich dessen normaler Bootloader. Der Arduino Bootloader wird je nach Version mit 57600 oder 115200 Baud angesprochen.

Der "Arduino As ISP" Sketch, welcher mit dem ATtiny2313 kommunizieren würde, läuft hingegen auf 19200 Baud.

Wie mehrfach gesagt wurde, ist demnach die Einstellung der Baudrate auf 19200 Baud elementar wichtig.

Mit der Standard Baudrate wird der falsche Bootloader angesprochen, der den falschen Chip brennt.

Ich möchte nochmal daran erinnern, dass ich vorschlug, einen fertigen ISP Programmieradapter zu kaufen.

(Firma: Gast) #7551714
Lesenswert?

Steve van de Grens schrieb:

Wie mehrfach gesagt wurde, ist demnach die Einstellung der Baudrate auf 19200 Baud elementar wichtig.

ELEMENTAR WICHTIG!

Steve van de Grens schrieb:

Ich möchte nochmal daran erinnern, dass ich vorschlug, einen fertigen ISP Programmieradapter zu kaufen.

Atmel ICE STK600

Wobei, dass mit der Baudrate doch eigentlich ein lösbares Problem sein sollte. Arduino as ISP erfüllt seinen Job eigentlich perfekt genug, um Erfolg haben zu dürfen.

#7551732
Lesenswert?

Ich möchte noch einmal an den nötigen Kondensator erinnern!

Aus https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP: "The 10µF electrolytic capacitor connected to RESET and GND of the programming board is needed only for the boards that have an interface between the microcontroller and the computer's USB, like Mega, UNO, Mini, Nano."

Dieser Kondensator verhindert ja, dass das Gewackel an DTR beim Öffnen des seriellen Ports unter Windows durch avrdude den Arduino-As-ISP selbst in den RESET und also in seinen eigenen Bootloader zwingt ...

LG, Sebastian

Gast #7551743
Lesenswert?

So richtig eindeutig ist die Beschreibung auf arduino.cc aber nicht. Wenn man die Seite von oben nach unten liest, bekommt man zunächst den Eindruck, dass man beim Arduino UNO Board keinen Kondensator braucht.

Der letzte Absatz widerspricht den Infos direkt darüber, insbesondere dem Bild mit Arduino UNO.

Darauf hat schon vor 5 Jahren jemand drauf hingewiesen. https://arduino.stackexchange.com/questions/55498/when-using-an-arduino-as-an-isp-is-the-capacitor-required-or-not Erstaunlich, dass die Doku in dieser Hinsicht nicht verbessert wurde.

Im Zweifelsfall würde ich den Kondensator einsetzen. Egal ob nötig oder nicht.

Angehängte Dateien:
(Firma: Gast) #7551745
Lesenswert?

Sebastian W. schrieb:

Ich möchte noch einmal an den nötigen Kondensator erinnern!

Ob der nötig ist, sehen wir in den Meldungen. Wenn denn dann irgendwann mal die Baudrate angegeben wird.

Bisher ist noch geheim, welcher Arduino da zum Einsatz kommt. Somit ist auch der Bedarf an dem Kondensator im Nebel verborgen.

Steve van de Grens schrieb:

dass man beim Arduino UNO Board keinen Kondensator braucht.

Das ist so! AVRdude macht mehrere Versuche, bis es in einen Timeout stolpert. Wenn in der Zeit der Bootloader durch ist, wird die ISP Software gefunden. Wenn denn dann die Baudrate stimmt.

#7551753
Lesenswert?

Kann man tatsächlich einen Arduino Mega328 über USB umprogrammieren? Damit könnte man den Bootloader löschen, dann läuft nichts mehr. Der ISP-Sketch muss doch mit dem Bootloader aus dem PC herübergeladen werden.

Ich dachte, der AVR16U2 ist nur ein Ersatz für "dumme" USB-Serial-Chips von FTDI, Silabs oder CB340 aus China. Ich erinnere mich aber dunkel, dass man den auch irgendwie umprogrammieren kann, und eigenständig benutzen.

Oder funktioniert der AVR-ISP nur wenn man den Bootloader beibehält? Der 16U2 hat jedenfalls keinen Zugriff auf die ISP-Schnittstelle des Mega328. Um den 328 ohne zusätzliche Hardware umzuprogrammieren müsste die Software irgendwie trickreich einen Programmspeicherteil im 328 belegen, der nicht gelöscht wird. Kann ich mir nicht wirklich vorstellen.

Gast #7551765
Lesenswert?

Christoph db1uq K. schrieb:

Ich dachte, der AVR16U2 ist nur ein Ersatz für "dumme" USB-Serial-Chips von FTDI, Silabs oder CB340 aus China.

So ist es.

Ich erinnere mich aber dunkel, dass man den auch irgendwie umprogrammieren kann, und eigenständig benutzen.

Dieser Chip hat auch eine ISP Schnittstelle

Oder funktioniert der AVR-ISP nur wenn man den Bootloader beibehält?

Bringe hier nicht die Namen unterschiedlicher Produkte durcheinander.

Der "Arduino As ISP" wird auf ein klassisches Arduino Board über dessen Bootloader installiert.

Der 16U2 hat jedenfalls keinen Zugriff auf die ISP-Schnittstelle des Mega328.

Ja

Um den 328 ohne zusätzliche Hardware umzuprogrammieren müsste die Software irgendwie trickreich einen Programmspeicherteil im 328 belegen, der nicht gelöscht wird. Kann ich mir nicht wirklich vorstellen.

Keine Ahnung, was du damit sagen willst. Der Chip ist gar nicht direkt mit dem USB Anschluss verbunden, insofern erübrigt sich die Frage.

Angehängte Dateien:
#7551775
Lesenswert?

Der "Arduino As ISP" wird auf ein klassisches Arduino Board über dessen Bootloader installiert.

Damit läuft die ISP-Software im Mega328, dann kann man den Mega328 nicht einfach umprogrammieren, der zieht sich doch selbst den Boden unter den Füßen weg. Ich dachte, der 16U2 enthält vielleicht die ISP-Software, dann wäre der 328 frei verfügbar. Aber der 16U2 hängt nur über seine serielle Schnittstelle am 328, darüber ist der nicht programmierbar.

Jedenfalls ungeschickt, dass der Burnomat die Baudrate nicht als Menüpunkt anbietet. Man muss sie im leeren Feld "additional options" als "-b 19200 -v -v" eintragen (oder im avrdude.conf als Option angeben). Das hat Nico bisher nicht getan.

Gast #7551779
Lesenswert?

Christoph db1uq K. schrieb:

Damit läuft die ISP-Software im Mega328, dann kann man den Mega328 nicht einfach umprogrammieren, der zieht sich doch selbst den Boden unter den Füßen weg.

Nein, denn der Bootloader ist ja auch noch drin. Deswegen ist es ja so wichtig, den Chip mit der richtigen Baurate anzusprechen:

19200 Baud für den Arduino as ISP Sketch 57600 oder 115200 Baud für den Bootloader

(Firma: Gast) #7551835
Lesenswert?

Christoph db1uq K. schrieb:

Kann man tatsächlich einen Arduino Mega328 über USB umprogrammieren? Damit könnte man den Bootloader löschen, dann läuft nichts mehr.

Nicht mit einfachen Mitteln...

Man kann den 16U2 mit Flip zum ISP machen, und damit den 328P beschreiben. Auch die Fuses und den Bootloader. Aber da sind wir hier nicht.

Christoph db1uq K. schrieb:

Ich dachte, der 16U2 enthält vielleicht die ISP-Software,

Kann man so machen, aber original ist das nicht.

Christoph db1uq K. schrieb:

Oder funktioniert der AVR-ISP nur wenn man den Bootloader beibehält?

Nein! Arduino as ISP braucht keinen Bootloader.

Trotzdem: So ist es vorgesehen. z.B. ein UNO, original mit Bootloader, und aufgespielten Arduino as ISP Sketch.

#7551950
Lesenswert?

Flip

Davon hatte ich noch nicht gelesen, danke für den Hinweis: https://www.microchip.com/en-us/development-tool/flip https://docs.arduino.cc/hacking/software/DFUProgramming8U2 Damit kann man den ATmega16U2 für andere Zwecke umfunktionieren. Das gilt aber nur für exotischere AVR, nicht die älteren wie 2313 oder 328.

ein UNO, original mit Bootloader, und aufgespielten Arduino as ISP Sketch

so hatte ich das verstanden. Geht es auch anders? Klar, einen ISP-Programmer anschließen geht immer.

Aber nochmal für Nico: das Feld "additional options" im Burnomat ist unverzichtbar für die Einstellung der Baudrate.

#7552656
Lesenswert?

Hoodloader

...und bracht in sinniger Erfindung die beiden ISP-Ports in Verbindung...

Jedenfalls kann man den 328 nicht aus Versehen umprogrammieren. Außerdem gibt es ja noch die Fuses, die das Löschen des Bootloaders verhindern sollen.

Vermutlich könnte man die Baudrate auch in der avrdude.conf eintragen, das stand irgendwo.

Der 10µF Elko mit dem 10k-Pullup-Widerstand am Reset-Pin des Uno ergibt eine RC-Konstante von 0,1 Sekunde, also recht lange.

#7552772
Lesenswert?

Christoph db1uq K. schrieb:

Der 10µF Elko mit dem 10k-Pullup-Widerstand am Reset-Pin des Uno ergibt eine RC-Konstante von 0,1 Sekunde, also recht lange.

Darum geht es dabei nur indirekt.

Reset ist ja über 100n mit DTR der seriellen Schnittstelle (also auf dem Uno mit dem DTR-Ausgang der USB-Emulation der seriellen Schnittstelle durch den Atmega16u2) verbunden. Im Normalbetrieb führt ein Öffnen des USB-COM-Ports auf einem angeschlossenen Windows-PC dazu, dass DTR von High auf Low wechselt. Der 100n wandelt dann zusammen mit dem 10k-Pullup diese fallende Flanke in einen kurzen Reset-Low-Impuls um, so dass der Atmega328P neu startet, erst in seinen Bootloader und danach (falls kein Upload folgt) zum Neustart des Sketches.

Das möchte man aber im Fall des Arduino-als-ISP nicht, weil ein folgender Upload ja nicht den Bootloader des Atmega328P des Uno erreichen soll, sondern den Arduino-als-ISP-Sketch auf dem Uno und von dort aus das eigentlich zu programmierende Gerät. Und der 10uF verhindert den Uno-Reset-Impuls, indem er den 100n aus seiner Kapazität heraus umlädt und die Spannung am Uno-Reset so trotz der fallenden DTR-Flanke stabil hält.

AFAIK.

LG, Sebastian

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren