Интерфейс SPI (англ. Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, шина SPI) — это последовательный четырёх-проводной интерфейс передачи данных, предназначенный для обеспечения простого и недорогого высокоскоростного сопряжения микроконтроллеров и периферии.
Сколько SPI портов на Orange Pi
Если брать классический Orange Pi с GPIO на 40 пин, то мы имеем полтора SPI порта. Смотрим распиновку Orange Pi PC:
отсюда видно, что на гребёнке только один полноценный SPI порт — это SPI0.
Номер пина CPU | SPI0 |
---|---|
PC0 | MOSI |
PC1 | MISO |
PC2 | CLK |
PC3 | CS |
Порт SPI1 присутствует только в виде CLK и CS, что явно недостаточно. Если открыть документ-схему платы, то мы обнаружим следующее:
Номер пина CPU | SPI1 |
---|---|
PA13 | CS |
PA14 | CLK |
PA15 | MOSI |
PA16 | MISO |
MOSI идёт на индикатор состояния (STATUS-LED),
а MISO идёт на комбинированный разъём Mini-Jack 3.5 мм и отключает звук при подключении провода.
В таком случае, только если вы очень настойчив и вам «очень нужен» этот SPI1 порт, можете распаять светодиодный индикатор и разъём Mini-Jack 3.5 мм и припаять нужное вам устройство. Но это не рекомендуется делать.
Включение шины SPI на Orange Pi
По умолчанию шина SPI0 на Orange Pi отключена. Для включения выполните следующие действия.
Включение шины SPI на ядре 3.4 (Ubuntu 16.04)
Чтобы включить шину SPI на ядре 3.4, нужно редактировать script.bin
файл. script.bin — главный конфигурационный файл ядра использующийся при загрузке ОС на платах Orange Pi (и остальных, базирующихся на sunxi). Это скомпилированный бинарный файл, внесение правок в который — невозможно.
Файл создается при помощи утилиты fex2bin из набора sunxi-tools из текстового файла имя_файла.fex
.
- Не забывайте сделать резервную копию script.bin, чтобы смогли вернуть обратно все настройки, в случае не правильного редактирования файла:
sudo cp /boot/script.bin /boot/script.bak
- Декомпилируйте бинарный файл script.bin в редактируемый файл fex:
sudo bin2fex /boot/script.bin /boot/script.fex
- Теперь отредактируйте файл script.fex с помощью утилиты nano, но можете использовать и другой текстовый редактор, к примеру pluma:
sudo nano /boot/script.fex
- Теперь вам нужно перейти в раздел
[spi0]
или[spi1]
и включить интерфейс, изменив значение строкиspi_used
из «0» в «1»:spi_used = 1
В результате вы должны поличить примерно такой результат:
[spi0] spi_used = 1 spi_cs_bitmap = 1 spi_mosi = port:PC00<3><default><default><default> spi_miso = port:PC01<3><default><default><default> spi_sclk = port:PC02<3><default><default><default> spi_cs0 = port:PC03<3><1><default><default> [spi1] spi_used = 1 spi_cs_bitmap = 1 spi_cs0 = port:PA13<2><1><default><default> spi_sclk = port:PA14<2><default><default><default> spi_mosi = port:PA15<2><default><default><default> spi_miso = port:PA16<2><default><default><default>
Если вы планируете использовать только одну шину 0 (spi0), тогда выключите шину
[spi1]
, изменив значение строкиspi_used
из «1» в «0». - В разделе
[spi_devices]
вам нужно будет указать количество SPI шин, если вы планируете использовать только одну шину, просто введите 1:[spi_devices] spi_dev_num = 1
или 2, если нужны обе шины:
[spi_devices] spi_dev_num = 2
- Теперь нужно задать параметры последовательного периферийного интерфейса в разделе
[spi_board0]
:[spi_board0] modalias = "spidev" max_speed_hz = 33000000 bus_num = 0 chip_select = 0 mode = 0 full_duplex = 1 manual_cs = 0
а если надумали настроить и spi1, тогда добавьте раздел
[spi_board1]
.[spi_board1] modalias = "spidev" max_speed_hz = 33000000 bus_num = 1 chip_select = 0 mode = 0 full_duplex = 1 manual_cs = 0
главное, чтобы значения bus_num были разными: для
[spi_board0]
значениеbus_num = 0
, а для[spi_board1]
—bus_num = 1
. - Сохраните и закройте файл:
Ctrl+X, Y (Yes), Enter
- Компилируйте измененный script.fex в script.bin:
sudo fex2bin /boot/script.fex /boot/script.bin
- Перезагрузите систему:
sudo reboot
- Список SPI портов:
ls -l /dev/*spi*
Настройка SPI на ядре 3.4 с armbian-config
Редактировать .fex
файл можно и с помощью armbian-config
.
- Запустите armbian-config:
sudo armbian-config
- Выберите System — System and security settings:
- Выберите Fexedit — Board (fex) settings editor:
- Редактируйте SPI, как показано выше:
- Нажмите на < Save >, чтобы сохранить изменения.
- Перезагрузите систему.
sudo reboot
Включение шины SPI на ядре 4.14 (Ubuntu 18.04)
В ядре linux 4.14 Вам нужно редактировать не файл .fex
, а файл /boot/armbianEnv.txt
(на Armbian) или /boot/uEnv.txt
. Данные файлы можно редактировать в ручную и с помощью armbian-config, последний вариант подойдёт только для тех, у кого установлено ОС от Armbian.
- Отредактируйте файл
/boot/armbianEnv.txt
с помощью nano или другого текстового редактора.nano /boot/armbianEnv.txt
- Добавьте
spi-spidev
через пробел вoverlays
.overlays=w1-gpio uart1 i2c0 spi-spidev
- Добавьте, если отсутствуют, следующие параметры:
param_spidev_spi_bus=0 param_spidev_spi_cs=0cs=0 param_spidev_max_freq=1000000
- Вы должны получить примерно такой результат:
verbosity=1 console=serial overlay_prefix=sun8i-h3 rootdev=UUID=bd0ded76-1188-4b52-a20a-64f326c1f193 rootfstype=ext4 overlays=w1-gpio uart1 i2c0 spi-spidev param_w1_pin=PA20 param_w1_pin_int_pullup=1 param_uart1_rtscts=1 param_spidev_spi_bus=0 param_spidev_spi_cs=0 param_spidev_max_freq=1000000
- Сохраните файл:
Ctrl+X, Y (Yes), Enter
- Перезагрузите систему:
sudo reboot
Интернет-магазин плитки и керамики «МегаПлитка»
Интернет-магазин керамической плитки и керамогранита «MegaPlitka» (megaplitka.com) предлагает широкий ассортимент высококачественной плитки и керамогранита от ведущих производителей.
Мы стремимся предложить нашим клиентам только лучшее, поэтому в ассортименте представлены товары, отвечающие самым высоким стандартам качества и дизайна.
Мы понимаем, что выбор керамической плитки и керамогранита – это важный этап в создании комфортного и стильного интерьера.
Поэтому наша команда профессионалов готова помочь вам в подборе идеального варианта для вашего проекта.
Независимо от того, нужны ли вам плитка для ванной комнаты, кухни, гостиной, или же керамогранит для облицовки пола, вы всегда найдете у нас разнообразные и актуальные коллекции,
соответствующие последним тенденциям в области дизайна интерьеров.
Официальный сайт «МегаПлитка» «МегаПлитка».
Керамическая плитка и керамогранит в «КосмоПлитка»
Интернет-магазин «КосмоПлитка» (cosmoplitka.com) с 2015 года поставляет для вас лучшую керамическую плитку и керамогранит.
Мы гарантируем качество всех предлагаемых материалов в каталоге, так как сотрудничаем только с проверенными производителями.
В каталоге можно найти коллекции от таких брендов, как APE, Vitra, Rango.
Команда квалифицированных сотрудников всегда на связи и готова оказать консультативную помощь.
Для вашего удобства мы предлагаем быструю доставку и комфортные способы оплаты!
«КосмоПлитка» cosmoplitka.com – достойный поставщик и лидер в сердцах многих клиентов, каждый день мы совершенствуем свою работу, чтобы продолжать развиваться.
Распродажа плитки, звоните +7 925 815-26-05
Официальный сайт «КосмоПлитка».