Unter Windows 8.1 setze ich einen USB-Serial Stick ein, der mit 115.200 Baud betrieben wird. Der Stick ist furchtbar langsam. Verwende ich eine richtige serielle Schnittstelle, dann dauert das Flashen eines Controllers 3 Sekunden. Verwende ich den Stick, dann dauert es 30 Sekunden. Kann ich irgendetwas einstellen oder dauert es solange, weil der Vorgang noch über div. Treiber abgewickelt wird?
Wie benutzt du den USB->Seriell Wandler? Bestimmungsgemäß, also zur Seriellen Datenübertragung mittels RX/TX? => Das darf nicht so langsam sein. Oder in Verbindung mit einem Frickel-Bitbanging-ISP? => Schon tausendmal durchdiskutiert, das kann wg. USB-Timing-Anforderungen nicht schneller werden. Die konfigurierte Baud-Rate ist dabei völlig Schnuppe. Lösung: Bootloader einmalig auf den µC, und in Zukunft mit 115200 oder auch 2 MBaud flashen.
USB schrieb: > Wie benutzt du den USB->Seriell Wandler? > > Bestimmungsgemäß, also zur Seriellen Datenübertragung mittels RX/TX? Ja, so verwende ich ihn. > => Das darf nicht so langsam sein. Was kann ich noch messen oder unternehmen?
Achim schrieb: > Was kann ich noch messen oder unternehmen? Nimm den Wander, verbinde RX und TX mit einer Drahtbrücke ("Echo"), und messe so den Durchsatz. z.B. im Terminal-Programm 1MB-Datei hochladen lassen, Zeit stoppen.
Auf der Windows-Seite keine einzelnen Zeichen an den Treiber schicken, sondern immer gleich einen längeren Buffer, so daß nicht aus jedem Zeichen ein eigener USB-Transfer wird.
Guter Tipp. Verbinde ich Pin 2 und 3, dann erfolgt die Übertragung mit max. Geschiwndigkeit (115.200 Bd). D. h. es liegt nicht am Adapter. Da muss ich wohl etwas tiefer einsteigen. ---------------------------- Stand der Dinge: "Normale" RS232 -> AvrOspII-Flashprogramm -> Bord mit AVR910-Flashsoftware. Schnell (2 - 3 s). USB-RS232 -> AvrOspII-Flashprogramm -> Bord mit AVR910-Flashsoftware. Langsam (30 s).
Gerade was gegooglet: http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html#USB AVROSPII und USB-Wandler = langsam, bekanntes Problem offenbar. :-(
Das liegt daran, wie das PC Programm die Serielle Schnittstelle benutzt, ob sie einzelne Zeichen sendet oder ein ganzes Packet an den Treiber durchreicht. Falls du die Möglichkeit hast: schau dir den TX Pin am Logikanazlyzer oder Oszi an. Hatte selbst mal zwischen jedem übertragenen Zeichen 1ms Pause. Da stimmt zwar dann die Baudrate, aber nicht der Durchsatz.
Tassilo schrieb: > Gerade was gegooglet: > http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html#USB > > AVROSPII und USB-Wandler = langsam, bekanntes Problem offenbar. :-( Danke für den Link. Ist natürlich schade, dass ausgerechnet AVROspII den Blockmodus nicht unterstützt, da es sehr gut durchdacht und ebenso gut zu bedienen ist. Leider wird es nicht mehr weiter entwickelt.
Hi! Schau mal im Gerätemanager unter den Eigenschaften des USB-Serial-Wandlers nach. Findest du dort einen Eintrag in der du eine Zeit in Millisekunden einstellen kannst? Damit kannst du einstellen, wie lange der Treiber nach einem Zeichen auf weitere Zeichen wartet bevor er es über USB losschickt. Diese Zeit auf das Minimum setzen. Meist gibt es das gleiche nochmals für die Anzahl Zeichen, bevor das Paket losgeschickt wird. Da der Programmer allerdings nur einzelne Seichen sendet, wird die Einstellung hier kaum was bringen.
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.