O estado das portas de entrada e saída de propósito geral 0, 2 e 15 do ESP8266 determina como vai ser o boot:
GPIO15 | GPIO0 | GPIO2 | Modo | Descrição |
---|---|---|---|---|
L | L | H | UART | Programação via porta serial UART0 |
L | H | H | Flash | Boot pela flash SPI (a flash que vem no módulo) |
H | x | x | SDIO | Boot por cartão SD |
Segundo o que é relatado aqui, essas três GPIO já contam com pull-ups fracos internamente, então você pode deixar ou flutuando se quiser que o estado seja alto ou usar pull-downs.
Para usar essas três GPIO no seu projeto é preciso planejar cuidadosamente. Por exemplo, você pode até ter três botões nessas portas, desde que você faça o pull-up/pull-down necessário e que o botão em GPIO15 ao ser pressionado mande um sinal de nível alto (3.3V) e os outros dois mandem GND. E que você tenha uma razoável certeza de que ninguém vai estar pressionando os botões na inicialização.
Também tenha em mente que GPIO2 opera como UART1 TX durante a gravação da flash. Se você colocar um LED ali vai vê-lo piscar durante a gravação. E segundo o que é reportado aqui, algo similar ocorre com GPIO0. Isso significa que não é boa idéia ligar esses GPIO diretamente a VCC ou GND. Sempre use resistores. Aliás, como regra geral nunca ligue qualquer GPIO, de qualquer dispositivo, diretamente a +VCC ou GND.
Se você já tentou usar os médulos ESP-01 e ESP-03 pode ter ficado confuso com o fato de que de que o processo de boot/programação nos módulos parece diferente. Na verdade o processo é o mesmo mas no ESP-01 GPIO15 já fica permanentemente ligado a GND e para completar o ESP-01 tem o sinal RST disponível enquanto o ESP-03 não tem. Os tutoriais do ESP-01 fazem parecer que o RST é necessário para a programação, mas não é. O que importa é o estado desses três GPIO durante o boot e a função do RST é apenas provocar o boot. Você pode conseguir o mesmo efeito desligando e ligando a alimentação do módulo.
Leave a Comment