4

I installed Raspbian 4.1.18-v7+ on my new RPi 3 and WiFi works great however when I proceed with instructions for connecting the MCP3009 ADC I don't find spi-bcm2708 listed in /etc/modprobe.d/raspi-blacklist.conf, nor do I find any spi module when I search with lsmod | grep spi.

Hmm... is SPI not supported anymore?

Edit:

Thanks, Steve and Joan. I now see "dtparam=spi=on" was appended to /boot/config.txt by raspi-config just as you predicted. Now I see spi_bmc2835 is listed in lsmod.

My MCP3008 tool is able to open the /dev/spidev0.0 device but fails to write SPI structures via ioctl() which returns errno=22 "Invalid parameter."

Also, spidev_test loopback test fails (MISO <-> MOSI connected). The output data is all "00 00 00 ..." when we are expecting "FF FF FF ...". I did a full update and rpi-update with reboot but results are still negative results.

I attached my oscilloscope to SCLK, MIOS, MOSI, CE0, but do not even see a glimmer of a triggered signal as the tests are run.

I double checked my connections and verified 3.3VDC power level.

Is there some way to take a closer look at the state of the spidev module? Would you know how to enable a kernel trace on it?

Thanks for your help.

6

The module spi-bcm2708 has been replaced with the updated kernel module spi-bcm2835.

Generally you should no longer load modules with modprobe or by putting them in /etc/modules (there are exceptions).

Recent kernels use a method called device tree.

SPI is now enabled by adding the following line to /boot/config.txt

dtparam=spi=on

Note, the above is what raspi-config is doing "behind the scenes".

See /boot/overlays/README for general device tree information.

3

SPI is still supported, however recent versions of Raspbian have changed how SPI and other interfaces are enabled. To enable SPI run sudo raspi-config

  1. select option 9 Advanced Settings
  2. then option A6 SPI
  3. Choose Yes to enable the SPI Interface
  4. Then OK
  5. Then Yes to load the module by default
  6. click OK

Finally click Finish to exit raspi-config and reboot.

0

After trying a second RPi3 and my RPi2B+ I discovered my problem was that I had been using the 26-pin GPIO reference diagram rather than the 40-pin GPIO reference. Silly me. Thanks to all.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.