samedi 20 octobre 2018

ARDUINO : problèmes de téléversement

ARDUINO : problèmes de téléversement

Dans ce document nous allons essayer de recenser toutes les sources possibles de problèmes pendant le téléversement d'une carte ARDUINO.

1. Le principe

Lors du téléversement L'IDE ARDUINO affiche le message "Téléversement ...".
Ensuite les opérations suivantes s'enchaînent : 
  • reset de la carte par le fil DTR de la liaison série
  • le bootloader de l'ARDUINO se met à l'écoute de la ligne série
  • l'IDE envoie le fichier .hex au bootloader
  • celui-ci extrait les données binaires de chaque message et les écrit dans la mémoire FLASH
  • le bootloader lance l'application
Trop de débutants  confondent compilation et téléversement. Le code C n'est pas envoyé à l'ARDUINO tel quel, il est d'abord compilé pour fabriquer un fichier en langage machine, dépendant du processeur utilisé.

Dans un premier temps, l'IDE affiche "Compilation du croquis". S'il y a un problème dans votre code, le fichier .hex ne sera pas généré et le téléversement n'aura pas lieu.

Ensuite, si la compilation s'est bien passée, il affiche "Téléversement ...", et c'est à ce moment que les ennuis peuvent commencer.

Si le téléversement échoue, le bootloader lance l'application, qui est généralement l'exemple "blink" pour une carte neuve. Donc si la LED D13 clignote c'est normal.

2. Les drivers USB

Selon l'OS que vous utilisez, il vous faudra installer on non un driver pour le convertisseur USB / série implanté sur la carte.
Selon l'origine le convertisseur peut être de différents types :
  • FT232RL
  • CH340G
  • ATMEGA8 (anciennes version de UNO ou MEGA)
  • ATMEGA16U2
  • etc.

2.1. Windows

Il faut absolument identifier le convertisseur et utiliser le driver adapté. Pour une NANO par exemple, celui-ci est situé sous la carte.
Il faudra probablement utiliser une loupe si votre vue n'est pas excellente.

Il y a beaucoup de tutos sur le WEB qui expliquent cette opération, CELUI-CI par exemple.

Si votre carte possède un convertisseur CH340G, il faut télécharger le driver ICI. Il y a aussi des tutos, dont CEUI-CI.

Après l'installation, en branchant la carte ARDUINO, un port série supplémentaire doit apparaître dans le "Gestionnaire de Périphériques".
En débranchant la carte le port doit disparaître.

2.2. LINUX

Les possesseurs d'un système LINUX n'auront pas à installer de driver, car la majeure partie de ceux-ci font partie de la distribution.
Il suffit de vérifier avec dmesg que le branchement de  la carte ARDUINO provoque la création d'un nouveau port de communication.

[11319.753230] usb 2-1.1.1: new full-speed USB device number 12 using ehci-pci
[11319.846506] usb 2-1.1.1: New USB device found, idVendor=1a86, idProduct=7523
[11319.846512] usb 2-1.1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[11319.846515] usb 2-1.1.1: Product: USB2.0-Serial
[11319.846943] ch341 2-1.1.1:1.0: ch341-uart converter detected
[11319.848601] usb 2-1.1.1: ch341-uart converter now attached to ttyUSB1

A la déconnexion, avec dmesg vous verrez ceci :

[11484.934167] usb 2-1.1.1: USB disconnect, device number 12
[11484.934444] ch341-uart ttyUSB1: ch341-uart converter now disconnected from ttyUSB1
[11484.934479] ch341 2-1.1.1:1.0: device disconnected

Il se peut que l'IDE ne parvienne pas à ouvrir le port pour des raisons de privilèges. Suivez ces INSTRUCTIONS.
 

2.3. La suite

Tant que le port n'apparaît pas dans le "Gestionnaire de Périphériques" Windows ou dans les messages affichés par dmesg, c'est tout à fait inutile d'aller plus loin.
Cette étape est essentielle et obligatoire.

3. Les problèmes

3.1. Les broches de la carte

Certaines cartes dont la NANO, sont livrées avec deux barrettes de broches mâles. Ces barrettes doivent être soudées proprement sur la carte.
Cela ne devrait pas gêner le téléversement si les elles ne le sont pas, mais l'exécution du code pourrait poser problème.
Certains ont déjà essayé de faire tourner une application avec les barrettes enfichées dans une breadboard et la carte simplement posée dessus, sans soudures. Et ce n'est pas une blague, c'est malheureusement arrivé !

