• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Как подключить MCU к WROOM-02 по SPI?

Alex Zas

New member
Здравствуйте.
В одном из моих проектов понадобился Web-интерфейс. Для этого я применил WROOM-02, который подключён к основному MCU по последовательному интерфейсу (RX, TX, RTS, CTS). Скорость обмена 345600 бод. Версия WROOM-02:

AT version:1.3.0.0(Oct 28 2016 11:29:39)

SDK version:2.0.0(6ccde98)

compile time:Mar 31 2017 14:50:03


Инициализация после включения:

AT+UART_CUR=345600,8,1,0,3

AT+CWSAP_CUR="ABCD","XYZ",1,2

AT+CWMODE_CUR=2

AT+CIPMUX=1

AT+CIPSERVER=1,80


Далее с помощью команд "+IPD" и " AT+CIPSEND" MCU осуществляет обмен данными с WROOM-02. В памяти MCU есть набор файлов, который формирует Web-интерфейс. MCU получает HTTP запросы и передаёт запрошенные файлы.

Всё работает, но для работы с WROOM-02 приходится использовать аппаратный UART, который в моём MCU один и используется для другой задачи. Приходится переключать аппаратный UART между двумя задачами, что неудобно и вызывает паразитные задержки.

Изначально для работы с WROOM-02 я планировал использовать программный UART, но на скорости 9600 бод Web-интерфейс работает очень медленно.

В описании WROOM-02 упоминается интерфейс SPI, якобы с его помощью можно подключить WROOM-02 к MCU.

Будьте добры - подскажите можно ли реализовать вышеизложенное по SPI без UART (передавать AT-команды и получать ответы по SPI)?

Для этого нужно иметь описание SPI регистров WROOM-02 - у кого нибудь есть такое описание?

Кто нибудь такое делал?

Заранее благодарен, Алексей...
 

CodeNameHawk

Moderator
Команда форума
В описании WROOM-02 упоминается интерфейс SPI, якобы с его помощью можно подключить WROOM-02 к MCU.
АТ прошивка вряд ли умеет работать с SPI.
Вашу задачу можно решить написав скетч в ардуиноиде, отказавшись от АТ команд.
Возможно хватит скорости 9600, так сами веб страницы будут в есп, а их вызов будет через уарт, а к SPI подключите дополнительные датчики.
Если задача совсем простая то MCU не нужен.
 

Alex Zas

New member
В таком случае скетч должен реализовать упрощённую файловую систему во flash памяти модуля с возможностью чтения/записи файлов по UART от MCU. Также скетч должен во время работы Web-интерфейса налету по UART запрашивать от MCU большое количество параметров и подставлять эти данные в выводимые страницы HTM.
Есть ли готовые скетчи с подобным функционалом?
Может ли скетч осуществлять запись в свою flash память и какой объём памяти доступен в WROOM-02?
 

CodeNameHawk

Moderator
Команда форума
В таком случае скетч должен реализовать упрощённую файловую систему во flash памяти модуля с возможностью чтения/записи файлов по UART от MCU.
Для чего их читать по UART? Записать изменить их можете через веб.
Также скетч должен во время работы Web-интерфейса налету по UART запрашивать от MCU большое количество параметров и подставлять эти данные в выводимые страницы HTM.
Без проблем.
Есть ли готовые скетчи с подобным функционалом?
Есть, смотрите примеры в студио, есть видео от Сергея Третьякова.
ESP8266 Arduino IDE - Третьяков Сергей
Может ли скетч осуществлять запись в свою flash память и какой объём памяти доступен в WROOM-02?
Может, но ресурс перезаписи ограничен.
В примерах найдете определение доступной памяти.
 

Alex Zas

New member
Для чего их читать по UART? Записать изменить их можете через веб.

Моё устройство находится далеко, в составе устройства есть GSM-модуль, память micro-SD, модуль навигации и ещё много оборудования, по RS-485 и т.д. Изменение контента Web-интерфейса происходит по TCP в сеансе соединения с сервером. Web-интерфейсом пользуется обслуживающий персонал, который не уполномочен вносить изменения в контент.
 

CodeNameHawk

Moderator
Команда форума
Alex Zas написал(а):
Изменение контента Web-интерфейса происходит по TCP в сеансе соединения с сервером.
Я не против, когда надо меняйте.

Всё работает, но для работы с WROOM-02 приходится использовать аппаратный UART, который в моём MCU один и используется для другой задачи. Приходится переключать аппаратный UART между двумя задачами, что неудобно и вызывает паразитные задержки.
Решение в лоб, добавьте промежуточный проц с несколькими аппаратными уартами или вторую есп, иначе ограничение скорости из за софтового уарта.
Другого решения не предложить, не зная использованного железа и возможности его модификации.
 

Alex Zas

New member
Моё устройство, в котором Web-интерфейс реализован через UART, выпускается небольшими партиями. Всё работает, но из-за совместного использования UART MCU для работы с GSM-модулем и WROOM-02 при одновременно установленном CSD/TCP соединении и работе Web-интерфейса в обоих задачах происходят замедления. Не говоря о сложности программной реализации такого переключения.
Сейчас проектирую аналогичное устройство тоже с Web-интерфейсом - хотелось бы подправить косяки, освободить UART MCU от работы с WROOM-02. Тем более что в MCU есть свободный SPI.
Для меня идеально было бы прошить в WROOM-02 скетч, который реализовал бы AT-команды по SPI.
 
Сверху Снизу