Omega имеет встроенный аппаратный SPI-контроллер, позволяющий связываться с периферийными устройствами, которые поддержкивают SPI. Чтобы реализовать SPI-соединение, Omega имеет библиотеку на языке C, модуль Python и командную строку. В этой статье основное внимание будет уделено команде spi-tool.
Последовательный периферийный интерфейс (SPI) представляет собой четырехпроводный синхронный протокол связи, в основном используемый для подключения микропроцессоров или микроконтроллеров к датчикам, памяти и другим периферийным устройствам.
Четыре сигнала:
SPI - это синхронная шина данных. Одна из линий - часы, используемые для синхронизации битов, отправляемых по другим линиям данных.
Протокол основан на архитектуре ведущий-ведомый. Ведущий генерирует тактовые сигналы System Clock и сигналы ведомому Slave Select. Каждому ведомому устройству требуется собственное подключение к ведущему.
Для дополнительной информации, посмотрите статью Википедии.
SPI-шина Omega2 имеет одну доступную линию для выбора ведомого (CS1). Шина зарегистрирована в операционной системе через файл виртуального устройства /dev/spidev32766.1. Это стало возможным благодаря sysfs, псевдо-файловой системе, которая содержит информацию об аппаратном обеспечении Omega в файлах и позволяет пользователю управлять оборудованием, редактируя файлы.
Вот что означают цифры в названии виртуального устройства:
При использовании данной шины вам нужно будет указать конкретно эти номера. Держите их под рукой!
Сбоку устройство 0 (CS0) подключено к флэш-памяти, используемой Omega.
Ниже показаны контакты SPI на Omega2 и на док-станции расширения.
Утилита командной строки spi-tool позволяет пользователю читать и писать одиночные байты и/из SPI-шины Omega2. В приведенных ниже примерах используйте номер SPI-шины и идентификатор устройства (см. раздел выше).
По умолчанию этой утилиты нет в прошивке Omega. Чтобы установить ее:
opkg update
opkg install spi-tool
Запустите spi-tool -h для вывода описания параметров утилиты.
Чтобы прочитать байт с SPI-устройства, укажите адрес памяти на устройстве:
spi-tool -b
Эта команда выведет байт, считанный с указанного адреса на SPI-устройстве.
Требуются следующие аргументы:
Вот некоторые полезные параметры, которые вы можете использовать:
Как прочесть байт на шине 32766, с устройства 1, с адреса 0x11:
root@Omega-ABCD: ~ # spi-tool -b 32766 -d 1 read 0x11
> SPI Read from addr 0x11: 0x81
Как прочесть байт на шине 32766, с устройства 1; выбор микросхемы active HIGH; от адреса 0x00:
root@Omega-ABCD:~# spi-tool -b 32766 -d 1 --cs-high read 0x00
> SPI Read from addr 0x00: 0xf8
Как прочесть байт на шине 32766, с устройства 1; общего входного/выходного сигнала ведомого; от адреса 0xaf:
root@Omega-ABCD:~# spi-tool -b 32766 -d 1 --3wire read 0xaf
> SPI Read from addr 0xaf: 0xbe
Наряду с чтением вы также можете использовать spi-tool для записи на SPI- устройство:
spi-tool -b
Параметры такие же как в разделе «Чтение байта»
На шине 32766, на устройстве 1, записать по адресу 0x12 значение 0x42:
root@Omega-ABCD:~# spi-tool -b 32766 -d 1 write 0x12 0x42
> SPI Write to addr 0x12: 0x42
На шине 32766, на устройстве 1, перевести микросхему в статус active HIGH, записать по адресу 0x09 значение 0xfa:
root@Omega-ABCD:~# spi-tool -b 32766 -d 1 --cs-high write 0x09 0xfa
> SPI Write to addr 0x09: 0xfa
На шине 32766, на устройстве 1; объединить входной и выходной сигналы ведомого; записать по адресу 0xbf значение 0x01:
root@Omega-ABCD:~# spi-tool -b 32766 -d 1 --3wire write 0xbf 0x01
> SPI Write to addr 0xbf: 0x01
Утилита spi-tool позволяет достичь некоторого базового взаимодействие с SPI-устройствами. С более сложными проектами потребуется дополнительное взаимодействие с SPI-устройством, которое не может быть реализовано в командной строке.
Onion разработал библиотеку на языке C и модуль Python, которые дадут вам гибкость в использовании SPI-устройств.
г. Москва, Пятницкое ш. д. 18, пав. 566
zakaz@compacttool.ru
8-495-752-55-22
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2015 - 2024г https://compacttool.ru