Pages: 1 [2]   Go Down
Author Topic: [SOLVED]Leonardo Clone 32u4 based board it is not recognized in USB port  (Read 5633 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

How often does it blink? In the video it looks like it's breathing a few times (soft fading blinking) and then it stays lit for a while and then continues with a regular blink of about .5 Hz. Is that correct? In my application, the bootloader breathes a few times and then the LED is constantly OFF. Did you upload a blink-skech or something like that?

What you can also do is try the LUFA bootloader by Adafruit:

(Quote from my Wiki)

Quote
Lufa Bootloader

Bootloader Installation

In order to use the Atmega32U4 with the Arduino SDK, the Atmel bootloader that is factory-default has to be replaced. In our setup, we use the Adafruit fork of the LUFA bootloader that can be downloaded here: http://github.com/adafruit/lufa-lib

Flash the bootloader to the chip using AVRDude:

Code:
avrdude -p m32U4 -P /dev/ttyS0 -U flash:w:BootloaderCDC.hex

After that, set the correct fusebits:

Code:
avrdude -p m32U4 -P /dev/ttyS0 -U lfuse:w:0xe0:m -U hfuse:w:0xd8:m -U efuse:w:0xcb:m

Try everything out:

Code:
avrdude -p m32U4 -P /dev/ttyS0 -nv

And you should get:

Code:
avrdude: safemode: lfuse reads as E0
avrdude: safemode: hfuse reads as D8
avrdude: safemode: efuse reads as CB

Modification in the Arduino IDE

The bootloader will not be recognized by a fresh installation of the Arduino IDE. You need to modify the file "arduino-1.0.n/hardware/arduino/programmers.txt".
Add the following:

Code:
avr109.name=Adafruit Bootloader
avr109.communication=usb
avr109.protocol=avr109

Now restart the Arduino IDE. The bootloader should be listed as Adafruit Bootloader. Select that one to flash the Atmega32U4.

Again please note that I run the controller on an external clock. I can really recommend the Engbedded fusebit calculator to look up fusebit issues.
Logged


Offline Offline
Newbie
*
Karma: 1
Posts: 22
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi kopfkopfkopfaffe,

Quote
How often does it blink? In the video it looks like it's breathing a few times (soft fading blinking) and then it stays lit for a while and then continues with a regular blink of about .5 Hz. Is that correct? In my application, the bootloader breathes a few times and then the LED is constantly OFF. Did you upload a blink-skech or something like that?

It is exactly as you said. Start with a breathing and then continues with a regular blink of 1Hz. I only burned the bootloader Caterina-Leonardo.hex.

Something weird to me is that after I had set the fuses like (e0, d8, cb - which was wrong because I have a external cristal), it works! The problem is that works only one time. That time My Ubuntu recognized as a high-speed usb device and also as a mouse. But after that doesnt work anymore (wich has sense because e0 its for external clock).

About the fuses, yep I read the datasheet, I am trying a fuse calculator, and this

Code:
leonardo.bootloader.low_fuses=0xff
leonardo.bootloader.high_fuses=0xd8
leonardo.bootloader.extended_fuses=0xcb

configuration looks ok for me, but it isn't working :S

Code:
What you can also do is try the LUFA bootloader by Adafruit:

I will try right now.


« Last Edit: April 08, 2013, 11:09:36 am by fandrade » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 22
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, I tried but no luck. The LUFA bootloader works right (led is working at pc6) but still no luck with usb.

I also tried a lot of configurations, with internal RC oscilator, with external clock. The bootloader seems to be working right because of the led (both LUA and Caterina-Leonardo) usb connection stills fails.

I tried out all of this configurations after study the 32u4 datasheet and the avr fuse calculator (every time with the right clock or oscilator configuration in the board, i mean, with a 16mhz external clock signal or without oscilator, or with an 16mhz external cristal)

Code:
1)
external oscilator with clock out

avrdude: safemode: lfuse reads as BF
avrdude: safemode: hfuse reads as D8
avrdude: safemode: efuse reads as CB
avrdude: safemode: Fuses OK

2)
external oscilator with clock out and dividing 8 times o clock

avrdude: Device signature = 0x1e9587
avrdude: safemode: lfuse reads as 3F
avrdude: safemode: hfuse reads as D8
avrdude: safemode: efuse reads as CB

3)
external clock signal and clock out

avrdude: Device signature = 0x1e9587
avrdude: safemode: lfuse reads as 92
avrdude: safemode: hfuse reads as D8
avrdude: safemode: efuse reads as CB

