Hello wonderful community,
I am trying to implement a custom USB peripheral with an RA4M2 MCU on a custom board. This means I need a USB PVND stack.
Starting point:
- I have a USB PCDC demo running on my board (without RTOS)
- Switched to the PVND class using the standard example suite from FSP 4.3.0 pack. I adapted it for non-RTOS and for my own descriptor (cloned from a different board)
- The device is recognized by the Device Manager similarly to the other board and looks the same in USB analyzers.
- Using EP1 for bulk in/out. The DeviceAddress is different, but I assume that is dynamically allocated by the USB Host and does not matter.
- I use a PC driver that writes and then reads test data, and the driver itself works on the other board, so I consider the PC side ok.
Now comes the problem: none of the read/write operations succeed. Things I checked:
- The "usb_pvnd_write_complete" or "usb_pvnd_read_complete" never get called. They are the ones responsible to signal an event to the polling loop by calling "setEvent".
- Also looking into "usb_pstd_interrupt_handler", there are some requests coming (setup transaction and DVST) but never for BRDY, BEMP or NRDY, which I assume are required for read/write operations.
- When writing to the host, the second write command gives "BUSY", so the first write did not go through.
If someone can help, please let me know what other info/code fragments I can provide, or where can I do more digging.
Thank you in advance!
Alin