Créez votre propre PCB module de calcul Raspberry Pi (Traduction)

:rasp: :rasp: :rasp: :rasp:
:logof: Traduction par Steflin - https://www.forumrpifreng.ovh - forum auto-hébergé sur Rpi. Image
Avatar de l’utilisateur
Steflin
Administrateur
Messages : 663
Inscription : 01 juil. 2018, 20:19

Créez votre propre PCB module de calcul Raspberry Pi (Traduction)

Message par Steflin » 29 janv. 2019, 22:06

:rasp: Traduit de "Design Your Own Raspberry Pi Compute Module PCB" https://www.instructables.com/id/Design ... odule-PCB/

Créez votre propre PCB module de calcul Raspberry Pi

Image
Par magkopian - Manolis Agkopian - Plus par l'auteur :
- Moniteur de température et d'humidité
- Microscope à souder Raspberry Pi Zero HDMI / WiFi
- Boîte de résistance SMD
A propos de : Je suis ingénieur en électronique et en informatique.
Le développement Web et la conception électronique est ce que je fais le plus souvent, mais j'aime travailler sur des projets personnels qui impliquent l'électronique mais aussi l'impression 3D.
Et si cela arrive.... Plus d'infos sur magkopian > Lire la suite


Si vous n'avez jamais entendu parler du module de calcul Raspberry Pi avant, il s'agit essentiellement d'un ordinateur Linux complet avec le facteur de forme d'une barrette mémoire RAM pour ordinateur portable !

Avec, il devient possible de concevoir vos propres cartes personnalisées où le Raspberry Pi est juste un autre composant.
Cela vous donne une énorme flexibilité car cela vous permet d'avoir accès à un plus grand nombre de broches d'E/S, tout en vous permettant de choisir exactement le matériel que vous voulez sur votre carte.
L'eMMC embarqué élimine également le besoin d'une carte micro SD externe, ce qui rend le module de calcul parfait pour concevoir des produits à base de Raspberry Pi.

Malheureusement, bien que le module de calcul vous permette de faire tout cela, il semble toujours manquer en termes de popularité par rapport au traditionnel Raspberry Pi modèle A et B.
En conséquence, il n'y a pas beaucoup de projets matériels open source basés sur lui.
Et pour tous ceux qui voudraient commencer à concevoir leur propre cartes, la quantité de ressources dont ils disposent est plutôt limitée.

Lorsque j'ai commencé à utiliser le module de calcul Raspberry Pi il y a quelques mois, c'était exactement le problème auquel j'étais confronté.
Alors, j'ai décidé de faire quelque chose.
J'ai décidé de concevoir un PCB open source basé sur le module de calcul, qui va avoir toutes les fonctionnalités de base qui font la grandeur du Raspberry Pi.
Cela inclut un connecteur de caméra, un hôte USB, une sortie audio, HDMI et bien sûr un en-tête GPIO compatible avec les cartes Raspberry Pi ordinaires.

Le but de ce projet est de fournir une conception open source pour une carte basée sur un module de calcul, que chacun pourra utiliser comme point de départ pour concevoir sa propre carte personnalisée.
La carte a été conçue sur KiCAD, un progiciel EDA open source et multi-plateforme, afin de permettre au plus grand nombre d'utilisateurs possible d'en profiter.

Il vous suffit de récupérer les fichiers de conception, de les adapter à vos besoins et de créer votre propre carte personnalisée pour votre projet.

Étape 1 : Pièces et outils

Image

Pour commencer à utiliser le module de calcul Raspberry Pi, vous aurez besoin des pièces suivantes :

1 x Raspberry Pi Compute Module 3
- Je recommande fortement d'obtenir la version régulière qui inclut l'eMMC embarqué et non la version Lite.
Si vous voulez utiliser la version Lite dans votre projet, vous devrez apporter quelques modifications à la conception, y compris l'ajout d'un connecteur pour carte micro SD.
Enfin, je n'ai testé la carte qu'avec le CM3 et je ne peux pas garantir qu'elle fonctionnera avec la première version CM qui est sortie en 2014.