3.2. Le type de carte et le processeur

Le bon type de carte doit être sélectionné dans le menu "Outils / Type de carte".
Pour certaines cartes le processeur peut être choisi dans le menu "Outils / Processeur".

Cas particulier : avec l'ARDUINO NANO vous avez le choix entre :
  • ATmega328p
  • ATmega328p (Old Bootloader)
  • ATmega168
Le choix "ATmega328p (Old Bootloader)" correspond à une ancienne version du bootloader. Si en choisissant "ATmega328p" le téléversement ne fonctionne pas choisissez "ATmega328p (Old Bootloader)".

L'ARDUINO PRO MINI se décline en quatre versions :
  • ATmega328p (5V, 16MHz)
  • ATmega328p (3.3V, 8MHz)
  • ATmega168 (5V, 16MHz)
  • ATmega168 (3.3V, 8MHz) 
Choisissez bien l'option qui correspond à la carte que vous avez acheté. Si par exemple dans votre code vous ouvrez la ligne série à 115200 baud, que vous avez choisi l'option 115200 dans le moniteur série et que vous voyez des caractères étranges s'afficher, il est probable que la fréquence choisie pour le processeur ne soit pas la bonne.

3.3. L'USB

Le port de communication doit être choisi dans le menu "Outils / Port".
Il peut arriver que vous ayez plusieurs cartes branchées et que le port choisi ne corresponde pas à la carte voulue.
Vérifiez en branchant et débranchant la carte que le port choisi est le bon.
Lorsque l'on débute il vaut mieux travailler avec une seule carte à la fois.

Une source de problème peut être le câble USB. Utilisez un câble court et en bon état. Les cas de panne due au câble sont plutôt rares.

3.4. La ligne série

Le convertisseur USB / série envoie les caractères à transmettre à la ligne série de l'ATmega.
Les deux pins D0 (RX) et D1 (TX) ne doivent pas être reliées à d'autres composants ou modules (Bluetooth par exemple) pendant le téléversement.
Certaines cartes, la DUE par exemple, possèdent un port USB dédié. Utiliser de préférence ce port dit "Native USB Port".

3.5. Logiciels annexes

Certains logiciels peuvent bloquer l'accès au port série. Fermez tous les programmes susceptibles d'ouvrir les ports de communication, les terminaux série en particulier.
Certains dongles peuvent également poser problème, y compris certains dongles de souris / clavier. Essayez en les retirant.

3.6. Le RESET

Sur certaines cartes, le RESET automatique peut ne pas fonctionner, ou ne pas fonctionner avec certains PC.
Appuyez sur le bouton RESET un peu avant que le téléversement ne commence.

3.7. La panne

