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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren