Hi, hat sich hier schon mal jemand mit "Isochronem Transfer" bei V-USB (ehemals AVR-USB) beschäftigt? Ich möchte gerne eine feste Datenrate von min. 40 kbyte/s erreichen, was laut Wikipedia auch möglich sein sollte Zitat: >Full-Speed-Geräte können jede ms bis zu 1023 Bytes je isochronem Endpunkt >übertragen (1023 kbyte/s). In der V-USB Dokumentation konnte ich leider nichts finden.
V-USB implementiert ein Low-Speed-USB-Device; soweit ich weiß, gibt es für Low-Speed-Devices keine isochronen Transfers. > Low Speed > Low-speed transfers use a bus transfer rate of 1.5 Mb/s. This > is the actual rate at which bits are transferred over the bus > and does not include the overhead required for control and > error checking. > The actual data transfer rates possible in a low-speed system > will be considerably less than 1.5 Mb/s. > > Low speed also limits the modes of transfers allowed to the > interrupt and control modes. Data packets can only be 8 B > maximum. The maximum latency for interrupt transfers can be > as low as 10 ms. A maximum of 24 B/ms can be transferred > with a control endpoint and 8 B/10 ms with an interrupt endpoint. (Quelle: http://archive.evaluationengineering.com/archive/articles/0604/0604usb.asp)
Aha, so ein Mist. Von der Datenrate her müsste es aber trotzdem passen. Vielleicht kann man durch Polling Betrieb so eine Art Quasi-isochronen Transfer erreichen, wenn der Treiber das zulässt. Bis jetzt habe ich nur etwas über Interrupt Endpoints gelesen.
Andi S. schrieb: > Von der Datenrate her müsste es aber trotzdem passen. Rufus schrieb: > A maximum of 24 B/ms can be transferred > with a control endpoint also 24 Byte pro ms. Mal 1000, macht 24000 Bytes pro Sekunde, also etwas über 23KiB/sec. Ist also noch etwas weg von den mindestens 40kb/sec, die du ursprünglich wolltest.
Stimmt. Das wird zu knapp. Mich haben die 1,5 Mb/s in die Irre geführt. Dann werde ich wohl einen USB zu RS232 Konverter vor die UART Schnittstelle des ATMEGA hängen müssen.