Ich habe ein Gerät gekauft, das einen ATmega-Mikrocontroller und einen FTDI -Chip hat, der über USB an einen Computer angeschlossen wird. Der FTDI wird nur als RS-232-zu-USB-Adapter verwendet.
Mein Problem ist, dass dieses Gerät den PC auflegt, wenn einige der Maschinen laufen. Ich habe die Kabel gegen dicke, stark abgeschirmte ausgetauscht. Auch das Kabel befindet sich in einem Stahlrohr. Und das Gerät selbst steckt in einem 2 mm Edelstahlgehäuse. Das angeschlossene Gehäuse liegt an Masse.
Erstaunlicherweise tritt das Problem nicht auf, wenn man mit diesem Gerät arbeitet, sondern mit einer reinen RS-232-Version. (Die RS-232-Version funktioniert sogar mit billigem Kabel. keine Probleme.)
Meine Fragen sind:
Einzige Voraussetzung ist, dass für den Konverter Treiber sowohl für Windows als auch für Linux vorhanden sein müssen.
Bei meiner letzten Firma haben wir festgestellt, dass USB-zu-RS-232-Konverter ein Problem haben können, wenn sie eine fast sofortige Antwort vom RS-232-Gerät erwarten. Ich wurde vom Konstrukteur unserer Geräte darauf hingewiesen, dass USB Datenpakete verwendet. Wenn Sie also USB verwenden, kann der USB-Treiber mehr als eine Sekunde (5000 ms) warten, bis das Paket gefüllt ist, bevor die Software/Treiber das Senden eines USB-Datenpakets erzwingen, bevor das unvollständige Datenpaket gesendet wird.
Dies bedeutete, dass viele ältere DOS/Windows-Programme, in denen sie die RS-232-Statuszeilen überwachten, eine Zeitüberschreitung aufwiesen. Die älteren Programme verwendeten häufig Zeitschleifen, die auf einer bestimmten Anzahl von Schleifen basierten ... Je schneller die PCs wurden, desto schneller wurde die Abfrage. Als die Dauer der Abfragen immer kürzer wurde, kam USB hinzu.
Das Polling wurde quasi zu einem Speicherplatz... (Die Treiber sind meist auf maximalen Datenpaketdurchsatz optimiert und haben die Statusinformationen nicht weitergegeben, weil sie darauf warteten, ein Paket zu füllen). Die Treiber können manchmal angepasst werden, um dabei zu helfen. FTDI-Treiber können viele Werte in ihrer Konfigurationsdatei anpassen. (Ideal für nicht standardmäßige Datenraten.)
Das bedeutete, dass wir oft Programme auf Desktops mit RS-232-Anschlüssen ausführen oder die Laptop-Basisstation zu den Geräten ziehen mussten, damit sie funktionierten.
Siehe Seite 6 der Anwendungsnotiz Erweiterte Treiberoptionen für USB-Timeout-Anpassungen...
Und für ungerade Baudraten bis zu 3 Mbit/s siehe Konfigurieren von FT232R-, FT2232- und FT232B-Baudraten .
Eine mögliche Ursache für die beschriebene Problemmeldung ist ein Pegelunterschied zwischen der PC- und der Industriegeräteseite. Dies ergibt sich aus ähnlichen persönlichen Erfahrungen mit dem Entwerfen für industrielle Anwendungen.
Entweder das oder einige signifikante Transienten, die die Verbindungen durchqueren - RS232 ist in gewisser Weise nachsichtiger als USB.
Eine zu prüfende Sache ist, ob die beiden Erdungen verbunden sind, und selbst wenn dies der Fall ist, ob es einen signifikanten Potentialunterschied gibt, damit ein messbarer Dauerstrom, Gleichstrom oder Transient, entlang der Erdungsverbindung / Kabelabschirmung fließt.
Eine Lösung wäre eine galvanisch oder optisch isolierte Implementierung: Die Steuerleitungen der industriellen Sensoren/Aktoren müssen von der PC-Seite durch (a) Transformatorkopplung oder (b) Optokoppler getrennt werden, je nach den spezifischen Designanforderungen. Die Mikrocontroller-Vorrichtung könnte auf beiden Seiten der Isolationsbarriere platziert werden.
In der Praxis ist der einfachste Weg, dies zu implementieren, sobald die Notwendigkeit einer Isolierung festgestellt wurde, die Verwendung eines eigenständigen USB-Isolationsgeräts wie dieses von Olimex an der USB-Verbindung vom PC zur Platine:
.
Ein weiteres solches Gerät ist der USB Port Guardian , etwas besser verpackt, aber im Wesentlichen ähnlich in der Funktionalität.
Keines dieser Geräte scheint jedoch in extrem rauen Umgebungen gut zu überleben – wir haben einige Geräteausfälle in bereitgestellten Setups erlebt, aber Ihre Umgebung ist möglicherweise nicht so herausfordernd.
Auf Designebene bietet Analog Devices in seiner iCoupler-Reihe Einzelpaket-USB-Isolationsteile an . Die Integration eines solchen Teils in das Design ist nicht sehr kompliziert, und das Design-Support-Team von Analog Devices ist sehr proaktiv, wenn Sie Hilfe benötigen.
Spezifisch zu den 3 Punkten in der Frage:
Die Antwort von Anindo ist genau richtig - ich vermute stark, dass Sie zu viel Erdung haben und die PC-USB-Erdung von der Maschinerie herumgeschleift wird.
Unserer Erfahrung nach sind FTDI-Chips die besten, daher würde ich sie nur ungern als Fehlerursache verantwortlich machen.
Die Datenleitungen von USB können differentiell sein , aber sie sind nicht isoliert, und die Strom- und GND-Leitungen könnten überall im Zielgerät verlaufen - nicht gut, wenn das Zielgerät Masseverbindungen hat, die nicht mit dem PC üblich sind.
Viele USB-Controller-Chips in PCs werden heruntergefahren, wenn sie Überstrombedingungen usw. erkennen. Es ist also durchaus möglich, dass die Maschine die Strom-/Erdungsleitungen herumzieht und dem PC einen Herzinfarkt verursacht.
Ich würde den 232 zum PC laufen lassen und dann den Konverter am PC-Ende haben oder sogar auf RS485/422 konvertieren (viele Maxim-Chips dafür) und zurück am PC-Ende. Es gibt FTDI USB/232/485-Boards bei eBay für 10 $, wir verwenden viele davon.
Ich bin mir nicht sicher, ob dies Ihr Problem ist, aber auf meinem vorherigen PC konnte die Verwendung eines USB-Seriell-Konverters in Kombination mit bestimmten anderen Anwendungen (insbesondere Audio und Video) dazu führen, dass mein PC hängen blieb und häufig neu gestartet wurde. Dies ist nicht passiert, wenn ich dasselbe Gadget und dieselbe Anwendung mit der echten (Hardware-) seriellen Schnittstelle verwendet habe. Ich habe nie herausgefunden, was die Ursache war, ich habe nur gelernt, das Ansehen von Videos während der intensiven Nutzung des seriellen USB-Anschlusses zu vermeiden. AFAIR passierte dies sowohl mit FTDI als auch mit produktiven Konvertern. Es könnte ein SW-Problem (Windows-Version, USB-Stack) oder vielleicht Hardware (flockiges Motherboard) gewesen sein. Mit meinem neuen PC (andere Windows-Version) ist mir dieses Problem noch nie begegnet. (Was umso besser ist, da es keinen seriellen Hardwareanschluss hat.)
geometrisch
geometrisch
drzymala