CH341 transparent?

OP #5575082
Lesenswert?
• ▲
▼
Hallo allerseits,

ich schreibe gerade eine Software in C, die auf einer Arduino Hardware 
laufen soll. Sie enthält eine Kommunikation zwischen dem AVR und einem 
Termial. Der Arduino hat aber einen CH341 drin. Ich wüsste jetzt, ob das 
programmiertechnisch einen Unterschied macht.

Gruss

Robert
Moderator Persönliche Seite #5575088
Lesenswert?
• ▲
▼
Seriell über USB sendet üblicherweise nicht Zeichen pro Zeichen, denn 
USB arbeitet mit Paketen, und ein Zeichen pro Paket ist sehr 
ineffizient. Weiß nicht, wie der CH341 das handhabt, aber übliche 
Strategie ist, dass man, sofern nicht gerade der Puffer zum Absenden 
eines USB-Pakets voll ist, einige Zeit wartet, ob noch weitere Zeichen 
kommen, bevor das zum Host geht.

Keine Ahnung, ob das für deine Applikation nun ein Unterschied zu einer 
echten seriellen Schnittstelle ist oder nicht.
#5575097
Lesenswert?
• ▲
▼
Du hast programmtechnisch keinen Einfluss auf den USB Chip. Das einzige 
was der tut ist dem Arduino ein serielles Terminal vorzugaukeln und 
Deinem PC einen virtuellen COM Port, via Treiber, um vom PC aus so zu 
tun, als wäre dieser direkt an die TxD und RxD Leitungen des Atmega328 
angeschlossen.

Auf der Atmegaseite programmierst Du also nur über den UART. Wie der 
Ch341 das dann in Pakete packt ist sache dieses Chips.
Gast #5575143
Lesenswert?
• ▲
▼
Dein Programm auf dem AVR spricht den UART an, wahlweise mit oder ohne 
Interrupts.

Die Kommunikation über einen USB-UART Adapter unterscheidet sich zu 
einer Kommunikation über RS232 Adapter nur im Timing. Du wirst bei USB 
Verzögerungen im einstelligen Millisekunden-Bereich feststellen.

Dein Programm muss so geschrieben sein, dass es dies toleriert. Wenn es 
Dir nur um Bildschirmausgaben und Tastatureingaben geht, spielt dieses 
Detail im Timing keine Rolle.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.