Vous avez peut effectué une manipulation précédente (erreur de tension d'alimentation par exemple) qui a détruit le convertisseur USB ou le processeur.
Si l'un des deux composants chauffe, il est probablement mort.
Cela vous incitera certainement à ne jamais commander une seule carte, sauf pour les modèles dont le prix est élevé.

3.8. Le bootloader

Il peut arriver que le bootloader soit détruit accidentellement à cause par exemple d'une chute lente de l'alimentation et des fuses mal programmés.

Dans un premier temps, il est judicieux de déterminer si c'est réellement la cause du problème. Lorsque vous appuyez sur le bouton RESET, la LED connectée sur la pin 13 doit s'allumer brièvement. Si ce n'est pas le cas, le bootloader est absent.

Il est possible de reprogrammer le bootloader en utilisant une autre carte UNO par exemple. Cette opération s'effectue en reliant le bus SPI de la UNO au connecteur ICSP de la carte à reprogrammer.

Un tuto est disponible ICI.

Dans ce tuto, vous verrez qu'il est possible de graver le bootloader d'une UNO à l'aide d'une MEGA. Je l'ai essayé, et cela fonctionne.
Il faut faire la manip suivante : 
  • branchement USB de la MEGA sur le PC 
  • branchement SPI MEGA / UNO
  • condo 10µF entre RESET et masse de la MEGA
  • ouverture sketch ArduinoISP 
  • choisir type de carte : Arduino/Genuino Mega or Mega2560 
  • téléversement du sketch dans la MEGA (bouton téléverser) 
  • choisir type de carte : Arduino/Genuino Uno 
  • choisir Programmateur : Arduino as ISP
  • Outils / Graver la séquence d'initialisation
On peut également utiliser un programmateur USBasp.

Sous LINUX, j'ai écrit un tuto ICI.

Il y a CELUI-CI aussi.

4. Travailler sans le bootloader

Le bootloader ARDUINO n'est pas absolument nécessaire. On peut fort bien s'en passer en utilisant un programmateur comme celui décrit dans le paragraphe précédent.

Cela permet de gagner 2K en mémoire FLASH.
Le port USB de votre carte pourra être connecté au PC pour bénéficier du moniteur série (console).

Dans l'IDE ARDUINO, choisir dans le menu Outils / Programmateur : "USBasp" ou "Arduino as ISP" ou un autre programmateur de votre choix.
Dans le menu "Croquis / Téléverser avec un programmateur"

Dans ce cas, l'application que vous allez téléverser va écraser le bootloader. En d'autres termes elle prend la place de celui-ci et il sera impossible après cette opération de téléverser par la voie normale qui utilise le câble USB. Il faut prendre l'habitude d'effectuer le téléversement par le menu "Croquis / Téléverser avec un programmateur".

Pour revenir à la situation "normale", avec bootloader et téléversement par l'USB, choisir dans le menu "Outils / Graver la séquence d'initialisation".


5. Références

Le guide officiel : https://www.arduino.cc/en/Guide/Troubleshooting#upload

6. Mises à jour

29/12/2018 : mise à jour paragraphe  3.8. Le bootloader

dimanche 14 octobre 2018

Batteries LITHIUM-ION : recharge en série

Batteries LITHIUM-ION : recharge en série

Nous allons dans cette page essayer de bâtir une solution de recharge de batteries LITHIUM-ION en série.

La recharge de batterie LITHIUM-ION en série ou série / parallèle, contrairement à ce que certaines personnes prétendent, est parfaitement réalisable à condition d'utiliser le matériel adapté. Sinon comment rechargerions-nous nos vélos ou autres trottinettes électriques ?

La solution n'a pas pour vocation de remplacer un chargeur du commerce, elle est plutôt destinée à être intégrée dans un montage à alimentation autonome, que l'on recharge régulièrement par le secteur ou un panneau solaire, sans démontage des batteries.

La solution recherchée est destinée à alimenter un montage en 12V, 18V, 24V ou plus, un préamplificateur de microphone ou une enceinte amplifiée par exemple.
Dans mon cas il s'agit d'un préamplificateur haut de gamme associé à un filtre actif.

La majeure partie des projets à base d'ARDUINO, ESP8266 ou STM32 ne requièrent qu'une seule batterie de 3.7V. Dans ce cas, inutile de s'encombrer avec ce qui suit. Il vaut mieux se tourner ver une petite solution à base de TP4056, très simple, efficace et bon marché.
On pourrait penser que charger 3 batteries en série en connectant les entrées de 3 TP4056 en série est possible, mais cette solution est déconseillée. En effet lorsque la première batterie sera chargée le TP4056 qui lui est raccordé va se couper, entraînant également la coupure des deux autres.

1. Un peu de théorie

La charge se passe généralement en deux phases, une première phase à courant limité de l'ordre de C/2 à 1 C (C étant la capacité de l'accumulateur). Cette phase permet une charge rapide jusqu'à environ 80 %, puis une deuxième phase à tension constante et courant décroissant pour se rapprocher des 100 % de charge en environ deux heures de plus. La charge est terminée lorsque le courant de charge chute en dessous d'une valeur appelée courant de fin de charge.

La tension de fin de charge des accumulateurs Li-ion peut être de 4,1 à 4,2 V suivant la spécification du fabricant de l'accumulateur. La tolérance couramment admise est de ± 0,05 V par élément, ils sont très sensibles à la surcharge et demandent une protection lorsqu'ils sont connectés en série.

Les chargeurs doivent être de bonne qualité pour respecter cette tolérance. Il importe de toujours respecter la feuille de données fournie par le fabricant, qui fait état des conditions de charge de l'accumulateur (tolérance, courant de charge, courant de fin de charge, etc.). Toutefois, certains éléments destinés au grand public possèdent une électronique interne qui les protège des mauvaises manipulations (surcharge, décharge profonde). En effet, la décharge doit être limitée à une tension de 3 V par élément, une tension de décharge inférieure à 2,5 V peut conduire à une destruction de l'élément.

Origine : WIKIPEDIA

2. Le matériel

Pour effectuer nos essais, nous allons utiliser quatre éléments :
  • une carte de protection
  • une carte d'équilibrage
  • une source de courant
  • 3 batteries 18650
