Go Down

Topic: [Conseil] Transférer le bootloader arduino dans un atmega328 (Read 985 times) previous topic - next topic

gigu

Bonjour, ayant prévu de me fabriquer ma petite carte arduino, j'ai trouvé de nombreux tutoriels très bien documentés. Néanmoins il me reste quelques doutes sur la programmation du bootloader dans un atmega328. En effet j'ai trouvé plusieurs documentations mais le problème c'est que à chaque elles sont différentes voir parfois même en contradiction or je n'ai pas vraiment envi d'endommager mon atmega. Donc voilà mes quelques questions :

- Est-ce que je peux programmer le bootloader dans l'atmega avec un cable usb en utilisant un circuit intégré comme le FT232RL ou on ne peut seulement qu'échanger des données avec et après que le bootloader soit déjà dans l'atmega ? ( Certaines documentations disent que oui d'autres que non de ce que j'ai compris )

- Est-ce que je peux programmer le bootloader dans l'atmega directement depuis le port parallèle d'un mac g4 avec quelques résistances ou j'ai besoin d'un circuit intégré qui traduit le port parallèle en communication série ? ( Pareil que pour la question d'avant )

- Est-ce que tous les bootloaders arduino sont compatibles ? Je veux dire par là est-ce que je peux programmer dans mon atmega le bootloader de la carte uno pour suivre les nombreux tutoriels qu'il y à a propos de cette version et reprogrammer l'atmega plus tard le bootloader de la carte leonardo pour essayer l'usb hid par exemple ?

Merci d'avance pour vos réponses, j'avais déjà fait des recherches mais en fait du coup plus je trouvais de sources et plus le doute s'installait c'est pourquoi j'ai besoin de vos éclaircissements  :)

barbudor


- Est-ce que je peux programmer le bootloader dans l'atmega avec un cable usb en utilisant un circuit intégré comme le FT232RL ou on ne peut seulement qu'échanger des données avec et après que le bootloader soit déjà dans l'atmega ? ( Certaines documentations disent que oui d'autres que non de ce que j'ai compris )

Non
Le cable USB ne peut communiquer qu'avec le bootloader ou le sketch.
Un ATmega vierge ne peut pas communiquer sur son port série


- Est-ce que je peux programmer le bootloader dans l'atmega directement depuis le port parallèle d'un mac g4 avec quelques résistances ou j'ai besoin d'un circuit intégré qui traduit le port parallèle en communication série ? ( Pareil que pour la question d'avant )

Il existe un modele de programmateur AVR (la famille de processeur auquel appartient l'ATmega) sur port parrallèle.
Maintenant que celui-ci soit supproté sur un Mac G4 (c'est le veiux sous PowerPC ou c'est déjà les modèles Intel ? désolé je suis pas très Mac) est une autre question.
Il y a quelques afficionados à la Pomme par ici qui pourront peut être répondre.
En cherchant sur Google "AVR programmer parallel port" tu trouveras certains liens comme :
https://www.olimex.com/Products/AVR/Programmers/AVR-PG2B/  -> tu peux leur écrire pour savoir si c'est supporté sur Mac ?
Le schémas étant publié ici https://www.olimex.com/Products/AVR/Programmers/AVR-PG2B/resources/AVR-PG2B-sch.gif
Tu peux te le refaire


- Est-ce que tous les bootloaders arduino sont compatibles ? Je veux dire par là est-ce que je peux programmer dans mon atmega le bootloader de la carte uno pour suivre les nombreux tutoriels qu'il y à a propos de cette version et reprogrammer l'atmega plus tard le bootloader de la carte leonardo pour essayer l'usb hid par exemple ?

Il y a plusieurs bootloaders ayant des spécificités très légèrement différentes (vitesse du port série, taille mémoire disponible, ...)
Mais si tu utilises un ATmega328P, le plus simple est bien sur de prendre celui de l'Arduino UNO.
Cela n'influe en rien sur les sketches et tutoriaux, uniquement sur le modèle de carte qu'il faut choisir dans l'IDE.

Quote

Merci d'avance pour vos réponses, j'avais déjà fait des recherches mais en fait du coup plus je trouvais de sources et plus le doute s'installait c'est pourquoi j'ai besoin de vos éclaircissements  :)


De rien
Le plus simple étant encoder d'utiliser une autre carte Arduino telle qu'une UNO dans le mode ArduinoISP (la UNO en chargeant un sketech particulier dans son propre ATmega se comporte alors comme un programmateur pour flasher le bootloader de ton chip ATmega)

Ou bien même acheter un ATmega328P déjà flashé avec un bootloader UNO, ce qui coûte environ 6 à 8€ chez plusieurs revendeurs comme SnoopLab, Lextronic, Selectronic.

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

gigu

Quote
Quote from: gigu on Today at 07:49:46 PM
- Est-ce que je peux programmer le bootloader dans l'atmega avec un cable usb en utilisant un circuit intégré comme le FT232RL ou on ne peut seulement qu'échanger des données avec et après que le bootloader soit déjà dans l'atmega ? ( Certaines documentations disent que oui d'autres que non de ce que j'ai compris )

Non
Le cable USB ne peut communiquer qu'avec le bootloader ou le sketch.
Un ATmega vierge ne peut pas communiquer sur son port série


Dommage, ça aurait été plus simple mais bon c'est déjà bien pour simpler l'utilisation du port usb.

Quote
- Est-ce que je peux programmer le bootloader dans l'atmega directement depuis le port parallèle d'un mac g4 avec quelques résistances ou j'ai besoin d'un circuit intégré qui traduit le port parallèle en communication série ? ( Pareil que pour la question d'avant )
Il existe un modele de programmateur AVR (la famille de processeur auquel appartient l'ATmega) sur port parrallèle.

Maintenant que celui-ci soit supproté sur un Mac G4 (c'est le veiux sous PowerPC ou c'est déjà les modèles Intel ? désolé je suis pas très Mac) est une autre question.
Il y a quelques afficionados à la Pomme par ici qui pourront peut être répondre.
En cherchant sur Google "AVR programmer parallel port" tu trouveras certains liens comme :
https://www.olimex.com/Products/AVR/Programmers/AVR-PG2B/  -> tu peux leur écrire pour savoir si c'est supporté sur Mac ?
Le schémas étant publié ici https://www.olimex.com/Products/AVR/Programmers/AVR-PG2B/resources/AVR-PG2B-sch.gif
Tu peux te le refaire


C'est le vieux sous PowerPC ( le PowerPC G4 en fait, c'est de là que vient le nom ). Merci pour le lien je vais leur écrire pour savoir si c'est supporté sur Mac. Dans le pire des cas j'ai bien un vieux windows 98 mais bon je ne suis pas sûr que l'IDE d'arduino fonctionne sur un aussi vieux système quoi que c'est que la première version de Mac OS X sur le mac g4...

Quote
- Est-ce que tous les bootloaders arduino sont compatibles ? Je veux dire par là est-ce que je peux programmer dans mon atmega le bootloader de la carte uno pour suivre les nombreux tutoriels qu'il y à a propos de cette version et reprogrammer l'atmega plus tard le bootloader de la carte leonardo pour essayer l'usb hid par exemple ?

Il y a plusieurs bootloaders ayant des spécificités très légèrement différentes (vitesse du port série, taille mémoire disponible, ...)
Mais si tu utilises un ATmega328P, le plus simple est bien sur de prendre celui de l'Arduino UNO.
Cela n'influe en rien sur les sketches et tutoriaux, uniquement sur le modèle de carte qu'il faut choisir dans l'IDE.


Merci pour ce détail, je pense que je vais prendre simplement le bootloader de l'arduino uno dans ce cas.

Quote
Le plus simple étant encoder d'utiliser une autre carte Arduino telle qu'une UNO dans le mode ArduinoISP (la UNO en chargeant un sketech particulier dans son propre ATmega se comporte alors comme un programmateur pour flasher le bootloader de ton chip ATmega)

Ou bien même acheter un ATmega328P déjà flashé avec un bootloader UNO, ce qui coûte environ 6 à 8€ chez plusieurs revendeurs comme SnoopLab, Lextronic, Selectronic.


En fait si je voulais utiliser un atmega328 vierge c'est parce que il est vendu dans un magasin d'électronique dans ma région plutôt que d'avoir à le commander ( même si le magasin n'est quand même pas tout proche... ) mais si je dois passer par internet je pense que j'achèterai effectivement un atmega déjà flashé avec le bootloader.

D'ailleurs en fait je me demandai à ce propos comment se passe les réinstallations du bootloader en cas de problème ? Les cartes arduino sont capables de reprogrammer l'atmega tout seul si un jour le bootloader à un problème ( bug, corruption, ...etc ) où il faut passer par un programmateur avr comme lorsqu'on veut flasher un atmega vierge ?

Merci de tes réponses.

barbudor

La (re)programmation d'un bootloader passe systématiquement par un programmateur (port //, ArduinoISP, USBasp, ...)
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

gigu

Merci, dans ce cas je pense que j'achèterai au moins deux atmega ou un arduino et un atmega pour pouvoir reprogrammer le bootloader en cas de problème sur l'un d'eux. Pour les mac il semblerait que de toute façon je me soit trompé, j'ai confondu le port parallèle le port imprimante, donc du coup on m'a répondu quand j'ai demandé qu'il n'y avait aucune chance qu'un programmateur par port parallèle fonctionne puisque les mac n'en ont jamais eu. Merci beaucoup tes réponses m'ont beaucoup aidé.

skywodd

Bonjour,

Tu as donc un module FT232 pour le port série/usb ?

Ne cherche pas plus loin et dit merci aux barbus qui ont fait ce module de "bitbang ICSP" pour avrdude ;)
lien original : http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html
version plus lisible : http://doswa.com/2010/08/24/avrdude-5-10-with-ftdi-bitbang.html

Et comme on est nous même des barbus dans l'âme sur ce forum, la version en français :
http://arduino.cc/forum/index.php/topic,78754.0.html
:smiley-mr-green:
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

barbudor

Des Barbus ?
Des cousins à moi ?
Je savais pas que j'avais de la famille au Japon....
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

gigu

Ah merci pour le lien, en fait non je n'ai pas tout de suite de module ft232 mais tous les sites/magasins que j'ai trouvé le vendent et de toute façon je pense en prendre un dès que j'achèterai mon atmega. Donc en fait avec cette version d'avrdude je peux me servir du circuit intégré comme programmateur icsp ? Je pense que j'essayerai d'en faire un et fabriquer entièrement mon arduino comme ça. J'aime beaucoup le bricolage et la soudure en fait  XD

Go Up