Mise à jour 29/1/2018 :
Il semble que la Fondation vient de sortir le Compute Module 3+ et non seulement cela, mais maintenant il vient aussi avec l'option pour un eMMC de 8 Go, 16 Go ou 32 Go !
D'après la fiche technique, il apparaît que le CM3+ est électriquement identique au CM3, ce qui signifie qu'il s'agit essentiellement d'une évolution en remplacement du CM3.

1 x Carte d'E/S de module de calcul (IO) - Ma conception était destinée à servir de point de départ pour la conception de votre propre carte personnalisée basée sur elle, et non pour remplacer la carte d'E/S du module de calcul.
Donc, pour vous faciliter la vie, je vous recommande fortement de mettre la main sur une carte IO et de l'utiliser pour le développement avant de passer à une carte personnalisée.
En plus de vous donner accès à toutes les broches du CM plus une variété de connecteurs, la carte d'E/S est également nécessaire pour flasher l'eMMC embarqué.
Ce qui est quelque chose que vous ne pouvez pas faire avec ma planche, à moins que vous ne fassiez d'abord quelques changements à la conception.

1 x câble de caméra Raspberry Pi Zero ou adaptateur de caméra du module de calcul - Sur ma conception, j'utilise un connecteur de caméra très similaire à celui utilisé par le module de calcul IO Board et le module de calcul Pi Zero Raspberry.
Ainsi, pour fixer une caméra, vous aurez besoin soit d'un câble adaptateur conçu pour le Pi Zero, soit de la carte d'adaptation pour caméra qui est fournie avec le kit de développement du module de calcul.
Pour autant que je sache, l'achat de la carte d'adaptation séparément est assez cher.
Donc, si comme moi vous décidez d'acheter votre carte CM et ES (IO) séparément pour économiser de l'argent, je vous conseille d'acheter le câble adaptateur pour caméra conçu pour le Pi Zero à la place.

1 x Raspberry Pi Camera Module - Je n'ai testé la carte qu'avec le module original 5MP et non la version 8MP plus récente.
Mais comme le premier semble fonctionner très bien, je ne vois pas pourquoi le second ne le ferait pas, car il est censé être rétrocompatible.
Quoi qu'il en soit, la version 5MP se trouve aujourd'hui à moins de 5€ sur eBay, c'est pourquoi je recommande d'en acheter une.

4 fils "jumper" femelle à femelle - Vous aurez besoin d'au moins 4 fils pour configurer le connecteur de la caméra sur la carte d'E/S, vous voudrez probablement en obtenir plus cependant.
Ils ne sont pas nécessaires pour la carte personnalisée mais peuvent être utiles si vous prévoyez de fixer du matériel externe via l'en-tête (header) GPIO.

1 x câble HDMI - J'ai décidé d'utiliser un connecteur HDMI pleine grandeur sur ma carte pour éliminer le besoin d'adaptateurs.
Bien sûr, si vous préférez utiliser un mini ou même un micro connecteur HDMI, n'hésitez pas à adapter le design à vos besoins.

1 x 5V Micro USB Power Supply - Votre chargeur de téléphone devrait probablement faire très bien pour la plupart des cas aussi longtemps qu'il peut fournir au moins 1A.
Gardez à l'esprit qu'il ne s'agit que d'une valeur générale, vos besoins réels en énergie vont dépendre du matériel que vous décidez d'inclure sur votre carte personnalisée.

1 x Adaptateur Ethernet USB - Si vous prévoyez d'installer ou de mettre à jour à peu près n'importe quel paquet sur votre système, vous aurez besoin au moins d'un accès Internet temporaire.
Un adaptateur Ethernet 2-en-1 plus hub USB est probablement une bonne combinaison car vous n'avez qu'un seul port USB disponible.
Personnellement, j'utilise l'Edimax EU-4208 qui fonctionne avec le Pi et ne nécessite pas d'alimentation externe, mais il ne possède pas de hub USB intégré.
Si vous envisagez d'acheter un adaptateur Ethernet-USB, vous trouverez ici une liste de ceux qui ont été testés avec le Raspberry Pi.

