Publié le 7 avril 2018 - par

Alimentation sans coupure pour Raspberry-Pi

J’utilise un Raspberry-Pi 3B pour acquérir et publier automatiquement les données de ma station météo. Le Pi m’a semblé bien adapté à cet usage. Cependant, comme mentionné sur ce blog, la gestion de l’alimentation est un problème. L’absence d’une horloge secourue peut aussi s’avérer gênante.

Pourquoi une alimentation sans coupure pour le Raspberry Pi

Après avoir lu l’article publié ici (Lire l’article sur le Pi-Desktop), J’ai acheté un boitier PI-Desktop et j’y ai installé le Raspberry-Pi. Tout fonctionne conformément à ce qui est écrit dans l’article et à la notice, un anneau lumineux bleu du plus bel effet en prime. On résout ainsi une partie des problèmes mais il subsiste celui du redémarrage (ou plutôt du non redémarrage) après coupure de courant.

Pour tenter de supprimer cet inconvénient, j’ai d’abord testé un chargeur “power bank” pour smartphone que j’avais déjà par ailleurs mais une micro-coupure rédhibitoire au moment où on débranche l’alimentation secteur m’a fait abandonner cette solution. Finalement je me suis lancé dans la construction une petite alimentation sans coupure (ou UPS pour Uninterruptible Power Supply).

Réalisation

Cahier des charges

Pour un usage de gestion d’une station météo, le Raspberry-Pi est assez peu sollicité. Dans mon cas et pour un Raspberry-Pi 3B, la consommation est inférieure à 0,4 ampères. Dans certaines conditions cependant, celui-ci peut semble-t-il consommer un courant de plus de 1 ampère. J’ai choisi de dimensionner les éléments de l’alimentation de manière à ce qu’elle soit capable de fournir au moins 1.5 ampères.

Liste des éléments

 

  • Une alimentation micro-USB pour le Raspberry-Pi d’au moins 2,5 A (en général on l’a déjà si on a le Pi)
  • Un module de gestion de charge pour accu Li-Ion avec entrée sur micro-USB ou non (+/- 2€)
  • Un module convertisseur DC-DC de 3 V vers 5 V /2A avec sortie sur USB A (+/- 2€)
  • Une diode de type 1N 582x pour I > 1 A ou de type 1N 400x pour I <= 1 A   
  • Un MOSFET canal P à très faible RDSon (NDP 6020P par exemple avec un RDSon de 50 à 75 mΩ)
  • Un accu Li-Ion (dans mon cas un accu Emmerich 3.7 V, 2.6 A.h), on peut aussi récupérer une batterie de smartphone
  • Un super-condensateur 5.5 V / 1 Farad (+/- 2.5€). En fait, un condensateur électrolytique de 1000 µF fait l’affaire
  • Une résistance 100 kΩ
  • Une plaquette pour disposer et connecter les éléments
  • Une petite boite plastique adaptée
  • Cordons USB et µUSB avec conducteurs AWG 24

Schéma général de l’alimentation sans coupure

Fonctionnement général

Comme on peut le voir ci-dessus, le schéma est assez simple. Le premier module à gauche  gère la charge de la batterie Li-Ion à partir du 5 V fourni par la micro USB et le module de droite redonne une tension de sortie régulée de 5V en sortie vers le Pi.

Le MOSFET canal P de type NDP6020 reste bloqué aussi longtemps que le la tension d’entrée est présente et le module convertisseur est alors alimenté par cette même tension d’entrée diminuée du ΔVf de la diode. La batterie peut être chargée ou en charge tout en restant isolée du convertisseur par le MOSFET.

Si par suite d’une coupure secteur, le 5V au niveau de l’entrée du module de charge disparaît, alors la gate descend à 0 et le MOSFET devient conducteur. Le module convertisseur est alors alimenté par la tension de batterie diminuée du ΔVDS, très faible du fait du très faible RDSon.

Le condensateur (ou la “super cap”) assure une réserve de charge pendant la commutation et évite toute coupure. L’alimentation du Pi est assurée pendant un temps qui dépend de sa consommation et de la capacité de la batterie (∼ 5 heures pour 2.6 A.h et 0.35 A).

