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

i2c или SPI

doleynikov

New member
Добрый день!
Подскажите, был ли у кого-то успешный опыт подключения дисплеев к ESP8266 (ESP-01)?

как я понял, можно подключить i2c символьные дисплеи 16*2 через адаптер. Там вроде портированная Wire библиотека. Просто пишеш Wire.begin(SDA_PIN,CLK_PIN) (вроде как 0 и 2 для моего модуля) и должно работать.
А вот дисплей от Нокии 3310 можно так завести? там вроде поддерживается SPI интерфейс?

Хочется еще клавиатуру прицепить - получится классный wifi терминальчик без ардуино. Там в esp8266 ресурсов как в 10 ардуинах! зачем увеличивать размеры устройства, когда можно сделать все просто?
 

aloika

Active member
Лучше используйте дисплей от Nokia 1202.
+ легко паять (ну ладно, скажем так: есть возможность запаять, шаг там 0,6 мм)
+ разрешение выше, чем от 3310
+ встроенная подсветка
+ одно напряжение питания
+ цена около 80 руб
+ есть готовые библиотеки для AVR, можно легко переделать для ESP8266
 

doleynikov

New member
Вот из-за малого количества GPIO я и спросил про i2c и SPI. Я видел упоминания, что на ESP-01 должен работать SPI. Но как - не знаю.
 

doleynikov

New member
хотя, наверное можно просто взять старшую версию ESP и не париться. Цена вопроса примерно 130 рублей на сегодняшний день.
Но все равно интересно.

PS: Кстати, вот тут https://www.reboot.ms/forum/threads/aggiungere-6-gpio-a-esp-01-per-un-totale-di-10.396/
инфа, что люди успешно допаивают пины ;-)
и еще, номера пинов для Rx-Tx. То есть, в устройстве можно использовать 4 пина.
GPIO0 - 1 - 2 - 3.

То есть, мне хватает. 2 на i2c и 2 на ps/2 клавиатуру. Теперь i2c экранчик купить побольше ;-)
 
Последнее редактирование:

nikolz

Well-known member
прикольно,
но на ESP8266 даже на СИ протокол I2C можно сделать аж до 4 Мгц.
MCP_4725 работает на I2C на 1.2 Мгц
 

pvvx

Активный участник сообщества
а где почитать про это? ардуино esp8266 может только 800КГц.
Как и сколько может GPIO было описано в январе 2015 года. Ещё не успели прочитать?
Минимальный импульс с GPIO при CPU 80MHz по IRQ от таймера - 5..7 мкс.
Если убрать "memw" то: При 160 и 80 MHz CPU I/O строб = 75ns (такая вот шина или что-там в I/O)
Про никчемный "memw" (для тормоза) вставленный в любой прошивке сотни раз где-то ещё было описано (где-то по теме увеличения скорости чтения регистров SPI), но забыл - уж много лет прошло... '''а воз и ныне там''' у ESP "фанатов"...

И пример в стороннем источнике:
esp8266-gpio-output-performance: generate pulses with a period time of 150ns (12 cycles, HIGH: ~52ns, LOW: ~98ns)
 

pvvx

Активный участник сообщества
И про оптимизацию для компилятора - для ускорения кода требуется использовать смещение в адресе, а не подгрузку в регистр каждый раз (фича компилятора к данному CPU - не умеет оптимизировать) ... Шина у ESP8266 имеет FIFO и не стоит её перегружать - такты увеличатся.
"memw" желательно поставить только перед чтением регистров - шина затормозит пока отработает всё из FIFO. В других случаях он бесполезен - только тормозит исполнение кода.
И как итог - ESP8266 генерирует "ногодрыгом" меандр в 6МГц. Если добавить чтение I/O и ещё пару выводов по шине в контроллер I/O (шевелить то надо 2 ногами в I2C), то получим I2С к двум МГц.
 
Сверху Снизу