Les ordinateurs monocartes équipés de systèmes Unix simplifient le développement de systèmes de contrôle avancés. Ils surpassent les microcontrôleurs (MCU), surtout pour les tâches nécessitant des interfaces graphiques et un traitement intensif de données. Toutefois, ils présentent des limites en termes de consommation d’énergie et de performances en temps réel. Mais pourquoi ne pas combiner le meilleur des deux mondes ? Pour réduire la consommation d’énergie d’un ordinateur monocarte, vous pouvez l’associer à un microcontrôleur. Par exemple, nous voulons mettre en œuvre un système qui respecte les temps d’arrêt programmés et effectue un « démarrage sur alarme » en réponse à un événement externe spécifique.

Le circuit

En principe, le circuit fonctionne comme indiqué dans l’organigramme (figure 1). Le régulateur de tension qui sert d’alimentation principale pour l’ordinateur de traitement (généralement un régulateur à découpage) est contrôlé  par le microcontrôleur via son entrée Enable (EN).

8-Bit Companion for the Raspberry Pi: flowchart
Figure 1. Cette configuration de circuit réduit considérablement la consommation d’énergie en mode veille.

Le microcontrôleur nécessite une alimentation séparée, indépendante de l’entrée EN ; en raison de la faible consommation d’énergie, un régulateur linéaire constitue ici une option économique. En général, le circuit est flexible quant au choix des composants ; l’auteur préfère utiliser les versions modernes du PIC16F de Microchip.
La figure 2 montre le sous-circuit qui signale au PIC lorsque le SBC (OPI = Orange Pi) est alimenté par le régulateur à découpage externe (EXT). D1a, R9 et D7a forme un atténuateur assez « classique », qui réduit les tensions d’entrée dans jusqu’à 20 V en une valeur supportable pour les entrées de l’ordinateur de traitement et du microcontrôleur.

R7 resistor
Figure 2. La résistance R7 permet de minimiser les coûts et les problèmes techniques

La séparation de la résistance en série entre les valeurs R7 et R9 est nécessaire car les ordinateurs monocartes peuvent présenter une charge à faible impédance ou conserver une tension résiduelle lorsqu’ils sont éteints. En absence de cette résistance, le microcontrôleur chargé de la gestion de l’alimentation (connecté via la borne PIC) pourrait recevoir des valeurs anormales ou non valides.
R7 est un élément de protection supplémentaire - les entrées de l’ordinateur de traitement sont reliées à la tension d’alimentation et à la masse par des diodes de protection. Lorsque des surtensions se produisent, R7 limite le courant traversant ces diodes, protégeant ainsi l’ordinateur de traitement contre les dommages potentiels, tandis que C13 et R8 ajoutent une fonction de filtrage supplémentaire.
Il est important de souligner que le circuit présenté ici avec son entrée EXT était directement connecté au système électrique du véhicule de divers bus scolaires. Ayant été intégré à plusieurs milliers de systèmes sans aucun incident signalé, son efficacité et sa fiabilité ont été démontrées.
La diode D1a est essentielle pour la protection contre l’inversion de polarité. Comme l’atteste l’auteur, qui possède également une expérience dans le domaine de la logistique, connecter accidentellement des batteries de manière incorrecte est une erreur fréquemment commise par les mécaniciens.

La puissance du logiciel

La communication via I2C est généralement fiable (à condition de ne pas oublier les résistances de tirage vers le haut nécessaires). Le « secret » de ce système réside dans le logiciel. Le PIC met en œuvre une sorte de machine à états qui est basée sur les états montrés dans la figure 3.

The state machine.
Figure 3. Également utile dans l’embarqué : la machine à états.

La gestion du processus d’arrêt est cruciale. Les systèmes d’exploitation Unix ne gèrent pas bien les interruptions brusques de l’alimentation. Une solution efficace est d’utiliser un compte à rebours : la carte SBC active ce compte à rebours et lance ensuite l’arrêt du système d’exploitation. Une fois le délai (délibérément long) écoulé, est sécurisé et peut être déconnecté en toute sécurité de l’alimentation électrique
Bien entendu, le PIC peut également effectuer d’autres tâches. Outre le stockage des numéros de série et d’autres informations (rendant ainsi leur manipulation plus difficile), il il est capable d’exécuter des tâches de contrôle de base. Pour des applications plus complexes, l’utilisation d’un microcontrôleur 32 bits comme contrôleur secondaire pourrait être envisagée, permettant par exemple de gérer une tâche de mesure, régulation et contrôle MSR.

Expérience pratique

Les traceurs basés sur le circuit décrit ici sont maintenant utilisés par dizaines de milliers par l’un des clients de l’auteur, témoignant ainsi de l’efficacité pratique de ce design. Alors qu’auparavant, ces dispositifs consommaient environ 200 mA en mode veille, ils ne requièrent désormais que quelques milliampères. L’article AN4121 de l’auteur, publié par Microchip, est disponible à l’adresse ici et fournit de plus amples informations sur le sujet.


Note de l'éditeur : Cet article (240210) apparaît dans l'édition bonus de janvier/février 2025


Questions or Comments?

Do you have questions or comments about this article? Email the author at tamhan@tamoggemon.com or contact Elektor at editor@elektor.com.

Je m'abonne
Abonnez-vous à la balise thématique Raspberry Pi pour être averti dès qu'une information relative à ce sujet sera publiée par Elektor !