Moin, Folgende Aufgabe: Ich muss auf UART "xxx" (wirklich xxx) sofort nach dem Power-up/Reset meines DUT/Prüflings (LANTRONIX Device) senden um ins Setup zu kommen. Meine Idee: Ich habe mir überlegt, dazu mein DUT über den DTR-Pin vom CH340* zu resetten. Ich hänge an meinen Prüfling eine USB-UART-Bridge (CH340C/G), mache mein TeraTerm (Terminal Programm) auf und starte ein Macro. Dieses Macro stellt den UART ein (Baudrate/Start/Data-Bits/Stop/Flow) und togglt den DTR-Pin (das kann TeraTerm über Kommando: "setdrt on/off" und der CH340* supportet das laut datasheet) vom CH340* um das DUT zu resetten. Ich sende so lange "xxx" (ohne CR/LF) bis ich irgendwas im Terminal empfange/etwas im RX-Buffer habe. Sobald ich was im RX-Buffer habe, weiß ich, dass ich im Setup bin, weil wenn nichts ankommt bootet mein DUT durch oder ist kaputt. Die Idee habe ich mir im Arduino-Nano-Schematics abgeschaut, weil dieser ja auch immer resettet werden muss, wenn ich ein neues Sketch aufspiele. Nun die Frage: Kann mir jemand sicher sagen ob der DTR-Pin am CH340* einfach ein HIGH/LOW-Driver oder ob das Open-Collector ist? Der Pull-Up beim Arduino-Schematics ist wohl primär für den ATmega328, damit /Reset nicht getriggert ist im Betrieb. Hat jemand eine Ahnung ob der CH340* nur nach GND ziehen oder auch nach VCC ziehen kann? Danke und Grüße (:
DTR ist genauso wie TXD und RTS ein Push-Pull-Ausgang, braucht also keinen Pull-Up-Widerstand. Open Collector wäre höchstens dann sinnvoll, wenn DTR primär als Reset-Signal gedacht wäre. Dann würde er aber nicht DTR, sondern RSTOUT o.ä. heißen.
Danke! Wird DTR denn von irgendwas gesetzt/resettet außer von meiner USB-UART-Bridge, wenn ich nur RXD/TXD verbunden habe? Denn heißt ja "Data Terminal Ready" - ich gehe davon aus, dass nur meine Bridge diesen Status ändern kann. Richtig? Grüße! (:
:
Bearbeitet durch User
Micha W. schrieb: > ich gehe davon aus, dass nur meine > Bridge diesen Status ändern kann. So ist das, das per USB angeschlossene Terminal setzt DTR. Schaue Dir mal das Schaltbild eines China-Arduino Nano oder Uno an: Der Reset vom AT328 ist bei low aktiv. Das sitzt ein Widerstand nach Plus (pull-up) und der DTR des CH340 hängt über einen Kondensator mit 100nF dran. Blöd ist, dass die (meisten?) CH340-China-Platinchen aus dem A*Umfeld den DTR nicht auf die Stiftleiste führen. Ich kenne einen kommerziellen Programmieradapter, wo ein FT2232 eingesetzt ist, also zwei V24 emuliert werden. Die eine dient ausschließlich der Datenübertragung, von der zweiten Schnittstelle werden nur zwei Statusleitungen verwendet, um das Zielgerät zu steuern. Erfordert natürlich, selbst die passende PC-Software zu erstellen.
Jipp, die 100nF sind da, damit der /Reset sicher losgelassen wird sobald die Betriebsspannung steht. Die USB-UART-Platinen (CP2102 usw) kenne ich auch zu gut. Ich baue meinen Prototyp auf 1,27mm Lochraster auf und darum auch der CH340. Ich würde auch gern den FTDI nutzen aber das Rastermaß ist beim CH340 ideal, er ist billig, funktioniert ohne externen XTAL und ich habe keine Lust jedes Mal das "IgnoreHardwareSerNum" in die Regestriy zu hacken, wenn man ein Massenprodukt hat - zumal Kundenmesstechnick das oft nicht zulässt ;) Der CH340 zählt keine VCPs hoch solange man am gleichen USB-Port bleibt :P Naja, meine "Software" sind halt einfache Macros. Man könnte fast sagen "quick'n'dirty". Grüüßee (:
Micha W. schrieb: > Jipp, die 100nF sind da, damit der /Reset > sicher losgelassen wird sobald die Betriebsspannung steht. Nicht nur: Der CH340 liefert sowohl aktiv high als auch low, was Deine Ursprungsfrage war. Was nun, wenn der Resettaster betätigt wird oder der ISP-Programmer zugreifen will, während der DTR auf H steht? Da dient der C primär dazu, Kollisionen zu verhindern! > würde auch gern den FTDI nutzen Ich nicht: Deren Kram ist teuer und sie sind vor wenigen Jahren mit Computersabotage aufgefallen, Zerstörung illegaler Nachbauten. > er [CH340] ist billig, funktioniert ohne externen XTAL Warum ist auf den Chinaplatinen dann ein Quarz drauf? > und ich habe keine Lust jedes Mal das "IgnoreHardwareSerNum" > in die Regestriy zu hacken Das Teil heißt "Registry". Heisst das, Du kennst einen Weg, die Hochzählerei der Portnummern zu verhindern? Wenn ja, hätte ich gerne Details dazu. > Der CH340 zählt keine VCPs hoch Das finde ich sehr angenehm, hier haben alle Arduinos und Portadapter immer die selbe ComPort-Nummer - ich habe mehrere Adapter von USB nach Sub-D mit CH340.
Manfred schrieb: > Micha W. schrieb: >> Jipp, die 100nF sind da, damit der /Reset >> sicher losgelassen wird sobald die Betriebsspannung steht. > > Nicht nur: Der CH340 liefert sowohl aktiv high als auch low, was Deine > Ursprungsfrage war. Was nun, wenn der Resettaster betätigt wird oder der > ISP-Programmer zugreifen will, während der DTR auf H steht? > > Da dient der C primär dazu, Kollisionen zu verhindern! Habe ich nicht bedacht - Punkt für dich ;) >> würde auch gern den FTDI nutzen > > Ich nicht: Deren Kram ist teuer und sie sind vor wenigen Jahren mit > Computersabotage aufgefallen, Zerstörung illegaler Nachbauten. > >> er [CH340] ist billig, funktioniert ohne externen XTAL > > Warum ist auf den Chinaplatinen dann ein Quarz drauf? Weiß ich auch nicht... meine Arduino-Nano-Clone haben nen CH340C drauf ohne Cristall (SMD-Pads für den Crystal sind aber da). Ob das der CH340G auch kann weiß ich nicht. Ich vermute bei höheren Baud-Raten wird man dann Bit-Fehler finden. >> und ich habe keine Lust jedes Mal das "IgnoreHardwareSerNum" >> in die Regestriy zu hacken > > Das Teil heißt "Registry". Danke <3 > > Heisst das, Du kennst einen Weg, die Hochzählerei der Portnummern zu > verhindern? Wenn ja, hätte ich gerne Details dazu. > windows-start-menue, ausführen/einfach eingeben "regedit" dann im pfad "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\UsbFlags rechtsklick auf "UsbFlags" und "eintrag hinzufügen" oder so (sry, arbeite mit linux) und binär-wert hinzufügen. Der Name des Werts heißt "IgnoreHWSerNum0403601000". Der Wert darin ist "00" oder "0000" . Du kannst dahinter dann "01" eintragen. Das nächste FTDI232-Device meldet sich dann als Com23 an. Alle anderen FTDI232 sollten sich am gleichen Port auch mit Com23 melden. >> Der CH340 zählt keine VCPs hoch > > Das finde ich sehr angenehm, hier haben alle Arduinos und Portadapter > immer die selbe ComPort-Nummer - ich habe mehrere Adapter von USB nach > Sub-D mit CH340. Was machen da eigentlich die Arduino Rev3 dinger, die den ATmega16U* als USB-UART-Bridge haben? Alle der gleiche Port? Gruß, michi (:
FTDI232 die schon mal am rechner waren, melden sich natürlich als deren alter COM an! Um alle FTDI232 ob alt/jungfräulich gleich zu melden ist (wohlwollend formuliert) richtig sackstand! Dazu musst du dann alle alten regestry-einträge löschen, wenn du weißt welcher FTDI-Chip welche ID hatte :P Das macht Spaß (:
Manfred schrieb: > Heisst das, Du kennst einen Weg, die Hochzählerei der Portnummern zu > verhindern? Wenn ja, hätte ich gerne Details dazu. https://www.ftdichip.com/Support/Knowledgebase/index.html?ignorehardwareserialnumber.htm Für diverse Fälle :) Grüüßee (:
Micha W. schrieb: >> Da dient der C primär dazu, Kollisionen zu verhindern! > Habe ich nicht bedacht - Punkt für dich ;) Genau deswegen sprechen wir hier! >> Warum ist auf den Chinaplatinen dann ein Quarz drauf? > Weiß ich auch nicht... > meine Arduino-Nano-Clone haben nen CH340C drauf > ohne Cristall (SMD-Pads für den Crystal sind aber da). Meine nicht. >> Du kennst einen Weg, die Hochzählerei der Portnummern zu >> verhindern? Wenn ja, hätte ich gerne Details dazu. >> > "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\UsbFlags > rechtsklick auf "UsbFlags" und "eintrag hinzufügen".. Danke, abgespeichert, schaue ich mir bei Gelegenheit an. >>> Der CH340 zählt keine VCPs hoch >> Das finde ich sehr angenehm, hier haben alle Arduinos und >> Portadapter immer die selbe ComPort-Nummer > Was machen da eigentlich die Arduino Rev3 dinger, > die den ATmega16U* als USB-UART-Bridge haben? > Alle der gleiche Port? Ich habe keine Ahnung, meine A* waren von Anfang an Chinesen. Der UNO ist mechanisch selten dämlich und die Nanos waren unverschämt teuer. Micha W. schrieb: > Um alle FTDI232 ob alt/jungfräulich gleich zu melden ist > (wohlwollend formuliert) richtig sackstand! > Dazu musst du dann alle alten regestry-einträge löschen, Ich bedauere: Registry Nicht nur FTDI, auch SiliconLabs zählen hoch. Micha W. schrieb: > https://www.ftdichip.com/Support/Knowledgebase/index.html?ignorehardwareserialnumber.htm > Für diverse Fälle :) Ja Mist, hätten wir das vor ein paar Jahren gewusst, hätte das auf dem Prüfplatz der Fertigung die regelmäßige Fummelei erspart.
Manfred schrieb: > Micha W. schrieb: >>> Da dient der C primär dazu, Kollisionen zu verhindern! >> Habe ich nicht bedacht - Punkt für dich ;) > > Genau deswegen sprechen wir hier! > >>> Warum ist auf den Chinaplatinen dann ein Quarz drauf? >> Weiß ich auch nicht... >> meine Arduino-Nano-Clone haben nen CH340C drauf >> ohne Cristall (SMD-Pads für den Crystal sind aber da). > > Meine nicht. Foto folgt ;) > Micha W. schrieb: >> Um alle FTDI232 ob alt/jungfräulich gleich zu melden ist >> (wohlwollend formuliert) richtig sackstand! >> Dazu musst du dann alle alten regestry-einträge löschen, > > Ich bedauere: *Registry* Ja - Registry. Ich tippe das noch ein paar mal, dann hab ich's... Registry, Registry,Registry (: > Nicht nur FTDI, auch SiliconLabs zählen hoch. > SiLabs hatte ich nich nicht viele. aber kann ich morgen mal ausprobieren. > Micha W. schrieb: >> > https://www.ftdichip.com/Support/Knowledgebase/index.html?ignorehardwareserialnumber.htm >> Für diverse Fälle :) > > Ja Mist, hätten wir das vor ein paar Jahren gewusst, hätte das auf dem > Prüfplatz der Fertigung die regelmäßige Fummelei erspart. Ich habe das an unseren Prüfplätzen 2012 eingerichtet :/ Aber Hey - Nero hat Rom auch nicht an einem Tag abgebrannt :P
Aus dem schlecht übersetzten Datenblatt: "For CH340G T R chip, the crystal X2, capacitors C6 and C7 for clock oscillation circuit." "For CH340C E B chip, no crystal X2 and capacitor C6 and C7." Allerdings: "CH340G CH340T CH340R transmission signal baud rate error is less than 0.3%" "CH340C CH340E CH340B transmission signal baud rate error is less than 1%."
:
Bearbeitet durch User
Micha W. schrieb: > Weiß ich auch nicht... meine Arduino-Nano-Clone haben nen CH340C drauf > ohne Cristall (SMD-Pads für den Crystal sind aber da). Ob das der CH340G > auch kann weiß ich nicht. Das ist doch ganz einfach: Frühe und einfache USB2Serial Designs hatten allesamt einen Quarz, FTDI zu Anfang auch. Irgendwann hat es sich durchgesetzt, dass man aus dem SOF-Signal des USBs (welcher GENAU jede 1ms zuschlägt) den internen primitiven RC-Oszillator nachregelt. Das ist einfach ein Zähler, der zwischen zwei SOF einen gewissen Wert erreichen soll. Gespeist wird dieser Zähler vom internen RC-Oszillator. Wenn der Wert jetzt zu hoch oder zu niedrig ist, wird der RC-Oszillator entsprechend korrigiert. Führt zu einem gewissen Jitter, ist aber tolerabel. Die ersten CH340 waren mit Quarz, die neuen Revisionen gibt es auch ohne. Beide Versionen findet man heute auf dem Markt. >Ich vermute bei höheren Baud-Raten wird man dann Bit-Fehler finden. Ein schlechter Baudratengenerator schlägt bei allen Bitraten (also auch bei niedrigen Baudraten) durch, einfach mal den Gedanken durchspielen.
Hier noch die Versionen, die existieren (evtl. gibt es auch noch mehr) https://www.mpja.com/download/35227cpdata.pdf
Max M. schrieb: > "For CH340G T R chip, the crystal X2, capacitors C6 and C7 for clock > oscillation circuit." > "For CH340C E B chip, no crystal X2 and capacitor C6 and C7." Das passt: Der USB-Adapter 13.07.2020 21:46 liegt hier auf dem Tisch, da ist ein -G drauf. Ein Nano mit Quarz hat auch einen CH340-G, vier andere im Bestand mit Quarz sind ungestempelt :-( USB wird generell bei Eingang getestet, ich spiele ein erweitertes Blink auf. Auf dem Bild von TO 14.07.2020 09:07 meine ich, ein C zu lesen, wo kein Quarz dran ist. Damit hast Du geholfen, Quarz oder nicht Quarz zu klären und Micha W. kann die Falle vermeiden, den falschen Untertyp einzusetzen.
TO schrieb: > Nachreichung meine Nano-Clones ohne XTAL am USB-UART Zeige doch auch mal die andere Seite. Es gibt Versionen des Nano, die 2 Quarze auf der Oberseite haben.
Robert schrieb: > Zeige doch auch mal die andere Seite. Es gibt Versionen des Nano, die 2 > Quarze auf der Oberseite haben. Siehe Bilder, noch Fragen?
Nachreichung Nano-Clone-Top.# Nicht über den Zustand wundern. Bei uns gehen regelmäßig Nanos in der Ausbildung kaputt. Lehrlinge haben das unglaubliche Talent Schlüsse mit Messspitzen herzustellen und die ATmegas zu himmeln. Ich bekomme dann die kaputten Boards und sammel mir die USB-UART-Bridges für diverse Testadapter runter. Harald schrieb: > Hier noch die Versionen, die existieren (evtl. gibt es auch noch > mehr) > https://www.mpja.com/download/35227cpdata.pdf Dieses Datenblatt habe ich später dann auch gefunden - dann war alles klar zum Thema Quarz und wie viele Varianten es gibt und auch unterschiedlich auf den Klonen zu finden sind.
TO schrieb: > Lehrlinge haben das unglaubliche Talent ... Ich habe mir mal ein paar Adapterplatinen gekauft, die kamen als lose Bauteile. Die Schraubklemmen habe ich nicht bestückt, aber ich kann dran rumbraten und den Nano umstecken. Wäre das eine Empfehlung an Eure Lehrwerkstatt?
Coole Idee zum Basteln. In unserer Ausbildung wird aber sehr viel mit Lochraster/Streifenraster Euro-Platinen gearbeitet. Daher nehmen die auch immer den Nano - beim Uno könnte man ja einfach den ATmega mit DIP-Package tauschen - aber "irgendwer" ist ja auf die geniale Idee gekommen beim Uno auf einer Seite nen 1/20" RM Step an der Konnektierung reinzunageln :/
Wer bastelt denn noch mit Lochraster wenn Custom-PCBs inzwischen günstiger sind?
Max M. schrieb: > Wer bastelt denn noch mit Lochraster wenn Custom-PCBs inzwischen > günstiger sind? Löten auf Lochraster ist zwar old-school und uncool, bringt aber viel für Löterfahrung und Fingerfertigkeit. Man darf eben nur nicht ausschließlich auf diesen Methoden verharren, zeitgemäße Konstruktionsweisen gehören auch zur Ausbildug, klar!
TO schrieb: > Coole Idee zum Basteln. > In unserer Ausbildung wird aber sehr viel mit > Lochraster/Streifenraster Euro-Platinen gearbeitet. Auf Deinen Bildern sind am Nano keine Stiftleisten eingelötet, stattdessen sieht man, dass direkt dran herumgebraten wurde - deshalb mein Vorschlag mit der Adapterplatte. Max M. schrieb: > Wer bastelt denn noch mit Lochraster wenn Custom-PCBs inzwischen > günstiger sind? Na ich, für Einzelstücke malt man keine Leiterplatte. Da die Schaltung ja noch nicht erprobt ist, kann ich auf Lochraster Fehler besser korrigieren.
Manfred schrieb: > Auf Deinen Bildern sind am Nano keine Stiftleisten eingelötet, > stattdessen sieht man, dass direkt dran herumgebraten wurde - deshalb > mein Vorschlag mit der Adapterplatte. Das ist ein Board aus nem Projekt mit 3D-Druck. Da wurde die Platine ohne Leisten eingepasst. Hier noch ein paar Bilder zum halb fertigen Adapter für den Test der Module, die ich eingangs erwähnte. gruß (:
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.