Si vous voulez ajouter plus de ports USB et même Ethernet directement sur votre carte personnalisée, je vous suggère de jeter un oeil au LAN9512 de Microchip.
C'est la même puce utilisée par le Raspberry Pi modèle B original et qui va vous donner 2 ports USB et 1 port Ethernet.
Alternativement, si vous avez besoin de 4 ports USB, jetez un coup d'oeil à son cousin LAN9514.

1 x DDR2 SODIMM RAM Connector - C'est probablement le composant le plus important de la carte et probablement le seul qui ne peut être facilement remplacé.
Pour vous éviter des ennuis, la pièce que vous devriez obtenir est la TE CONNECTIVITY 1473005-4.
Il est disponible auprès de la plupart des principaux fournisseurs, y compris TME, Mouser et Digikey, de sorte que vous ne devriez avoir aucun problème à le trouver.
Soyez cependant très prudent, vérifiez deux fois et assurez-vous que la pièce que vous commandez est bien la 1473005-4. Ne faites pas la même erreur que moi et obtenez la version miroir, ces connecteurs ne sont pas bon marché.

Pour le reste des parties que j'ai choisi d'inclure sur le forum, vous pouvez jeter un coup d'oeil à la "BOM" pour obtenir plus d'informations, j'ai essayé d'inclure des liens vers les fiches techniques de la plupart d'entre eux.

Équipement de brasage - Les plus petits composants de la carte sont les condensateurs de découplage 0402, mais le HDMI ainsi que la caméra et les connecteurs SODIMM peuvent aussi être un peu difficiles sans aucun grossissement.
Si vous avez une bonne expérience de la soudure CMS, cela ne devrait pas être un gros problème. Quoi qu'il en soit, si vous avez accès à un microscope, je vous le recommande fortement.

Etape 2 : Flash de l'EMMC

La première chose que vous devez faire avant de commencer à utiliser votre module de calcul est de flasher la dernière image Raspbian Lite sur l'eMMC.
La documentation officielle de Raspberry Pi est très bien écrite et décrit l'ensemble du processus en détail pour Linux et Windows.
Pour cette raison, je vais seulement décrire brièvement les étapes que vous devez suivre sous Linux, afin qu'elles puissent servir de référence rapide.

Tout d'abord, vous devez vous assurer que votre carte d'E/S est en mode programmation et que le module de calcul est inséré dans le connecteur SODIMM.
Pour mettre la carte en mode programmation, mettre le cavalier J4 en position EN.

Ensuite, vous allez devoir construire l'outil rpiboot sur votre système pour pouvoir l'utiliser pour obtenir l'accès à l'eMMC.
Pour ce faire, vous avez besoin d'une copie du dépôt usbboot qui peut être obtenue facilement en utilisant git comme suit,

Code : Tout sélectionner

git clone --depth=1 https://github.com/raspberrypi/usbboot && cd usbboot
Maintenant, pour compiler rpiboot, vous devez vous assurer que libusb-1.0-0-dev et make packages sont installés sur votre système.
Donc, en supposant que vous êtes sur une distribution basée sur Debian comme Ubuntu,

Code : Tout sélectionner

sudo apt update && sudo apt install libusb-1.0-0-dev make
Si vous n'utilisez pas une distribution basée sur Debian, le nom du paquet libusb-1.0.0.0-dev pourrait être différent, alors assurez-vous de trouver comment il est appelé dans votre cas. (en consultant docs et google)
Une fois les dépendances de compilation installées, vous pouvez construire le binaire rpiboot simplement en exécutant,

Code : Tout sélectionner

make
Une fois la construction terminée, exécutez rpiboot en tant que root et il commencera à attendre une connexion,

Code : Tout sélectionner

sudo ./rpiboot
Branchez maintenant la carte d'E/S à votre ordinateur en connectant un câble micro USB à son port USB SLAVE et mettez sous tension le port POWER IN.
Après quelques secondes, le rpiboot devrait être capable de détecter le module de calcul et vous permettre d'accéder à l'eMMC.
Cela devrait aboutir à l'apparition d'un nouveau périphérique de bloc sous /dev.
Vous pouvez utiliser le programme fdisk pour vous aider à trouver le nom de l'appareil,

Code : Tout sélectionner

sudo fdisk -l
Disk /dev/sdi: 3.7 GiB, 3909091328 bytes, 7634944 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8e3a9721</p><p>Device Boot Start End Sectors Size Id Type
/dev/sdi1 8192 137215 129024 63M c W95 FAT32 (LBA)
/dev/sdi2 137216 7634943 7497728 3.6G 83 Linux
Dans mon cas, c'était /dev/sdi car j'ai déjà plusieurs lecteurs connectés sur mon système, mais le vôtre va certainement varier.

Une fois que vous êtes absolument sûr d'avoir trouvé le bon nom de périphérique, vous pouvez utiliser dd pour graver l'image Raspbian Lite sur l'eMMC.
Avant de faire cela, assurez-vous qu'aucune partition de l'eMMC n'est déjà montée sur votre système.

Code : Tout sélectionner

df -h
Si vous en trouvez, démontez-les comme suit,

Code : Tout sélectionner

sudo umount /dev/sdXY
Soyez maintenant extrêmement prudent, l'utilisation du mauvais nom de périphérique avec dd peut potentiellement détruire votre système et causer des pertes de données.
Ne passez pas à l'étape suivante tant que vous n'êtes pas complètement sûr de savoir ce que vous faites.
Si vous avez besoin de plus d'informations, veuillez consulter la documentation à ce sujet.

Code : Tout sélectionner

sudo dd if=<date>-raspbian-stretch-lite.img of=/dev/sdX bs=4M && sync
Une fois les commandes dd et sync terminées, vous devriez pouvoir débrancher la carte d'E/S de votre ordinateur.
Enfin, n'oubliez pas de ramener le cavalier J4 à la position DIS et votre module de calcul devrait être prêt pour son premier démarrage.

Étape 3 : Premier démarrage

Avant de démarrer pour la première fois, assurez-vous de brancher un clavier USB et un moniteur HDMI sur votre carte IO. (IO=ES)
Si tout se passe comme prévu et que votre Pi finit de démarrer, les avoir branchés vous permettra d'interagir avec lui.

Lorsque vous êtes invité à vous connecter, utilisez "pi" pour le nom d'utilisateur et "raspberry" pour le mot de passe car ce sont les identifiants de connexion par défaut.
Vous pouvez maintenant exécuter quelques commandes pour vous assurer que tout fonctionne comme prévu comme vous le feriez normalement sur n'importe quel Raspberry Pi, mais n'essayez pas encore d'installer quoi que ce soit car vous n'avez toujours pas de connexion Internet.

Une chose importante que vous devez faire avant d'arrêter votre Pi est d'activer SSH, afin de pouvoir vous y connecter à partir de votre ordinateur après le prochain démarrage.
Vous pouvez le faire très facilement en utilisant la commande raspi-config,

Code : Tout sélectionner

sudo raspi-config
Pour activer SSH, allez dans Options d'interface, sélectionnez SSH, choisissez OUI, OK et Terminer. (go to Interfacing Options, select SSH, choose YES, OK and Finish.)
Au cas où l'on vous demanderait si vous voulez redémarrer refuser.
Une fois que vous avez terminé d'éteindre votre Pi et une fois qu'il a terminé, coupez l'alimentation.

Code : Tout sélectionner

sudo shutdown -h now
Ensuite, vous devez établir une connexion Internet en utilisant l'adaptateur Ethernet USB que vous devriez déjà avoir.
Si votre adaptateur dispose également d'un hub USB, vous pouvez l'utiliser pour brancher votre clavier si vous le souhaitez, sinon vous pouvez simplement vous connecter à votre Pi via SSH.
Quoi qu'il en soit, gardez le moniteur HDMI branché au moins pour le moment, afin de vous assurer que le processus de démarrage se termine comme prévu.

Aussi, vers la fin, il devrait également vous montrer l'adresse IP que votre Pi a obtenu du serveur DHCP. Essayez de l'utiliser pour vous connecter à votre Pi via SSH.

Code : Tout sélectionner

