Sorti en novembre 2020, le Raspberry Pi 400 est en fait un Raspberry 4, mais intégré dans un clavier, avec le connecteur d'extension GPIO à l'arrière du boîtier. La connexion de matériel supplémentaire comporte toujours des risques, notamment lors du prototypage. La carte tampon que nous présentons ici est spécialement conçue pour le Raspberry Pi 400. Elle permet la sélection des niveaux hauts 3,3 V et 5 V pour les 26 GPIO, et les tampons/décaleurs de niveau utilisés à cet effet offrent également une protection contre les décharges électrostatiques.

Le Raspberry Pi 400

Est-il besoin de présenter ici les cartes Raspberry Pi ? Depuis la sortie de la première version en 2012, elles ont fait l'objet (ou fait partie) de nombreux projets dans le magazine Elektor. Nous avons présenté un certain nombre de montages matériels différents et de circuits imprimés d'extension pour ces cartes processeurs. Pour ce projet, disons-le tout net : le circuit dont je vais parler n'est pas nouveau, puisque sa première version a été abordée en 2015 dans la page Elektor Labs. En 2018, la conception a été adaptée au connecteur d’extension à 40 broches d'E/S qui a était la norme pour connecter du matériel supplémentaire à ces cartes processeurs depuis l'introduction du Raspberry Pi B+. Et maintenant, cette dernière version est adaptée à l'un des produits les plus récents de la famille Raspberry Pi — le Raspberry Pi 400.

Pour faire simple, le 400 est un Raspberry 4, intégré dans un clavier. Il ressemble aux ordinateurs, autrefois célèbres, des années 1980, tels que le Commodore 64, le Sinclair Spectrum et l'Acorn BBC. En termes de spécifications, le Raspberry Pi est bien évidemment beaucoup plus puissant que ses prédécesseurs désormais dépassés. Mais il y a aussi une similitude frappante — le connecteur d'extension GPIO à l'arrière du boîtier, auquel l'utilisateur peut connecter du matériel externe (conçu par lui-même). La connexion de matériel supplémentaire comporte toujours des risques, en particulier lors du prototypage, et la carte tampon présentée ici évite d'endommager le Raspberry Pi au cours du processus. En outre, la carte tampon permet l'interfaçage avec les niveaux 3,3 V et 5 V, et les tampons/décaleurs de niveau utilisés à cet effet offrent également une protection contre les décharges électrostatiques.

Matériel

Le schéma électrique du projet (figure 1) est exactement le même que celui présenté dans notre publication en 2018. Les tampons/décaleurs de niveau 8 bits TXS0108E utilisés dans ce projet sont bidirectionnels. Et chaque broche de port A et de port B possède une résistance de rappel au niveau haut. La résistance de rappel au niveau bas d'une broche GPIO du Raspberry Pi est généralement de l'ordre de 40 à 60 kΩ. Cette valeur est trop élevée pour mettre l'entrée/sortie au niveau bas lorsque la carte tampon est connectée. Ainsi, il faut noter qu'avec cette configuration d'entrée, le niveau logique ne sera pas bas, le rappel ne fonctionnant pas comme prévu.
 

Raspberry Pi 400 buffer board hardware
Figure 1 : Déjà vu. Le schéma de la carte tampon.

Les E/S ont des broches d'alimentation séparées pour le côté Raspberry Pi et le monde extérieur, VCCA et VCCB, respectivement. Chaque broche d’E/S sur le port A du TXS0108E possède une résistance de rappel vers VCCA, connectée à l'alimentation +3,3 V du Raspberry Pi 400, et chaque broche d’E/S sur le port B possède une résistance de rappel vers VCCB. La tension VCCB — pour le niveau des E/S sur K2 — peut être fixée à +3,3 V ou +5 V par le cavalier du connecteur JP3. La valeur des résistances de rappel des tampons est de 40 kΩ pour les sorties à l’état bas et 4 kΩ pour les sorties à l’état haut. Ainsi, les sorties des tampons sont en fait des drains ouverts. Par exemple, si une LED est connectée entre la sortie et la masse, un diviseur de tension est créé lorsqu'une résistance série supplémentaire est utilisée. Une charge résistive sur la sortie fera chuter le niveau logique haut. C'est quelque chose dont il faut tenir compte !


