Pages: [1]   Go Down
Author Topic: Who do Arduinos with USB microcontrollers need a separate USB chip to program?  (Read 715 times)
0 Members and 1 Guest are viewing this topic.
Show Your Work
Offline Offline
Edison Member
*
Karma: 14
Posts: 1108
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I can understand why the Arduino Uno R3 (ATMega328P) and Arduino Mega (ATMega2560) need a separate USB chip to allow for programming and I get why Atmel is now used instead of FTDI.  What I don't understand is why boards like Arduino Leonardo (ATMega32U4) and Arduino Due (ATSAM3X8) need another Atmel chip to run the USB, both of these microcontrollers are USB capable.  The Leonardo, in fact, has two ATMega32U4s, one as the main controller and one as the USB bridge.  What is the limitation that requires that the bootloader run off of a separate USB bridge instead of the local one?

Just wondering.  Thank you.
Logged

I have only come here seeking knowledge. Things they would not teach me of in college.

Sweden
Offline Offline
Sr. Member
****
Karma: 13
Posts: 257
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hmm, hmm, hmm.. Do you want to re-check the schematics of the leonardo for me? I'm not blaming you, one can get confused seeing that there are two atmega32u4 IC's in the schematics. The reason is that the schematics are for the two different packages of the atmega32u4. Meaning that you can use the schematic with either the AU (TQFP) package or the MU (VQFN) package [http://www.atmel.com/devices/atmega32u4.aspx].. The leonardo is a fully one uC board (meaning that one atmega32u4 is used both for the programming (USB) and running the sketch...

The DUE is a bit more complicated, it's true that the atsam3x8e has USB and can be programmed through the native usb port without the need for a second uC. The reason for the use of the second uC is the "erasing before flashing". If you program the board through the native port then a "software" erase will be performed before the actual flashing. In some cases the software erase will fail which in turn can have many consequences.. By using the second uC, a hardware erase is triggered before flashing.. Which is clearly more secure/robust than the software one..

//Basel
Logged

Show Your Work
Offline Offline
Edison Member
*
Karma: 14
Posts: 1108
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This is a great explanation, thank you for taking the time.
Logged

I have only come here seeking knowledge. Things they would not teach me of in college.

Pages: [1]   Go Up
Jump to: