This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Infineon C161U EPEC transfer 'dropping out'

I'm seeing behaviour where an EPEC transfer will end early during the microcontroller's receipt of a packet over the USB.

It's a 64 byte EPEC transfer that has been set up to handle a 64 byte USB packet. I get a variable number of bytes being transferred (typically in the 20s).

The data sheet says that the EPEC injects MOVs into the instruction pipeline.

I can 'fix' the problem completely (i.e. all 64 bytes are transferred) if I artificially hold the micro in a tight 'while(1);' loop during the EPEC transfer, but as soon as it's doing something more complicated like accessing memory it drops out.

This is day 3 now and I really don't get it. Anyone got any ideas?

James

Parents
  • After many hours I seem to have found the problem.

    I discovered that bus accesses on my code segment included a whole bunch of unnecessary wait-states that was slowing the CPU right down. So much so that the USB receive FIFO wasn't being serviced often enough and was dropping bytes.

    James

Reply
  • After many hours I seem to have found the problem.

    I discovered that bus accesses on my code segment included a whole bunch of unnecessary wait-states that was slowing the CPU right down. So much so that the USB receive FIFO wasn't being serviced often enough and was dropping bytes.

    James

Children
No data