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

30 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. 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
  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. AGUINI

    bonjour,
    je ne comprends pas : j’ai fait deux fois le circuit. mais j’ai le même problème : la tension d’entrée au niveau de la micro-usb passe de 5V à plus de 7V dès que je relie le module chargeur au module contrôleur de charge, ce qui provoque une surchauffe (quasi court-circuit).
    j’ai réalisé le deuxième circuit partiellement, c’est à dire uniquement module chargeur + batterie + module contrôleur de charge. (= sans le de mosfet – sans le condensateur).
    le résultat est le même : dès que je fait le contact module chargeur – module contrôleur, la tension d’entrée à la micro-usb passe de 5V à 7V avec surchauffe au niveau du module contrôleur.
    je ne connais en électronique mais tout se passe comme si le module contrôleur ajoutait une tension supplémentaire.

    Répondre
  10. Pierre-Yves

    Bonsoir,
    Difficile d’être sûr de ce qui se passe avec votre montage mais voici une piste.
    Sur le schéma de principe, le + est en haut et le – ou masse est en bas. C’est correct pour le contrôleur de charge mais incorrect pour le convertisseur DC-DC step-up 2.5-4.5 -> 5V. Concernant ce dernier, en réalité le + est en bas et la masse en haut. Il faut par rapport au schéma croiser les fils en sortie du condensateur de 1000µF pour respecter les polarités en entrée du module. Voir le marquage sérigraphié à l’envers de ce module.
    C’est une “bêtise” de ma part. J’aurais dû croiser les pistes ou figurer simplement un rectangle. La photo induit en erreur. Je viens de corriger les schémas de l’article.
    Si c’est bien cela votre souci, j’espère que ça n’a pas détruit vos modules.
    Tenez-moi au courant.
    Cordialement,
    Pierre-Yves

    Répondre
  11. AGUINI

    bonsoir,
    j’ai donc inversé les fils des polarités + et – ==> ça fonctionne bien
    (sauf que j’ai cramé les diodes du module de charge sur le deuxième montage – j’ai dû faire un court-circuit accidentel).
    alors, par précaution, j’ai shunté la micro-usb par une connexion filaire comme sur votre modèle.
    après essai positif de coupure de l’alimentation, il ne me semble pas nécessaire d’ajouter une seconde diode ?
    merci

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

    Bonjour,
    Si vous parlez de la diode en parallèle sur le transistor, je dirais qu’il est préférable de la mettre. En effet, dans mon cas, c’est vraiment ce qui a résolu le problème de micro coupure (voir la fin de l’article : “amélioration de la stabilité”). A l’oscilloscope, on voit bien que c’est le retard à la saturation du MOSFET qui cause de temps en temps le blocage du convertisseur.
    Cordialement,
    Pierre-Yves

    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.