Raspberry Pi:Аппаратные средства/Распиновка GPIO/SPI

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



SPI

SPI – Serial Peripheral Interface (т.е. «последовательный периферийный интерфейс»)

SPI также известен как «4-проводная последовательная шина». Этот интерфейс позволяет настроить «гирляндное» подключение сразу нескольких совместимых устройств, используя при этом всего одну группу контактов — путем присвоения всем этим устройствам разных адресов.

Простой пример использования SPI — подключение цифрового IO-расширителя MCP23S17. При помощи библиотеки WiringPi сделать это проще простого:

import wiringpi2 as wiringpi
HIGH = 1
OUTPUT = 1
PIN_BASE = 65
SPI_ADDR = 0x20
wiringpi.wiringPiSetup()
wiringpi.mcp23S17Setup(PIN_BASE,SPI_ADDR)
# 16 контактов (включая стартовый контакт)
mcp23S17pins = range(PIN_BASE,PIN_BASE+15)
for pin in mcp23S17pins:
wiringpi.pinMode(pin,OUTPUT)
wiringpi.digitalWrite(pin,HIGH)

SPI-портом также можно воспользоваться, чтобы подключиться к ATmega 328 посредством метода Bit-Bang, тем самым получая возможность загружать в него скетчи Arduino при помощи модернизированной Гордоном версии AVRDude.

Подсоедините SPI-порт на Pi к ATmega, а затем запитайте ATmega от 3,3-вольтового контакта на Pi. Убедитесь, что у вас не запущено никаких драйверов для SPI-девайсов, после чего верифицируйте соединение при помощи команды

avrdude -p m328p -c gpio.

Чтобы правильно подключиться к Atmega, имеет смысл почитать о каждом SPI-контакте Raspberry Pi отдельно.

  • 5-контактная гребенка
  • Использует одиннадцать GPIO-контактов.


См.также

Внешние ссылки