Noter que j’ai abandonné la “super cap” au profit d’un simple condensateur électrolytique de 1000 µF qui est mieux adapté à un fort débit même si sa capacité est considérablement plus faible.

Le contrôleur de charge

L’entrée se fait soit par la micro USB soit directement par soudure. Deux LEDs indiquent les états (rouge en charge, bleu chargé). La charge est contrôlée par le TP 4056P. Le courant max de charge est défini par la résistance R3. Pour R3 = 1.2kΩ, comme sur ce module, le courant est de 1 ampère. Les deux autres circuits assurent la protection de la batterie contre la surcharge ou la sur-décharge, par coupure de la liaison B-<–>Out- au travers du FS8205A.

Le convertisseur DC-DC de 2.5 – 4.5 V vers 5V

Ce convertisseur est capable de fournir plus de 2 ampères. La fréquence de travail du G5177C est de l’ordre de 500 kHz. Le rendement de conversion est supérieur à 90% pour une tension d’entrée comprise entre 3.5 et 4.2 V et un courant de 2A. Une LED indique l’état de fonctionnement (bleu = OK, rouge = défaut). La sortie se fait via la prise USB-A.

Sur le schéma type, l’inductance est de 2.2 µH. Elle est en réalité de 4.7 µH pour ce module.

Ces modules se trouvent facilement sur Internet (en provenance de Chine bien entendu…) et pour la somme modique d’environ 2€ pièce.

Câblage et montage

Coté composants

J’ai soudé les deux modules tête-bêche sur la plaquette perforée via des pins issues de barrettes tulipe à wrapper. Ces pins sont elles même soudées sur les modules. L’avantage des pins tulipe est de pouvoir y connecter directement des petits fils de cuivre rigide (voir la photo ci-dessus). J’ai collé directement la batterie sur la plaquette avec de l’adhésif double faces.

Coté soudures

Vue coté soudures : le peu de composants permet de se dispenser de la réalisation d’un circuit imprimé même si c’est un peu moins propre… Sur la gauche de la photo ci-dessus, on peut voir les deux conducteurs d’alimentation soudés directement au module.

J’ai préféré souder directement les fils au circuit d’entrée pour éviter les problèmes dus à un trop fort courant qui pourrait entraîner une détérioration du connecteur micro USB. En effet, pour un courant de 1 A en sortie du convertisseur, le courant à travers la diode est d’environ 1.35 A. Si de plus la batterie est en charge, un courant de 2.35 A est nécessaire en entrée du montage. C’est à mon avis très (trop ?) limite pour une connexion via micro USB type B.

Ventilation du boitier

En cas de courant important et durant la recharge de la batterie, le boitier chauffait un peu. Pour y remédier, j’ai effectué des perçages dans le boitier et adjoint des plots adhésifs pour le surélever et permettre la circulation de l’air. Cela permet une convection naturelle suffisante.

Dimensionnement des câbles

Côté câbles, celui reliant l’alimentation du Raspberry-Pi à la boite est assez critique. Il me semble impératif d’utiliser un câble équipé de conducteurs d’alimentation de section suffisante. AWG 24 (= 0,2mm2) me paraît être un minimum pour limiter la chute de tension. De plus, si on choisit de souder directement les conducteurs au module de charge, on peut réduire la longueur du câble au strict minimum. Un câble AWG 24 de 60 cm a déjà une résistance de 0,1Ω (1,2 m / 0,2mm2), soit une perte de 0,1 V par ampère.

Conclusion

On peut, en utilisant des éléments et des composants bons marché et faciles à trouver, réaliser une alimentation sans coupure pour le Raspberry-Pi. Je n’ai testé la réalisation décrite dans cet article que jusqu’à un courant de sortie de 1 A. Cependant, j’ai dimensionné les composants pour atteindre  au moins 1,5 A et il devrait être possible d’atteindre ce courant pour peu que l’on utilise une source 5 Volts capable de débiter au moins 3 A.

Liens

https://www.banggood.com/fr/DC-DC-Boost-Step-Up-Module-2_5V-5_5V-Input-5V2A-Output-p-1102305.html?rmmds=search&cur_warehouse=CN

