Novedad: el cortafuegos de IA supervisa toda la plataforma y explica cada incidente con palabras sencillas. Vea cómo funciona

Respuesta: el MCP3008 solo da 0 o 1023: ¿cómo demuestro que el SPI funciona en una Pi 3B+?

Traducido del English por IA ·

Pruebe primero el SPI por sí solo con un loopback, sin chip. Saque el MCP3008, ponga un cable puente desde MOSI (GPIO10, pin 19) a MISO (GPIO9, pin 21) y ejecute:

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 muestra los mismos bytes que TX, la parte de la Pi está bien. Si RX es todo 00 o FF, el SPI no está funcionando realmente.Aun así, mi sospecha está en su código: spi.open(0, 1) usa el chip select CE1, que es GPIO7 en el pin 26. La mayoría de los tutoriales del MCP3008 conectan CS a CE0, es decir, GPIO8 en el pin 24. Si su CS va al pin 24, el chip nunca se selecciona, su salida queda flotando y obtiene 0 con algún 1023 cuando lo toca. O bien mueva el cable al pin 26, o cambie el código a spi.open(0, 0). Yo mismo cometí exactamente esta confusión en un banco de pruebas en el trabajo.Que el canal 1 dé el mismo valor es la pista: un chip no seleccionado devuelve la misma basura en todos los canales.

Solución aceptada♥ 3