Comments (8)
The situation seems to improve if use usb_serial.tx.first.eq(0)
, there are still some orphaned packets but far less. However, this comment: https://github.com/greatscottgadgets/luna/blob/c7617ec7b7903a6d8e1fa4f4a637bbfedb2b0616/luna/gateware/usb/usb2/transfer.py#L39C30-L39C30
seems to imply that first
is unused, so I'm even more confused now.
from luna.
Hi, can you try doing a sequential mode capture with the beagle? The captures you've attached are aggregate mode which discards some details, making it hard to see exactly what's going wrong.
from luna.
This one has tx.first
and tx.last
tied to 1 (there are a lot more errors than previously for some reason):
luna_usb_serial_sequential.tdc.zip
Is this the correct format?
from luna.
Yes, thanks. The packets that's showing up as orphaned are IN requests from the host without a handshake from the device. Normally the device should reply NAK to every IN token it receives when it doesn't have any data to respond with, but in the capture roughly one in two thousand IN tokens on average doesn't get a reply.
I believe this is a lower layer problem than the FIFO signals you've been experimenting with, and wouldn't expect them to actually affect the behavior.
The reason the data is still coming through fine is because this is well within what USB's error handling can deal with and recover from, but the rate this is occuring at still suggests this is a problem that should be tracked down and fixed.
I'll try porting your code to one of my boards here tomorrow and see if I can reproduce the issue.
from luna.
Thank you. Please let me know if there is anything I can do to help test - I'm not too comfortable with the deeper internals of this code but happy to do what I can.
from luna.
I'm unable to reproduce your issue, it's behaving fine here:
Statistics shows no missed replies to over 10M IN requests:
I'm testing on a colorlight i5 in a custom carrier board with a FS USB connector and apart from changing the PLL config to account for the input clock being 25 MHz instead, I'm running the exact code you provided.
from luna.
Well this is embarrassing... It appears that the USB-C cable I was using was causing signal integrity issues. I have changed to a known high-quality cable and now everything works fine.
I will close this issue. Thanks very much for the reproduction attempt and sorry for wasting your time.
from luna.
Thank you for the update. We're happy that you were able to find a solution!
from luna.
Related Issues (20)
- Question: alternate protocol support HOT 10
- Question: Luna as a USB-UART bridge HOT 1
- Move documentation from Wiki to docs folder
- Add issue templates to this repository
- Failed to run command poetry install HOT 1
- design r0.6 HOT 7
- tinyusb_soc.py - ValueError: Memory map has been frozen HOT 3
- litex bios build fails with a missing directory error HOT 2
- Cannot install from git HOT 4
- applets/interactive-test.py needs prompt_toolkit package HOT 1
- gateware.usb.usb2.device tests failing HOT 1
- poetry install fails to resolve dependencies HOT 1
- "Part offset must be unsigned" error
- can't install luna in ubuntu 22.04 HOT 3
- Release luna 0.1.0
- Add support for using ECP5 DQS logic in HyperRAM interface
- what the different repo luna and cynthion HOT 4
- [DOC] please give example how to run luna/examples HOT 1
- Release luna 0.2.0
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from luna.