http://www.ebay.fr/itm/5V-1A-Micro-USB-18650-Lithium-Battery-Charging-Board-Charger-Module-/222379762409?hash=item33c6dde2e9

https://cdn.sparkfun.com/datasheets/Components/General%20IC/NDP6020P.pdf

Amélioration de la stabilité

A la suite des différents échanges qui ont suivi la publication de cet article, j’ai décidé de modifier légèrement le montage. En effet, j’ai observé à l’oscilloscope, que  la commutation du transistor MOSFET n’était pas “franche” lors des coupures secteur et entraînait, certes rarement mais tout de même, une oscillation suffisante sur la sortie pour “planter” le Pi-Desktop et le Pi par la même occasion.

En regardant de plus près les courbes ID/VDS et ID/VGS du TP6020 (ci-dessus), on voit que pour qu’un courant d’au moins 2A traverse le transistor, il faut une tension VGS de -1.5V ou moins. Pour une batterie complètement chargée (4.2V), il faut donc une tension VG de 2.7V ou moins. Pendant un court instant la tension à l’entrée du convertisseur peut donc descendre jusqu’à environ 2.4V, ce qui provoque un court blocage et ce même avec un condensateur de 1000µF.

J’ai testé d’abord deux possibilités : augmenter la capacité ou remplacer le transistor par une simple diode Schottky.

En passant à une capacité à 2200µF, la fréquence des blocages diminue mais ceux ci ne disparaissent pas. Il faudrait encore augmenter la capacité, au prix d’un encombrement gênant.

En remplaçant le MOSFET par une diode Schottky, le montage simplifié fonctionne parfaitement. Le seul inconvénient est la chute de tension dans la diode (0.3 à 0.5V en fonction de la diode), ce qui obère quelque peu l’autonomie sur batterie.

Épilogue

Finalement, j’ai choisi une troisième possibilité, consistant à mettre une diode Schottky en parallèle sur le transistor (schéma ci-dessus). Cette solution, je trouve, combine tous les avantages. Dès que la tension à l’entrée du montage baisse en dessous de la tension de batterie (4.2V pour la batterie chargée), la diode assure en douceur et sans instabilités le passage de l’alimentation par secteur à l’alimentation sur batterie. Ensuite, lorsque la tension d’entrée (= VG) est suffisamment basse pour saturer le MOSFET, c’est ce dernier qui prend le relais avec l’avantage d’une chute de tension négligeable à ses bornes. La diode en parallèle ne conduit que pendant quelques dizaines de ms.

Bien sûr, si on ne veut pas s’embêter avec un MOSFET, la solution à deux diodes est plus simple et tout à fait viable. Dans les deux cas, la commutation se fait en douceur sans risque de plantage du Pi. On peut de plus facilement augmenter l’autonomie en choisissant une batterie de plus forte capacité.

Share Button