ssh pi@<ip-address-of-pi>
Après une connexion réussie à votre Pi via SSH, vous n'avez plus besoin du moniteur et du clavier branchés, alors n'hésitez pas à les débrancher si vous le souhaitez.
À ce stade, vous devriez également avoir accès à Internet à partir de votre Pi, vous pouvez essayer de ping quelque chose comme google.com pour le vérifier.
Après vous être assuré que vous avez accès à Internet, c'est une bonne idée de mettre à jour le système en cours d'exécution,

Code : Tout sélectionner

sudo apt update && sudo apt upgrade
Etape 4 : Configuration de la caméra

Image

La plus grande différence entre une carte Raspberry Pi ordinaire et le module de calcul est que dans le cas de ce dernier, en plus d'activer la caméra en utilisant raspi-config, vous avez également besoin d'un fichier de l'arborescence des périphériques personnalisé. (device tree)

Vous trouverez plus d'informations sur la configuration du module de calcul pour utilisation avec une caméra dans la documentation.
Mais en général, le connecteur de la caméra parmi les autres dispose également de 4 broches de contrôle, qui doivent être connectées à 4 broches GPIO sur le module de calcul, et c'est à vous de décider lesquelles en concevant votre carte personnalisée.

Dans mon cas, lors de la conception de la carte, j'ai choisi CD1_SDA pour passer à GPIO28,
CD1_SCL à GPIO29,
CAM1_IO1 à GPIO30
et CAM1_IO0 à GPIO31.
J'ai choisi ces broches GPIO particulières car je voulais avoir un connecteur GPIO 40 broches sur ma carte, qui maintient également la compatibilité avec le connecteur GPIO des cartes Raspberry Pi régulières.
Et pour cette raison, j'ai dû m'assurer que les broches GPIO que j'utilise pour la caméra n'apparaissent pas également dans l'en-tête GPIO. (header)

Ainsi, à moins que vous ne décidiez d'apporter des modifications au câblage du connecteur de la caméra, vous avez besoin d'un fichier /boot/dt-blob.bin qui indique à votre Pi de configurer GPIO28-31 comme décrit ci-dessus.
Et pour générer un fichier dt-blob.bin, qui est un fichier binaire, vous avez besoin d'un dt-blob.dts pour compiler.
Pour faciliter les choses, je vais vous fournir mon propre dt-blob.dts que vous pourrez utiliser et que vous pourrez ensuite adapter à vos besoins si nécessaire.

Pour compiler le fichier de l'arborescence des périphériques (device tree), utilisez le compilateur de l'arborescence des périphériques comme suit,

Code : Tout sélectionner

dtc -I dts -O dtb -o dt-blob.bin dt-blob.dts
Je ne suis pas sûr pourquoi, mais ce qui précède devrait résulter à un certain nombre d'avertissements, mais tant que le dt-blob.bin a été généré avec succès tout devrait être bien.
Maintenant, déplacez le fichier dt-blob.bin que vous venez de générer vers /boot en exécutant,

Code : Tout sélectionner

sudo mv dt-blob.bin /boot/dt-blob.bin
Ce qui précède vous donnera probablement l'avertissement suivant,

Code : Tout sélectionner

mv: failed to preserve ownership for '/boot/dt-blob.bin': Operation not permitted
mv : n'a pas réussi à préserver la propriété pour'/boot/dt-blob.bin' : Opération non autorisé

C'est juste mv qui se plaint qu'il ne peut pas préserver les droits de fichiers comme /boot est une partition FAT , chose qui est à prévoir.
Vous avez peut-être remarqué que /boot/dt-blob.bin n'existe pas par défaut, c'est parce que Pi utilise une arborescence de périphériques intégré à la place.
L'ajout du votre à l'intérieur de /boot remplace celui intégré et vous permet de configurer la fonction de son pin comme vous le souhaitez.
Vous trouverez plus d'informations sur l'arborescence des périphériques dans la documentation.

Après cela, vous devez activer la caméra,

Code : Tout sélectionner

