ESP8266: O propósito especial de GPIO0, GPIO2 e GPIO15 (boot e programação).

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.

Tags:

Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *