Arduino Forum

International => Français => Topic started by: franck_du35 on Nov 23, 2019, 12:55 pm

Title: [RESOLU] programmation arduino pro mini avec un autre arduino
Post by: franck_du35 on Nov 23, 2019, 12:55 pm
Bonjour

Je vois dans différent post qu'il est possible de programmer un arduino pro mini avec un arduino nano.

Cette programmation est-elle aussi possible de la même façon avec un autre type d'arduino : arduino nano ou mega 2560  ?

Merci

Franck
Title: Re: programmation arduino pro mini avec un autre arduino
Post by: 68tjs on Nov 23, 2019, 04:20 pm
Il n'y a aucune raison que cela ne fonctionne pas.

La "dite" programmation consiste en deux actions bien différentes. Pour simplifier la vie arduino les a rassemblée dans un programme paquet : "Graver la séquence d'initialisation".
Action 1 :
Configuration des registres : sortie usine le micro est configuré sur son horloge interne à 8MHz avec un diviseur par 8, c'est à dire qu'il tourne à 1MHz (C'est pour simplifier les tests de fabrication).
Il faut le passer en oscillateur externe et déactiver le diviseur par 8.

Action2 (indépendante de l'action 1)
A la sortie de l'action1 le micro doit toujours être programmé en mode ISCP.  Pour permettre la programmation par l'interface série, qui est quand même plus simple, il faut introduire un bout de programme dans une zone réservée de la flash : le bootloader.

Derrière les mots magiques il y a simplement un programme qui transforme l'atmega328p en programmeur comme le bien connu USBasp qui lui même utilise un autre "petit" avr.
Les deux actions sont réalisées en utilisant l'utilitaire écrit par Atmel : avrdude

Compatibilité :
UNO, nano , mini-pro = même microcontrôleur Atmega328p donc ces cartes sont compatibles.
Mega(atmega2560) il ne devrait pas y avoir de soucis, juste contrôler que le programme utilise les bonnes pins. L'ISCP n'est pas forcément sur les mêmes pins entre les deux micros.

Sinon un programmeur USBasp ou TinyUSB coûte moins de 2 €. Ce prix comprend le câble en nappe 10 points et l'adaptateur pour passer de 10 points à 6 points.
Quand j'ai voulu faire cette opération je n'ai pas hésité une minute: entre faire un câblage fougnateux et prendre une solution propre j'ai pris la solution USBasp
Title: Re: programmation arduino pro mini avec un autre arduino
Post by: franck_du35 on Nov 24, 2019, 09:41 am
Merci pour ces bon conseils, je vais tester ça.

A noter que le programmeur tinyusb est en commande, mais pour combler mon impatience et satisfaire ma curiosité je voulais tester la solution avec le matériel à ma disposition.

Franck
Title: Re: programmation arduino pro mini avec un autre arduino
Post by: fdufnews on Nov 24, 2019, 11:29 am
La question initiale est quelque peu ambiguë et je ne suis pas certain que vous parliez tous les 2 de la même chose.
68tjs parle de la programmation du bootloader alors que j'ai l'impression que franck_du35 semble parler de charger un sketch dans un arduino pro mini.
Title: Re: programmation arduino pro mini avec un autre arduino
Post by: franck_du35 on Nov 24, 2019, 12:00 pm
Ma question est pour mettre un bootloader sur le pro mini et ensuite mettre le sketch
Title: Re: programmation arduino pro mini avec un autre arduino
Post by: bricofoy on Nov 25, 2019, 08:00 am
donc pour mettre le bootloader c'est la méthode décrite par 68tjs

ensuite une fois qu'il y a le bootloader, il faut utiliser un convertisseur usb-serie pour les sketchs
Title: Re: programmation arduino pro mini avec un autre arduino
Post by: 68tjs on Nov 25, 2019, 10:13 am
Ce qu'il faut bien comprendre c'est que le bootloader c'est pour le confort.
Rien n'empêche de transferer un programme avec un USBasp par le mode ISP, c'est d'ailleur le moode de base prévu par le concepteur.

ISP  = In Situ Programming. -> le micro peut être programmé "en place" pas besoin de le placer dans un montage spécial.
Comme souvent dans un microcontroleur les pins peuvent avoir plusieurs fonctions. Le mode ISP utilise les mêmes pins que le SPI mais ce n'est pas du SPI.
Immédiatement après un reset ces pins sont en mode ISP, quand le micro est pret à fonctionner elles passent automatiquement en mode SPI.

Avec un bootloader c'est juste plus pratique. Il n'y a pas besoin de laisser les pins SPI libres.
Title: Re: programmation arduino pro mini avec un autre arduino
Post by: franck_du35 on Nov 25, 2019, 08:01 pm
Hello,
un petit retour sur les tests:

L'installation du bootloader avec le nano configuré en ArduinoISP s'est passé sans erreur.

Ensuite l'installation du pgm blink sur le pro mini, toujours avec le nano en "programmateur" ne se passe pas bien :

Code: [Select]
Arduino : 1.8.10 (Linux), Carte : "Arduino Pro or Pro Mini, ATmega328P (3.3V, 8 MHz)"

Le croquis utilise 924 octets (3%) de l'espace de stockage de programmes. Le maximum est de 30720 octets.
Les variables globales utilisent 9 octets (0%) de mémoire dynamique, ce qui laisse 2039 octets pour les variables locales. Le maximum est de 2048 octets.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
...
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c
Une erreur est survenue lors du transfert du croquis



Je n'ai pas changé le câblage entre l'installation du bootloader et la tentative d'installation du programme.

Title: Re: programmation arduino pro mini avec un autre arduino
Post by: elektrax on Nov 26, 2019, 03:17 am
charger un booloader en isp puis televerser un croquis toujours en isp est un peu bizarre
le bootloader permet à la carte de recevoir un croquis par usb par l'intermédiaire d'un convertisseur usb / série
un promini acheté contient le bootloader, un module usb/serie a ftdi232, ch340/41 ou cp2102 permet le televersement des croquis sans se prendre la tete avec le isp, il faut juste faire attention lors de l'achat du module usb que la pin DTR soit cablée sur le pinheader en sortie ainsi qu'un choix entre 5 et 3v3.
Title: Re: programmation arduino pro mini avec un autre arduino
Post by: franck_du35 on Nov 26, 2019, 09:09 am
Je suis finalement parvenu à téléverser le programme blink sur le pro mini avec le nano en isp.

Mon erreur était d'utiliser la classique flèche de l'ide, il faut utiliser la fonction du menu : Croquis->Téléverser avec un programmateur.


Et oui je suis d'accord avec vous, le faire via un arduino as isp n'est pas le plus simple, mais comme je l'indique dans un post précédent, j'attends la livraison d'un module ftdi232.

Merci à tous pour vos conseils avisés
Title: Re: [RESOLU] programmation arduino pro mini avec un autre arduino
Post by: hbachetti on Nov 26, 2019, 01:39 pm
Quote
L'installation du bootloader avec le nano configuré en ArduinoISP s'est passé sans erreur.
Ensuite l'installation du pgm blink sur le pro mini, toujours avec le nano en "programmateur" ne se passe pas bien :
Quote
Mon erreur était d'utiliser la classique flèche de l'ide, il faut utiliser la fonction du menu : Croquis->Téléverser avec un programmateur.
Sauf qu'en téléversant l'application via ICSP tu vires le bootloader du même coup, car 'application vient se loger au même endroit dans la FLASH.
Title: Re: [RESOLU] programmation arduino pro mini avec un autre arduino
Post by: 68tjs on Nov 26, 2019, 02:24 pm
Il n'y a pas moyen de dire à avrdude de laisser le bootloader en place ?
Ok on sort complètement de l'univers arduino en utilisant avrdude en ligne de commande.
Title: Re: [RESOLU] programmation arduino pro mini avec un autre arduino
Post by: bricofoy on Nov 26, 2019, 03:07 pm
Mais ça aurait quel intéret ? le but du bootloader, c'est de se passer de programmateur ICSP, alors pourquoi le laisser si justement on en utilise un ?
Title: Re: [RESOLU] programmation arduino pro mini avec un autre arduino
Post by: 68tjs on Nov 26, 2019, 08:40 pm
Je ne parle pas intéret, je parle possibilité.

Avec un mini-pro en place il n'est pas forcément facile de faire des corrections de programme.
Je pense qu'il n'est pas inutile d'avoir la réponse à la question.

J'ai déjà vu 3 réalisations différentes de mini-pro :
- la basique qui n'apporte aucune valeur ajoutée
- celle qui renvoi en bord de carte les signaux pour programmer avec le bootloader
- celle qui offre le connecteur 6 points de l'ISP
L'intérêt dépendra de la version qui a été approvisionnée.
Title: Re: [RESOLU] programmation arduino pro mini avec un autre arduino
Post by: fdufnews on Nov 26, 2019, 10:24 pm
Pour moi, le .hex contient l'adresse d'implantation du code et donc je ne vois pas pourquoi on écraserait le bootloader.

De plus, lors de la compilation 2 .hex sont créés:

donc il doit y avoir moyen de faire ce que tu veux.
(https://forum.arduino.cc/index.php?action=dlattach;topic=649733.0;attach=334895)
Title: Re: [RESOLU] programmation arduino pro mini avec un autre arduino
Post by: elektrax on Nov 27, 2019, 04:18 am
le isp efface completement le chip avant flashage ?
et ensuite ?
quel fichier HEX avrdude va-t-il flasher ?
à partir de quelle version ide y-a-t-il un hex with bootloader ?

(https://forum.arduino.cc/index.php?action=dlattach;topic=649733.0;attach=334931)
Title: Re: [RESOLU] programmation arduino pro mini avec un autre arduino
Post by: 68tjs on Nov 27, 2019, 01:48 pm
Quote
le isp efface completement le chip avant flashage ?
Tout dépend de ce qu'il y a dans la ligne de commande d'avrdude.
L'effaçage avant reprogrammation n'est pas obligatoire, c'est une option à configurer.

Si on lit la doc d'avrdude et qu'on fait le transfert à main du fichier *.hex  on maitrise ce que l'on fait, si on le fait au travers de l'IDE c'est l'IDE qui décide.
Il doit bien y avoir un moyen de reconfigurer l'IDE mais vu le temps de recherche autant lire la doc d'avrdude.