Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Yanıt: MCP3008 yalnızca 0 veya 1023 veriyor: Pi 3B+ üzerinde SPI'nin çalıştığını nasıl kanıtlarım?

Yapay zekâ tarafından English dilinden çevrildi ·

Önce çip olmadan, loopback ile SPI’yi tek başına test edin. MCP3008’i çıkarın, MOSI (GPIO10, pin 19) ile MISO (GPIO9, pin 21) arasına bir jumper kablo takın ve şunu çalıştırın:

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"

RX, TX ile aynı baytları gösteriyorsa Pi tarafı sorunsuz demektir. RX tamamen 00 veya FF ise SPI gerçekten çalışmıyor demektir.Ama bence sorun kodunuzda: spi.open(0, 1) çip seçimi olarak CE1’i kullanır; bu da pin 26’daki GPIO7’dir. Çoğu MCP3008 eğitiminde CS, CE0’a, yani pin 24’teki GPIO8’e bağlanır. CS’iniz pin 24’e gidiyorsa çip hiç seçilmez, çıkışı havada kalır ve ona dokunduğunuzda 0 ile ara sıra 1023 görürsünüz. Ya kabloyu pin 26’ya taşıyın ya da kodu spi.open(0, 0) olarak değiştirin. Bunun tam aynı karışıklığını işte bir test tezgahında yaşadım.Kanal 1’in de aynı değeri vermesi ipucu: seçilmemiş bir çip her kanalda aynı anlamsız değeri üretir.

Kabul edilen çözüm♥ 3