AnsweredAssumed Answered

CRC errors on TWR-K60F120M HS USB

Question asked by Michael Brudevold on Sep 13, 2013
Latest reply on Sep 17, 2013 by Michael Brudevold

I'm using MQX 4.0.2 on a TWR-K60F120M, USB mass storage in device mode, with a TWR-SER2 for HS USB, compiled using IAR.

 

The problem I'm having is that certain packets on USB Bulk-In are giving a CRC failure.  I connected the system to a PC running linux, and all seemed well.  I combined the USB and NAND examples to create the equivalent of a flash drive.  I can run fdisk and all is well.  I then proceed to format a fat partition, and that is where I noticed problems occurring.  The moment the FAT sectors are written, I see all kinds of CRC errors and the host is continually resetting the bus.  This continues until I wipe the NAND to remove all that had been written (unplugging/plugging the USB cable don't fix it - the same data is going to be transferred).

 

I backed off a bit and removed NAND from the equation and forced the read command to fill the buffer with a fixed character.  I can run dd against the device node and for most characters, it works flawlessly.  However, there are some values that I can put in there that cause an invalid CRC on the Bulk-In data.  For example, if I place 512 - 0x84's in the buffer, I can see the data go out properly (I see 512 correct bytes) when analyzed with a beagle 480, but the CRC is 0x9EF6 compared to the CRC calculated by my host of 0x9E76 (for the same transfer in a bulk-out direction).  This CRC of course is invalid causing the host to not get the data.

 

Any ideas?

Outcomes