Le choix de 3 batteries est adaptée à mon cas. On peut parfaitement utiliser cette solution pour charger 4, 5, 6 batteries ou plus, selon les besoins.

2.1. La carte de protection

La carte de protection est sensée protéger la ou les batteries contre les petits accidents indésirables :
  • surcharge en tension
  • surconsommation ou court-circuit
  • décharge profonde
La carte de protection ne régule pas le courant de charge. Son seul rôle est de  le couper en cas de problème.
En décharge elle assurera principalement la coupure de la batterie avant qu'elle ne tombe en décharge profonde.

Elle est normalement équipée d'un circuit de commande et de quelques transistors MOSFET de puissance.

La carte que je vais utiliser est une 3S. Cela veut dire qu'elle est capable de protéger 3 batteries en série. Elle est équipée d'un circuit S-8254A, c'est à dire d'un circuit intelligent capable d'enchaîner les deux cycles de charge, à courant constant, puis à courant décroissant.

L'offre en matière de carte de protection de batteries LITHIUM-ION est assez importante et il est difficile de faire son choix. Il est également difficile de trouver des petits modèles de 5A à 10A.

Il faut bien comprendre que c'est la source de courant (bloc secteur) en amont de la carte de protection qui fournit le courant et qui limite celui-ci. La carte de protection et équilibrage, même si elle est capable de laisser passer 10A ou 25A se contentera de ce que le chargeur lui donnera, 1A par exemple.
En d'autres termes choisir une carte de protection 10A ou 25A pour charger des batteries avec seulement 1A ne pose aucun problème.

2.2. La carte d'équilibrage

La carte d'équilibrage permet de répartir la charge entre les batteries.
Si le niveau de charge des batteries est légèrement différent, le courant de charge des éléments les plus chargés est dérivé à travers une résistance.
Une carte d'équilibrage est caractérisée par le courant de déséquilibre maximal qu'elle est susceptible de corriger.

La carte que je vais utiliser est aussi une 3S. Elle est sensée pouvoir corriger un déséquilibre de 66mA.
Cela veut clairement dire que la carte ne pourra pas compenser un déséquilibre très important. On chargera donc en série plusieurs batteries identiques dont l'état de décharge est semblable. Il serait impensable de charger en série deux batteries presque pleines et une batterie presque vide.

2.3. La carte de protection et équilibrage

Il existe des cartes combinant la fonction protection et la fonction équilibrage :
Cette carte est bien évidemment plus facile à câbler, mais on remarque assez facilement qu'elle est équipée uniquement de composants discrets, sans intelligence. Il serait étonnant qu'elle soit aussi performante que la solution précédente.
Je vais tester ce modèle provenant d'AliExpress.

2.4. La source de courant

La recharge doit être effectuée à l'aide d'une source de tension limitée en courant. Pour mes essais une alimentation de laboratoire est utilisée.
La tension est réglée sur 12.6V et la limitation de courant est fixée à 500mA.

Ce qu'il est important de comprendre est que l'alimentation réglée sur 12.6V et limitée à 500mA va essayer de produire cette tension, mais la limitation du courant fera chuter celle-ci si la tension de la batterie est plus faible. Ce sera le cas en début de charge, puisque la tension de la batterie sera d'environ 9V si elle est vide. La tension de sortie de l'alimentation sera donc également égale à 9V, et elle augmentera avec la charge, le courant restant constant.

On peut aussi utiliser un chargeur à découpage 12.6V / 1A (Les modèles 500mA sont moins courants) comme celui-ci :


Ces chargeurs sont normalement prévus pour être utilisés seuls, sans carte de protection ni d'équilibrage, mais il est impératif de ne charger que des batteries dont l'état de charge est très proche, sous peine de surcharger un ou plusieurs éléments.
Dans cette étude nous ne cherchons pas seulement à recharger des batteries. On désire le faire dans les meilleures conditions possibles et on a besoin d'ajouter un peu de sécurité, notamment un arrêt automatique de la charge et une coupure pour éviter les décharges profondes.

On peut également utiliser toute alimentation, à partir du moment où sa tension est ajustable et qu'elle possède une limitation de courant adaptée aux batteries à recharger. Il est important de choisir un modèle qui ne coupe pas sa sortie lorsque la limite de courant est atteinte.

Pour charger trois batteries 18650 2000mAH on choisira un modèle 12V / 1A. Il est préférable qu'elle possède un réglage de tension que l'on pourra ajuster sur 12.6V précisément.