4)
external clock signal and clock out

avrdude: safemode: lfuse reads as A2
avrdude: safemode: hfuse reads as D8
avrdude: safemode: efuse reads as CB
avrdude: safemode: Fuses OK

nothing works.

I'm start thinking that the chip has a problem...which is really bad.

If anyone have any idea or anything else to test, it would be great.

I also had tested continuity from the chip microcontroller to the end of the usb wire, and its fine.
I had tested voltage in every pin of the microcontroller, and everything its perfect.

smiley-sad
« Last Edit: April 10, 2013, 07:24:33 am by fandrade » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Can you post your layout and pictures of the board (bottom side)?
Logged


Offline Offline
Newbie
*
Karma: 1
Posts: 22
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Can you post your layout and pictures of the board (bottom side)?

For Sure. The layout its in « Reply #2 on: April 03, 2013, 11:49:05 PM » on this thread. I added here anyway.
Its the third position from the initial post (the initial its the first).

I also attached a bottom side pictures. I dont know if you want to see something in particular. Just let me know.

This answer took a while because I made some small improves of the board, and i did a new one. New board, new components, new microcontroler, same problem.

I had the theory that It colud be something with the micro, but the new board has exactly the same problem, the bootloader (Caterina-Leonardo) looks like working because the blink, but USB is not working. Because of that I think I have a design electrical mistake, but..I dont now where :S




* DSC00708.JPG (3030.42 KB, 2592x1944 - viewed 77 times.)
* leolivre.pdf (62.36 KB - downloaded 28 times.)
« Last Edit: April 21, 2013, 02:19:00 am by fandrade » Logged

Wahiawa, Hawaii
Offline Offline
God Member
*****
Karma: 29
Posts: 613
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Your circuit is missing the USB level conversion needed for the D- and D+ lines.  You need to add 3.6V zener diodes for any USB interfacing directly to Atmel AVR chips.  The 5V pin levels of the 32U4 is over driving the USB data lines.  All the schematic references for Leonardo and Micro use the zener diodes for level conversion.

See this reference:


* level-conversion-with-zener.gif (2.54 KB, 149x143 - viewed 262 times.)
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 22
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Your circuit is missing the USB level conversion needed for the D- and D+ lines.  You need to add 3.6V zener diodes for any USB interfacing directly to Atmel AVR chips.  The 5V pin levels of the 32U4 is over driving the USB data lines.  All the schematic references for Leonardo and Micro use the zener diodes for level conversion.

See this reference:


Hi hiduino,

   I will try adding zener diodes. What about the pull up resistor in the references?

   When I did my schematic I mixed leonardo schematic and vinciDuino schematic (http://cdn.bitbucket.org/fmalpartida/vinciduino/downloads/vinciDuino%20RevC1.pdf). VinciDuino schematics doesn´t have the zener, that`s why I didn`t add them.

see you!
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 22
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Your circuit is missing the USB level conversion needed for the D- and D+ lines.  You need to add 3.6V zener diodes for any USB interfacing directly to Atmel AVR chips.  The 5V pin levels of the 32U4 is over driving the USB data lines.  All the schematic references for Leonardo and Micro use the zener diodes for level conversion.

See this reference:


Ok, I did it and same problem, nothing changes.
At first I tried with two zener diodes, same as the reference you post and doesn`t work, same error from initial post.
Then I added the pull up resistor (1k) and things get worst, but after that I removed the resistor and same error from initial post.

I am really lost with this problem...
Logged

Wahiawa, Hawaii
Offline Offline
God Member
*****
Karma: 29
Posts: 613
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Looking back at your schematic, it appears that you may have your RD-, RD+ swapped to D+, D-.  The RD- should be going to D- and RD+ to D+.  I would still recommend the zener diodes.

Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 22
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Looking back at your schematic, it appears that you may have your RD-, RD+ swapped to D+, D-.  The RD- should be going to D- and RD+ to D+.  I would still recommend the zener diodes.



You rock men!
Distraction problem so hard to see!
Thanks a lot!!
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry for digging this out again, but I just wanted to point out for you, dear future reader, that level conversion from USB to the ATmega32U4 is not necessary. The controller is designed to handle the USB signal.
Logged


Wahiawa, Hawaii
Offline Offline
God Member
*****
Karma: 29
Posts: 613
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes, you are correct.  I realized that after looking into the 32U4 datasheet.  Makes you wonder why they added it to the Leonardo and Micro designs.  I guess for protection?

Logged

Pages: 1 [2]   Go Up
Jump to: