CH341 transparent?

OP #5575082
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
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.
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
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

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.