Le problème
Le bus I2C sur le Raspberry Pi est bloqué lorsque j’essaye de communiquer avec le capteur de température / humidité TH02. Si je ne mets que ce capteurs sur le bus j’arrive très bien à communiquer avec lui. Lorsque je ne mets pas ce capteurs mais pleins d’autres aucun problème. Mon soucis est uniquement présent lorsque le capteur TH02 n’est pas seul sur le bus.
Une solution (et c’est loin d’être la seule)
J’ai donc pensé utiliser un adapter de niveau ayant une pin d’activation pour isoler ou non le bus. Le schéma est donc basé sur le circuit intégré TCA9517A de Texas Instrument qui propose justement toutes les caractéristiques voulues. Vous pouvez télécharger tous les fichiers KiCad de ce projet sur ce dépôt GitHub
Une fois le schéma crée, l’association des empreintes et le routage effectué, j’avais mon circuit imprimé oui mais en virtuel… Pour le fabriquer, j’aurai pu choisir un fabricant local de prototypage rapide comme EuroCircuit.
Mais j’ai voulu essayer la proposition de chinois SeeedStudio qui propose un service pas cher du tout. Pour 10 circuits imprimés 5cm x 5cm en double face, il ne vous en coûte que 9.99$. La qualité par contre n’a rien à voir avec les fabricants avec lequel j’ai l’habitude de travailler mais j’ai aussi payé pour le minimum. Pour du prototypage rapide et pas cher cela me suffit amplement.
Par contre, il est important je pense d’aborder le sujet de l’écologie. En Chine doivent-ils respecter des normes écologiques? et si oui lequel? En Europe il est clair que les entreprises que je mandate à mon boulot (Cirly, GSSwissPCB, Techci, Cicor, …) doivent respecter des normes écologique élevé. Ceci à un coût et même élevé. Que dire aussi sur le transport entre une production en Chine ou en Europe.
Revenons à nos moutons, une fois le montage des composants finit, les tests commencent. Vu que je ne savais pas encore combien de ces cartes je voulais utilisée en parallèle avec mon Raspberry Pi lors de la création du schéma, j’ai choisi de câbler la pin ENABLE sur l’alimentation pour activer le TCA9517A en permanence dans un premier temps. Mais je me suis laissé la possibilité de couper la piste au scalpel et souder un petit fil sur une pin GPIO du Raspberry Pi, comme montré sur la photo ci-dessous. Cette solution me permet si je soude le fil de chaque carte sur une GPIO différente de les activer/désactiver séparément depuis le Raspberry Pi.
Pour le moment je ne pense pas faire de modification à cette carte. Mais si vous en avez envie rien ne vous l’empêche, il faut « forker » (lire cet article pour les explications du fork) ce dépot de mon compte GitHub.