La valeur de 12.6V est importante car elle va conditionner le passage de la charge à courant constant à la charge à courant décroissant.
Pendant la première partie de la charge, à courant constant, la tension de l'alimentation va augmenter naturellement et proportionnellement à celle de la batterie.

Je déconseille totalement d'utiliser une alimentation à découpage classique du genre alimentation à encastrer 12V :

Une alimentation à découpage de ce genre ne sera pas capable de limiter le courant. Elle coupera sa sortie si le courant dépasse ce qu'elle est capable de fournir.

2.4. Les batteries

Nous allons utiliser 3 batteries du type 18650, très répandues et bon marché.

Il est conseillé d'utiliser des batteries de capacité équivalentes, du même modèle de préférence et ayant le même age.

Ces batteries doivent être avoir été chargées au moins une fois, car même si nous allons la décharger pour nos essais, il ne faut pas décharger une batterie neuve. Au contraire, il convient de la recharger avant toute utilisation.

Au passage ne vous fiez pas à ce qu'il est écrit sur les batteries chinoises bon marché. La capacité promise de 6000mAH se révèle assez souvent plus proche de 1000mAH.

C'est le cas des batteries que je vais utiliser pour ce test, des Ultra-Fire.

Des supports de batteries sont indispensables :

3. Branchements

Les supports de batteries ainsi que les deux cartes seront équipés de fils de 0.5 mm2 terminés par des connecteurs mâles du type DUPONT.

Il faut relier le pôle négatif, le premier point milieu, le deuxième point milieu et le pôle positif des batteries sur les broches 0V, 4.2V, 8.4V et 12.6V de la carte de protection.
La carte d'équilibrage se branche en parallèle sur les batteries exactement de la même façon :

Suivant le cas, les cartes sont sérigraphiées de manière différente :
  • 0V, 4.2V, 8.4V et 12.6V
  • 0V, 3.7V, 7.4V et 11.1V
  • B1, B2, B3, B4
  • etc.

4. Mode opératoire

4.1. La décharge

Pour commencer nos essais de charge nous allons commencer par décharger nos batteries.
Pour cela le plus simple est d'utiliser une charge du type ampoule de feu de direction de voiture. Elle consomme 21W ce qui produira un courant de décharge de 1.75A sous 12V. Il faudra compter une bonne demi-heure pour décharger une batterie de 1000mAH.
Il faut brancher cette charge sur les connecteurs P- et P+ de la carte de protection.

Lorsque je connecte la charge la tension aux borne de la batterie chute de 12.6V à 10.8V. Les batteries que j'utilise sont des modèles chinois de piètre qualité, ayant probablement une résistance interne assez élevée.

Normalement la carte de protection doit limiter la décharge des batteries afin de ne pas occasionner de décharge profonde, ce qui serait dangereux pour elles. C'est la première vérification que nous allons effectuer.

Au bout de 30 minutes la carte de protection joue son rôle et la lampe s'éteint. Avec la carte que j'ai utilisé la valeur de la tension lors de la coupure est de 9.05V, ce qui donne 3V par batterie. Ce n'est pas mal du tout.
La carte fonctionne bien sur ce point, ce qui est positif.

Lorsque la décharge est interrompue, la tension remonte au dessus de 10V, ce qui est normal, car les batteries ne débitent plus de courant, et la résistance interne n'intervient plus dans la mesure.
Ces batteries ont une capacité de 1AH. La décharge que nous venons d'effectuer a été faite avec un courant assez important, ce qui fausse la mesure de la carte de détection à cause de la résistance interne des batteries, et donc coupe la décharge trop tôt, laissant une quantité d'énergie assez importante dans les batteries, peut-être de 15 à 20%.
Dans des conditions réelles et une consommation plus raisonnable, la décharge s'effectuerait sur une durée beaucoup plus importante et serait plus profonde.
Mais il est vrai aussi que dans la vie réelle d'une batterie il est rare de la décharger complètement. On la recharge avant que sa capacité ne chute trop bas, afin de stocker de l'énergie pour la prochaine utilisation.

4.1.1. La carte de protection et équilibrage
A noter : la carte présentée en 2.3. coupe la décharge plus tôt : 9.5V, donc 3.16V par élément.

4.2. La charge