Les connexions d'alimentation entre K1 et K2 sur la carte tampon possèdent deux fusibles réarmables à coefficient de température positif de 0,5 A (F1 et F2) pour protéger les alimentations +5 V et +3,3 V du Raspberry Pi 400.

Pour l'implémentation d'un bus I2C servant à communiquer avec du matériel externe, GPIO2 correspond à la ligne de données série (SDA) et GPIO3 à la ligne d'horloge série (SCL). Les résistances de rappel supplémentaires R1 et R2 peuvent être activées par les cavaliers JP1 et JP2.

Pendant le démarrage du Raspberry Pi, les bornes GPIO0 (ID_SD) et GPIO1 (ID_SC) sont utilisées pour lire une EEPROM d'un HAT (Hardware Attached on Top, ou extension matérielle) I2C. Suite au démarrage, ces GPIO peuvent être utilisées comme les 26 autres, mais il faut s’assurer de l'absence d'incidence sur le système suite au montage d'un HAT I2C. Pour empêcher la lecture de GPIO0 et GPIO1 pendant le démarrage, ajoutez l'entrée suivante dans /boot/config.txt :

force_eeprom_read=0

Pour plus d'informations, veuillez consulter la documentation Raspberry Pi sur le fichier config.txt.

Le circuit imprimé

Le schéma n‘a peut-être rien de nouveau, mais le circuit imprimé (figure 2) est spécialement adapté au Raspberry Pi 400. Il est un peu plus petit que la carte tampon originale présentée en 2018. Les fichiers Gerber de cette nouvelle carte sont disponibles en téléchargement, vous pouvez donc la commander chez le fabricant de circuits imprimés de votre choix. Mais il est, bien sûr, beaucoup plus pratique d'acheter la carte tampon entièrement assemblée dans l’e-choppe d'Elektor.

 
Buffer PCB
Figure 2 : L'implantation du nouveau circuit imprimé de la carte tampon.

Un réceptacle à angle droit est utilisé pour le connecteur du côté du Raspberry Pi 400 de la carte tampon (K1) afin qu'il puisse être inséré dans le connecteur GPIO à l'arrière du boîtier (figure 3). Le connecteur pour les E/S tamponnées est un connecteur mâle vertical standard à 40 broches (K2). La taille du module est de 55 x 44 mm, y compris le réceptacle K1, qui dépasse du bord du PCB. Par rapport au circuit imprimé original 150719-1, les deux rangées de broches de K1 sont interverties, car un réceptacle est utilisé ici. Placer un connecteur mâle vertical standard à 40 broches pour K1 afin de connecter cette carte tampon à un Raspberry Pi 2, 3 ou 4 via un câble plat — comme avec l'ancienne version du carte tampon — ne fonctionnera pas ici.
 

Raspberry Pi 400 Buffer plugged in
Figure 3 : La carte tampon branchée sur le Raspberry Pi◦400.

Pour autant, la figure montre que ce module peut toujours être utilisé avec un Raspberry Pi 2, 3 ou 4.

The board in use
Figure 4 : La carte peut également être utilisée avec des cartes Raspberry Pi « classiques ».

Le connecteur de sortie K2 peut être connecté à des circuits externes à l'aide d'un câble plat court à 40 conducteurs, avec deux connecteurs 2 x 20 reliés, ou simplement un connecteur à réceptacle unique sur lequel sont soudés des fils courts, ou des supports simples pour fils. Cependant, faites attention en enfonçant un réceptacle à 40 conducteurs sur K2 ou en le débranchant de la carte. Ne le faites pas pendant que la carte tampon est encore insérée dans le Raspberry Pi 400, car une certaine force est nécessaire et le connecteur GPIO du Raspberry Pi 400 pourrait être endommagé.

Test de la carte tampon

Deux programmes Python très simples pour tester la carte tampon – empruntés à l'ancien projet – sont disponibles en téléchargement sur la page Elektor Labs de ce projet. L'un sert à tester tous les GPIO configurés en sortie, Check_all_GPIOs_as_output.py, et l'autre à tester tous les GPIO configurés en entrée, Check_all_GPIOs_as_input.py (210320-11.zip). Sous Raspbian, il suffit de double-cliquer sur l'un des fichiers pour lancer l'IDE par défaut de Python, puis de sélectionner RUN pour lancer le test.

