> 64 byte endpoints on XMega

47 views
Skip to first unread message

Nick Sayer

unread,
Apr 29, 2017, 12:54:38 PM4/29/17
to LUFA Library Support List
I see the release notes say >64 byte endpoints aren't supported, and - sure enough - they don't work.

I've started down the road of seeing if I could fix it. I found the most obvious things to change in Endpoint_XMEGA.h - namely the test in Endpoint_ConfigureEndpoint and the size of Data[] in Endpoint_FIFO_t, but that doesn't seem to be enough. It seems like the first large transfer (this is a mass storage device) causes the device to just hang during setup - it never even gets to the point of starting the bulk data movement.

I can't see any other overt references to 64 that would seem to matter, and I don't see anything in the XMega manual that talks about such a limitation.

Can someone point me in the right direction?

Nick Sayer

unread,
Apr 29, 2017, 1:25:08 PM4/29/17
to LUFA Library Support List
Oh, never mind. I see the problem. Buffers larger than 64 bytes are only supported for isochronous transfers (table 20-5, http://www.atmel.com/Images/Atmel-8331-8-and-16-bit-AVR-Microcontroller-XMEGA-AU_Manual.pdf).

Bummer.

Paul Stoffregen

unread,
May 3, 2017, 6:03:00 AM5/3/17
to lufa-s...@googlegroups.com
That's not just an AVR Xmega limitation.

The USB spec says the maximum packet size at 12 Mbit/sec full speed is 64 bytes for control, bulk and interrupt endpoints.  Only isochronous is allowed larger packets, up to 1023 bytes.

At 480 Mbit/sec high speed, bulk and interrupt are allowed to use up to 512 bytes.  Control is still limited to 64 bytes.  Isochronous gets a maximum of 1024 bytes, a whopping 1 byte increase!  There's also special support for a high bandwidth mode, when I don't fully understand, that transfers 3 packets with minimal gaps.  I've seen mention of this effectively allowing 3072 byte isochronous.  It's one of many USB features than only exists at 480 Mbit/sec or higher.

At 1.5 Mbit/sec low speed, bulk and isochronous aren't allowed at all, and the others are limited to only 8 bytes.
--
You received this message because you are subscribed to the Google Groups "LUFA Library Support List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lufa-support...@googlegroups.com.
To post to this group, send email to lufa-s...@googlegroups.com.
Visit this group at https://groups.google.com/group/lufa-support.
For more options, visit https://groups.google.com/d/optout.


Reply all
Reply to author
Forward
0 new messages