Revue de conception de PCB : Tinysparrow, un module pour les besoins de piratage CAN

J'aime voir des modules qui peuvent faciliter la conception d'autres appareils, et lorsque j'ai lancé un appel à révision de conception, [enp6s0] nous a soumis un tel tableau. Il s'agit d'un module appelé TinySparrow (GitHub), qui vous aide à créer vos propres calculateurs de véhicule et tout autre élément compatible CAN. Avec un microcontrôleur, de nombreux GPIO, un régulateur linéaire et un émetteur-récepteur CAN déjà intégrés, cette carte a plus qu'assez de puissance pour tous les amateurs de l'espace automobile – et elle est étonnamment petite !

Vous pouvez construire beaucoup de choses autour de ce module : un analyseur ou un renifleur de bus CAN, un périphérique personnalisé pour les tableaux de bord de voiture ou même un calculateur à part entière. Vous pouvez même concevoir n'importe quel matériel pour un robot ou un élément de technologie industrielle qui utilise CAN comme épine dorsale – nous en avons tous vu quelques-uns ! C'est une excellente planche, mais elle utilise six couches. Nous verrons si nous pouvons faire quelque chose à ce sujet ici.

Des modules comme TinySparrow rendront également vos PCB moins chers lors de la commande ! Grâce au microcontrôleur soigneusement acheminé et à l'émetteur CAN, quelle que soit la carte que vous concevez autour de cette puce, elle n'aura certainement pas besoin de six couches comme celle-ci – et, contrairement à la conception de votre propre carte, vous pouvez utiliser les bibliothèques et références bien testées et adaptées de quelqu'un. des circuits !

Avec TinySparrow, vous économisez beaucoup de temps, d'efforts et d'argent chaque fois que vous souhaitez concevoir un accessoire automobile ou industriel. Après avoir examiné les fichiers de la carte, ma proposition pour aider la carte d'aujourd'hui est – comme la dernière fois – de rendre sa production moins chère, afin que davantage de personnes puissent mettre cette carte entre leurs mains si jamais le créateur essaie de la fabriquer. J'ai également quelques conseils pour faciliter les améliorations futures de cette conception et la rendre plus conviviale pour sa base d'utilisateurs.

Plus de couches, pas toujours mieux

Chaque broche du microcontrôleur est cassée – cela compte beaucoup pour un tel module. C'est vraiment ennuyeux lorsque vous essayez de tirer le meilleur parti du MCU intégré, pour découvrir que les GPIO éclatés n'exposent pas l'une des broches critiques dont vous avez besoin. J'apprécie énormément la conception de tels modules et je pense que les gens devraient être conscients de leur existence, c'est pourquoi je viens de passer du temps à souligner ses points forts.

Donc à propos de ces couches. D’une part, cela justifie la petite taille de cette conception. Trois de ces couches contiennent des traces, deux sont des remplissages de masse ininterrompus et une autre couche est de 3,3 V. C'est merveilleux pour l'intégrité du signal, et peut-être que cette carte pourrait vraiment utiliser un coup de pied SI supplémentaire. Pourtant, aujourd'hui, j'aimerais vous montrer comment libérer deux des calques, en partie au cas où l'auteur aurait du mal à faire tenir les choses sur 4 calques, et en partie pour montrer comment cela se fait.

Les configurations à six couches vous offrent une intégrité de signal supérieure et beaucoup d'espace pour acheminer vos traces. Souvent, les cartes à six couches sont presque inévitables, comme lors des modes alternatifs USB-C haute vitesse avec certains types de connecteurs. Cependant, si ces mêmes caractéristiques pouvaient être réparties sur quatre couches, cela reviendrait nettement moins cher, tant pour le PCB que pour l'assemblage.

Alors débarrassons-nous de deux couches. Comme vous pouvez le voir, les calques sont plutôt pleins, donc certaines traces devraient être déplacées. Pour cela, examinons la disposition des traces sur ce tableau. La carte semble dépasser de loin les dispositions en matière d'espace de routage à quatre couches, mais je peux vous montrer que ce n'est pas le cas !

Ajustez les valeurs par défaut

Pour commencer, parlons des paramètres par défaut, ce qui finit par limiter la conception de cette carte. Cette carte utilise tous les paramètres KiCad par défaut : largeurs de piste, dégagements, diamètres de via et valeurs de zone. Ils sont conservateurs, ce qui est utile pour graver vos propres cartes, mais vous perdez cet avantage si vous commandez simplement la carte, ce qui est inévitable à six couches. Passons en revue les distances sur ce tableau et voyons quelles valeurs nous pouvons utiliser tout en étant totalement sûrs pour la fabrication. Après avoir réduit les valeurs, nous aurons beaucoup plus de liberté pour réacheminer cette carte !