Lors du test des GPIO configurés en sortie, une seule LED basse consommation connectée entre une broche et GND est nécessaire pour vérifier le fonctionnement d’une sortie. Une résistance de 1,8 kΩ peut être utilisée comme résistance en série pour la LED, mais sa valeur n'est pas vraiment critique. Elle limitera le courant traversant la LED si elle est directement connectée à la tension d'alimentation positive. Les sorties sont testées séquentiellement en quatre groupes de huit broches maximum chacun, nommés IOA à IOD. Du fait de la sortie à drain ouvert, la tension aux bornes d'une LED (rouge) plus une résistance est d'environ 2,6 V, lorsque l'alimentation sélectionnée pour les sorties (JP3) est de 5 V. Connectez la résistance et la LED à l'une des sorties sélectionnées et elle s’allumera pendant 0,2 seconde. La fréquence de répétition de cette impulsion dépend de la taille du groupe : 1,6 seconde pour les groupes A à C (chacun de huit sorties) et seulement 0,4 seconde pour le groupe D (deux sorties). Modifiez la valeur « IOA » avec un autre groupe de la ligne

for i in IOA:            # leds blink 0.2 s in IOx group

afin de tester les autres groupes de sorties. Bien sûr, GPIO0 et GPIO1 (ID_SD et ID_SC) peuvent aussi être ajoutés à l'un des groupes.

Le programme de test des GPIO configurés en entrée utilise une E/S comme sortie pour indiquer que l'entrée testée fonctionne ; c'est GPIO3 par défaut. Connectez une résistance de 1,8 kΩ et une LED entre la broche 5 (IO3’) de K2 et GND. Une seule entrée à la fois est testée dans le code source, pour s'assurer que seule celle-ci fonctionne comme entrée. Changez le numéro dans la ligne suivante pour tester une autre broche GPIO comme entrée :

IN1 = 2  #selected GPIO to test as input

Le programme affiche également la broche GPIO sélectionnée et son niveau d'entrée. Les résistances de rappel des entrées sont activées. Ainsi, pour que la LED connectée s'allume, la broche d'entrée actuelle doit être reliée à la masse. Ceci étant fait, la sortie change. Enfin, sélectionnez une autre broche GPIO pour la sortie afin de pouvoir également tester GPIO3 comme entrée. Bien entendu, il existe de nombreuses façons de tester les GPIO. Si vous avez une méthode plus efficace et/ou plus rapide, merci de nous en faire part.

Cette carte tampon vous permet de connecter en toute tranquillité un matériel nouveau au Raspberry Pi 400, en réduisant considérablement le risque qu'il soit endommagé en cours d'expérimentation. Mais réduire les risques grâce à cette carte tampon ne constitue pas une garantie. Bien souvent, le bon sens pourra aussi être très utile.


Questions concernant la carte tampon?

Si vous avez des questions techniques ou des commentaires sur la carte tampon ou sur cet article, n'hésitez pas à envoyer un courriel à l'équipe de rédaction d'Elektor à editor@elektor.com.

 

Traduction : Asma Adhimi

 

Liste des composants
Résistances
R1,R2 = 10 kΩ, 100 mW, 1 %, CMS 0603
 
Condensateurs
C1…C8 = 100 nF, 50 V, 10 %, X7R, CMS 0603
 
Semi-conducteurs
IC1…IC4 = TXS0108EPWR, CMS TSSOP-20
 
Divers
K1 = Réceptacle 2 * 20, angle droit, au pas de 2,54 mm
K2 = Connecteur mâle à 2 * 20 broches , vertical, au pas de 2,54 mm
JP1,JP2 = Connecteur mâle à 2 broches, vertical, au pas de 2,54 mm
JP3 = Connecteur mâle à 3 broches, vertical, au pas de 2,54 mm
JP1,JP2,JP3 = Cavalier, pas de 2,54 mm
F1,F2 = Fusible réarmable CTP, CMS, polyfuse, 1210L050YR Littelfuse
PCB 210320-1 v1.0