J’ai récemment fait l’acquisition de plusieurs cartes Arduino pour mes futurs projets. Le format compact des Arduino Pro Mini m’a énormément séduit pour mes projets embarqués. J’ai donc commandé plusieurs versions chez divers fournisseurs (GoTronic, Ebay…). A la réception, après déballage, il m’était impossible de différencier les différents types d’Arduino. Je vais vous expliquer ici plusieurs méthodes afin de tester et reconnaître les différentes versions d’Arduino Pro Mini.
Table des matières
1. Quelles versions ? Et pourquoi ?
Il existe différents types d’Arduino Mini Pro. Certains sont officiels et montés en Italie, d’autres sont des copies officielles ou non officielles. On trouve sur le marché différentes variantes, selon les tension et le quartz externe :
– Tension 3.3 V avec quartz à 8 MHz (commun)
– Tension 3.3 V avec quartz à 16 MHz (rare à trouver, pas toujours stable)
– Tension 5 V avec quartz à 8 MHz (configuration très rare à trouver)
– Tension 5 V avec quartz à 16 MHz (commun)
– Tension 5V avec quartz à 20 MHz (très rare à trouver)
Il existe également 2 version de microcontrôleur sur l’Arduino Pro Mini : le ATMega 128p et le ATMega 328p. Ce dernier est le plus récent et vient remplacer le 128p. Il s’agit du même microcontrôleur présent sur l’Arduino UNO revision 3.
Alors quelle version prendre ? Sur le site officiel Arduino, il est indiqué que l’Arduino Mini Pro est disponible en 3.3 V avec quartz à 8 MHz ou en version 5V avec quartz à 16 MHz. Je vous conseillerez donc t’utiliser une de ces deux variantes commune. Après selon votre utilisation, trois critères sont à prendre en compte :
– Autonomie de votre système (Consommation, Puissance…)
– Temps de réponse requis
– Alimentation des capteurs associés
Si vous faite un bilan sur ces trois critères, vous connaîtrez votre besoin entre ces deux Arduino. Par exemple, je sais que je possède un écran OLED I2C qui est plus stable et consomme moins de courant en 3.3 V. Le taux de rafraîchissement voulu est lent. Je me tournerai donc vers un Arduino Pro Mini en 3.3 V avec quartz à 8 MHz.
Exerçons nous sur les 3 cartes que j’ai reçu par des vendeurs différents :
2. Les composants à reconnaître
L’Arduino Mini Pro est équipé de deux composants importants qui nous intéresse ici : le régulateur de tension et le quartz. Afin de reconnaître sa variante, nous allons voir les différentes références de ces composants. Certaines sont lisibles directement sur le quartz et le régulateur, pour d’autres, il faudra réaliser les tests en partie 3.
2.1. Le régulateur de tension
Souvent, on peut retrouver des composants où est écrit « KB33 » pour un régulateur 3,3 V ou « KB50 » pour un régulateur 5 V. L’indication est alors assez simple et lisible. Malheureusement, je n’avait rien de cela sur mes 3 cartes… Voici les gravures présentes sur mes 3 composants :
– « BBNI »
– « BANJ »
– « F34V »
Pour le composant « F34V », le « 34 » pourrait m’indiquer un régulateur 3,3-3,4 V. Le AtMega328p pouvant être alimenté de 3,3V à 5V, cela me paraît plausible. Après quelques recherches sur internet… pas moyen de savoir…
J’ai vu sur le net plusieurs composant estampillés AMSxxx ou LD33V… ces composants sont facilement trouvables sur le net avec leur datasheet associé. Easy donc…
Mais je ne suis pas plus avancé de ce côté là…
2.2. Le quartz
Pour reconnaître la fréquence d’un quartz, le plus souvent, c’est gravé dessus. Lorsqu’on a affaire à des composants montés en surface (CMS), il faudra prévoir une loupe pour lire les écrits, car le composant est nettement plus petit.
Après expertise visuelle de ces cartes et connaissant mes commandes, je peux déjà en déduire mes deux cartes 3,3 V à 8 MHz et ma carte 5,0 V à 16 MHz. Mais vu qu’on est jamais sûr de rien nous allons procéder à quelques expériences…
3. Reconnaître facilement sa version avec une expérience
Comme dit plus haut, certaines références ne sont pas visible sur le composant. Dans ce cas, la lecture du circuit n’aide pas. Il nous faut donc tester les composants. Pour se faire plusieurs méthodes existent. Je vais vous expliquer les méthodes les plus efficaces.
3.1. Identifier le régulateur de tension
Afin d’identifier rapidement si il y a un régulateur de tension 3.3 V ou 5 V, il suffit de connecter une tension supérieure à 5 V sur la pin RAW (j’ai pris 12 V ici). Il faut ensuite mesurer la tension présente entre la pin Vcc et Gnd. La connectique RAW permet de raccorder une source de tension supérieur à 3,3 V ou 5 V selon la version du régulateur. Cette connectique permet d’utiliser le régulateur de tension présent sur la carte, ce qui n’est pas le cas lorsqu’on utilise une alimentation sur Vcc.
Le montage se présente comme ci-dessous :
La tension mesurée entre Vcc et Gnd stabilisera à 3.3 V ou 5 V selon votre type de régulateur. Et de une identification de faite !
PS : Faites attention à ne pas réaliser de court-circuits entre les pattes de l’Arduino. Cela peut griller le régulateur de tension, ainsi que le microcontrôleur. J’ai vécu cette expérience, il ne me reste plus que 2 Arduino Mini Pro sur les 3 que j’avais acheté x).
3.2. Identifier son quartz
Pour identifier son quartz de manière software, il suffirait de réaliser un sketch où l’on incrémenterait une valeur pendant un certain temps avec un oscillateur 8 MHz et un oscillateur 16 MHz. On pourra ensuite comparer ces valeurs. Une question me vient donc à l’esprit… quel option mettre dans le compilateur ? Dans l’IDE Arduino, nous précisons le type de carte Mini Pro que nous possédons. Cela corresponds à la version du bootloader avec laquelle le programmateur Arduino discute pour implémenter le programme en mémoire…
Je vais tenter l’expérience sur deux Arduino mini pro :
– 5,0V à 16 MHz
– 3,3V à 8 MHz
Pour cela, je vais appliquer le code suivant :
unsigned long debut;
unsigned int a = 0;
int compteur = 0;void setup()
{
//Port Série
Serial.begin(9600); // Initialisation du port série pour avoir un retour sur le serial monitor
debut = millis();
}
void loop()
{for (0 ; compteur < 1 ; compteur++)
{
while(millis()-debut < 5000)
{
a = a+1;
}Serial.println(« Valeur de a : »);
Serial.println(a);
}}
Regardons ensemble l´effet que ce code produit selon nos Arduino et les 2 profils :
Arduino 5V à 16 MHz – Profil 5V à 16 MHz (profil adapté) :
Arduino 3,3V à 8 MHz – Profil 3,3V à 8 MHz (profil adapté) :
Arduino 5V à 16 MHz – Profil 3,3V à 8 MHz :
Arduino 3,3V à 8 MHz – Profil 5V à 16 MHz :
Résumé :
Après avoir réalisé ces essais, on peut dresser le tableau suivant pour identifier facilement son Arduino :
Moral de l´histoire : ne vous inquiétez pas si vous n´avez pas la bonne fréquence de quartz ou le bon voltage sur le profil de compilation, cela ne devrait pas vous causer de dommage matériel. Néanmoins, ce petit test vous permettra de comparer vos quartz. La valeur de a peut légèrement varier selon les cartes Arduino. Disons qu´on se retrouve aux alentours de 42 000 pour du 3,3V à 8MHz et 18 000 pour du 5V à 16MHz.
Je trouve ça bizarre d´ailleurs d´avoir une valeur de a plus élevée à 8MHz qu´à 16MHz. Je m´attendais à l´inverse. Surement que ces valeurs correspondent à un ratio entre la tension d´alimentation et la fréquence quartz… Je n´ai personnellement pas envie de creuser plus loin sur ce point.
On sait maintenant reconnaître nos versions d´Arduino Mini Pro ! 🙂
N´oubliez pas de noter vos versions sur vos cartes 😉
BenTeK.
Merci beaucoup. c’est très sympa de partager comme çà et en plus c’est très bien écrit et clair.
Merci encore.
bonjour,
Franchement top ce tuto !
cela m’a rendu un grand service
bravo, bravo
pascal
nickel