I am suffering from issues going from my SAMD21J18 that has been working 100% with usb for months to a new SAMD21E18. Looking at the datasheet everything looks identical except the pincount. That is it has pretty much all the same internal hardware minus a couple things like SERCOM4/5 etc.
After copying the circuit from one to the other and having an identical layout, the USB responds with 480 Counts of SOF that distributes these internal messages from the stack:
CONN CTRL Error CTRL Error CTRL Error CTRL Error SUSP
That is, I plug in my USB stick at the top, 120 SOF callbacks occur between each of the CTRL Error's. Then the communication gets suspended. When I initially plug in my USB I can see an increase in current draw on my PCB from 30mA to 55mA for the duration of the communication. Once the "SUSP" message occurs, the current drops back to 30mA, as if my 4GB USB 2.0 stick was never plugged in. Remove the stick, place it back in and all the above occurs once more.
I have tried 3 separate applications so far:
- The samd21j18 project, simply changing the definitions in the symbols and the device in the compiler. Everything in the app including uart works fine, USB didn't
- Created a sample project based on the samd21j18 xpro and made the same mods as above, same issues
- Created a new project and followed the USB MSC bootloader app note religiously, same issue.
All the above resulted in identical issues. This would leave me to believe that it is either because of a difference between the two chips, or more likely, a hardware issue which I simply cannot see :(
Scoping the hardware I can see:
- 32.768khz crystal is operating
- the SOF occurs on both the DM and DP lines
- My power supply at the usb sits steady at 4.99V.
- Doing a load test on the USB port with 170mA the voltage doesn't go below 4.97V, even when I "suddenly" plug it in
- I tried with all 3 of the custom board i made, all give the same results
- I tried with 4 different usb sticks, each works with my SAMD21J18 and is formatted for FAT32
- After the current drops off after errors, DP remains high, DM remains low
Removing the tvs from the schematic and simply shorting those pins, resulted in no changes.
0.5 Ohms tested across the CMC from SAMD21E18 DP/DM pins directly to USB connector. No surrounding shorts that I can see. Vcc and Gnd both O/C against DP and DM
The only odd thing I could see was that my DP line while it has a steady state high, it sometimes during this process just 'drops' to 0V for a few ms
Attached is my schematic.
Any thoughts would be awesome!