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
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.
R. F. schrieb: > Ich wüsste jetzt, ob das > programmiertechnisch einen Unterschied macht. Einen Unterschied zu was?
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.
Vielen Dank für die Antworten. Ich brauche in der Software keine Unterscheidung, ob der Chip da ist oder nicht? Das wird doch alles interruptgesteuert? Oder nicht Gruss Robert
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.
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.