www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CP2102 UART USB Bridge


Autor: Debugger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo USB Experten,

hab ne frage zu dem CP2102 USB UART Bridge. Wie kann ich mich von der
Mikrocontroller seite her vor einem Pufferüberlauf schützen?

Ich habe ein Testprogramm geschrieben welches immer nur Daten in den
UART schiebt und es kommt vor dass Zeichenketten verloren gehen. Ich
denke dass der Interne Puffer des USB Bausteins überläuft. Wie kann ich
den Pufferstatus des CP2102 abfragen um keine daten nachzuschieben,
solange die alten nicht verschickt sind ???

danke

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hardwarehandshake verwenden. Zwischen µC und CP2102 müssen zusätzlich zu
RxD/TxD auch noch RTS/CTS bzw. DTR/DSR* verbunden werden, der µC muss
die entsprechende Handshakeleitung aktivieren und deaktivieren (je nach
Empfangsbereitschaft) und die auf dem PC, an den der CP2102
angeschlossen ist, eingesetzte Software muss die virtuelle serielle
Schnittstelle ebenfalls mit Hardwarehandshake ansteuern.

Es gibt auch ein Softwarehandshakeprotokoll namens XON/XOFF, dazu
sendet der µC ein Steuerzeichen, um seine Empfangsbereitschaft zu
signalisieren bzw. um mitzuteilen, daß er nicht empfangsbereit ist.
Da es hier aber unweigerlich zu Verzögerungen kommen kann, muss der µC
damit rechnen, daß trotz Senden von XOFF noch einige Datenbytes
eintreffen, bevor der PC mit dem Senden aufhört; der Empfangspuffer ist
also entsprechend zu dimensionieren.
Auch hier muss die PC-Software dieses Protokoll unterstützen und hier
muss darauf geachtet werden, daß die Steuerzeichen XON/XOFF nicht
versehentlich als Nutzdaten gesendet werden.
Das ist daher die unattraktivste Variante.

*) welches Pärchen bleibt Dir bzw. den Vorgaben der von Dir auf dem PC
eingesetzten Software überlassen

Autor: Debugger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie kann ich dann checken ob der USB Puffer voll ist oder nicht ???
Kann man dies nicht mit der Suspend Leitung irgenwie regeln. Viele
Applicationen die ich gesehen habe verwendien RX, TX und Suspend aber
kein RTS und CTS.

Ich dachte dass vieleicht CTS automatisch gesetzt wird wenn der interne
Puffer voll ist.

Wo bekomme ich eigentlich infos über die geanaue Portfunktionen des
CP2102 ?

danke an euch

Autor: Debugger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo habe gerade nachgelesen was Suspend zu bedeuten hat.

Es bedeutet dass der HOST heruntergefahren ist (also zB. der PC im
Ruhezustand) dies ist wichtig um die Stromaufnahme eines BUS Powered
Devices zu minimieren.

Kann mir vieleicht jemand sagen ob die von "Rufus" vorgesteltte
Methode über CTS und RTS die einzige möglichkeit ist eine sichere
Datenverbindung zum PC zu bekommen (damit man nicht in den
übergelaufenen Puffer des CP2102 schreibt) oder kann man noch andere
Tricks anwenden den Pufferstatus abzufragen, ich möchte eben nicht mit
Hardwarehandshake fahren sondern nur wissen ob der USB Baustein noch
Daten aufnehmen kann oder nicht

thx

Autor: user (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
???

Autor: rufus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hat jemand schon einmal X-on/X-off mit dem CP2102 praktiziert. Ich finde 
leider keine Doku diesbezüglich im Netz und der Linux Treiber 
unterstützt diese Funktionalität auch nicht.

Danke

rufus

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.