Hallo zusammen, ich überarbeite gerade eine ältere Platine und habe die konventionelle RS232-Schnittstelle durch eine USB-Schnittstelle ersetzt. Was mir negativ auffällt, ist das wenn ich SW über den BSL einspielen will die Übertragung über USB ca. 3x so lange dauert, wie wenn ich die selbe Platine über RS232 programmiere. Konfiguration des FT232RL: Buspowered, #DTR inverted, 3.3V auf Prozessorseite Beispiel: 152KB Hexfile BSL über RS232: 23 sek BSL über USB: 81 sek. Was ich nicht verstehe, die Baudrate ist ja Fix, also was verursacht die Verzögerung? Hat jemand schon die selben Erfahrungen gemacht und hat jemand den Grund dafür gefunden? Oder gibt es eine Lösung ohne Zeitverlust? MFG Fabio
Ich hab auch so eine Schaltung mit FT232 im Einsatz, kann aber nicht mit der direkten Verbindung vergleichen. Ich könnte mir nur vorstellen, dass die Loadersoftware am PC immer nach jedem gesendendeten Byte wartet, ob es richtig zurück kommt. Der MSP430 schreibt ja jedes empfangene Byte zurück. Der FT232 hat relativ große FIFO Puffer, es könnte da eben sein, dass der Durchlauf der Daten durch die Puffer so lang dauert und der PC entsprechend bei jedem Byte auf die Antwort warten muss. Vielleicht kann man die Puffer abschalten? Ich wüsste aber jetzt nicht wie. Vielleicht hilft auch eine selbst geschriebene PC-Software, die den Zeitverstz akzeptiert, ohne zu warten - oder kann man das BSL-Programm vom mspgcc auch so konfigurieren? Weiß ich auch nicht. Grüße, Peter
In den Einstellungen für den FT232R kann ich keine Änderungen der Grösse für den FIFO Puffer vornehmen. Der Support von FTDI hat mir bei einem ähnlichen Problem bei einem Serial to USB Adapter (ebenfalls mit einem FTDI chip drin) geschrieben dass ich die Latency von Standard 16 auf 3ms herunterstellen soll. Dies über die erweiterten COM-Port Einstellungen des Betriebssystems. Dies hat damals eine Verbesserung gebracht. Momentan bin ich ratlos... Ich verwende ProgBox von Synasys, habe es auch schon mit anderen BSL's versucht. Mit dem gleichen Ergebnis. MFG Fabio
Also die Puffergröße kann man einstellen, im gerätemanager beim virtuellen COM Port. Minimum ist aber 64 Byte. Latency so klein wie möglich. Aber viel schneller wirds nicht werden, da die Bytes kleckerweise übertragen werden. Dafür ist USB nicht ausgelegt.
Also kann ich nicht davon ausgehen dass ein USB to Serial Baustein auch wie eine COM Schnittstelle behandelt wird. Auch wenn er als VirtualPort gelistet wird. Ist es denn möglich den BSL Blockweise zu füttern? anstatt Byte weise? Wenn ich Christians Antwort richtig verstanden habe liegt da der Hund begraben...
Nee, soweit ich weiß, verkaftet der BSL immer nur 8 Bytes am Stück. Außerdem muss man ständig auf die Antwort warten. Das bringt alles nix dann. Musst du mit leben, dass es langsam ist. Für große Blöcke geht USB Serial richtig fix, aber für so einen kleinen Hin- unf Her-Transfer halt nicht.
ok, herzlichen Dank für die Infos, hab ich wieder was gelernt dabei =)
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.