ESP8266: Безопасно ли использовать контакт 0?
Этот (возможно глупый) вопрос беспокоит меня уже давно...
Если пин 0 должен быть подключен к земле для загрузки скетча в ESP8266, и после загрузки чип автоматически запускает загруженный скетч (не дожидаясь перезагрузки с отключением пина 0), то не уничтожит ли это чип, если я сделаю digitalWrite(0, HIGH) в своем скетче? Поправьте меня, если я ошибаюсь, но он должен закоротить 3,3 В напрямую на землю через этот пин... Эта проблема как-то защищена? Или, может быть, этот пин можно безопасно использовать только для чтения?
Редактировать:
Я видел, что он подключен к земле напрямую на каждой схеме ESP8266, но, может быть, мне просто следует использовать подтягивающий резистор? Или, может быть, у чипа уже есть резистор перед этим выводом, чтобы решить эту проблему?
@P.W., 👍3
3 ответа
Лучший ответ:
Вы можете абсолютно точно использовать GPIO0 в качестве выхода. ESP будет считывать состояние GPIO0 один раз при загрузке (и никогда больше после этого), чтобы определить, в какой режим загрузки войти. В это время он является входом, поэтому, что бы вы ни подключили к GPIO0, не должно удерживать этот вывод на низком уровне (если вы, конечно, не хотите войти в режим загрузчика), по крайней мере, пока чип не загрузится. Пока вы удовлетворяете этому условию, вы можете использовать вывод для чего угодно еще. Например, на моей плате я использую его для управления простым светодиодом состояния и никогда не видел никаких проблем с этим.
Что вы считаете контактом 0? Если посмотреть на схему, то это может быть либо GND, VCC, RX или TX pin. Или вы имеете в виду GPIO0?
При подключении GPIO0 к GND и в сочетании с RST к GND ESP перейдет в режим программирования. Хорошей практикой является наличие отдельной платы программирования, что-то вроде Вот эта. Перейдите в раздел "Написание программы для ESP8266" и ознакомьтесь со схемой. Регулятор напряжения можно не использовать, если вы уже питаете его напряжением 3,3 В.
Можно утверждать, что GPIO0 безопасно использовать в качестве выхода, но я бросаю вызов любому, кто покажет, что он действительно это сделал. При настройке GPIO0 в качестве выхода я получаю только колебания (около 70 кГц), загруженные или открытые, когда подаю на этот пин НИЗКИЙ уровень. Даже GPIO15 работает без проблем при использовании в качестве выхода. Было протестировано несколько новых модулей ESP8266-12F.
- NodeMCU - использовать кнопку flash в качестве входного сигнала в loop()
- Что произойдет с ардуино, если не использовать резистор со светодиодом?
- Какие входные контакты я могу использовать на ESP8266 NodeMCU
- ESP 12 непригодных контактов
- Какие контакты GPIO лучше всего использовать для моего проекта?
- digitalRead не читает входной контакт ESP8266-01
- Реле с активным низким уровнем и контакты ESP8266 GPIO
- Как использовать GPIO ESP-01 для ввода