Как стать автором
Обновить

Использование SPI из Python на Raspberry Pi

Время на прочтение1 мин
Количество просмотров49K
Приведенная в этой статье информация получена в процессе подключения трансивера nRF24L01+ к RPi. Естественно, все это можно использовать и для работы с другими SPI устройствами.

Для включение аппаратного интерфейса SPI нужно в файле /etc/modprobe.d/raspi-blacklist.conf закомментировать строку "blacklist spi-bcm2708" и перезагрузить Pi. Для того, что бы убедиться, что SPI включен можно запустить листинг директории /dev:

image

Расположение сигналов SPI на разъеме GPIO:

image

Для проверки корректности работы SPI нужно замкнуть между собой MOSI и MISO и выполнить следующие команды:

$ wget https://raw2.github.com/torvalds/linux/master/Documentation/spi/spidev_test.c

$ gcc spidev_test.c

$ sudo ./a.out -D /dev/spidev0.0


Правильный результат выполнения должен быть таким:

image

Python модуль для работы с SPI можно взять здесь. Установка модуля выполняется следующим образом:

$ git clone https://github.com/doceme/py-spidev

$ cd py-spidev/

$ sudo python setup.py install


Основные функции модуля py-spidev.

  • SpiDev([bus],[client]). Return a new SPI object that is (optionally) connected to the specified SPI device interface.
  • open(bus, device). Connects the object to the specified SPI device. open(X,Y) will open /dev/spidev-X.Y
  • xfer2([values]). Perform SPI transaction. CS will be held active between blocks.
  • close(). Disconnects the object from the interface.


Пример работы с SPI из Python:

nrf = spidev.SpiDev(0, 0)
nrf.xfer2([0x1, 0x8])
nrf.close()
Теги:
Хабы:
Всего голосов 12: ↑10 и ↓2+8
Комментарии4

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн