USB2Seriell

Gast #89428
Lesenswert?
• ▲
▼
Ich habe ein Programm, das die Hex-code von dem PC durch serielle
Schnittstelle nach einen Microcontroller übertragen. Das heiß, dieses
Programm funktioniert nur mit einer seriellen Schnittstellle.
Nun habe ich einen Laptop erworben und der Laptop hat keine serielle
Schnittstelle, deshalb habe ich einen USB-Serielle Schnittstelle
gekauft und an meinen Laptop angeschlossen.
Wie soll ich dann nun an dem Programm melden, das es eine serielle
Schnittstelle gibt ?
#89429
Lesenswert?
• ▲
▼
"...und an meinen Laptop angeschlossen."

Und dann schreit er aber doch nach dem Treiber.

Wenn Du den dann installiert hast, sieh doch mal unter den
Schnittstellen nach.

Bei mir war da eine COM4, aber auch nur solange, wie das Kabel
eingesteckt ist.

Du must also das Kabel einstecken, bevor Du das Programm startest und
erst dann rausziehen, nachdem das Programm wieder beendet ist.


Beachte aber, der USB hat eine elend lange Latenzzeit.
Es ist also günstig, große Datenbrocken am Stück zu versenden, damits
auch schnell geht.
Ich schicke deshalb die Daten in Paketen zu 512 Byte.


Peter
Gast #89430
Lesenswert?
• ▲
▼
Ich hatte auch gedacht, dass USB Die Daten Packetweise verschickt.
Zumindest bei meinem Adapter (eigentlich ein USB-LCD Adpater für ein
serielles Crystalfontz Display, hat aber einen FT232 Chip drauf) kommen
auch einzelne Bytes quasi sofort an. Man kann zumindest keine
Verzögerung erkennen, wenn der CPU nicht gerade zu 100% ausgelastet
ist.
Gast #89432
Lesenswert?
• ▲
▼
Hallo peter dannegger
Danke für die Hinweise.
Bei mir ist es auch COM4, kann ich an dem Programm melden, daß es eine
COM4 gibt und das Programm starten, als der Laptop eine serielle
Schnittstelle hätte?
Der Port am Laptop ist physikalisch USB und das Programm sendet die
Daten nach der internen Implementierung an serielle Schnittstelle,
deshalb bin ich nicht sicher ob es wirklich funktioniert.
Für mein Zweck habe ich kein Problem mit der Latenzzeit
Gast #89433
Lesenswert?
• ▲
▼
@Peter:

Ich nehme mal an, diese Latenzzeit kann man nicht wesentlich verkürzen,
oder ? Ich programmiere meinen ATmega (Bootloader) via USB, und das ist
sooooooo langsam. Bei gleicher Baudrate ist es bei einer normalen
seriellen Schnittstelle um ein Vielfaches schneller.

Thorsten
#89434
Lesenswert?
• ▲
▼
@Thorsten,

siehe:

http://www.mikrocontroller.net/forum/read-4-53146.html#85425

Bis ATMega16 ist das auszuhalten und mehr brauchte ich bisher auch
nicht.

Bei einem randvollen ATMega128 siehts aber schon anders aus.

Da könnte man vielleicht die neuen Routinen ans Ende schreiben, damit
nicht immer alles komplett programmiert werden muß.
Und dann eine intelligente PC-Software, die mit dem letzten gebrannten
Hex-File vergleicht und nur die Unterschiede runtersendet.
Die könnte auch erst eine CRC anfordern, damit sie weiß, daß es auch
wirklich das letzte Hex-File war.


Peter

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.