Spi h esp32: arduino-esp32/esp32-hal-spi.h at master · espressif/arduino-esp32 · GitHub
|Содержание
Создание анализатора SPI для ESP32 | Подробности
Как вы могли прочитать в последнем сообщении журнала, если вы следите за этим проектом, я медленно кодирую новый компонент IDF, который будет действовать как драйвер электронной бумаги.
И в этом процессе я занимаюсь реинжинирингом GxEPD, библиотеки, которую мы фактически используем в прошивке CALE.
Фактическая ветка:
https://github.com/martinberlin/cale-idf/tree/refactor/oop
Поскольку я рефакторинг части ООП. При этом я обнаружил, что даже при отправке тех же команд и данных SPI, что и GxEPD, некоторые модели отказываются работать. Мой отец придумал отличную идею:
Если у вас есть смелость перепроектировать существующую библиотеку, сделайте это хорошо!
Добавьте сниффер ESP32 SPI Slave и проверьте, что именно получает дисплей Epaper.
Итак, я приложил свои руки к работе:
Это в основном настройка, один помечен как Ein — это подчиненный SPI, а другой ESP32 — ведущий. Теперь это будет не так просто, как найти существующий работающий код и изменить его под свои нужды. Впервые попробовал с собственным примером ведомого SPI Espressif в структуре IDF. По какой-то причине, в основном потому, что я все еще новичок в фреймворке, это не сработало. А затем нашел версию Arduino-framework, которая устарела и не скомпилировалась. Итак, я исправил это:
https://github.com/martinberlin/esp32-spi-slave
Теперь сделать подчиненный SPI с чипом на базе процессора — задача не для слабонервных. Не является собственным ведомым устройством SPI и, согласно документации Espressif
, периферийные устройства ESP32 SPI slave разработаны как устройства общего назначения.
управляется центральным процессором. В отличие от выделенных ведомых устройств, SPI на базе ЦП
Устройства имеют ограниченное количество предопределенных регистров. Все транзакции
должен обрабатываться ЦП, что означает, что передачи и
ответы не в режиме реального времени, и может быть заметная задержка.
Так и есть! Кроме того, если вы хотите сделать это в режиме реального времени и вывести результаты через последовательный порт, вы будете ограничены скоростью UART, поэтому идея заключалась в том, чтобы сделать UART высоким, например, 500000 вместо 115200 по умолчанию, а также понизить скорость SPI. мастер.
Он работает, но все еще теряет 1 или 2 байта каждые 44, что все равно нехорошо. В пути обнаружил некоторые странности, вроде 0x78 байт, который не отправляется мастером (иначе epapers работать не будет) а также непростая задача определения что такое CMD ( в GxEPD команда ставит дополнительно DC — data command GPIO низкий для отправки и высокий после отправки) DATA устанавливает низкий/высокий только вывод SS (CMD переключает оба SS и DC для отправки)
Сделать это в режиме реального времени непросто. Кроме того, я получил дешевый логический анализатор, который поможет мне выяснить, почему некоторые из моих электронных документов не будут обновляться с моим собственным классом.
Если вас это интересует, проверьте репозиторий CALE-IDF, который начинает формироваться, и вскоре будет компонент, драйвер электронной бумаги CalEPD, отсоединенный и помещенный в собственный репозиторий, чтобы другие люди могли его использовать.
Добро пожаловать в WLED — проект WLED
Быстрая и многофункциональная реализация веб-сервера ESP8266/ESP32 для управления светодиодами NeoPixel (WS2812B, WS2811, SK6812) или наборами микросхем на основе SPI, такими как WS2801 и APA102!
⚙️ Особенности
- Встроенная библиотека WS2812FX для более чем 100 спецэффектов
- Шумовые эффекты FastLED и 50 палитр
- Современный пользовательский интерфейс с элементами управления цветом, эффектами и сегментами
- Сегменты для установки различных эффектов и цветов для частей светодиодов
- Страница настроек — конфигурация по сети
- Режим точки доступа и станции — автоматическая отказоустойчивая точка доступа
- До 3 светодиодных выходов на экземпляр ESP8266 и 10 светодиодных выходов на экземпляр ESP32
- Поддержка полос RGBW
- До 250 пользовательских пресетов для простого сохранения и загрузки цветов/эффектов, поддержка циклического переключения между ними.
- Предустановки можно использовать для автоматического выполнения вызовов API
- Функция ночного освещения (постепенное уменьшение яркости)
- Полное обновление программного обеспечения OTA (HTTP + ArduinoOTA), защита паролем
- Настраиваемые аналоговые часы + поддержка комплекта Cronixie от Diamex
- Настраиваемый предел автоматической яркости для более безопасной работы
- Конфигурация на основе файловой системы для упрощения резервного копирования пресетов и настроек
- Интеграция с собственным домашним помощником:
💡 Поддерживаемые интерфейсы управления освещением
- Приложение WLED для Android и iOS
- API запросов JSON и HTTP
- MQTT
- Блинк Интернет вещей
- E1.31, Art-Net, DDP и TPM2.net
- Гиперион
- UDP в реальном времени
- Голосовое управление Alexa (включая затемнение и цвет)
- Синхронизация с лампами Philips Hue
- Adalight (подсветка ПК через последовательный порт) и TPM2
- Цвет синхронизации нескольких устройств WLED (уведомитель UDP)
- Инфракрасные пульты (24 клавиши RGB, требуется приемник)
- Простые таймеры/расписания (поддерживается время по NTP, часовые пояса/летнее время)
📲 Краткое руководство и документация
См. начальную страницу!
На этой странице вы найдете отличные учебные пособия, созданные сообществом, и полезные инструменты, которые помогут вам настроить и запустить новую лампу!
🖼️ Пользовательский интерфейс
💾 Совместимое оборудование
Смотрите здесь!
✌️ Другое
Под лицензией MIT
Кредиты здесь!
Присоединяйтесь к серверу Discord, чтобы обсудить все о WLED!
Посетите форум WLED Discourse!
Вы также можете отправлять мне письма на адрес [email protected], но делайте это только в том случае, если хотите поговорить со мной наедине.
Если WLED действительно скрашивает каждый день, вы можете
Отказ от ответственности
Если вы чувствительны к светочувствительной эпилепсии, не рекомендуется использовать это программное обеспечение.
Если вы все еще хотите попробовать, не используйте режимы стробоскопа, освещения или шума или настройки высокой скорости эффекта.