Module de commande d'une alimentation ATX pour RaspberryPi
Toutes les ressources sont sur la page GitHub du projet. Ce projet a été réalisé en collaboration avec Patrick Abati, Sitelec.org.
Au sein d'un système comportant un RaspberryPi alimenté par une alimentation ATX, l'objectif de ce circuit est de permettre d'allumer et d'éteindre proprement le système avec un même bouton poussoir.

Présentation du fonctionnement
Ci-dessous sont détaillées les étapes du fonctionnement du circuit.
Mise en route
Ce circuit agit sur la broche ATX_PS-ON de l'alimentation ATX pour commander sa mise en marche et son arrêt. Par défaut, cette broche est à 5V, ce qui correspond à l'état éteint de l'alimentation.
Pour allumer l'alimentation, le circuit doit mettre ATX_PS-ON à la masse.
Lors de l'appui sur le bouton poussoir, le transistor Q2 met ATX_PS-ON à la masse, ce qui déclenche la mise en route de l'alimentation et le démarrage du RaspberryPi.
Système actif
Au démarrage, le RaspberryPi met sa broche RPI_UART0-TXD à 3.3V, agissant sur le transistor Q1 qui maintient l'alimentation allumée en gardant ATX_PS-ON à la masse.
Cependant, il peut s'écouler un certain temps avant que RPI_UART0-TXD passe à 3.3V (2.6 secondes sur RaspberryPi 3). Le sous-circuit RC sur la base de Q2 permet de maintenir le transistor saturé suffisament longtemps.
Le condensateur C1 permet d'absorber les variations de tension sur la broche RPI_UART0-TXD, ce qui peut s'avérer utile en cas d'utilisation de l'UART du RaspberryPi, de façon à maintenir le système en route.
Arrêt du système
Une nouvelle pression sur le bouton poussoir est détectée par programme sur le RaspberryPi via une broche GPIO configurée en entrée, l'arrêt propre du système d'exploitation peut alors être déclenché.
Une fois que le RaspberryPi a atteint l'état d'arrêt, il reste alimenté mais sa broche RPI_UART0-TXD tombe à 0V, Q1 n'est donc plus passant, ATX_PS-ON est relâché et l'alimentation s'arrête.
Simulation

- X: 2 secondes par division
- Y: 0.5V par division
- jaune:
ATX_PS-ON(mesuré) - rouge:
PWR_SW-(simulé) - bleu:
RPI_GPIO(mesuré) - vert:
RPI_UART0-TXD(simulé)
Le projet KiCAD utilisé pour la simulation est présent sur la page GitHub du projet.
Un tutoriel sur la simulation avec KiCAD est disponible sur Sitelec.org.
Paramétrage du RaspberryPi
A travers un client SSH, connectez-vous à votre RaspberryPi.
Broche RPI_UART0-TXD à 3.3V pendant le fonctionnement
La première chose nécessaire est de configurer le RaspberryPi pour que sa broche RPI_UART0-TXD soit à 3.3V pendant son fonctionnement, de façon à maintenir l'alimentation allumée. Pour ce faire, éditez /boot/config.txt et ajoutez à la fin:
enable_uart=1enable_uart=1Arrêt du RaspberryPi commandé par GPIO
Pour que le bouton poussoir commande l'arrêt du RaspberryPi, le circuit doit-être connecté à la broche GPIO de votre choix.
Téléchargez ce script Python:
Vous pouvez éventuellement l'éditer pour changer les valeurs suivantes:
HOLD_TIME: nombre de secondes de pression sur le bouton pour déclencher l'arrêt (cette valeur est légèrement faussée parC2qui va maintenir le potentiel un certain temps après le relâchement du bouton)PIN_NB: le GPIO à utiliser
Copiez ce script dans /usr/local/bin. Rendez-le exécutable:
sudo chmod +x /usr/local/bin/rpi_shutdown.pysudo chmod +x /usr/local/bin/rpi_shutdown.pyInstallez ses dépendances, notamment gpiozero:
sudo apt-get -y install python3-gpiozero python3-pkg-resourcessudo apt-get -y install python3-gpiozero python3-pkg-resourcesEt activez-le au démarrage du système:
sudo crontab -esudo crontab -erajoutez alors dans le fichier qui s'ouvre:
@reboot /usr/local/bin/rpi_shutdown.py &@reboot /usr/local/bin/rpi_shutdown.py &Ce script a été écrit suivant la documentation de gpiozero.
Redémarrez proprement votre RaspberryPi:
sudo rebootsudo rebootVous pouvez à présent connecter le circuit au RaspberryPi et à l'alimentation et tester:
- que l'alimentation est bien maintenue active par la broche
RPI_UART0-TXDdu RaspberryPi, - et que l'appui sur le bouton déclenche l'arrêt du RaspberryPi, qui déclenche l'arrêt de l'alimentation.
La page GitHub du projet
La page Instructables du projet
La page Sitelec.org du projet
Vidéo sur les alimentations à découpage ATX, par Deus Ex Silicium