Se me permitem vou contar uma "breve" história para descrever meu problema !

Comecei a brincar com Arduino Uno e logo depois parti para o NodeMCU. 
Gostei muito do NodeMcu pela praticidade de ja possuir o conversor USB e os pinos se encaixarem na protoboard e a facilidade do Wifi.
Pois bem, fiz um pequeno projeto para mostrar a temperatura da água do boiler do aquecedor solar e deixei rodando na protoboard por várias semanas, até que decidi que ia fazer uma PCB e trocar o NodeMCU pelo modulo ESP8266-ESP12 (apenas o módulo para deixar a placa menor possivel.
Comprei um Conversor Usb Serial Ft232rl Ftdi e alguns módulos ESP-12F e um ESP-07 (por causa do conector da antena externa), para testes. Achei que seria muito simples e fácil enviar o programa da IDE do Arduino para o modulo ESP8266 mas, na prática apanhei muito. Fiz os circuitos com os botoes de Reset e Flash e liguei o FTDI. ( http://www.instructables.com/id/ESP-12F-ESP8266-Module-Minimal-Brea...), cheguei a deixar a GPIO0 ligada no GND enquanto enviava o programa também.
Usando o ESP12-F, pela IDE do Arduino (V. 1.8.2) selecionei a placa como "Generic ESP8266 module" e quando enviava o Blink para teste os leds piscavam e na IDE acusava a transferência até 100%, mas depois o Blink não funcionava. Inclui a linha : #define LED_BUILTIN 2 no inicio do programa também. Tentei também usando o ESP-07 e acontecia a mesma coisa , as vezes não carregava 100% e dava os seguintes erros :

"................................................................................ [ 35% ]
....warning: espcomm_send_command: didn't receive command response
warning: espcomm_send_command(FLASH_DOWNLOAD_DATA) failed
warning: espcomm_send_command: wrong direction/command: 0x01 0x03, expected 0x01 0x04
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed"

Fiquei muito decepcionado pois pensei que seria prático e rápido mas estou a quase uma semana , desmontando e montando vários circuitos para enviar os programas pelo FTDI que achei pela internet e sempre o mesmo problema. Pesquisei o erro mas nada consegui fazer para enviar o sketch Blink para teste pelo menos.

Cheguei até instalar o IDE Arduino em outro computador para teste, mas os erros foram os mesmos.

Pra eu ficar mais confuso, apenas uma unica vez consegui enviar o Blink e que funcionou, mas logo após desligar a alimentação e tentar enviar novamente sem mexer no circuito não funcionou mais.

Será que é alguma incompatibilidade com o Conversor Usb Serial Ft232rl Ftdi ?

É preciso "flashear" o modulo (usando o ESP Flash download Tool) ? (pelo que li quando envia um sketch da IDE do Arduino ele substitui a programação do modulo todo)

Vocês usam qual FTDI para esse fim ? 

Estou cometendo algum erro ou ignorando algo ?

Já passaram por isso ou tem alguma dica pra me dar ?

Um abraço a todos.

Exibições: 2458

Responder esta

Respostas a este tópico

Olá Alessandro

Você está colocando o ESP em modo de gravação?

Isso é importante, caso contrário você não vai conseguir gravar seu código .

  1. Segure o RESET e o Botão FLASH, ao mesmo tempo;
  2. Solte o RESET
  3. E depois solte o botão FLASH;
  4. A partir de agora é possivel enviar seu código.

Verifique a alimentação, use um regulador de 3,3V que forneça pelo menos 300mA.

Não use a saida de 3,3V do FTDI.

Pois é meu amigo...

Sim, estou colocando em modo de programação, do jeito que você descreveu e também tentei deixando a GPIO0 ligada ao GND durante todo o envio da programação. Inclusive testei colocando o GPIO0 em VCC, após o envio da programação, para forçar entrar em modo de execução.

O código é enviado até 100% mas a impressão é que não carregou pois não funciona, no caso o blink, fiz esse teste em dois módulos ESP12 e ESP07. 

Na alimentação não uso a saída do FTDI, estou alimentando com uma fonte de 9V ligada numa fonte para protoboard baseada no regulador  AMS1117 3,3V.

Não vejo muita lógica no que está acontecendo, comprei um outro FTDI baseado em outra tecnologia (Conversor USB TTL CP2102 Serial RS232) mas ainda não chegou, pois estou desconfiado que pode ser algum problema no FTDI que estou usando (Conversor Usb Serial Ft232rl).

Mas obrigado pela ajuda.

Olá,

Dificilmente exista incompatibilidade entre os conversores, já que o protocolo usados e a pinagem é padrão, RX no TX e TX no RX, GND no GND e o FTDI deve ser alimentado por geralmente possui uma chave switch para escolher a tensão e operação, no caso selecionamos a 3,3V.

Anexo um esquema de um ESP8266-12 E este tem o seu LED zul da placa ligados de maneira invertida, ou seja, acende com LOW, desliga com HIGH.

Anexo código via de duvidas para copiar e testar, uma boa seria também usar um LED em outro GPIO e programar de acordo a saída escolhida limitando a corrente com uma R de 220 ohms.

Se o programa carregou sem erro, 100% deveria acender e e apagar o LED e no monitor serial ver as mensagens do código anexo.

Note que o ESP8266 07 não possui  LED da placa no GPIO 2.

Abs.

Boa sorte.

CK

Anexos

Ola meu amigo. 

Li em algum lugar que alguns conversores estavam dando este tipo de problema, por isso encomendei outro com chip diferente para testar.

Eu chaveei o conversor para 3,3v mas mesmo assim alimento o ESP8266 por uma fonte independente por causa da corrente necessária.

Cheguei a inserir as linhas de Serial.printl("Ativado") para ver se foi acionado também.

Independente de tudo vou ligar um led em outra porta para testar como você indicou e também monitorar a corrente e voltagem da minha fonte de protoboard para ver se está tudo ok mesmo.

Vou desligar tudo e recomeçar do zero para ter certeza de todas ligações , apesar de ter conferido 1000 vezes.

Também vou ver se existe algum driver mais recente do conversor para windows.

Vou usar seu esquema para remontar e posto aqui os resultados.

Muito obrigado pela atenção e ajuda.

Bom dia Alessandro, 

Se seu conversor USB Serial usa níveis de tensão de 5V, você tem que adaptar para 3,3V !

Senão não irá funcionar. Informe qual conversor USB Serial estava usando (links, fotos,etc) .

Envie fotos  da suas montagens !

ESP8266 - Conexão USB Serial: (esse conversor usa 3,3V) 
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

ESP8266 - Interface Serial 5V - testado e aprovado OK :
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

Se ainda não gravou nada no ESP8266, sugiro que faça o teste de comandos AT primeiramente. 

ESP8266 12E - Conexão USB Serial
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

ESP8266 - Programas Terminal TERMITE e CoolTerm:
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

http://labdegaragem.com/forum/topics/conhecendo-o-esp8266

Boa tarde Murta e a todos do labdegaragem.

Depois das festas voltando ao trabalho...

O conversou que usei foi um FTDI como no foto , chaveado em 3,3v.

Hoje chegou meu outro Conversor USB TTL CP2102 Serial RS232 

Nos dois casos usei apenas RX, TX e GND.

Consegui enviar com sucesso apenas duas vezes o sketch Blink para o ESP8266 esp12 , sendo que uma vez enviei e sem alterar nada , tentei reenviar e não obtive sucesso. 

Estou usando Arduino IDE versão 1.8.2, e tentei enviar de outro notebook também.

Segue foto do protoboard (ignore a parte do display até o fio vermelho que atravessa o protoboard, faz parte do projeto que uso o Nodemcu. )

Usei fonte para protoboard 3,3v e para tirar a duvida alimetei com a saida 3,3v de um arduino Uno.

O problema é inconsistente, as vezes carrega 100% mas não executa o Blink, as vezes carrega uma parte e dá erro, as vezes não carrega nada. 

Pino 1 RST > GND

Pino 3 CHPD > VCC ( testei com e sem resistor 10K )

Pino 8 VCC > 3,3V

Pino 15 GND > GND

Pino 16 GPIO15 > GND  ( testei com e sem resistor 10K )

Pino 17 GPIO02 > 3,3V ( testei com e sem resistor 10K )

Pino 21 RX > TX do Conversor

Pino 22 TX > RX do Conversor

Obs.: Coloquei um eletrolitico de 1000uF x 25 v em parelo com a entrada 3,3 e GND.

Já estou a ponto de voltar atrás e usar o Nodemcu no lugar de só o modulo ESP12f.

Agora a última alternativa seria algum tipo de mal contato na protoboard ?

Testei com 2 modulos diferentes de ESP12f e um de ESP07.

Será que estou com muito azar ? Ou tem algum detalhe nas configurações da IDE (Flash Mode, Flash frequency, CPU Frequency, Flash size, etc), que eu não me atentei ou esta versão de IDE não é compatível  ?

Quase dando martelada nos módulos ESP rssss. (rindo pra não chorar...) 

Boa tarde , 

Pino 1 RST > GND  (ERRADO)

Pino 3 CHPD > VCC ( testei com e sem resistor 10K )

Pino 8 VCC > 3,3V

Pino 15 GND > GND

Pino 16 GPIO15 > GND  ( testei com e sem resistor 10K ) 

Pino 17 GPIO02 > 3,3V ( testei com e sem resistor 10K )

FALTOU O GPIO_0 !!!

Pino 21 RX > TX do Conversor

Pino 22 TX > RX do Conversor

Monte como no diagrama:

O pino RST (reset) deve ser mantido no nível 1. Para resetar o chip conecte-o ao terra, usando o botão. 

Para uso normal do ESP8266 : 

IO_15 - mantenha no nível 0 ( conectado ao terra).

IO_0   - mantenha no nível 1 ( resistor de 10K conectado ao +3,3V). 

IO_2   - mantenha no nível 1 ( resistor de 10K conectado ao +3,3V). 

Para download de firmware do ESP8266:

IO_15 - mantenha no nível 0 ( conectado ao terra).

IO_0   - mantenha no nível 0 ( conectado ao terra).

IO_2   - mantenha no nível 1 ( resistor de 10K conectado ao +3,3V). 

Olá José Gustavo.

Só uma pequena observação no seu circuito, está faltando indicar a o local de conexão da linha de 3V3, pode não ficar claro para as pessoas.

Boa tarde Flávio, 

A alimentação 3,3V deve ser feita por uma fonte externa, conforme informado no tutorial. 

ESP8266 - alimentação no Protoboard :
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço