Réglage du BOD (Brown-Out Detection) :
Cette étape n’est obligatoire, mais conseillé avant la programmation de l’arduino.
Le BOD surveille la tension d’alimentation du microcontrôleur et s’assure qu’elle ne tombe pas en dessous de son seuil. Si tel est le cas, le contrôleur s’éteint jusqu’à ce que la tension soit augmentée au-dessus de ce seuil.
Notre arduino est une version 3.3v 8Mhz et par défaut le BOD est réglé à 2.7v. Il est possible de le baisser à 1.8v sans avoir de conséquence sur son fonctionnement
Pour réaliser cette opération, il faut impérativement passer par un rechargement du bootloader de l’arduino en modifiant ses fusibles internes. Tu auras besoin d’avoir un programmateur ISP ou un autre arduino disponible.
Voici la liste de fusibles, extrait du site d’Atmel.
Celui qui nous intéressent particulièrement est dans le premier tableau, les « extented fuses ». Pour un réglage à 1.8v, il faut les bits BODLEVEL2 et 3 à 1 et le BODLEVEL0 à 0..
Cette méthode est une parmi d’autres, comme celle avec le bootloader Optiboot. Pour ma part, je suis resté avec le bootloader par défaut ATmegaBOOT. Tu trouveras un exemple sur ce site.
1 – Modifie le fichier boards.txt se trouvant sous « C:Program Files (x86)Arduinohardwarearduinoavr » ou « C:Users[user]AppDataLocalArduino15packagesarduinohardwareavr[X.Y.Z]boards.txt«
Dans la section de l’arduino pro mini 3.3v 8Mhz, il faut modifier la valeur pro.menu.cpu.8MHzatmega328.bootloader.extended_fuse et la mettre à 0xFE. Il faudra relancer l’IDE aduino pour la prise en compte de ce réglage.
## Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328P - BOD 1.8v
## ---------------------------------------------------
pro.menu.cpu.8MHzatmega328=ATmega328P (3.3V, 8 MHz) - BOD 1.8v
pro.menu.cpu.8MHzatmega328.upload.maximum_size=30720
pro.menu.cpu.8MHzatmega328.upload.maximum_data_size=2048
pro.menu.cpu.8MHzatmega328.upload.speed=57600
pro.menu.cpu.8MHzatmega328.bootloader.low_fuses=0xFF
pro.menu.cpu.8MHzatmega328.bootloader.high_fuses=0xDA
pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses=0xFE
pro.menu.cpu.8MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
pro.menu.cpu.8MHzatmega328.build.mcu=atmega328p
pro.menu.cpu.8MHzatmega328.build.f_cpu=8000000L
2 – Connecter l’arduino pro mini sur un autre arduino (UNO par exemple) de cette manière :
UNO | Pro mini |
5V | RAW (ne pas utiliser VCC !!) |
GND | GND |
10 | RST |
11 | 11 |
12 | 12 |
13 | 13 |
3 – Branche l’arduino uno avec sa prise USB et tu le programmes en « hôte ISP » via le programme exemple « ArduinoISP ». Type de carte « Arduino UNO ».
4 – Tu peux maintenant graver le bootloader sur l’arduino pro mini en choisissant le programmateur « Arduino as ISP » et puis en cliquant sur « graver la séquence d’initialisation »
Il est possible de passer par le module FDTI USB 3.3v mais en utilisant la librairie minicore. Je n’ai pas encore le temps d’essayer cette autre méthode qui ne demande pas d’avoir un autre arduino sous la main. J’espère le faire très prochainement.. 😉
Programmation de l’Arduino
Pour réaliser la programmation de l’Arduino Pro mini, qui est dépourvu de port USB, tu auras besoin d’un module FDTI USB 3.3v pour le téléversement du firmware. Il est possible d’en trouver sur Amazon ou Aliexpress.
Ce modèle d’interface FDTI a un cavalier permettant de choisir la tension de sortie 5v ou 3,3v. Dans notre cas, il faut se mettre sur la position 3,3v sinon adieu petit Arduino…
Ensuite le positionner le connecteur 6 broches sur l’arduino comme indiqué sur cette image.
Etapes pour la programmation de l’arduino :
- Télécharge et installe l’IDE Arduino
- Télécharge les sources du firmware 1.0.x sur Github (version TIC historique), version 1.1.x pour la version TIC standard
- Positionne le module FTDI sur l’arduino et branche le câble USB sur le PC/MAC
- Dans le logiciel Arduino,
- va dans Outils -> type de carte et sélectionne « Arduino Pro »
- puis dans Outils -> Processeur et sélectionne « ATmega328P (3.3v, 8Mhz) »
- sélectionne le bon port par le menu Outils -> Port
- Téléverse le firmware en appuyant sur
Après cette programmation, tu peux mettre l’ensemble des PCB dans le boîtier et le fermer.
Vérification possible
J’ai réalisé quelques mesures sur la carte interface avec un multimètre si vous avez besoin de faire quelques vérifications. Attention ce n’est que des valeurs indicatives et surtout pour la sortie I1-I2 qui est en 50kHz.
- – 1 – Sortie téléinfo I1-I2, en mode alternatif : variation entre 0 et 4,5 volts
- – 2 – Sortie optocoupleur, en mode continu : variation entre 0,8 et 1,1 volts
- – 3 – Sortie mosfet, en mode continu : variation entre 1,8 et 2,4 volts
- – 4 – Sortie alimentation, en mode continu : 5 volts
Lors de son démarrage, le super condensateur devra se charger avant la première émission de trame vers la gateway. Cette phase peut prendre entre 15 et 20 mn avec en visualisation la led clignotante. Ensuite, le module déterminera le type de trame afin de régler la bonne vitesse de la liaison série ; la led en face clignotera 3 fois en mode standard et 5 fois si c’est le mode historique.