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

LOLIN*WEMIS) D1 R2 & mini проблема с шиной SPI.

В общем вроде работает, но прошивать можно только отключив внешнее питание. Т.е. спасибо в итоге, преобразователь уровней проблему решил.
Но возник новый
 
новый вопрос. Свободными на ESP у меня остались только RX(GPIO3) и TX(GPIO1). Опытным путем выяснилось, что при появлении питания от 220В, система работать продолжает, но экран не загорается. Загорается он только при перезагрузке через WEB-морду. Так вот можно ли эти RX или TX задействовать, чтобы контролировать наличие питания в 5В от БП, работающего от 220В? Вообще их как-то можно задействовать. Например один выход у меня под светодиод на датчике движения задействован. Может этот светодиод можно переключить на RX или TX. Если кто ответит спасибо. Сейчас конечно сам буду читать про эти выходы.
 
Ну вроде разобрался. Это интерфейс UART. И я так понимаю, что задействовать то их можно. Но не помешает ли это если надо будет перепрошить модуль? Если рассуждать логически, то вроде не должно. Не даром там кроме RX и TX еще и GPIO обозначены.
 
Блин! Новая напасть. У меня там есть датчик движения на BISS0001. Схема проверенная, содранная в свое время с HC-SR50. Собственно отключил сейчас выход датчика от ESP, все работает. И датчик работает. А вот стоит его повесить на ESP, как все работать перестает и при прошивке выдает:
esptool.py v2.8
Serial port COM12
Connecting........_____....._____....._____....._____....._____....._____.....____Traceback (most recent call last):
File "C:\Users\dimon\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4/tools/upload.py", line 65, in <module>
esptool.main(cmdline)
File "C:/Users/dimon/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/esptool\esptool.py", line 2890, in main
esp.connect(args.before)
File "C:/Users/dimon/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/esptool\esptool.py", line 483, in connect
raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
Я уже его через преобразователь уровней попытался прицеписть. Такая же фигня. Он у меня на D4(GPIO2) зацеплен. Сейчас поищу, вдруг этот выход как задействован.
 
Я читал. Это подтягивающий резистор. И я так понял, что GPIO0 и 2 подтянуты к плюсу, а 15 к земле. Я не понимаю, что надо сделать мне. GPIO0 и 15 у меня задействованы. 15 - CS SPI для дисплея, а 0 для SD карты. Они работают. А что мне сделать с GPIO2? Датчик движения работает как положено. Я на выход его прицепил светодиод. Но вот как я этот выход цепляю на GPIO2, при чем кода еще никакого нет и даже сам GPIO2 в скетче еще не прописан, сразу компьютер перестает подключаться к ESP при прошивке, хотя порт занимает.
 
Вот оно че! :)
Но судя по этому, если я его подключаю к датчику движения, но при этом новую прошивку не заливаю, старая должна работать после того, как я припаяю вывод. Но она не работает. Я ведь и прошивать сразу пытался потому, что после подключения и включения питания моё устройство не запускалось. Если же при этом подключить к компу и открыть порт, то там одной строкой льется какая-то лабуда из иероглифов и крокозябров.
Я конечно попробую сейчас еще раз. Может даже через какой-нибудь переключатель подключу его.
 
Да, поставил переключатель. При подключенном к GPIO2 выходе датчика движения не запускается ни в какую.
 
Я включал и через преобразователь уворня и напрямую. Плюс у меня есть (я писал ранее) уже готовое устройство, которое работает у меня уже около года. Там в принципе все то же самое. Только там NUDEMCU. а здесь Lolin WEMOS D1&R1 mini. И дисплей там состоял из 4 гибких светодиодных адресных матриц 16х16, а здесь матрицы не адресные 8х8 и их 16 штук. Соответственно там дисплей по I2C подключался и SD карты не было, все пишется во внутреннюю память.
Питание еще раз везде замерил. При подключении через преобразователь, единица равна 3,6 вольтам на выходе дадчика движения, точнее на входе GPIO2.
 
На выходе ДД стоит резистор 1кОм. Может побольше поставить? Как думаете не поможет?
 

CodeNameHawk

Moderator
Команда форума
Как думаете не поможет?
Думаю, что вы не хотите думать или читать.
Только там NUDEMCU. а здесь Lolin WEMOS
А гляньте их схемы и объясните чем они отличаются.
При подключении через преобразователь, единица равна 3,6 вольтам на выходе дадчика движения, точнее на входе GPIO2.
Это плохо, напряжение на выводе не должно быть выше уровня напряжения питания есп.
Но проблема не в этом.
Напишите какие уровни должны быть на выводах GPIO 0 и на GPIO2, для того что бы микросхема есп загрузилась и какие уровни, что бы она вошла в режим программирования.
 
Вот скажу честно, никогда об этом не задумывался, собственно потому, что никогда такой нужды не было. Сейчас буду читать/искать. Но сразу возникает вопрос: а как же задавать нужный уровень на GPIO2, если на ДД при старте он всегда высокий? Я так подозреваю, что там должен быть низкий. И ведь программно это не задашь, т.к. не дает программировать. Или лучше на другой вывод прицепить ДД? Я вроде цоколевку смотрел, там вот так написано:
  • TX;
  • RX;
  • GND земля;
  • 5В;
  • 3v3;
  • RST – reset, кнопка сброса;
  • D0 – D8 –порты общего назначения GPIO. Все пины, кроме D0, поддерживают прерывание, ШИМ, I2C.
Вот я и думал, что на все D можно спокойно цепляться.
 
Блин, не нахожу, где бы было расписано состояние ног LOLIN WEMOS D1&R1 mini. Да и других ESP. Назначение ног много где расписано, но вот этого! Не нахожу.
 

esp340

Active member
Блин, не нахожу, где бы было расписано состояние ног LOLIN WEMOS D1&R1 mini. Да и других ESP. Назначение ног много где расписано, но вот этого! Не нахожу.
Блин, не находите потому что не то ищете. LOLIN, WEMOS, D1&R1 mini и прочие ХреньMCU - это всего лишь маркетинговые названия, "торговые марки", в основе которых в 99,999999999999% используется обычный ESP8266. И уже каждый китаец как хочет так и дрочразводит печатные платы и штампует им названия. Смотрите здесь.
 
Блин, не находите потому что не то ищете. LOLIN, WEMOS, D1&R1 mini и прочие ХреньMCU - это всего лишь маркетинговые названия, "торговые марки", в основе которых в 99,999999999999% используется обычный ESP8266. И уже каждый китаец как хочет так и дрочразводит печатные платы и штампует им названия. Смотрите здесь.
Спасибо! Большое человеческое спасибо! А то бы реально пол дня искал!
И получается то, что я снова ничего не понял! :) Вот что там написано:
На первый взгляд на этих схемах кажется, что GPIO0, GPIO2, GPIO15, GPIO1 (TX), GPIO3 (RX) заняты и вы не можете их использовать для своих целей, но это не так. Высокий уровень на GPIO0 и GPIO2, низкий на GPIO15 требуются только для старта модуля, а в последующем вы можете использовать их по своему усмотрению, только не забудьте обеспечить требуемые уровни до перезагрузки модуля.
Получается, что на GPIO2 должен быть высокий уровень. Это я правильно понимаю обеспечивается подтягивающим резистором. Т.е. на вот этой моей плате, по идее, он должен стоять. Иначе бы не прошивалась плата? Но когда я подключаю датчик движения, там высокий уровень. А чтобы не работало должен быть НОЛЬ. Я сразу скажу, электронику учил я уже лет 30 назад и более с ней не связывался, пока не увлекся Ардуиноманией. Поэтому туговат я в этом деле. Но все равно мне кажется, что на GPIO2 высокий уровень идет с датчика движения.
А если задействовать RX
Можно использовать и TX, RX как GPIO1 и GPIO3 соответственно, не забывая о том, что при старте модуля любая прошивка будет дергать TX, отправляя отладочную информацию в UART0 на скорости 74480, но после успешной загрузки вы можете использовать их не только как UART0 для обмена данными с другим устройством, но и как обычные GPIO.
Может попробовать?
 
Сверху Снизу