Hallo! Ich habe folgendes Problem: Ich möchte den AT89S8252 (Elektor-Flashboard) programmieren, unter Windows 95 geht es recht zügig, unter Win-XP dauert es ewig bis der Code übertragen ist. Unter Win95 bin ich direkt an com2, unter WinXP habe ich einen USB->RS232 Adapter. Einstellungen habe ich beide identisch. zur Übertragung habe ich TASM und ATMELISP verwendet. Wenn jemand das gleiche Problem hatte (und gelöst bekam) oder einen Tip zur Beschleunigung der Übertragung hat wäre ich dankbar. mfg Felix
Da gibt es nur ein Lösung. Protokoll anpassen ansonsten hilft nur echte COM-Schnittstelle installieren oder Teil in die Tonne. Das Problem liegt daran, das über USB maximal jede ms (wenn nur ein Gerät angeschlossen ist) 64 Byte übertragen werden können. Ist das Protokoll an diese Länge angepasst, dann bemerkt man kaum einen Unterschied. Werden vom PC aber z.B. immer nur 5 Byte übertragen und dann auf eine Rückmeldung gewartet, dann geht die Geschwindigkeit natürlich enorm zurück. Die Schnittstelleneinstellungen sagen dem PC/Wandler nur, wie er die Daten auf der RS232-Seite ausgeben soll, nicht wie schnell der Datentransfer insgesammt ist. Steffen
@Steffen Nur mal eine Frage zum Verständnis: max. 64 Byte jede ms bedeutet also 64*8*1000=512000 Bit/s, oder ? Wie kommen dann z. B. die 14 MBit/s zustande, die USB kann ? Gruß Thorsten
@Steffen: 64 Byte / ms stimmt nicht. Das würde nur für Interupt Übertragung stimmen. Das Problem ist der Timeout im FTDI von 16 ms. @Thorsten USB 1.1: 12MBit/s ~1 MByte/s sind je nach HW zu erreichen oder 1.5MBits/s USB 2.0: 480MBit/s zusätzlich
Es sind genau 12 MBit pro Sekunde (USB 1.1). Es werden aber nicht nur reine Datenbyte übertragen sondern es wird ein Protokoll verwendet, was ja auch Platz benötigt. Die Daten werden in Paketen, sogenannten Frames versendet. Bei der normalerweise bei solchen Wandlern verwendeten Übertragungsart (alle zu erklären würde zu weit führen) enthält ein Datenpaket 64 Byte. Diese 64 Byte + Protokoll werden jede ms vom USB-Host (Rechner) gesendet bzw. vom USB-Endgerät geholt. Wie oft jedes Endgerät angesprochen wird hängt unter anderem davon ab, wieviele Geräte angeschlossen sind. Noch zu sagen ist, dass der Datenverkehr nur Halbduplex abläuft. Die Erklärung ist natürlich ganz stark vereinfacht. MfG Steffen
@Thomas Du hast Recht. Innerhalb eines Frames können mehrere Datenübertragungen (max. 13 bei Control- und max. 19 bei Bulk Transfer) stattfinden. Ist schon eine Weile her, wo ich mich mit den theorethischen Grundlagen beschäftigt habe. Steffen
@Steffen
Danke für die Info, jetzt ist mir klar warum... aber:
>> Protokoll anpassen
wie und wo?
bzw. gibt es Programme mit denen ich das einstellen kann?
Gruß Felix
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.