Open tannewt opened 1 year ago
Also, I've used a Saleae to verify that the data on the wire looks correct. I did have to add a small glitch filter so that could be the problem. However, I'd expect signal integrity to cause other ACK reads to fail too and it doesn't seem to.
Describe the bug you encountered:
The capture of the response to the very first setup packet fails. I think this is the very first time anything is captured by the RX PIO. Maybe its initial state is incorrect?
What did you expect to happen instead?
The RX PIO should capture the SYNC and ACK packets (
0x80
and0xd2
).What actually happened in your case?
Instead, it errors because it captured 0x01 and 0xa5. Note that this is (
0xd2 << 1 | 1
).Additional information
This is using USB Host via CircuitPython for testing. However, this is low level enough that I don't think it's the issue. Subsequent ACKs are captured correctly.
This causes issues when using a device running TinyUSB because it can't handle two SETUP packets in a row. It (currently) expects to finish the first control transaction before the second setup packet.