Для того чтобы использовать SPI протокол на Arduino и «общаться» с ведомыми устройствами, нужно подключить библиотеку SPI. Arduino в этом случае выступает в роли ведущего устройства.
SPI – это последовательный периферийный интерфейс обмена данными. Обмен данными осуществляется между ведущим устройством и несколькими ведомыми устройствами на небольших расстояниях. В роли ведущего устройства выступает микроконтроллер. Подключение устройств к микроконтроллеру осуществляется по трем проводам (линиям) и линией, которая необходима для выбора устройства.
Каждая линия имеет свое обозначение:
Важно понимать, что SPI это не аналоговый выход. Для того что бы подключить Arduino и использовать ее как ведущее устройство, нужно знать определенные выходы.
К примеру на Mega2560 шина SPI реализована на следующих выводах:
На других контроллерах на базе ATMega 168/328
Если вы не используете выход SS он все равно должен быть установлен как выход с помощью метода: pinMode(SSpin,OUTPUT)
Библиотека SPI содержит ряд методов которые упрощают обмен данными с устройствами.
Для вызова этого методов используется следующая конструкция: SPI.methodname();
begin() – инициализация шины SPI. Настраивает пины SCK, MOSI, SS как выходы. На SCK, MOSI записывает значение LOW а на SS значение HIGH.
end() – отключает шину SPI
setClockDivider() – используется для установки частоты синхронизации шины SPI к заданной частоте контроллера.
Параметры:
setBitOrder() - устанавливает порядок вывода даннах в/из шины SPI.
Параметры:
satDataMode() –режима SPI, настройка уровня сигнала синхронизации и фазу синхронизации.
Параметры:
transfer() – используется для передачи одного байта информации по шине.
Параметры: