Ich habe momentan leider keinen Arduino zur Hand.
Nun stelle ich mir aber die Frage, wenn ich am seriellen Ein-/ resp. Ausgang RX, TX etwas angeschlossen habe, dann kann man ja nicht einen neuen Sketch hochladen weil sich die seriellen Anschlüsse nicht teilen können. Nun ist meine Idee aber, um nicht immer den Stecker zu ziehen, baue ich einfach in der TX Leitung einen Schalter ein den man ausschalten kann, wenn man programmieren will. Dann sollte eine Programmierung des Arduinos doch möglich sein oder müssen zwingend beide Leitungen unterbrochen werden? Ich wäre jetzt mal der Meinung, es müsste doch reichen einen der beiden Leitungen zu unterbrechen? Das wäre ja dann vorzugsweise die TX Leitung da dort ja der neue Sketch hochgeladen wird. Die Rückmeldung zum PC sollte ja dann trotzdem möglich sein, auch wenn ein anderes Gerät an der RX Leitung aktiv ist.
Oder liege ich komplett falsch?
Alle Geräte würden von extern mit 5V versorgt werden, und die Programmierung über USB ohne die 5V Leitung.
Ja das habe ich, aber ich dachte mir, wenn die Übertragungsleitung vom PC zum Arduino nur einmalig vorhanden ist und am Arduino TX pin noch anderes hängt könnte es trotzdem funktionieren.
Wenn ich beide Leitungen unterbrechen muss, dann müsste ich ja pro Leitung einen Schalter einbauen, was dann wieder fraglich ist ob sich das wirklich lohnt.
Meines wissens nach gibt es ja keinen Schalter der gleich zwei Leitungen unterbrechen kann, oder?
Warum so kompliziert ?
Du kannst doch deine serielle Nutzung per SoftwareSerial anbinden.
Oder du programmierst per ISP, dann kannst du auch die Hardware serielle nutzen.
Und nein, zum Flashen reicht nicht eine Leitung am Arduino, da das Flashen auch Informationen vom Arduino abholt.
Per ISP ist ein guter Hinweis, dieser geht manchmal vergessen!
Dann bräuchte ich nur einen Adapter auf USB. Das einzige was ist, dieser hat dann sechs Leitungen anstelle von nur dreien wie beim modifizierten USB.
Ich danke euch für die rasche Hilfe!
stef308:
Per ISP ist ein guter Hinweis, dieser geht manchmal vergessen!
Dann bräuchte ich nur einen Adapter auf USB. Das einzige was ist, dieser hat dann sechs Leitungen anstelle von nur dreien wie beim modifizierten USB.
Ich danke euch für die rasche Hilfe!
Auch bei USB brauchst du 4 Leitungen. Ok, sind 2 weniger.
Alternative wäre dann SoftwareSerial, aber auch da brauchst du 4 Leitungen.
Ach nein, stimmt!
Ich hätte mein Arduino mit externen 5V versorgt. Bei USB lass ich dann ja einfach die 5V Leitung weg.
Für den ISP Amschluss gilt das ja dann auch, da lass ich die VCC Leitung weg, dann hab ich fünf Leitungen die ich brauche. Passt so denke ich, danke!
Ist noch ein guter Tipp mit dem ISP zu programmieren und am seriellen Anschluss alles angeschlossen zu lassen. Da hätte ich echt nicht mehr dran gedacht! Super Lösung!
stef308:
Ach nein, stimmt!
Ich hätte mein Arduino mit externen 5V versorgt. Bei USB lass ich dann ja einfach die 5V Leitung weg.1
Für den ISP Amschluss gilt das ja dann auch, da lass ich die VCC Leitung weg, dann hab ich fünf Leitungen die ich brauche. Passt so denke ich, danke!
Ist noch ein guter Tipp mit dem ISP zu programmieren und am seriellen Anschluss alles angeschlossen zu lassen. Da hätte ich echt nicht mehr dran gedacht! Super Lösung!
Prima.....aber denke bitte daran, damit wird der Bootloader deaktiviert. Der ist dann nicht mehr nutzbar.
Hi zusammen,
alles obige recht interessante und intelligente Lösungen.
Noch erst vor wenigen Tagen hatte ich einen "MIDI 2 CV" Converter programmiert, der genau über die originale Serial-Schnittstelle via RX die Keyboard-Daten in Empfang genommen hat. Ich hatte auch mit SoftSerial und so geliebäugelt - nur dann wurden mir das etwas zu viel separate Bibliotheken, bin halt "Purist".
Dann habe ich in die RX-Leitung auf 'nem Steckbrett einen DigitalTaster dazwischengemogelt ... und wenn ich die Software auf den Arduino übertragen will drücke ich solange die Taste, bis "Hochladen abgeschlossen" kommt - und alles funktioniert bestens. TX brauchte ich in dem Fall nicht, weil das Keyboard auf "MIDI-Out" keine Daten in Empfang nimmt (nehmen kann).
Das nur mal so aus meiner Praxis. Und ich brauche keine Stecker umfriemeln oder sonstwelche Klimmzüge machen oder beachten.
LG, RudiDL5
Der schalter sollte doch kein Problem darstellen siehe Schalter
Schau da mal ins Datenblatt wenn du z.b. RX auf 1/2 und TX auf 4/5 des Schalters setzt, dann sollte das Problemlos gehen da die beiden Leitungen getrennt geöffnet/geschlossen werden. Die ein-ein Funktion hat man ja erst wenn man alle drei pin`s der reihe benutzt ansonsten ist es ein ein-aus Schalter. Wäre ne einfache Lösung oder mit Jumpern arbeiten.
Zuerst einmal, vielen Dank für die vielen Inputs! Das sind wirklich super viele und alles gute Ideen!
@HotSystems: Das ist wahr mit dem Bootloader, habe ich auch schon paar Mal festgestellt! Da ich bei diesen Boards aber immer über ISP programmiere ist mir das egal, oder besser gesagt habe ich das Problem ausgeblendet... Guter Hinweis!
Anders herum, wenn ich über ISP den Arduino programmiere, dann ist das ja egal, ob der einen Bootloader hat oder nicht. Falls ich diesen Arduino dann mal per USB programmieren wollte, so könnte ich ja einfach wieder über das Menü in der IDE den passenden Bootloader wählen und hochladen. Dann funktioniert es ja wieder.
@senseman: So einen Kippschalter habe ich gar nicht gewusst, dass es sowas auch mit zwei parllelen Reihen gibt! Das ist gut zu wissen, vielen Dank! Damit würde die unterbrechung der TX und RX Leitung mit einem Kippschalter wie gewünscht funktionieren.
Die Idee von Combie ist aber auch recht gut! Damit spart man sich den Schalter, die TX und RX Leitungen werden nicht unnötig länger und es ist genauso einfach wie einen Schalter einzubauen.
@Combie: Wenn ich das richtig verstanden habe, muss im entsprechenden Ordner eine Textdatei "platform.local" mit der aufgeführten Zeile gespeichert werden. Wo zeigt mir die Befehlszeile an wo ich das ablegen muss? Wie kann ich das sehen, ohne zuerst den Bootloader beim Upload zu zerschiessen um den Speicherort zu wissen?
Die Variante mit dem 16u2 des USB neu zu flashen mit dem Hoodloader2 ist mir nicht so ganz klar was mir das bringt. So wie ich verstanden habe, ermöglicht der Hoodloader die Verwendung des 16u2 auch für andere Dinge als nur den Nutzen des USB Ports. Also als zweiter Mikrokontroller nebst dem 328/2560. In wie fern mir das hilft über das USB Kabel gleichzeitig einen Upload des Sketches zu machen und die serielle Verbindung eingesteckt zu lassen ist mir nicht ganz klar.
In Anbetracht des "einfachen" Ergänzens einer Zeile als TXT und dann aber den Upload über Programmer funktionsfähig zu haben ist mir lieber. Da hat man meiner Meinung nach viel mehr davon, auch für andere Boards!
@Combie: Wenn ich das richtig verstanden habe, muss im entsprechenden Ordner eine Textdatei "platform.local" mit der aufgeführten Zeile gespeichert werden.
Ja.
Wo zeigt mir die Befehlszeile an wo ich das ablegen muss?
Habe ich das gesagt?
Nööö....
Meine Worte waren:
Wenn man die ausführlichen Meldungen beim kompilieren aktiviert, zeigt die IDE, welche Hardwaredefinition sie verwendet, und dort muss diese platform.local.txt angelegt werden.
Wie kann ich das sehen, ohne zuerst den Bootloader beim Upload zu zerschiessen um den Speicherort zu wissen?
In dem du das Zielgerät gar nicht anschließt.
Die Meldung, dass dann der Upload versagt, wirst du dann tolerieren müssen/können.
--
Ich hoffe, dass jetzt alle Klarheiten beseitigt sind.
Ich habe das mal versucht ohne den Arduino anzuschliessen mit dem Programmer hochzuladen.
Die ersten zwei Zeilen in der Ausgabe sind sehr lange Pfade nehme ich an. Danach nach diesen zwei langen Zeilen kommt:
Using board 'mega' from platform in folder: xxxx
Using core 'arduino' from platform in folder: xxxx
Danach kommt dann detecting libraries und die Kompilierung des Sketchs.
Das heisst in diesem Pfad den ich mit xxxx gesetzt habe, dort muss ich die TXT Datei mit dieser Zeile anlegen. Die platform.txt aber drin lassen. Richtig?
Muss ich dann direkt mal testen ob das mit dem Bootloader nun klappt