No OUT endpoint interrupts

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
sittinhawk
Level 1
Level 1
25 sign-ins 5 questions asked 10 sign-ins

Targeting device: S6E1C3.

Trying to follow documentation on setting up USB device for CDC class, but not getting very far. I setup the USB clocks and then initialize various registers, including the endpoints for their various modes (some IN bulk, OUT bulk, IN interrupt), and enable every single register interrupt enable and NVIC interrupt enable. Then I enable the pullup on d+. At that point, I can tell my Windows computer is trying to communicate, as I can see a USB device in the device manager with an enumeration error.

On the MCU, I immediately get an interrupt for all the IN endpoints (interrupt telling me the tx buffers are empty), but I never see anything for the OUT endpoints: Never get a DRQO.

Any ideas why I'm not getting a DQRO interrupt?

0 Likes
1 Reply
Giraffe1492
Level 5
Level 5
25 sign-ins 25 likes received 10 solutions authored

There could be several reasons why you are not receiving DRQO interrupts for the OUT endpoints. Here are a few things you could check:

  1. Make sure that the OUT endpoints are configured correctly. Check that the endpoint configuration registers are set up correctly, including the endpoint size and direction.

  2. Check that the USB hardware is connected correctly. Make sure that the D+ and D- lines are connected correctly to the USB connector.

  3. Verify that the USB driver on the host computer is functioning correctly. Make sure that the correct driver is installed and that it is configured correctly for the CDC class.

  4. Check that the USB data is being sent correctly from the host computer. You could use a USB protocol analyzer or a USB bus analyzer to verify that the data is being sent correctly.

  5. Verify that the USB peripheral on the MCU is functioning correctly. You could use a logic analyzer or an oscilloscope to monitor the USB signals and verify that the peripheral is responding correctly to the USB requests.

It is also possible that there is a bug in the USB driver or the MCU code. You could try debugging the code and stepping through it to see where the problem might be occurring.

0 Likes