sudo raspi-config
Allez dans Options d'interface, sélectionnez Caméra, choisissez OUI, OK et Terminer. Go to Interfacing Options, select Camera, choose YES, OK and Finish
Au cas où l'on vous demanderait si vous voulez redémarrer refuser.
Maintenant, éteignez votre Pi et coupez le courant. du Pi, pas de la maison... :Dehors:

Après avoir coupé l'alimentation de la carte d'E/S, connectez les broches de GPIO28 à CD1_SDA, GPIO29 à CD1_SCL, GPIO30 à CAM1_IO1 et GPIO31 à CAM1_IO0 en utilisant 4 fils jumper femelle à femelle.
Enfin, fixez votre module caméra au connecteur CAM1 à l'aide de la carte d'adaptateur caméra ou d'un câble caméra conçu pour le Raspberry Pi Zero et mettez-le sous tension.

Si tout a fonctionné comme prévu après le boot du Pi, vous devriez pouvoir utiliser l'appareil photo.
Pour essayer de prendre une photo après vous être connecté à votre Pi via SSH lancez cette commande,

Code : Tout sélectionner

raspistill -o test.jpeg
Si la commande se termine sans erreur et qu'un fichier test.jpeg est créé, cela signifie qu'il a fonctionné.
Si vous voulez voir la photo que vous venez de prendre, vous pouvez vous connecter à votre Pi via SFTP et le transférer sur votre ordinateur.
(Raspbian supporte le SFTP nativement via filezilla si ls ssh est activé)
ou par terminal:

Code : Tout sélectionner

sftp pi@<ip-address-of-pi>
sftp> get test.jpeg
sftp> exit


Étape 5 : Passage de la carte IO à un circuit imprimé personnalisé

Image

Maintenant que vous avez terminé la configuration de base, vous pouvez passer à la conception de votre propre carte personnalisée basée sur le module de calcul.
Comme il s'agit de votre premier projet, je vous encourage fortement à prendre mon design et à l'étendre pour inclure tout matériel supplémentaire que vous souhaitez.

L'arrière de la carte offre suffisamment d'espace pour ajouter vos propres composants et pour des projets relativement petits, vous n'aurez probablement même pas besoin d'augmenter les dimensions de la carte.
De plus, si c'est un projet autonome et que vous n'avez pas besoin d'un en-tête GPIO physique sur votre carte, vous pouvez facilement vous en débarrasser et gagner de l'espace sur la face supérieure du PCB.
L'en-tête GPIO est également le seul composant qui est acheminé à travers la deuxième couche interne et son retrait le libère complètement.

Je dois signaler que j'ai moi-même assemblé et testé avec succès l'une des cartes et que j'ai vérifié que tout, y compris la caméra et la sortie HDMI, semble fonctionner comme prévu.
Donc, tant que vous n'apportez pas d'énormes changements à la façon dont j'ai routé tout ce que vous ne devriez pas avoir de problèmes.

Au cas où vous auriez à faire de gros changements de disposition, gardez à l'esprit que la plupart des traces qui vont vers les connecteurs HDMI et caméra sont routées par paires différentielles de 100 Ohm.
Cela signifie que vous devez en tenir compte au cas où vous auriez à les déplacer autour de la carte.
De plus, cela signifie que même si vous laissez tomber l'en-tête GPIO de votre conception, ce qui signifie que maintenant les couches internes ne contiendront plus de traces, vous avez toujours besoin d'un PCB 4 couches afin d'obtenir une impédance différentielle proche de 100 Ohm.
Si vous n'allez pas utiliser la sortie HDMI et la caméra, vous devriez pouvoir utiliser une carte 2 couches en vous débarrassant d'elles et en réduisant un peu le coût des cartes.

Juste pour référence, les planches ont été commandées chez ALLPCB avec une épaisseur totale de 1.6mm et je n'ai pas demandé de contrôle d'impédance, car cela augmenterait probablement le coût et je voulais aussi voir si cela serait important.
J'ai également choisi une finition en or par immersion pour faciliter le brasage manuel des connecteurs, car cela garantit que tous les tampons seront bien plats.
"La vitesse de la lumière dépend de la distance qui nous sépare de l'interrupteur"
[Alfred Einstein, cousin par alliance d'Albert]
Répondre

Revenir à « Articles traduits »