Pour charger les batterie dont je dispose je règle l'alimentation sur un peu plus de 12.6V avec un multimètre précis, en lui faisant débiter 500mA à l'aide d'une résistance de 24Ω 15W, sans limitation de courant, après un temps de chauffe de quelques minutes.
Ceci est important car cela permet de s'assurer que l'alimentation fournira bien ces 12.6V à la fin de la charge à courant constant. Faire le réglage à vide produirait un résultat erroné, ne tenant pas compte des chutes de tension dans le câblage.
La limitation de courant est ensuite réglée sur 500mA (C/2).

Il n'y a plus qu'à débrancher la charge et brancher notre chargeur. On va pour cela utiliser les mêmes broches P- et P+ de la carte de protection.

Le multimètre est branché sur les batteries.

Avec l'alimentation de laboratoire et son ampèremètre, il va être facile de surveiller le courant de charge. Sinon, avec une alimentation sans ampèremètre, il faudra brancher un autre multimètre entre celle-ci et la carte de protection.

Ensuite, comment surveiller la charge de chacune des batteries ?
Sur la carte d'équilibrage il y a des résistances qui servent à dériver le courant excédentaire de chaque batterie. Elles sont facilement reconnaissables, ce sont des résistances CMS de puissance, d'une valeur de 100Ω à 1KΩ.
On pourra mesurer ce courant à l'aide d'un voltmètre, en s'aidant de la loi d'ohm (I=U/R). Si la tension aux bornes de chaque résistance est nulle, cela voudra dire que la charge se déroule très très bien, c'est à dire que les batteries sont dans le même état de charge pendant l'opération.

Commençons la charge. Au bout de quelques secondes la tension batterie monte à 11.5V, l'ampèremètre indique bien 500mA.

La tension aux bornes des résistances de la carte d'équilibrage est de 0.00V, ce qui veut dire que la charge de départ des batteries est homogène.

En dix minutes la tension aux bornes des batteries monte à 12V.
Au bout d'une heure de charge, la tension est de 12.58V. Normalement la carte de protection ne devrait pas intervenir, car cela reste une tension normale de fin de charge.

Le courant commence à décroître. Il atteint 360mA au bout de 1H15 de charge.
La charge à courant décroissant va durer quelques heures. Nous stopperons la charge lorsque le courant de charge tombera en dessous de 0.03C c'est à dire 30mA pour notre batterie de 1000mAH.

Au bout de deux heures de charge, le courant de charge est de 180mA.
Au bout de trois heures de charge, il est de 50mA.

Nous allons nous arrêter là. Au delà de 3 heures, cela devient un peu trop long. Les 30mA ne sont pas atteints mais j'ai peut être placé la barre un peu haut. Les batteries sont tout de même très bien chargées.

4.2.1. La carte de protection et équilibrage
A noter : la carte présentée en 2.3. coupe la charge au bout de 25 minutes, aussitôt que la tension de 12.6V est atteinte aux bornes de la batterie.
Une fois la charge coupée la tension aux bornes de la batterie retombe à 12.2V, ce qui correspond à 4.06V par élément. C'est insuffisant.
Il n'y a pas de phase de charge à courant décroissant, donc aucune chance que celle-ci soit chargée à bloc.

4.3. Le courant consommé à vide

Il  est intéressant de mesurer le courant consommé par les deux cartes sur la batterie, car s'il était trop important, cela les viderait plus ou moins rapidement aussitôt la source de courant débranchée.
La carte de protection est censée consommer 18µA. Je n'ai aucune donnée concernant la carte d'équilibrage.

Avant de mesurer il faut bien entendu débrancher l'alimentation, car cela fausserait la mesure.
Les deux cartes consomment 27µA, ce qui est tout à fait acceptable.

Les deux cartes pourront donc être laissées en permanence en parallèle sur les batteries sans que cela aie un impact important sur l'autonomie.
Seul la source de courant aura besoin d'être branchée pour la recharge.
 

5. Conclusion

5.1. Carte de protection intelligente + carte d'équilibrage

La solution semble fonctionner correctement. La carte de protection assure sa mission, la carte d'équilibrage aussi. Le résultat est encourageant.

La carte de protection n'a pas coupé la charge. Elle a probablement une tension de seuil de détection de surcharge légèrement supérieure à 12.6V.

Le point délicat reste la source de courant. Le courant de charge doit être choisi avec soin. En général il se situe aux alentours de C/2 à 1C. Je préfère C/2 car cela augmente leur durée de vie.
Dans le monde du modélisme, ce sera certainement 1C ou plus, mais les amateurs de cette discipline démontent les batteries pour les charger, et disposent de plusieurs jeux de remplacement.