La largeur de piste est de 0,25 mm par défaut, mais elle peut descendre jusqu'à 6 mil sur n'importe quelle usine qui se respecte. Idem pour les jeux de 0,2 mm – ils peuvent également atteindre 6 mil. Sur les cartes à 4 et 6 couches, vous pouvez descendre jusqu'à 0,09 mm/0,09 mm, ce qui facilite particulièrement la disposition des paires différentielles, mais vous aide également à tirer des faisceaux de pistes d'un point à un autre.

Les vias mesurent 0,8 mm/0,4 mm (largeur d'anneau/largeur de foret), ce qui est énorme : vous pouvez descendre en toute sécurité jusqu'à 0,6 mm/0,4 mm sur des cartes à 2 couches. Chez JLCPCB et d'autres usines, vous pouvez descendre jusqu'à 0,5 mm/0,3 mm sur 4 couches et au-delà sans payer de supplément, mais même les tailles de forets les plus petites ont tendance à coûter un peu plus cher, je ne vous recommande donc pas de les utiliser. En ce qui concerne les dégagements de zone, les paramètres de zone par défaut de 0,5 mm/0,25 mm (espace libre/largeur minimale) sont corrects, mais les diminuer à quelque chose comme 0,2 mm/0,2 mm ou moins aidera vos remplissages à pénétrer dans des endroits plus restreints. D'un autre côté, la soudabilité des connecteurs à broches du module sera un peu moins bonne avec des remplissages solides sur GND – je vous recommande d'utiliser des thermiques pour de telles cartes.

Modifions ces valeurs en masse ! En passant de la largeur de piste à 0,15 mm et de la taille de via à 0,5 mm / 0,3 mm, beaucoup d'espace s'est soudainement libéré. Je pensais faire tourner le microcontrôleur pour permettre une densité de pistes plus élevée, mais maintenant je ne suis même pas sûr que cela soit vraiment nécessaire.

Brochage du module

Lorsque vous concevez un module comme celui-ci et que vous vous attendez à ce qu'il soit utilisé sur vos cartes et surtout sur celles des autres, la modification du brochage doit être effectuée avec soin – je le sais. Cependant, j'ai de solides arguments pour expliquer pourquoi ce module mérite un changement radical comme celui-là.

Pour commencer, les broches GND du module sont très rares : il n'y en a que deux sur l'en-tête CAN, alors que les entrées et sorties d'alimentation réelles du module (VDC et 3,3 V) se trouvent du côté opposé. Cela compromettra au moins quelque peu les courants de retour pour l'alimentation et le CAN. N'oubliez pas qu'il y a une raison pour laquelle nous ne mettons plus GND du côté opposé de VCC sur les puces modernes, comme nous le faisions sur les circuits intégrés logiques de l'ère des packages DIP.

L’assortiment de broches devrait donc être peaufiné. Par exemple, le VDC ne nécessite pas deux broches sur le connecteur – une seule suffirait, étant donné que la consommation de courant du module est assez faible. Je reconnais que les modifications de brochage interrompues sont assez nuisibles, mais vous devez également vous assurer de les effectuer avant que la popularité du module n'augmente. En apprenant de l'exemple Arduino, plus tôt vous pourrez apporter de telles modifications, mieux ce sera, donc si l'auteur est libre de remplacer l'une des broches actuellement VDC par GND, cela aidera. Vous pouvez même ajouter une broche GND supplémentaire entourant le VFC, en remplaçant l'un des GND proches du CAN par un GPIO – cela rend beaucoup plus difficile l'endommagement du MCU par l'application accidentelle d'un tournevis/d'un objet métallique/de poussière.

Deux couches supprimées en deux minutes

Quant à la réduction des couches, regardons où vont les traces. En désactivant la visibilité du remplissage, puis en sélectionnant uniquement F.Cu, In1.Cu et In2.Cu, quelque chose devient évident. Bien que le VIN et le routage des modules sur le dessus interfèrent avec la disposition directe des signaux, vous pouvez facilement déplacer les signaux In1 et In2 vers B.Cu (actuellement inoccupé).

Alors, comment faire ce réacheminement ? En fait, cela m'a pris environ deux ou trois minutes. Tout d’abord, déplacez les pistes In1 vers B.Cu en utilisant Edit => Edit Track & Via Properties. Ensuite, modifiez les pistes B.Cu actuelles pour vous assurer qu'elles ne se superposent pas aux pistes In2.Cu. Dernière étape – déplacez les pistes In2.Cu vers B.Cu en utilisant le même menu. Nous avons maintenant deux couches externes qui contiennent les pistes et quatre couches complètement vides, à l'exception de leurs remplissages – un arrangement classique.

De quelles couches se débarrasser ? Trois des couches désormais internes ont GND et une a 3,3 V. Vous pouvez supprimer In3 et In4 en modifiant le nombre de couches de la carte à 4 dans le menu de configuration de la carte et décider quoi faire avec les couches internes. Il existe deux options : SIG-GND-PWR-SIG ou SIG-GND-GND-SIG. Pour GND-PWR, le plan 3,3 V ne connecte que trois broches du microcontrôleur, mais le faire comme plan d'alimentation améliore quelque peu la répartition du courant électrique. Alternativement, vous pouvez vous débarrasser du plan d'alimentation interne, pour une option de couche interne GND-GND relativement classique, et placer les broches 3,3 V sur B.Cu – grâce au polygone F.Cu 3,3 V que l'auteur de la carte a ajouté, la plupart Les éléments connectés à 3,3 V sur la carte n'utilisent pas beaucoup la couche interne de 3,3 V en matière de fourniture d'énergie.

À l’heure actuelle, le travail est déjà fait et cela n’a pris que peu de temps. Avec quatre couches, la carte est moins chère à fabriquer, d'autant plus que l'auteur a déjà pris soin de ne placer que des composants sur la couche supérieure – des accessoires pour eux. Il ne reste que quelques éléments qui me semblent importants.

Sérigraphie et quelques questions-réponses

La sérigraphie de cette planche aurait besoin de quelques ajouts, à mon avis. Pour commencer, il ne répertorie pas la version de la carte, ce qui pourrait bien vous mordre, surtout compte tenu des traces internes ! Cela est encore plus vrai si vous fabriquez des multiples de cette carte et la vendez – cela aide vraiment vos utilisateurs à savoir quelle version exacte du module ils possèdent, afin qu'ils n'aient pas à lire les marquages ​​de la puce ou à en déduire des choses. disposition des traces. Mon format préféré est %BOARDNAME% by %AUTHOR%, v%VERSION%et cette carte pourrait très bien utiliser une étiquette comme celle-ci, étant donné qu'il s'agit d'un module.

L'arrière du tableau est vide, à l'exception du JLCJLCJLCJLC texte qui protège la couche supérieure du tableau et un petit œuf de Pâques. Cela dit, la sérigraphie est gratuite ! Il existe deux options. Première option : il pourrait afficher le brochage du module, pour le confort des utilisateurs. Deuxième option : il pourrait y avoir de l'art, pour le paysage émotionnel des utilisateurs d'une manière ou d'une autre. Choisissez très judicieusement, car ces deux choix sont judicieux à faire.

Maintenant, voici une question pour les lecteurs : il s'agit de choisir les composants à mettre sur un tel module. Il s'agit d'une carte utilisée dans un environnement automobile – quelque chose qui n'est pas mon domaine d'expertise, mais j'ai lu des choses à ce sujet ici et là, et je me demande si ce module nécessiterait plus de soins. Par exemple, faut-il mettre des éléments de protection pour l'émetteur-récepteur CAN sur ce module ? PEUT résiliation? Une certaine protection GPIO ? Ou ces éléments devraient-ils être relégués au tableau des transporteurs, servant de documentation impromptue sur la question « voici comment vous l'utilisez » ?

N'oubliez pas que vous pouvez également soumettre vos propres conceptions de PCB pour mon examen ! Envoyez votre tableau à notre ligne de conseils, avec [design review] dans l'en-tête, KiCad préféré, lien du référentiel Git souhaité mais un lien fichier ZIP/Google Drive/DropBox fonctionne également. Enfin et surtout, faites-moi savoir ce que vous pensez de ces commentaires, bien sûr – avez-vous vos propres notes ?

François Zipponi
Je suis François Zipponi, éditorialiste pour le site 10-raisons.fr. J'ai commencé ma carrière de journaliste en 2004, et j'ai travaillé pour plusieurs médias français, dont le Monde et Libération. En 2016, j'ai rejoint 10-raisons.fr, un site innovant proposant des articles sous la forme « 10 raisons de... ». En tant qu'éditorialiste, je me suis engagé à fournir un contenu original et pertinent, abordant des sujets variés tels que la politique, l'économie, les sciences, l'histoire, etc. Je m'efforce de toujours traiter les sujets de façon objective et impartiale. Mes articles sont régulièrement partagés sur les réseaux sociaux et j'interviens dans des conférences et des tables rondes autour des thèmes abordés sur 10-raisons.fr.