Welcome! Log In Create A New Profile

Advanced

Gen7 1.5 MCP2200 won't enumerate

Posted by silbernetic 
Gen7 1.5 MCP2200 won't enumerate
July 27, 2013 02:36PM
Hello all,

I built a Gen7 1.5 board, self-etched with toner transfer on magazine paper and ferric chloride. All the components were sourced from Digi-Key, with the exception of a few things like some LED's, the 24-pin ATX connector, and the USB connector that were scavenged. I plugged it in, so proud, and began to get USB errors. I was running Linux, so I thought I'd try Windows. Before I could do that though, I plugged in the board power and shorted 5V to ground with a bit of alcohol-soaked cotton on the bottom of the board. Arcing and small flame ensue.

The MCP2200 no longer would function at all. No USB errors, nothing. Just a dead chip. I removed it from the board and bought two more chips.

With the bad IC off the board, I began checking every connection and powered-on voltages. Nothing was shorted to ground that shouldn't be, and nothing was receiving power that shouldn't. I carefully soldered on the new chip... and got the same USB errors as before.

Symptoms:
Won't properly communicate with a computer. Won't show up under lsusb. Produces usbcore errors in dmesg. Won't work under Windows either.

Linux dmesg:
[ 1051.245147] usb 6-1: new full-speed USB device number 8 using ohci_hcd
[ 1051.652764] usb 6-1: device not accepting address 8, error -62
[ 1051.788652] usb 6-1: new full-speed USB device number 9 using ohci_hcd
[ 1052.196250] usb 6-1: device not accepting address 9, error -62
[ 1052.196284] hub 6-0:1.0: unable to enumerate USB device on port 1
Windows complains of a "malfunctioning USB device" and that I should "replace the device." Code 43, I believe, in Device Manager.

What Works
    - Using a Sparkfun FT232-based breakout, DEV-09716, and connecting to the chip's RX/TX/GND directly.
    - Programming via ISP. I used an AVRISP2 (AVR ISP MKII) and successfully loaded the Gen7 Arduino bootloader.
    - The rest of the board, except for the LED on the extruder heater MOSFET. The stepper drivers work, PSU switching works, other LED's, etc.

What I've Tried
    - forcing a reset by pulling RST low with a wire
    - using a logic analyzer to sniff D+ and D- (couldn't tell what was going on, but there was communication)
    - plug/unplug USB
    - keep plugged to USB and power on PSU


I'm about ready to give up and use the FT232 board, but I'd love to have a solution that actually uses the working, proven Gen7 1.5 design tongue sticking out smiley

Thanks!
Re: Gen7 1.5 MCP2200 won't enumerate
July 28, 2013 12:42AM
I got a similar problem on my very first attemts to get the MCP2200 to work.

Finally, I found the lines D+ and D- where crossed between the MCP2200 and the USB port.

Hope that helps.


-----------

3D printer electronics
Campaign on Ulule.com for MaKrPanel with graphical LCD and improved Melzi controller board

improved Melzi controller board
Panel with graphical LCD
Re: Gen7 1.5 MCP2200 won't enumerate
July 28, 2013 08:55AM
Did you solder the USB header housing to GND? USB is a bit picky about electromagnetic interference.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Gen7 1.5 MCP2200 won't enumerate
July 28, 2013 01:44PM
tenbaht-
I will try swapping D+ and D- on a new external connector as a test. I checked with a multimeter and things seemed okay, but I could very well be wrong.

Traumflug-
The housing is soldered to ground. And although it seems like there is either a patchy oxide coating or some goo on the very outside, it is definitely conducting.

Thanks so far. I will also try and get around to checking out the 12MHz crystal on a scope today. And particular kudos to Traumflug for your role in developing the Gen7 design. As a RepRap beginner, it was well-documented and easy to pull off with hobbyist electronics tools. Props! smiling smiley
Re: Gen7 1.5 MCP2200 won't enumerate
July 28, 2013 02:49PM
Quote

I will try swapping D+ and D- on a new external connector as a test.

Perhaps "crossed" = "a solder blob across both traces"? I mean, it's very unlikely your etching resulted in swapped electrical connections. Unless you etched the entire board mirrored. You can read the RepRap text at the side, can't you?

OS kernels recognize USB devices if D- is pulled to 5V, without any data exchange. So it's quite possible D+ is simply disconnected. Or something similar.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Gen7 1.5 MCP2200 won't enumerate
July 28, 2013 05:49PM
Current progress:
- 20MHz crystal for ATMEGA1284 shows ~20MHz sine on both pins (my way of proving to myself I'm using the scope properly)
- 12MHz crystal for MCP2200 shows 5V on one pin and a noisy ~0V on the other
- D+ and D- seem intact and proper on visual inspection

So right now I'm looked at a DOA/fried crystal for USB, or a short/bad cap somewhere inhibiting its oscillation.
Re: Gen7 1.5 MCP2200 won't enumerate
July 28, 2013 07:42PM
> 12MHz crystal for MCP2200 shows 5V on one pin and a noisy ~0V on the other

This all sounds very familiar. For some reason the PIC (the MCP2200 is in fact simply a pre-programmed PIC) shuts down itself into sleep mode after a failed USB communication attempt.

Before you desolder the crystal, you could check what happens while and shortly after the /Reset pin of the MPC2200 is held low. I have described the problem here in the Microchip forum (last posting in thread):
MCP won't enumerate

Did you use a downloaded PCB layout or did you do it by yourself? On a downloaded one it is true that it is very unlikely that the connections are wrong. Than it must be a kind of short or break.


-----------

3D printer electronics
Campaign on Ulule.com for MaKrPanel with graphical LCD and improved Melzi controller board

improved Melzi controller board
Panel with graphical LCD
Re: Gen7 1.5 MCP2200 won't enumerate
July 28, 2013 09:09PM
Still yet to try swapping data lines. But they're looking all right.

So, thanks for the tip... I pulled RST low and measured the oscillator pin's frequency. What I saw on a measurement of the waveform's frequency shocked me...

A nearly perfect 4 MHz sine on one pin. (I cut traces to the caps, need to bridge those...)

It HAS happened before where Digi-Key has shipped me the wrong frequency crystal. I once got 8.2KHz crystals instead of 8.2MHz. The markings on the crystal, "ATS040B" and "CTS171305" seem to most correspond with 4MHz models.

Wow. This could be my weird issue.
Re: Gen7 1.5 MCP2200 won't enumerate
August 01, 2013 03:20PM
The Answer:
Digi-Key sent the wrong part, a 4MHz crystal instead of a 12MHz. They shipped me a replacement, I installed it, now USB works.
Re: Gen7 1.5 MCP2200 won't enumerate
August 02, 2013 05:44AM
Sorry, only registered users may post in this forum.

Click here to login