we try to adopt the multichannel reference board xcore200 v2.0 to our DAC design. We followed the design guide lines and the porting appnote to change xn files et al.
What we see when powering up the device:
We are able to download/flash/debug with our own PCB but when it comes to USB bring up we got stuck. Enumeration does not work.
Observations of the D+/D- lines on the scope (low speed only) shows lots of packets rushing. Withing our test design (AN00182 - HID example to keep it simple) we put some logmessages.
As we suspected the D+/D- lines connected in a wrong way we put another USB jack on the buttom side of the USB and connected appropriatly to test that.
Case a.) D+/D- as design in our PCB
Case b.) inverted
In case a.) within EP0 function we see XUD_RES_RST with different usb_speed (FS,HS) - case b.) only shows XUD_RES_RST in fullspeed (FS).
Changes we did in Endpoint0.xc of AN00182 to get this loggings:
Code: Select all
/* Returns XUD_RES_OKAY on success */
XUD_Result_t result = USB_GetSetupPacket(ep0_out, ep0_in, sp);
switch (usbBusSpeed)
{
case XUD_SPEED_FS:
{
printstr("XUD_SPEED_FS - result=");
} break;
case XUD_SPEED_HS:
{
printstr("XUD_SPEED_HS - result=");
} break;
}
if(result == XUD_RES_OKAY) {
printstr("XUD_RES_OKAY\n");
} else if (result == XUD_RES_RST ) {
printstr("XUD_RES_RST\n");
} else if (result == XUD_RES_ERR ) {
printstr("XUD_RES_ERR\n");
}
if(result == XUD_RES_OKAY)
Code: Select all
XUD_SPEED_FS - result=XUD_RES_RST
XUD_SPEED_FS - result=XUD_RES_RST
XUD_SPEED_HS - result=XUD_RES_RST
XUD_SPEED_FS - result=XUD_RES_RST
XUD_SPEED_FS - result=XUD_RES_RST
XUD_SPEED_HS - result=XUD_RES_RST
XUD_SPEED_FS - result=XUD_RES_RST
XUD_SPEED_HS - result=XUD_RES_RST
XUD_SPEED_FS - result=XUD_RES_RST
XUD_SPEED_FS - result=XUD_RES_RST
XUD_SPEED_FS - result=XUD_RES_RST
XUD_SPEED_FS - result=XUD_RES_RST
XUD_SPEED_FS - result=XUD_RES_RST
XUD_SPEED_HS - result=XUD_RES_RST
As we are currently not enabled to use a USB analyzer we cannot see why this fails. Are there any possibilities to track this down (e.g. by using state registers of the USB PHY)?
thanks,
thomas