Go Down

Topic: Transformation bootloader ATMEGA 328 de DUEMILANOVE vers UNO (Read 5006 times) previous topic - next topic

ojal

Bonjour,

J'ai acheté un ATMEGA 328 qui est en duemilanove et je souhaiterais le reprogrammer en UNO.
Je possède une carte ADUINO UNO officielle.
Est-il possible de simplement mettre sur ma carte UNO le nouvel ATMEGA 32 et de lancer un burn en UNO depuis l'interface PC?

Le fait que l'ATMEGA possède déjà un bootloader rend-il la manip différente que s'il n'était sans aucun bootloader?

Merci par avance pour vos réponses ;-)

CrossRoads

Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

ojal


CrossRoads

I may participate when I see a title that catches my eye.
I must use www.translate.google.com to understand 8)

Bon chance!
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

ojal

Je croyais qu'il suffisait de remplacer l'ATMEGA 328P de l'ARDUINO par l'ATMEGA 328P que je souhaitais bootloader...
A priori, ce n'est pas si simple...
Je ne trouve plus le schéma, mais il me semble bien me rappeler que l'on pouvait bootloader avec une carte ARDUINO UNO en mettant l'ATMEGA 328 P à bootloader sur une breadboard... Auriez-vous ce lien?

Merci par avance ;-)

al1fch

#5
Sep 15, 2011, 07:12 pm Last Edit: Sep 15, 2011, 07:27 pm by al1fch Reason: 1
ojal, je crois, sans en être certain à 100%, qu'un problême subsiste avec les cartes UNO et qu'elles ne permettent pas encore de faire travailler la carte UNO en programmateur ISP.
Je ne sais plus si le responsable est le firmware du Mega8u (qui remplace le FTDI) ou le nouveau bootloader (Optiboot). le site Arduino rend plutot Optiboot responsable  :
Quote
NOTE: Currently, you cannot use an Arduino Uno as an ISP programmer because the optiboot bootloader does not support this sketch. A revision for this is in progress.
in http://arduino.cc/en/Tutorial/ArduinoISP

Donc avec une Arduino UNO actuelle tu ne peux pas reprogrammer le bootloader de ton second Mega328.
Lorsque sortira (si ce n'est déjà fait) une version corrigée d'Optiboot tu ne pourra pas flasher cette nouvelle version. En somme pour faire quoi que ce soit au niveau des bootloaders, vu que tu as une UNO, il te faut un truc du genre USBasp..... ou une Duemilanove...
La seule chose faisable ...si cela est un jour utile c'est de changer le firmware du Mega8u2



ojal

Hé bien pas simple tout ça...
Je vois que je suis loin d'avoir tout compris  :~

Je peux trouver ou les différences entre duemilanove et uno???
Ça occasionne quoi de mettre un ATMEGA 328P avec bootloader duemilanove sur une carte UNO???

Merci.

al1fch

#7
Sep 15, 2011, 07:43 pm Last Edit: Sep 15, 2011, 08:04 pm by al1fch Reason: 1
Liste complète des différences, je ne sais pas si ça existe.
Pour ton pb je pense que les deux principales sont :

Interface USB <-> Rx-Tx
-Duemilanove et cartes précédentes : puce spécialisée FTDI232R
-UNO : Mega8u2 avec un firmware pour

Bootloader
UNO : nouveau (optiboot) plus rapide et surtout moins encombrant dans la mémoire flash

Si tu mets sur la carte UNO un Mega328 ayant le 'vieux' bootloader il suffit dans l'IDE de configurer en Board Duemilanove. Il n'est pas indispensable de changer de bootloader.
La seule conséquence est une perte d'un "bon" ko de mémoire flash vu la taille de l'ancien bootloader.
Un Mega328 'Duemilanove' fonctionne très bien chez moi sur une carte Uno à condition de dire à l'IDE : "tu as affaire à une Duemilanove". Un Mega8 avec son bon bootloader tourne sur une UNO en déclarant "board = NG older w/ATMega8.
Cette discussion me fait penser à une chose que j"ai jamais eu l'idée d'essayer : une carte Uno avec un mega328 'Duemilanove' est peut être capable de jouer le rôle de programmateur ISP !! Si oui il faut garder les vieux bootloaders !!

chicotore

Quote
Cette discussion me fait penser à une chose que j"ai jamais eu l'idée d'essayer : une carte Uno avec un mega328 'Duemilanove' est peut être capable de jouer le rôle de programmateur ISP !! Si oui il faut garder les vieux bootloaders !!


Oui regarde ça:

Quote
Bonjour darkduino,

Je ne comprends pas bien ta question "Sur l'arduino, il n'y a pas l'atmega, c'est bien ça?" ?

Je te détaille la méthode avec deux arduinos:

Sur l'arduino qui est "programmateur" tu mets le sketch "ArduinoISP" qui est dans le GUI arduino files\examples

tu relies les arduinos comme indiqué là http://arduino.cc/en/Tutorial/ArduinoISP



sur l'image, l'arduino "programmateur" est celui du bas, l'arduino qui sert de support pour ton µC a programmer est en haut

Pour programmer un ATmega en 2009 ou en UNO il faudra que tu choisisses la cible dans le GUI arduino tools/board

Puis que tu lances Tools\burn bootloader\w Arduino as ISP

et comme je l'ai dit plus haut : (...) les fusibles sont programmés automatiquement avec cette méthode

Lionel


Quote
Re-bonjour,

en fait je ne comprends pas bien ton schéma.

Si le but est de programmer des ATmega 328, pourquoi ne fais tu pas tout simplement comme indiqué plus haut ???
Si tu veux en faire des arduinos standalone et que tu les programmes avec le bootloader Uno ou 2009, il te faut au minimum un quartz de 16MHz, deux condensateurs de 22pF (le quartz + les deux condos peuvent être remplacés par un résonateur céramique 16MHz) et une résistance
enfin, disons faire exactement comme ça
http://arduino.cc/en/Tutorial/ArduinoToBreadboard

1. Uploader le bootloader comme ça


2. Uploader le code comme ça


Lionel


Source => http://arduino.cc/forum/index.php/topic,62108.15.html

J'espère que ça fonctionne car je vient tous juste de commander un Atmega328 "vierge" + quartz + condenso afin de le programmer à partir de ma duemilanove !

al1fch

#9
Sep 15, 2011, 08:21 pm Last Edit: Sep 15, 2011, 08:48 pm by al1fch Reason: 1
Oui chicotore avec ta carte Duemilanove ça doit marcher !
Pas avec une UNO d'origine, du moins les modèles livrés jusqu'à maintenant, car un pb bloque le fonctionnement du sketch "ArduinoISP" .
Sur la page dont tu mets le lien il est bien écrit :
Quote
Note that these techniques only work with the Arduino Duemilanove w/ an ATmega328, not the Arduino Uno

Si mes souvenirs sont bons le bootloader optiboot implanté sur ces cartes se 'reveille' quand on veut exécuter ArduinoISP sur le Mega328 de la carte empêchant toute programmation (sketch ou bootloader) du second Mega328.
A mon avis si on a encore des Mega328 avec le bootloader précédent (Duemilanove ou antérieur) il ne faut pas se presser de flasher Optiboot et attendre un peu que le bug soit corrigé.


Quand j'aurai le temps je testerai le sketch ArduinoISP sur une UNO en remplaçant son micro par un autre possédant le bootloader 'Duemilanove'. Si le responsable est bien Optiboot alors le sktech devrait tourner.

Go Up