Le choix de la source de courant dépendra donc du choix des batteries. Une batterie de 3000mAH sur un montage nécessitant de la puissance et un temps de charge réduit sera chargée à 3A.
Une batterie 500mAH en utilisation "standard" sera chargée à 250mA.

La majeure partie des batteries de marque ont des capacités élevées : 2500 à 3000 mAH. Elles peuvent en outre fournir un courant important. On trouve des batteries 18650 capables de délivrer 20A à 30A !
Si votre application est exigeante en courant tournez-vous plutôt vers ce genre de batteries.

Mais si votre application consomme peu, vous pouvez vous contenter de batteries bon marché aux performances faibles.
Mon thermomètre sur batterie tourne depuis décembre 2017 sur une batterie bon marché 16340 de 225mAH. Sa capacité est encore de 92%. Ce qui est recherché dans ce montage est l'autonomie et non pas la puissance instantanée.

J'ai mené cette petite expérimentation dans le but d'alimenter un montage audio dont la consommation devrait avoisiner les 100mA sous 2x12V.

La charge des batteries sera démarrée lorsque l'interrupteur marche / arrêt sera basculé sur OFF. Il faut également un dispositif capable de couper le chargeur lorsque le courant de charge descend en dessous d'un certain seuil (0.03C).
L'autonomie avec les batteries utilisées devrait être d'une dizaine d'heures, ce qui convient parfaitement.

Malgré tout, la résistance interne de ces batteries ne me satisfait pas. En effet ce n'est pas ce que l'on recherche en général dans un montage audio haut de gamme. Une résistance interne élevée de l'alimentation nuit à la dynamique.
Je me tournerai donc plutôt vers des batteries SONY 18650 VTC6 3000 mAH, ou MXJO IMR 18650 3000mah. Ce sont toutes deux des batteries de cigarette électronique de grosse puissance.

Lorsque l'on démarre ce genre d'étude, il n'est pas évident de déterminer le rôle de chaque élément dans la chaîne (chargeur, carte de protection) et je n'ai pas trouvé sur le WEB d'exemples pratiques de montages. J'ai donc décidé d'expérimenter par moi-même.

J'espère qu'avec cette petite expérimentation nous aurons quelque peu débroussaillé le terrain de la charge de ces accumulateurs en série.
Les remarques sont bien entendu les bienvenues.

5.2. La carte de protection et équilibrage
Comme dit plus haut la carte présentée en 2.3. n'est pas une carte intelligente, elle est incapable d'assurer les deux phases de charge (courant constant puis courant décroissant). Il n'est pas étonnant que la charge obtenue soit partielle.

Il faut donc privilégier les cartes équipées d'un contrôleur de charge intelligent du type S-8254A ou équivalents.

6. Le chargeur IMAX B6

Certains chargeurs du commerce sont très évolués, comme ce chargeur de chez SKYRC, le IMAX B6 :
Ce chargeur permet de recharger tous types de batteries :
  • LITHIUM-ION
  • LIPO
  • NI-CD
  • NI-MH
Il est livré avec un ensemble de cordons adaptateurs, permettant de le brancher sur divers types de batteries de modélisme.
Il est aussi capable de d'équilibrer la charge de batteries LITHIUM en série, grâce à cinq connecteurs JST sur le côté droit :
Il est possible d'équilibrer la charge de batteries de type 2S, 3S, 4S, 5S et 6S. Certaines batteries du commerce possèdent un connecteur d'équilibrage, comme celle-ci :
Après avoir branché le connecteur rouge sur les bornes de charge à l'aide de l'adaptateur adéquat, il suffit de brancher le petit connecteur blanc sur l'une des embases blanches du chargeur pour obtenir une charge de qualité.

7. Mises à jour

11/11/2018 : ajout paragraphe 6. Le chargeur IMAX B6
16/06/2020 : test d'une carte protection+équilibrage

lundi 8 octobre 2018

ARDUINO : cartes alternatives

ARDUINO : cartes alternatives

Nous allons examiner dans cette page quelques alternatives existantes aux cartes ARDUINO, en particulier celles produites par INHAOS.

1. MASSDUINO

Les cartes MASSDUINO sont équipées d'un processeur MD-328D, proche de l'ATMEGA328P.
Ce processeur offre quelques avantages intéressants :

  • alimentation 5V et 3.3V tout en conservant une horloge à 16MHz
  • ADC 10, 12 ou 16 bits
  • 2 sorties DAC 8 bits

Pour les cartes à base de MD-328D, un "support package" pour l'IDE ARDUINO existe ICI.
Arduino - MassDuino_Support_Package V46r2

Concernant la possibilité d'alimenter en 3.3V, cette possibilité impacte directement les GPIOs, qui vont avoir une tension de sortie de 3.3V. Cela permet de connecter des capteurs et des modules directement prévus pour cette tension.

1.1. Massduino UNO LC

Cette carte est au format ARDUINO UNO.
Par rapport à une UNO elle offre les avantages suivants :
  • connecteur micro-USB
  • connecteurs doublés mâle / femelle
  • alimentation 3.3V ou 5V, le choix se faisant par déplacement d'un cavalier
  • courant disponible 5V : 880mA
  • courant disponible 3.3V : 600mA
Le convertisseur USB / Série est un CH340G.

Dans l'IDE ARDUINO la carte à sélectionner est : MD328D-LQFP32.

1.2. Massduino UNO LC LITE

Cette carte est également au format ARDUINO UNO.
Elle ne possède pas de convertisseur USB / Série. Cela entraîne un gain de consommation d'environ 10mA.
Vous devrez utiliser un convertisseur extérieur pour la programmer.

1.3. Massduino NANO

Cette carte est au format ARDUINO NANO.
Par rapport à une NANO elle offre les avantages suivants :
  • connecteur micro-USB
  • alimentation 3.3V ou 5V. Le choix se fait par déplacement d'un cavalier
  • courant disponible 5V : 500mA
  • courant disponible 3.3V : 300mA

Le convertisseur USB / Série est CH340G.

Dans l'IDE ARDUINO la carte à sélectionner est : MD328D-LQFP32.

1.4. Massduino NANO LITE

Cette carte est également au format ARDUINO NANO.
Elle ne possède pas de convertisseur USB / Série. Cela entraîne un gain de consommation d'environ 10mA.
Vous devrez utiliser un convertisseur extérieur pour la programmer.

1.5. Massduino UNO CORE


Cette carte UNO a un format propriétaire.
Elle se distingue de la UNO par les points suivants :
  • alimentation VCC 3.3V ou alimentation VIN 4.5 à 12V
  • régulateur 3.3V LDO intégré
Elle ne possède pas de convertisseur USB / Série. Cela entraîne un gain de consommation d'environ 10mA.
Vous devrez utiliser un convertisseur extérieur pour la programmer.

2. Autres cartes INHAOS

INHAOS produit également des cartes ATMEGA et DUE sous un format réduit.

2.1. Mega2560-CORE/ Mini2560

La MEGA CORE :
Une MEGA sans USB qui se programme avec un convertisseur USB / série.

Attention, la sérigraphie de la carte est à interpréter à l'envers. Il faut relier le TX du convertisseur sur le TX de la carte et le RX du convertisseur sur le RX de la carte.

Apparemment, la datasheet dit vrai : la carte peut être alimentée en 3.3V.

Sa taille est de 51mm x 36mm.
Rien à dire de plus sinon qu'il vous faudra deux connecteurs femelle 40 points et un 20 points si vous voulez l'enficher sur un PCB.

2.2. DUE-CORE

Cette carte à base d'AT91SAM3X8E comme l'ARDUINO DUE dispose de l'USB natif pour la programmer.

Je n'ai pas réussi à la programmer avec un convertisseur USB / série par le connecteur "Programming Port". un bootloader est-il prévu pour cette utilisation ?

Avec l'USB natif cela fonctionne. On peut utiliser le Programming Port comme port de communication auxiliaire.
Le port USB natif peut être également utilisé pour émuler une souris ou un clavier USB.

Le device Serial de la librairie ARDUINO correspond au Programming port. Le device SerialUSB correspond au Native port.
Donc si l'on veut afficher des informations sur la console de l'IDE en utilisant le port USB il faudra écrire ceci :

  SerialUSB.begin(115200);
  SerialUSB.println("Hello !");


Sa taille est de 57mm x 54mm.
Il vous faudra deux connecteurs femelle 44 points et un 28 points si vous voulez l'enficher sur un PCB.

Voici la datasheet :

3. Convertisseur USB / série

Pour programmer les cartes MEGA, UNO CORE et UNO LC LITE j'ai préféré utiliser un convertisseur USB / série avec cavalier de sélection 5V / 3.3V comme celui-ci :

4. Références



Cordialement
Henri