EEVblog Electronics Community Forum
Electronics => Beginners => Topic started by: online1234 on March 18, 2021, 05:22:29 pm
-
Hello,
I’m trying to make USB keyboard converter with AT90USB1286. I'm adapting an original design using Atmega32u4 by hasu over geekhack. Here is the link (https://geekhack.org/index.php?topic=69169.0)if anyone's interested.
I’m a total noob when coming to circuit design. I only have experience working with Atmega32u4 in simple designs, so please go easy on me if I’ve made obvious mistakes.
I’ve tried 3 different designs but still not able to get it to work. This is the latest one. Kicad project attached.
When I plug into the USB it didn’t recognize the device and the MCU heated up quickly, it’s hot enough to burn my figure.
I’ve used PCBA service to rule out the possibility of my bad soldering.
I'm pretty much defeated and I can’t figure out why it’s not working with my limited knowledge in electronics. Can anyone help please?
-
The AT90USB1286 is not guaranteed to run at 3.3v and 16MHz, probably limited to about 10MHz. Did you check the datasheet?
If the processor is running as a usb host, the power and vcap connections don’t look right per the datasheet.
Did you use (or at least look at) the Teensy 2.0++ design as a reference schematic?
Lastly, how are you programming the chip without access to the ISP pins shown in your design?
-
When I plug into the USB it didn’t recognize the device and the MCU heated up quickly, it’s hot enough to burn my figure.
Check that USB male connector is on the correct side of the pcb. Check also location of the first pin of AT90USB1286.
Make some photos of your assembled boards.
The AT90USB1286 is not guaranteed to run at 3.3v and 16MHz, probably limited to about 10MHz. Did you check the datasheet?
..
Lastly, how are you programming the chip without access to the ISP pins shown in your design?
Low voltage would not explain that chip gets hot. AT90USB1286 and ATmega32u4 do have factory flashed USB DFU bootloader.
-
You connected the shield of the USB directly to the GND of your device.
Many designs do it like this and have no issue with it, but some recommend to connect the shield with an resistor and an cap in parallel (hundrets of kOhm and 10s of nF).
This way you don't bring all the nois picked up by the shield into your system. The schield is going to be connected to GND on the host side anyway.
-
You should have a 10k pullup on your reset pin.
-
I have seen similar symptoms when there was no capacitance on the 5V input. However, you seem to have 2µF there :-//
You could try to increase it to the recommended 10µF, but it probably won't help. Be sure to check if all chips and connectors are oriented correctly. Measure voltage at VBUS, be sure it's +5V and not -5V. Check the 3.3V regulator's output.
The AT90USB1286 is not guaranteed to run at 3.3v and 16MHz, probably limited to about 10MHz. Did you check the datasheet?
This is true, but I have done it on ATmega32U4 and AT90USB162 and it worked and certainly didn't burn the chips. I also tried running them at 24MHz and using undocumented PLL ratios for USB (probably at 5V but not sure) and some other stuff at 36MHz and 5V without USB. They are somewhat tolerant of overclocking >:D
You should have a 10k pullup on your reset pin.
IIRC that's another thing you can get away without in practice and not the source of OP's problem. Prolly a good idea, though.
-
Maybe someone can say for sure, but it looks like Reset on the Atmel IC is active low, while the Reset on the Max chip is active high. If you are pulling the 'RESET' net up and connecting to both, on the 'chip' side of the switch, MAX will be held in reset until you press (and hold) the Reset switch, at which the Atmel chip goes into reset. Release the switch and Atmel comes back up, and MAX goes into reset again.
They'll never both be running, so it will never work. This is what I get from reading the schematic jpg.
Dodgey symbol. It's active low in the datasheet.
Sanity checking the AT90USB128 datasheet, I see this:
"As inputs, Port E pins that are externally pulled low will source current if the pull-up
resistors are activated"
That would be an odd situation. PE2 is pulled down via 1k resistor. What are your settings for PE2?
Page 244, Figures 22-6 and 22-7indicates UVCC should not be connected to VBUS/5v as your I/O is @ 3.3v. Section 22.3.3 Design Guidelines highly recommends a 10uF cap on VBUS.
Page 246, Section 22.4.1 pretty much indicates you should do something with UID to be sure it's in Host or Device mode. Default is Device mode, when UID is not pulled down to ground. Sorry, irrelevant for the 1286... no host mode controller included. So your 'plug' is connected to the AT90USB1286, while the socket is connected to the MAX3421E correct?