Шина I²C — самый простой способ обмена информацией. Каждое подключенное к линии I²C устройство имеет свой адрес, по которому к нему обращается Raspberry Pi.
Линии интерфейса имеют встроенную подтяжку к питанию резисторами. Соответственно их невозможно использовать в качестве общих портов ввода/вывода в случаях, требующих отключения подтяжки.
По умолчанию шина I²C отключена. Для включения выполните следующие действия.
sudo raspi-config
Interfacing options
I²C
.Yes
для подтверждения включения шины.ls /dev/
В ответ вы должны увидеть полотно файлов, среди которых: i2c-1
.
Теперь вы можете использовать интерфейс I²C для коммуникации с датчиками и модулями.
Список с адресами устройств, подключенных к линии I²C можно получить программой i2cdetect
из пакета i2c-tools
:
sudo apt-get install i2c-tools
sudo i2cdetect -y 1
SPI — последовательный четырёх-проводной интерфейс передачи данных, предназначенный для обеспечения простого и недорогого высокоскоростного сопряжения микроконтроллеров и периферии.
Raspberry Pi имеет одну шину SPI
— SPI0. Но более новые версии одноплатника — например, Raspberry Pi 4 Model B — обладают двумя шинами: SPI0 и SPI1
По умолчанию шина SPI0 отключена. Для включения выполните следующие действия.
sudo raspi-config
Interfacing options
SPI
.Yes
для подтверждения включения шины.ls /dev/
В ответ вы должны увидеть полотно файлов, среди которых два: spidev0.0
и spidev0.1
.
Это значит что у вас включён SPI0 с возможностью подключения двух ведомых устройств.
Теперь вы можете использовать интерфейс SPI для коммуникации с датчиками и модулями.
Если вы используете Raspberry Pi 4 Model B, то вам доступно две шины SPI: SPI0
и SPI1
.
Для включения шины SPI1, необходимо вручную отредактировать файл настроек загрузки системыconfig.txt
.
root
файл настройки загрузки системы.sudo nano /boot/config.txt
SPI1
.dtoverlay=spi1-3cs
Ctrl
+x
.sudo reboot
ls /dev/
В ответ вы должны увидеть полотно файлов, среди которых три отвечают за SPI1: spidev1.0
, spidev1.1
и spidev1.2
.
Если у вас включена шина SPI0, то будут ещё два файла: spidev0.0
и spidev0.1
.
Это значит что у вас включён SPI0 с возможностью подключения двух ведомых устройств и SPI1 с возможностью подключения трёх ведомых устройств.
UART (Serial) — асинхронный интерфейс передачи данных, последовательно передающий биты из байта данных. Асинхронная передача позволяет осуществлять передачу данных без использования тактирующего сигнала от передатчика к приёмнику. Вместо этого приёмник и передатчик заранее договариваются о временных параметрах и специальных «стартовых битах», которые добавляются к каждому слову данных для синхронизации приёмника и передатчика. Существует множество устройств, с которыми Raspberry Pi может обмениваться данными по UART протоколу.
В Raspberry Pi 3 есть два аппаратных UART интерфейса:
Для удобства работы с этими выходами в Raspbian существуют алиасы:
Отключить консоль:
sudo systemctl stop serial-getty@ttyS0.service sudo systemctl disable serial-getty@ttyS0.service