• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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С к двум МГц.
 
Сверху Снизу