Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

Réponse : le MCP3008 ne renvoie que 0 ou 1023 : comment prouver que le SPI fonctionne sur un Pi 3B+ ?

Traduit de English par IA ·

Testez d’abord le SPI seul, en boucle (loopback), sans puce. Retirez le MCP3008, reliez MOSI (GPIO10, broche 19) à MISO (GPIO9, broche 21) avec un cavalier, puis lancez :

wget https://raw.githubusercontent.com/raspberrypi/linux/rpi-6.6.y/tools/spi/spidev_test.c
gcc -o spidev_test spidev_test.c
./spidev_test -D /dev/spidev0.0 -v -p "HELLO"

Si RX affiche les mêmes octets que TX, la partie Pi fonctionne. Si RX ne contient que des 00 ou des FF, le SPI ne tourne pas vraiment.Mon intuition porte cependant sur votre code : spi.open(0, 1) utilise la sélection de puce CE1, soit GPIO7 sur la broche 26. La plupart des tutoriels MCP3008 câblent CS sur CE0, soit GPIO8 sur la broche 24. Si votre CS va à la broche 24, la puce n’est jamais sélectionnée, sa sortie flotte, et vous obtenez 0 avec de temps en temps 1023 quand vous la touchez. Déplacez le fil sur la broche 26 ou remplacez le code par spi.open(0, 0). J’ai fait exactement cette confusion sur un banc de test au travail.Le fait que le canal 1 donne la même valeur est révélateur : une puce non sélectionnée renvoie les mêmes données parasites sur chaque canal.

Solution acceptée♥ 3