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 ?
"...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
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.
@Benedikt, "sofort" ist relativ. Bei 1200 Baud wirst du keinen Unterschied merken, bei 115200 Baud dagegen schon. Peter
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
@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
@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
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.