ESP8266 SPI slave mode interrupt (Arduino IDE)

307
18 июля 2018, 07:10

Есть необходимость запустить аппаратный (желательно) SPI в режиме slave на ESP12f (ESP8266).
SPI0 используется для доступа к флешке - его не трогаем. HSPI - желаемый SPI.

HSPI pinout:
GPIO12 - MISO
GPIO13 - MOSI
GPIO14 - CLCK
GPIO15 - CS

Задача: используя arduino ide (так как там уже много, что написано) при получении ноля на CS вызывать прерывание и получать команды/данные по SPI. Производить разбор команд и отвечать опять-таки по SPI. Получить прерывание по падению на CS - не проблема:

pinMode(SS, INPUT);
attachInterrupt(digitalPinToInterrupt(SS), handleInterrupt, FALLING);
void handleInterrupt() {...}

Обработать полученные команды - тоже не проблема. Слепить данные из 8-битных тоже не проблема.

Проблема: настройка и инициализация SPI1 в режиме slave. Нужно указать режим работы CPHA и CPOL, режим slave, проверять флаг BSY и/или RXE (занята ли линия и есть ли ещё данные).
Использование монструозных библиотек - проблема, место не резиновое в ЕСПешке. Библиотеки с "синтетическими" задержками - проблема, код должен быть вменяемым и правильным.

Может ли кто-нибудь поделиться кодом для реализации такого? Заранее благодарен!

READ ALSO
Имя интернет сети с++

Имя интернет сети с++

Как узнать имя интернет сети к которой подключен компПодключен ли интернет проверяю так:

157
Создание статических ссылок для Apache Tomcat

Создание статических ссылок для Apache Tomcat

Создал сервер под Tomcat, задача которого помещать определенные xml в очередь сообщенийВыбор xml'я реализовал в соответствующем классе в зависимости...

189
Как отрендерить картинку в OpenGL с STB Image

Как отрендерить картинку в OpenGL с STB Image

Как отрендерить картинку используя LWJGL, STB Image?

166
Json + Jsoup распарсить

Json + Jsoup распарсить

При обрашение к сайту получаем json объект

173