Forum: PC Hard- und Software Langsamer Serial auf USB-Adaper


von Pascal (Gast)


Lesenswert?

Programm zum Flashen: AvrOspII
Hardware nach AVR910

Szenario 1

Flashen eines ATTinys direkt über die COM-Schnittstelle 2 - 3  Sekunden.

Szenario 2

Flashen eines ATTinys über einen USB-Adapter 15 - 20  Sekunden.

Kann das durch eine geeignete Wahl eines besseren USB-Adpater/Treibers 
auf die 2 - 3 Sekunden der Direktverbindung gebracht werden?

von Jim M. (turboj)


Lesenswert?

Wenn das normales ISP ist: Man nehme ein FT2232H Adapter und Avrdude. 
Die FT2232 Chips können ISP über MPSSE relativ zügig fahren.

von stromverdichter (Gast)


Lesenswert?

Hallo Pascal,
da die von dir verwendete Schaltung auf einer klassischen seriellen 
Schnittstelle basiert, kommst du um deren Nachteile bei Verwendung eines 
USB-Adapters nicht herum.
Die USB-Kommunikation geschieht paket-basierend. Für die Kommunikation 
mit deinem Programmieradapter muss jedes Byte einzeln in ein USB-Frame 
verpackt werden und dadurch mit viel Overhead zum Adapter verschickt 
werden. Die Signallaufzeiten sind dadurch sehr lange. Es gibt Adapter 
die das besser lösen, jedoch sind die sehr teuer und dein Programmer 
wird die nicht erkennen. Da du mit heutiger Hardware auf die Verwendung 
von USB angewiesen bist, solltest du einen USB-Programmer verwenden.
Wenn du selbst bauen oder günstig kaufen willst, schau dir mal die 
USBasp-Programmer an. Ansonsten macht das programmieren mir erst so 
richtig Spaß, wenn ich auch mal debuggen kann, um zu prüfen, wie die 
Register so stehen. Die Tinys haben je nach typ verschiedene 
Debug-Schnittstellen. Ich würde mir also den passenden Programmer für 
die jeweilige Schnittstelle besorgen. HV-Programming sollte da auch drin 
sein. Vielleicht findest du irgendwo bei ebay einen alten Dragon oder 
so.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

stromverdichter schrieb:
> Die USB-Kommunikation geschieht paket-basierend. Für die Kommunikation
> mit deinem Programmieradapter muss jedes Byte einzeln in ein USB-Frame
> verpackt werden und dadurch mit viel Overhead zum Adapter verschickt
> werden.

Und der entscheidende Punkt ist hierbei der, daß maximal ein Paket pro 
Millisekunde übertragen werden kann, was die auf diese Art und Weise 
erzielbare Übertragungsrate auf bestenfalls 1000 Bytes/sec beschränkt.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Bei den ftdi Adaptern kann man noch ein timeout einstellen das verwendet 
wird um Bytes in USB packete zu verpacken. Wenn man das auf 1ms stellt 
bringt das evtl. auch noch was.

Matthias

von Jim M. (turboj)


Lesenswert?

Rufus Τ. F. schrieb:
> Und der entscheidende Punkt ist hierbei der, daß maximal ein Paket pro
> Millisekunde übertragen werden kann,

Witzigerweise sind es 4 Pakete pro 1ms, wenn ein USB2.0 Hub dazwischen 
hängt. Und ja, das hab ich selbst ausgemessen. Hat was mit damit zu tun, 
das der Hub das auf USB High Speed übersetzt.

Heutzutage hat man sowas eigentlich fast immer rumfliegen, wäre also 
einen Versuch wert...

von Peter (Gast)


Lesenswert?

Jim M. schrieb:
> Rufus Τ. F. schrieb:
>> Und der entscheidende Punkt ist hierbei der, daß maximal ein Paket pro
>> Millisekunde übertragen werden kann,
>
> Witzigerweise sind es 4 Pakete pro 1ms, wenn ein USB2.0 Hub dazwischen
> hängt. Und ja, das hab ich selbst ausgemessen. Hat was mit damit zu tun,
> das der Hub das auf USB High Speed übersetzt.

Das hängt mit den Microframes zusammen, die dauern nur 125 Mikrosekunden 
statt 1 Millisekunde.

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
Noch kein Account? Hier anmelden.