-
Notifications
You must be signed in to change notification settings - Fork 11
GIGA R1 - USBHost issues #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Closed
I added a pr so you can see the code changes: #33 |
I have tested 6 midi devices here, 5 work fine. 1 has a problem and seems to require I'm really not sure that |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi Guys,
I have managed to get a hacked version running a Midi Host:
Along the way I have found the following:
First issue: Getting the configuration descriptor was not working, this was due to only a maximum of 64 bytes being returned, so any data after this was being lost.
In
USBEndpoint_STM.cpp
:queueTransfer()
will only callHAL_HCD_HC_SubmitRequest
with a maximum size of 64.HAL_HCD_HC_NotifyURBChange_Callback()
has code onURB_DONE
to callHAL_HCD_HC_SubmitRequest()
to get the next packet of data, the call works but something is going wrong. We do not get anotherURB_DONE
, so the maximum data returned is 64 bytes.HAL_HCD_HC_SubmitRequest() can internally handle this packet splitting, you can just request all the data needed and it will work it out. I changed the code to do this and now the data is returned correctly. There is still an issue with
control->ep_queue.get(TD_TIMEOUT_CTRL);
timing out that I need to look into, the data is there but we get the timeout.Second issue: The dreaded
MBED_CONF_PLATFORM_CALLBACK_NONTRIVIAL=0
causing the callbacks to fail. See #29 (comment)This was fixed by forcing
MBED_CONF_PLATFORM_CALLBACK_NONTRIVIAL=1
incallback.h
So I guess the question is if the maximum size of 64 bytes is a known issue?
The text was updated successfully, but these errors were encountered: