mardi 10 mars 2020

ARDUINO : PRO MINI 5V ou 3.3V



ARDUINO : PRO MINI 5V ou 3.3V


J'ai déjà écrit un article sur cette carte :

arduino-pro-mini-basse-consommation.html

Ce nouvel article a pour but de présenter les différents modèles de cartes PRO MINI et d'avertir sur certains dangers liés à leur utilisation.

Ce modèle de carte ARDUINO est intéressant à plus d'un titre :

  • encombrement réduit
  • possibilité de basse consommation

Il existe plusieurs modèles :

  • 5V 16MHz
  • 3.3V 8MHz 

J'utilise de plus en plus ces cartes, en lieu et place de cartes NANO ou UNO, car elles offrent les mêmes possibilités dans un encombrement moindre. Le choix de la tension d'alimentation est fait en premier lieu en fonction des modules présents :

  • NRF24L01, RFM69 : 3.3V
  • DS18B20, MCP9808, SHT31D : 3.3V ou 5V
  • HDC2080, BME280 : 3.3V 
  • L293D : 5V
  • etc.

Je sais bien qu'il existe des circuits d'adaptation de niveau permettant d'utiliser un microcontrôleur 5V avec des périphériques 3.3V, mais je préfère m'en passer.

De même, un microcontrôleur 5V peut parfaitement fonctionner avec des périphériques tolérants au 5V sur leur entrées, alimentés sous 3.3V, mais le fonctionnement est fortement dépendant de la valeur exacte de tension d'alimentation 5V du microcontrôleur ou de 3.3V du périphérique.

Pour ces raisons je préfère toujours adopter la même tension d'alimentation pour le microcontrôleur et les périphériques.

Il y a plusieurs méthodes d'alimentation de ces cartes :

  • par la broche RAW
  • par la broche VCC

Un régulateur (MIC5205 en général) est implanté sur la carte et permet d'alimenter celle-ci par la broche RAW sous une tension maximale de 16V.

Ce régulateur est soit un modèle 5V soit un modèle 3.3V.

La broche VCC permet l'alimentation directe en 3.3V ou 5V.

Première remarque : un ATMEGA328P équipé d'un oscillateur 16MHz est incapable de fonctionner sous 3.3V.

Un ATMEGA328P équipé d'un oscillateur 8MHz est capable de fonctionner sous 3.3V, car cette fréquence lui permet d'accepter une tension inférieure.

Dans les deux cas il s'agit exactement du même microcontrôleur.

Deuxième remarque : l'ATMEGA 328P, même s'il est équipé d'un oscillateur 8MHz, peut supporter 5V ou même 6V. Mais le régulateur présent sur une carte 8MHz 3.3V n'appréciera pas je pense, de subir 5V sur sa sortie.

Cela reste faisable néanmoins si l'on supprime le régulateur.

Troisième remarque : la PRO MINI 8MHz et la PRO MINI 16MHz ont une consommation en mode veille assez semblable :

  • PRO MINI 8MHz : 1.5µA
  • PRO MINI 16MHz : 3µA

Cette consommation est obtenue en retirant la LED POWER et le régulateur 3.3V ou 5V de la carte :

Quand on pense basse consommation on pense forcément PRO MINI 3.3V 8MHz, mais la PRO MINI 16MHz n'est pas à exclure. 3µA n'est pas une consommation excessive. Le courant d'auto-décharge d'une batterie est souvent supérieur !

1. Différents modèles

En dehors de cette différence de fréquence et de tension de fonctionnement il en existe d'autres. La carte PRO MINI est assez peu standardisée.

Certaines cartes mettent à disposition ou non les broches A4, A5, A6, et A7 :

PRO MINI 3.3V (A4 + A5) + (A6 + A7) en bout de carte.

PRO MINI 3.3V (A4 + A5 + A6 +A7)

PRO MINI 3.3V (A4 + A5 + A6 +A7) avec strap

La présence ou l'absence de A6 et A7 et l'emplacement de ces broches ne sont pas les seules différences.

Comme on peut le voir sur ces trois images les broches de connexion du convertisseur USB / série en bout de carte sont inversées :

  • DTR TX RX VCC GND GND pour la première
  • BLK GND VCC RX TX GRN pour la seconde et la troisième

Si l'on utilise un connecteur DUPONT 6 points pour le chargement du logiciel il suffira d'inverser le connecteur ou non. GRN est équivalent à DTR.

On constate également sur la troisième carte la présence d'un strap (en haut à droite, à côté de la broche GND) permettant de mettre hors service la partie régulateur 3.3V et LED POWER, afin de gagner quelques précieux mA.

Bien entendu, si l'on désire utiliser A4 et A5 pour une liaison I2C par exemple, il faudra souder un connecteur mâle supplémentaire à deux broches sous la carte.

Par contre cette solution ne sera pas utilisable sur breadboard. Dans ce cas, il faudra placer le connecteur sur le dessus de la carte.

2. Différenciation

Il arrive quelquefois que les vendeurs chinois commettent des erreurs et envoient des PRO MINI 16MHz en lieu et place de PRO MINI 8MHz.

Il m'est même arrivé de recevoir un lot de 10 cartes panachées (4 cartes 16MHz et 6 cartes 8MHz), absolument semblables en apparence.

Sous la carte il y a généralement des cases à cocher :

On constate généralement qu'aucun marquage n'est présent, d'où une confusion possible, et un danger potentiel.

Si la carte est alimentée par sa broche RAW et que des modules sont alimentés par la broche VCC, en fonction du modèle de carte PRO MINI, la tension sur la broche VCC sera de 5V ou 3.3V.

Si les modules alimentés par la broche VCC ne supportent que 3.3V ou 3.6V il y a donc danger si la carte est une PRO MINI 5V.

Il serait dommage de s'apercevoir du problème trop tard et il me semble absolument indispensable de tester ces cartes avant de les utiliser.

Comment les différencier ?

2.1. Le régulateur

On peut tout d'abord les alimenter (en 9V ou 12V par exemple) par leur broche RAW et mesurer la tension sur la broche VCC.

Si elle est de 5V, c'est une carte 16MHz. Si elle est de 3.3V, c'est une carte 8MHz

2.2. L'oscillateur

Certains oscillateurs (le petit composant métallique) possèdent un marquage.

Si ce n'est pas le cas, on peut tester la fréquence d'horloge de la carte.

Il faudra bien entendu d'abord souder le connecteur de chargement 6 points et le relier à un convertisseur USB / série :

arduino-pro-mini-basse-consommation.html : paragraphe 5. Chargement

#define LED 13

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  delay(1000);
  Serial.println("OK");
}

Ce petit sketch permet de vérifier qu'une carte est un modèle 8MHz ou 16MHz.

Après avoir choisi "Arduino Pro or Pro Mini" dans le menu Outils, deux choix sont proposés dans le menu Outils / Processeur :

  • ATmega 328P (5V 16MHz)
  • ATmega 328P (3.3V 8MHz)

Après chargement du sketch la LED doit clignoter avec une période de 1s / 1s.

En ouvrant le moniteur série les textes "OK" doivent apparaître.

Si ce n'est pas le cas, recompiler après avoir choisi l'autre option dans le menu Outils / Processeur.

Ensuite il est prudent de marquer ces carte dans les cases appropriées avec un marqueur indélébile, ou de coller une petite étiquette sous la carte.

3. Lien utiles

Apparemment je ne suis pas le seul à avoir écrit un article sur le sujet :

https://bentek.fr/comment-reconnaitre-la-version-dun-arduino-pro-mini/

 

Cordialement

Henri

 

5 commentaires:

  1. Petite remarque au sujet du régulateur intégré qui est du genre LM1117 qui n'est pas super efficace, pour un projet autoalimenté par Linky j'utilise un DC-DC LDO qui consomme moins pour lui-même et peut travailler avec une tension source minimum plus proche de 3.3V au besoin.

    RépondreSupprimer
    Réponses
    1. J'utilise couramment des HT7533-1 ou HT7333-1.

      Supprimer
    2. MCP1702-330 (MCP1702-500 modele 5V), faudrait comparer les specs avec le HT7333-1 et voir lequel semble le plus intéressant ou s'ils sont globalement équivalents.

      Supprimer
    3. https://riton-duino.blogspot.com/2018/11/les-regulateurs-ldo.html
      HT7333-1 : drop-out = 170mV, quiescent current = 4µA
      MCP1702-330 : drop-out = 625mV, quiescent current = 2µA
      Le MCP1702 est moins LDO.
      Il réclame au moins 4V en entrée.
      Le HT7333-1 se contente de 3.5V.
      Il y a aussi le MCP1700 et le XC6206.

      Supprimer
    4. Les specs du HT7333-1 sont nettement plus intéressantes et la tension en input de 30V c'est parfait pour supporter les frasque éventuelles des pics de tension possibles du Linky, merci.

      Supprimer