28 réflexions au sujet de « Alimentation sans coupure pour Raspberry-Pi »

    1. Pierre-Yves Beauvais Auteur de l’article

      Bonjour wouldsmina,

      Merci de votre commentaire.
      Pour l’instant je n’ai testé le montage que jusqu’à 1A en sortie et je l’utilise en réalité à ~ 0.4 A. Je ferai des essais à plus fort courant lorsque j’aurai trouvé une alimentation 3 A et je ferai un petit compte rendu.
      Bien cordialement,

      Pierre-Yves

      Répondre
      1. wouldsmina

        J’ai trouvé un module de charge 5V 2A au format d’une batterie 18650. Si je comprends bien tes explications :

        > Le courant max de charge est défini par la résistance R3. Pour R3 = 1.2kΩ, comme sur ce module, le courant est de 1 ampère.

        Les 2 ampères correspondent au courant de charge uniquement?
        Le courant en entrée peut il etre supérieur (a condition que le micro-usb le supporte)?

        Répondre
        1. Pierre-Yves Auteur de l’article

          Bonsoir wouldsmina,

          Je ne comprends pas ce qu’est ce module 5V/ 2A au format d’une batterie 18650. Pouvez-vous me donner un lien vers ce module ?

          Cordialement,

          Pierre-Yves

          Répondre
        2. Pierre-Yves Auteur de l’article

          Bonsoir Wouldsmina,

          J’ai regardé le module en question. C’est le genre de circuit qui équipe les “power banks “. Sur ceux que j’ai testés, il y a toujours une coupure de tension quand on débranche l’alimentation, ce qui plante le Pi…
          C’est vrai que ça paraît séduisant car ce module regroupe les deux fonctions (charge batterie et restitution du 5V) sur un seul module mais j’ai un doute sur sa capacité à faire le job.
          Ceci dit, vu le prix, ça peut valoir le coup de tester.

          Cordialement,

          Pierre-Yves

          Répondre
  1. Denis Brion

    Une chose me rend perplexe : pourquoi employer une didode non Shottky (1N400x) pour des faibles courants? Certes, elle est moins chère qu’une diode Shottky -le surcût restant negligeable en proportion du prix des autres morceaux- , mais elle met une chute de tension de 0.7-0.8 v, affectant le rendement de façon non n”égligeable par rapport aux performances des convertisseurs.
    De plus, si on décide de … consommer plus, se “limiter” à une diode Shottky éviterait de démonter/dessouder , ressouder/remonter…

    Répondre
    1. Pierre-Yves Auteur de l’article

      Bonjour Denis,

      Vous avez tout à fait raison. C’est juste que c’est ce que j’avais dans mes tiroirs au moment où j’ai voulu réaliser et tester le montage… Entre temps, j’ai trouvé sur une vieille carte une 1N 5821 que j’ai installée en lieu et place. La chute de tension passe de 0.9V à 0.35V. Pas négligeable en effet. L’inconvénient de la 1N582x est qu’elle est volumineuse et a des pattes de 1.32mm de diamètre.

      Du coup, je vais refaire un nouveau montage de test utilisant une Schottky 3A sélectionnée pour sa faible chute de tension (il y a des CMS à 0.35V pour 3A).

      Je me pose la question aussi de remplacer le MOSFET par une de ces diodes car j’ai remarqué à l’oscillo qu’il y a une instabilité au moment où je débranche l’alimentation de la prise secteur, qui se répercute jusqu’au 5V en sortie. Parfois (mais rarement tout de même), ça me plante le Pi-Desktop et en même temps le Pi lui même. C’est bête pour une alimentation sans coupure :(. Cette instabilité est due à la forme de la descente de la tension et en conséquence au passage pas “franc” du MOSFET de l’état bloqué à l’état saturé. Une Schottky règlerait ce problème au prix d’une chute de tension modérée (~ + 0.2V). Au moment de mon premier montage je n’avais que des 1N4004 et je n’avais guère d’autre choix que d’utiliser un MOSFET à cet endroit.

      Cordialement,

      Pierre-Yves

      Répondre
      1. Denis Brion

        Bonjour Jean Yves :
        l’idée de faire un OU naîf avec deux diodes Shottky de puissance est certainement la solution la moins chère (les FETs coûtent plus cher que des diodes Schottky). Cependant, on ne plus commander une des branches (ce qui est le cas avec votre montage).

        Je suis perplexe quant aux oscillations (effet Miller, augmentant artificiellement la capacité d’entrée -avec une resistance de 100 kO, qui est assez grande?)

        Répondre
        1. Pierre-Yves Auteur de l’article

          Bonjour Denis,
          Merci de votre retour.
          C’est vrai que si le MOSFET est remplacé par une Schottky il n’y a plus de contrôle par la présence du 5V mais en fait, il n’y en a pas vraiment besoin.
          Tant que l’on a du 5V en entrée, on a sur la branche directe : 5V moins la chute de tension dans la diode (typ. 0.4V), c’est à dire ~ 4.6V. Sur la branche accu on a au maximum 4.1V à l’anode (accu chargé). La diode est donc bloquée et le convertisseur n’est alimenté qu’en direct par le 4.6V.
          Maintenant, si l’entrée tombe à 0, alors, la tension à l’entrée du convertisseur chute jusqu’à ce que la diode accu devienne passante. Le convertisseur est alimenté par l’accu et la diode directe est bloquée jusqu’au rétablissement du 5V.
          Je n’ai pas encore testé mais je pense que ça marche.
          Concernant l’instabilité, elle ne se produit que lorsque je débranche l’alimentation de la prise secteur et jamais si je débranche à sa sortie au niveau de l’USB. Je n’en connais pas exactement l’origine mais en tous cas, elle est suffisamment forte pour se répercuter sur le 5 V en sortie du convertisseur.
          Cordialement,
          Pierre-Yves

          Répondre
  2. Denis Brion

    Je pensais à détourner le FET pour des besoins de contrôle…

    Une façon de tester si c’est bien le FET qui génère une instabilité -comprendre la cause est une source de satisfaction – (peut être très lent à détecter une chute de tension) serait de faire un OU logique naîf (avec deux diodes : j’utilise ceci depuis longtemps pour avoir du secteur et une pile, en **amont** d’un régulateur linéaire -donc, sans souci de rendement dans mon cas- ; en aval, j’aurais mis des Schottky ) sur l’accu et l’alim directe .

    Donc, a priori, cette solution, plus économique que le FET+ 1 diode, a d’énormes chances de fonctionner …

    Bien sincèrement.

    Répondre
    1. CDBI30

      Bonjour,
      Super ce petit module
      Mais 1A est largement insuffisant pour un Pi
      Surtout pour le nouveau Pi3B+ avec des pointes à plus de 2A

      Répondre
    2. Pierre-Yves Auteur de l’article

      Bonjour Seb@stien,
      En effet, comme dit CDBI30, super ce petit module. C’est un “tout en un”aisé à mettre en œuvre. Cependant, 1.2A c’est un peu court pour un Pi un peu “chargé”. Dans mon cas, avec une consommation mesurée de 0.35 A cela serait parfait mais j’ai voulu dimensionner pour pouvoir débiter de 1.5 à 2 A en sortie.
      Merci pour ce lien très intéressant.
      Cordialement,
      Pierre-Yves

      Répondre
  3. Pierre-Yves Auteur de l’article

    Bonjour jpi066,
    Ce module est effectivement très intéressant. Juste une remarque, il n’est pas capable de débiter 2A en permanence sans décharger la batterie car le courant d’entrée est de 1A max, mais il peut le faire de manière intermittente pour absorber une pointe de courant du Pi.
    En considérant la batterie complètement chargée (4.2V) et un rendement du convertisseur de 90%, le courant max en continu tout en maintenant la batterie chargée ne dépassera pas : (1*4.2*0.9)/5=0.75A, ce qui peut être suffisant si on ne tire pas trop de courant des ports USB.
    Cordialement,
    Pierre-Yves

    Répondre
  4. Phil

    re-bonjour Pierre-Yves,

    Quelques questions par rapport à ma config: Pi Desktop avec ssd et 2 ports USB utilisés (Clé zwave et RFLink). L’intensité mesurée sur la ligne d’alimentation USB oscille entre 0,50 et 0,60 A. Mais je n’ai pas d’indication sur les pics intermittents, sans doute supérieurs.
    Mes questions sont :
    – Votre montage est-il suffisamment proportionné pour ma config?
    – La consommation de mon pidesktop permet-elle la recharge de la batterie?
    – Peut-on mettre votre montage dans le boitier du pidesktop? (Surchauffe?)
    – Y aurait-il un moyen de prévenir le pi du passage sur batterie (autrement dit de l’absence d’alimentation sur votre montage?
    Cordialement
    Phil

    Répondre
  5. Pierre-Yves Auteur de l’article

    Re-bonjour Phil,

    Je pense que le montage est tout à fait capable d’alimenter votre config. Je l’ai testé à 1.5A en continu et passagèrement à 2A. Avec une consommation de 0.6A et des pics à 1A, 1.5A, ça passe largement.

    Pour ce qui est de la recharge batterie en parallèle avec l’alimentation du Pi, ça doit aller aussi. L’avantage du montage est que les fonctions de charge batterie et d’alimentation du Pi sont dissociées en présence de 5V en entrée.
    Le module de charge consomme 1A pour recharger la batterie et votre Pi 0.6A sous 5V, soit 0.85A rapporté à l’entrée. En arrondissant et en prenant une marge supplémentaire, il faut en entrée une alimentation 5V capable de fournir 2.5A pour être tranquille. Le point délicat est la capacité de la µUSB à débiter 2.5A. Je trouve que ça chauffe beaucoup. Il faudrait une type C. J’ai préféré souder directement les fils sur l’entrée du module de charge.

    Le montage intégré dans le Pidesktop, j’y ai pensé mais j’ai renoncé car je n’ai pas trouvé de solution satisfaisante pour raccorder la sortie du montage à la µUSB de la carte du desktop. Soit il faut souder juste à la sortie de la prise mais il y a très peu d’espace sur le circuit, soit il faut faire sortir du boitier un cordon équipé d’une µUSB et le connecter sur l’entrée alimentation. Je ne pense pas qu’on puisse connecter l’alimentation au 5V du bornier interne car dans ce cas on doit perdre les fonctionnalités de la carte du desktop.
    Malgré tout, je crois que l’intégration est possible et l’échauffement des circuits est plutôt modéré.

    Pour la dernière question, l’entrée 5V pourrait être connectée à une entrée numérique du Pi (là pour le coup avantage à l’intégration de l’alimentation dans le boitier) mais il faudrait écrire une petite appli qui scrute en permanence cette entrée de manière à déclencher l’action voulue en cas de coupure d’alimentation.

    Bien cordialement,

    Pierre-Yves

    Répondre
  6. Raphaël

    Bonjour Pierre-Yves,

    Merci pour votre article ! Je suis à la recherche d’une solution de ce genre pour permettre au pi d’avoir le temps de s’éteindre proprement. Avez-vous eu l’occasion de tester certains modules existants comme le UPS PIco ou les cartes juice4halt ?

    Bien cordialement,

    Raphaël

    Répondre
  7. Pierre-Yves Auteur de l’article

    Bonjour Raphaël, bonjour François,
    Je n’ai pas testé non plus les matériels cités par Raphaël.
    Le PiDesktop permet effectivement d’arrêter proprement le Pi lorsque l’on appuie sur le bouton A/M. Par contre, sur une coupure brutale d’alimentation, je ne sais pas s’il assure le même service. François, avez-vous testé ?

    Bien cordialement,

    Pierre-Yves

    Répondre
  8. Pierre-Yves Auteur de l’article

    Bonsoir,

    Pour information, j’ai ajouté 2 paragraphes à l’article ci dessus : “Alimentation sans coupure pour Raspberry-Pi”

    Bien cordialement,

    Pierre-Yves

    Répondre
  9. papikos

    Une simple batterie externe ROMOSS 10000mA.h 15 euros àfait le boulot depuis 2 ans chez moi
    plus de 10h d’autonomie
    pas de problème à la coupure

    Répondre
    1. Pierre-Yves Auteur de l’article

      Bonjour Papikos,
      Merci de votre commentaire.
      Comme je l’ai indiqué au début de l’article, ma première idée était bien d’utiliser comme vous un bloc “power bank” mais les deux modèles que j’ai essayés provoquaient un arrêt du Pi dû à une micro-coupure de l’alimentation au moment de la coupure secteur. C’est pourquoi je me suis rabattu sur cette solution faite maison.
      Cordialement,
      Pierre-Yves

      Répondre
  10. papikos

    C’est pour cela que je donne une référence qui marche
    Pas de problème à la coupure.
    Un onduleur pour raspberry pour pas chère !
    En plus deux sortie USB pour le RASP et pour les relais

    Répondre
    1. Phillou53

      Bonjour Paprikos,
      Tout comme Pierre-Yves, quelques déboires pour moi aussi avec une Power Bank Tecknet de 20’000mAh. Avec ce modèle, pas de micro-coupures au début de la panne secteur. Par contre, l’alimentation 5VDC est interrompue lorsque le courant secteur revient ! Et il faut relancer la tension de sortie en pressant sur un bouton… donc inutilisable comme UPS.
      Pouvez-vous être plus précis sur le modèle ROMOSS que vous avez utilisé ? Certains modèles de ce fournisseur ont un bouton poussoir et j’ai quelques craintes…. Une Power Bank qui ne sert (presque) à rien ça va, deux c’est trop 😉
      PS : Merci à Pierre-Yves pour cette autre excellente solution !

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.