cancel
Showing results for 
Search instead for 
Did you mean: 

USB Tx problem after wakeup

rubenruizmontero
Associate II
Posted on December 15, 2011 at 20:30

Hello,

I'm trying to put USB communication in suspend mode, but when I force wake up, just can read data from PC, but nothing is sent. The interrupt for correct Tx transmition isn't fired. The end point is well configured, at least before suspend mode, after that I can see the address assigned is the same to this endpoint, but it seems to be stalled...

Any clue?

Thank you very much in advance,

Rub.
4 REPLIES 4
rubenruizmontero
Associate II
Posted on December 16, 2011 at 10:04

Well I'll try to explain all the problem, maybe somebody will help me to find a solution...

I'm using a radio transceptor and send data using SPI communication through DMA.

I encode a chunk of data (8 bytes), and send it to the transceptor, when DMA transfer is completed, it continues by the encoding of next fragment... and restart operation, and on and on.

One of the devices has a USB, but I when I enable it, communication works bad. Maybe the first chunk of data is received, but another chunk or all the remaining data don't reach the destination as it should be, they're it's corrupted.

Spent a lot of time trying to solve this problem. I tried to disable all the USB interrupts that wasn't necessary, but nothing. Now I'm trying to disable the USB when it isn't needed, but the problem below appears.

Afterall, I'm not sure wich is the main problem of this issue...I supposed maybe internal bus is needed for USB operation? DMA only has 1/3 of the time to use this bus, but I don't think this is the real problem...

Somebody with more experience have any idea?

Thank you very much in advance,

Rub.

rubenruizmontero
Associate II
Posted on December 16, 2011 at 17:49

I also tried just to disable endpoints... I'm not sure there's any relation, but when I force the IN Endpoint (IN = for transmit data to PC), it works well, but I can't to make it works again, just can read data.

I just set DISABLE state (also tried STALL and works) in the endpoint, and after set endpoint to valid...It's possible to make it this way or should I use another procedure?

rubenruizmontero
Associate II
Posted on December 16, 2011 at 17:51

sorry ''can't make it works again'' not ''can't to make''...  :p

rubenruizmontero
Associate II
Posted on December 20, 2011 at 09:55

Somebody knows if using USB, it slows DMA or of microcontroller processes in any way?