Включение и настройка SPI (SPI0 и SPI1) на Orange Pi на ядрах 3.4 (Ubuntu 16.04) и 4.14 (Ubuntu 18.04).

Интерфейс SPI (англ. Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, шина SPI) — это последовательный четырёх-проводной интерфейс передачи данных, предназначенный для обеспечения простого и недорогого высокоскоростного сопряжения микроконтроллеров и периферии.

Сколько SPI портов на Orange Pi

Если брать классический Orange Pi с GPIO на 40 пин, то мы имеем полтора SPI порта. Смотрим распиновку Orange Pi PC:
Включение и настройка SPI на Orange Pi - GPIO SPI0 и SPI1
отсюда видно, что на гребёнке только один полноценный SPI порт — это SPI0.

Номер пина CPU SPI0
PC0 MOSI
PC1 MISO
PC2 CLK
PC3 CS

Порт SPI1 присутствует только в виде CLK и CS, что явно недостаточно. Если открыть документ-схему платы, то мы обнаружим следующее:
Включение и настройка SPI на Orange Pi - CPU SPI1

Номер пина CPU SPI1
PA13 CS
PA14 CLK
PA15 MOSI
PA16 MISO

MOSI идёт на индикатор состояния (STATUS-LED),
Включение и настройка SPI на Orange Pi - SPI1 MOSI (STATUS-LED)
а MISO идёт на комбинированный разъём Mini-Jack 3.5 мм и отключает звук при подключении провода.
Включение и настройка SPI на Orange Pi - SPI1 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.

  1. Не забывайте сделать резервную копию script.bin, чтобы смогли вернуть обратно все настройки, в случае не правильного редактирования файла:
  2. Декомпилируйте бинарный файл script.bin в редактируемый файл fex:
  3. Теперь отредактируйте файл script.fex с помощью утилиты nano, но можете использовать и другой текстовый редактор, к примеру pluma:
  4. Теперь вам нужно перейти в раздел [spi0] или [spi1] и включить интерфейс, изменив значение строки spi_used из «0» в «1»:

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

    Если вы планируете использовать только одну шину 0 (spi0), тогда выключите шину [spi1], изменив значение строки spi_used из «1» в «0».
  5. В разделе [spi_devices] вам нужно будет указать количество SPI шин, если вы планируете использовать только одну шину, просто введите 1:

    или 2, если нужны обе шины:
  6. Теперь нужно задать параметры последовательного периферийного интерфейса в разделе [spi_board0]:

    а если надумали настроить и spi1, тогда добавьте раздел [spi_board1].

    главное, чтобы значения bus_num были разными: для [spi_board0] значение bus_num = 0, а для [spi_board1]bus_num = 1.
  7. Сохраните и закройте файл:
  8. Компилируйте измененный script.fex в script.bin:
  9. Перезагрузите систему:
  10. Список SPI портов:

    Включение шины SPI на ядре 3.4 (Ubuntu 16.04) - Список SPI портов

Настройка SPI на ядре 3.4 с armbian-config

Редактировать .fex файл можно и с помощью armbian-config.

  1. Запустите armbian-config:
  2. Выберите System — System and security settings:Настройка SPI с armbian-config - System (System and security settings)
  3. Выберите Fexedit — Board (fex) settings editor:Настройка SPI с armbian-config - Fexedit (Board (fex) settings editor)
  4. Редактируйте SPI, как показано выше:Настройка SPI с armbian-config - Редактирование .fex файла
  5. Нажмите на < Save >, чтобы сохранить изменения.
  6. Перезагрузите систему.

Включение шины SPI на ядре 4.14 (Ubuntu 18.04)

В ядре linux 4.14 Вам нужно редактировать не файл .fex, а файл /boot/armbianEnv.txt(на Armbian) или /boot/uEnv.txt. Данные файлы можно редактировать в ручную и с помощью armbian-config, последний вариант подойдёт только для тех, у кого установлено ОС от Armbian.

  1. Отредактируйте файл /boot/armbianEnv.txt с помощью nano или другого текстового редактора.
  2. Добавьте spi-spidev через пробел в overlays.
  3. Добавьте, если отсутствуют, следующие параметры:
  4. Вы должны получить примерно такой результат:
  5. Сохраните файл:
  6. Перезагрузите систему:

Материалы

Редактирование script.bin файла
SPIdev
Fex Guide

Похожие записи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *