Ir ao conteúdo
  • Cadastre-se

PIC PIC + ESP01 problema com tensão baixa


Posts recomendados

Bom dia pessoal.

 

Estou pedindo ajuda em um problema que está meio complicado de resolver.

 

Basicamente, tenho um esp01 interligado via serial com um pic.

O pic com um 32768khz conta um tempo preciso para ligar uma saida em tempos determinados previamente.

 O esp01 serve somente para acertar o relogio do pic e inserir os tempos em que a saida devera ser acionada.

 Apos configurar o pic (via celular) o esp01 entra em deepsleep, para  praticamente zerar o ser consumo, ficando só o pic contando o tempo.

 

Como o sistema é alimentado por 3 x AA (4,5v) ha um regulador LDK715M33R (3v3) para  o esp01, no pic vai direto das baterias.

Tenho capacitores de 100uf e 100nf proximo da alimentação do pic e do esp01.

 

Quando preciso altrar alguma configuração, devo desligar e ligar o sistema todo, para o wifi retornar ligado e é ai que o problema ocorre.

No caso o problema ocorre, somente quando as pilhas ja estão fracas, pois ao ligar, o esp01 "puxa" de 80 a 90mAh, deixando uma tensão muito baixa para o pic, o pic por sua vez, nao consegue "startar" e aciona as saidas aleatoriamente, fazendo a carga que está a saida ligar (obs a carga está em uma bateria 9v e é chaveada por um mosfet de nivel logico).

 

então quando as baterias enfraquecem, ao desligar e ligar, o pic enlouquece e ferra tudo.

 

Ja tentei algumas coisas via software, brownout reset , delays e nada, parece que quando isso ocorre, o programa nem passa pelo setup para dar tempo de configurar tudo, ela ja bug antes disso.

 

Ja tenho 100 pcbs montadas, porém nao previ o problema com bateria baixa.

 

ha algum recurso no pic (16F688) que eu possa usar para contornar isso, sera que o wdt inicia mesmo quando bug, pois ele ficaria causando reset, e nao deixaria ligar as saidas.

 

obrigado.

Link para o comentário
Compartilhar em outros sites

@rodrigocirilo ,

 

Esse Pic deve funcionar tranquilamente com até 2V de alimentação. O seu ESP01 deve estar puxando um pico alto de corrente quando liga, e esse pico deve estar fazendo seu Pic travar.

Uma ideia seria isolar a alimentação do Pic da bateria via um diodo de baixa queda de tensão, um schotky de até uns 100 mA, e colocar um eletrolítico de uns 470 uF em paralelo com o Pic além de um cerãmico de 100nF, assim ele segura a tensão durante essa queda momentânea devido à partida do Esp01, ok ?

Talvez tenha de ajustar o valor do capacitor eletrolitico.

 

Vou te contar o que aconteceu comigo, eu usava um Nodemcu, que é um ESP14, e quando ligava ele dava um baita pico de corrente na bateria, eu tive de fazer esse isolamento tanto no meu Attiny como também no Nodemcu, usando diodos schotky de 1A e baixa queda de tensão, no Nodemcu usei eletrolítico de 1000 uF, no Attiny usei 220 uF,  e resolveu todos os problemas de uma vez. Mas peguei isso ainda na fase do projeto, e já fiz a PCB com essas correções.

 

Paulo

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

1 hora atrás, aphawk disse:

@rodrigocirilo ,

 

Esse Pic deve funcionar tranquilamente com até 2V de alimentação. O seu ESP01 deve estar puxando um pico alto de corrente quando liga, e esse pico deve estar fazendo seu Pic travar.

Uma ideia seria isolar a alimentação do Pic da bateria via um diodo de baixa queda de tensão, um schotky de até uns 100 mA, e colocar um eletrolítico de uns 470 uF em paralelo com o Pic além de um cerãmico de 100nF, assim ele segura a tensão durante essa queda momentânea devido à partida do Esp01, ok ?

Talvez tenha de ajustar o valor do capacitor eletrolitico.

 

Vou te contar o que aconteceu comigo, eu usava um Nodemcu, que é um ESP14, e quando ligava ele dava um baita pico de corrente na bateria, eu tive de fazer esse isolamento tanto no meu Attiny como também no Nodemcu, usando diodos schotky de 1A e baixa queda de tensão, no Nodemcu usei eletrolítico de 1000 uF, no Attiny usei 220 uF,  e resolveu todos os problemas de uma vez. Mas peguei isso ainda na fase do projeto, e já fiz a PCB com essas correções.

 

Paulo

 

 

Ok, Paulo, imaginei mesmo que fosse o pico do esp01 causando isso.

como eu havia dito, a alimentação das pilhas vai direto para o pic ( 2v ~ 5v) então estara sempre dentro da faixa, e para o esp01 eu passo por um regulador 3v3.

Enquanto aguardava a ajuda de vocês, eu fiz um teste aqui, peguei a alimentação do pic, tambem do reg 3V3, e aparentemente o problema sumiu, penso que como a queda de tensão seja alta o pic nem consegue startar.

 

O que você sugeriu seria: O capacitor "cheio" seguraria a tensão para o pic startar, e essa tensão nao seria puxada pelo esp01 por causa do diodo, é isso? qual diodo sugere, pois acho que nao tenho nenhum diodo schotky  aqui.

1 hora atrás, vtrx disse:

Vou sugerir que teste duas coisas e poste o resultado.

A primeira que troque o capacitor de 100µ por um de 10µ(isso mesmo reduzir).e a outra é que experimente ativar no PIC o brownout.

vou abaixar o capacitor daqui a pouco para testar..há um fundamento nessa logica?

o bronwout ja esta ativo...

Link para o comentário
Compartilhar em outros sites

15 minutos atrás, rodrigocirilo disse:

O que você sugeriu seria: O capacitor "cheio" seguraria a tensão para o pic startar, e essa tensão nao seria puxada pelo esp01 por causa do diodo, é isso? qual diodo sugere, pois acho que nao tenho nenhum diodo schotky  aqui.

 

Sim , isso mesmo, capacitor cheio segura a tensão, e o diodo isola os dois circuitos ... bom se não tiver nenhum diodo schotky, use um 1N4148 para testar ele deve aguentar o pico do capacitor sem problemas, a queda é um pouco mais alta mas vai servir também.

 

Paulo

 

Link para o comentário
Compartilhar em outros sites

@aphawk Bem, eu acabei usando um 1n4007, procurei o 4148 e estou sem nenhum hehe, no entanto, assim funcionou, vou explicar como ficou.

 

peguei a alimentação do pic, no output do regulador de 3v3, levei para o pic através do diodo, no pic junto do vcc e gnd ja tinha um 100nf e um 100uf, então mantive o de 100uf mesmo por uma questão de espaço(visto o tamanho do 470 e 1000uf que tenho aqui)

 

agora, quando as pilhas estão boas, tudo funciona normal, como antes, mas quando coloco pilhas ruins cerca de 1,1v em cada, a tensão cai demais e o pic nem liga (acho que o brownout atua) e ele nao trava nem da pau nas saidas. então neste ponto deverá ocorrer a troca das pilhas.

 

Ainda está testando aqui, qualquer novidade eu retorno aqui.

 

@vtrxprocurei aqui e tambem estou sem nenhum cap de 10uF, vou providenciar junto com os 4148 e vou testar isso tambem, mas me diga, porque abaixar o valor do capacitor?

 

E obrigado pela ajuda dos colegas...

Link para o comentário
Compartilhar em outros sites

Citação

vou abaixar o capacitor daqui a pouco para testar..há um fundamento nessa logica?

Ainda não sei a razão,mas tenho um circuito que usa um PIC com USB e utiliza alimentação do PC(USB).

Com um capacitor paralelo na alimentação com valor acima de 22µ,ele não inicia a cada 10 conectadas.

Só solucionei com um capacitor de menor valor.

Outro detalhe é que com capacitor maior,quando faço a gravação utilizando ICSP,as vezes da erro.

Minha suposição,para o meu caso,é que o tempo de carga do capacitor é suficiente para o PIC não iniciar corretamente ou aleatoriamente.

Link para o comentário
Compartilhar em outros sites

4 minutos atrás, vtrx disse:

Ainda não sei a razão,mas tenho um circuito que usa um PIC com USB e utiliza alimentação do PC(USB).

Com um capacitor paralelo na alimentação com valor acima de 22µ,ele não inicia a cada 10 conectadas.

Só solucionei com um capacitor de menor valor.

Outro detalhe é que com capacitor maior,quando faço a gravação utilizando ICSP,as vezes da erro.

beleza, bom saber disso, assim que tiver com cap aqui eu vou testar sim..

Link para o comentário
Compartilhar em outros sites

12 minutos atrás, vtrx disse:

Com um capacitor paralelo na alimentação com valor acima de 22µ,ele não inicia a cada 10 conectadas.

Só solucionei com um capacitor de menor valor.

 

 

Tive um problema muito parecido quando deixava ligado o fuse do Brownout do AVR.... com capacitor de 100 uF ele não iniciava .....  aí foi só desligar o brownout e pronto nunca mais tive esse problema .... hoje prefiro deixar o watchdog ligado para resolver esses possíveis problemas kkkkk !

 

Paulo

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

O que te levou a não usar um relógio de verdade tipo aqueles módulos ds1302 que já vem até com bateria? Não precisa mencionar que ele é caro mas a ideia seria usar apenas o ds1302+bat incorporado no seu sistema.

 

7 horas atrás, rodrigocirilo disse:

O esp01 serve somente para acertar o relogio do pic e inserir os tempos em que a saida devera ser acionada.

 Apos configurar o pic (via celular) o esp01 entra em deepsleep, para  praticamente zerar o ser consumo, ficando só o pic contando o tempo

Sério que o esp precisava de ajuda pra isso?

 

Pra uma ajuda mais efetiva, considere publicar os desenhos/esquemas/etc... +1: 1.jpg>1k.txt 😁

Link para o comentário
Compartilhar em outros sites

1 minuto atrás, .if disse:

O que te levou a não usar um relógio de verdade tipo aqueles módulos ds1302 que já vem até com bateria? Não precisa mencionar que ele é caro mas a ideia seria usar apenas o ds1302+bat incorporado no seu sistema.

 

Sério que o esp precisava de ajuda pra isso?

 

Pra uma ajuda mais efetiva, considere publicar os desenhos/esquemas/etc... +1: 1.jpg>1k.txt 😁

Sei que o esp da conta tranquilo de fazer tudo, mas ele com o modem desligado consome na faixa de 15mAh, e isso é muito para o meu sistema que vai ficar muitos dias ligado e alimentado por pilhas e a melhor opção que encontrei foi usar um pic para contar o tempo e controlar tudo, pois consome somente 0.5mAh.

o esp foi usado, pois a configuração precisa ser feita via app (acertar o relogio, inserir tempos etc)

  • Confuso 1
Link para o comentário
Compartilhar em outros sites

Voltei aqui só para mais uma observação que pode ser útil a alguém.

Em relação ao que falei do capacitor e brownout,ontem montei duas placas e deixei os capacitores,na entrada de tensão,vazio pois não tinha de 10µ,e quando fui testar,as placa não iniciaram.

Demorei um tempo verificando soldas ou algo errado e não achei,então pensei se poderia ser algo na hora de gravar o firmware,vasculhei e não achei nada de errado.

Como sempre tenho uma placa funcionando para testes futuros,gravei o firmware nela e funcionou como esperado e então pensei,se o firmware esta ok e as duas placas que acabei de montar não rodam,o que é diferente então da placa matriz?

Foi então que pensei,não é possível que a falta de um capacitor na entrada de alimentação USB faria isso.

Em vez de desmontar mais uma placa (a de teste)para retirar o capacitor,recompilei o firmware mas desta vez com o brownout desabilitado e voltou a funcionar(iniciar)normalmente as duas placas.

Não sabia como é sensível esta configuração a ponto de um simples capacitor de 10µ ser necessário no circuito.

Eu pensei que ja tinha experimentado quase tudo nestas montagens...

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Sem capacitor a alimentação do mc fica suja e com pequenos picos invisíveis que faz cair do valor de brownout o que faz resetar. Mais suja ainda se vinda de usb. Algo como você não toma água direto da torneira e sim antes passa pelo filtro. E não te esqueças também de colocar 100nF que é algo como uma peneira mais fina. Há quem coloque vários valores até na casa dos pF. Cada um limpa sua faixa.

Capacitor de desacoplamento: condição sine qua non

 

59 minutos atrás, vtrx disse:

Eu pensei que ja tinha experimentado quase tudo nestas montagens...

off topic mas me fez lembrar... certa feita tive que pegar o terra de um ponto ligeiramente diferente pois estava causando erro num leitor de corrente. Pra variar, acabo de comentar algo que também conectou...

Espero que o amigo autor fique experto com os capacitores e pontos de terra 😁

Link para o comentário
Compartilhar em outros sites

o bronwout deveria atuar apos o codigo começar a rodar...

 

No caso do problema que relatei, eu mantive ativado, pois meu problema é unica e exclusivamente com bateria baixa, então se, ao ser ligado pelo usuario detectar a tensãi baixa, ele nao inicia (a popósito o bronwout fica resetanto o uC infinitamente ou somente nao deixa startar??

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
1 hora atrás, rodrigocirilo disse:

o bronwout fica resetanto o uC infinitamente ou somente nao deixa startar

É quase a lesma lerda 😁... não sai do reset o que não deixa a cpu nascer.

Eu (eu) já acho o brownout bem útil: não deixa funcionar com bateria baixa o que poderia causar instabilidades algo como deixar as variáveis ter vida própria e começar a tomar decisões por si 😁.

O wdog pra ficar achando pontos onde resetá-lo manualmente é 1 pns. Mas claro, tem sua missão estilo 'cada caso é um caso'.

Link para o comentário
Compartilhar em outros sites

44 minutos atrás, .if disse:

É quase a lesma lerda 😁... não sai do reset o que não deixa a cpu nascer.

Eu (eu) já acho o brownout bem útil: não deixa funcionar com bateria baixa o que poderia causar instabilidades algo como deixar as variáveis ter vida própria e começar a tomar decisões por si 😁.

O wdog pra ficar achando pontos onde resetá-lo manualmente é 1 pns. Mas claro, tem sua missão estilo 'cada caso é um caso'.

😁😁😁 verdade...

 

No meu caso, ao ligar o wifi drena bem as pilhas se ja estiverem velhas e isso estava deixando variaves e I/O´s ter vida propria, mas o bronwout sozinho nao resolveu...parece que ficava um pouco acima do limite minimo pro Brown atuar, não resetava e zoava tudo....

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Denuncie pro fabricante do mc. Afinal o brownout reset é pra isso. Mas não sem antes testar direitin com p.ex. conferir se o compilador fez certo, se programou o fuse certo, debugar, usar fonte de bancada e etc. Ou seja, não descarte defeito entre a cadeira e teclado 😁

Este mc não conheço mas alguns tem um timer inicial também. Depois de ver a vcc subir, ele dá 1 tempinho antes de pegar no pesado. É + 1 opção de segurança.

Link para o comentário
Compartilhar em outros sites

Em 08/02/2021 às 16:55, .if disse:

Denuncie pro fabricante do mc. Afinal o brownout reset é pra isso. Mas não sem antes testar direitin com p.ex. conferir se o compilador fez certo, se programou o fuse certo, debugar, usar fonte de bancada e etc. Ou seja, não descarte defeito entre a cadeira e teclado 😁

Este mc não conheço mas alguns tem um timer inicial também. Depois de ver a vcc subir, ele dá 1 tempinho antes de pegar no pesado. É + 1 opção de segurança.

 

Denunciar pro fabricante foi ótimo kkkkk ! Vai ajudar muiiiito ....

 

Olha, eu usei 64k ciclos de clock para esperar iniciar, usei todas as opções de brownout, e vira e mexe falhava a inicialização .... mas como você disse, deveria funcionar, talvez a gente não saiba como usar isso direito.....

 

Paulo

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Há muito mais entre ceu e terra do que supõe sua vã filosofia 😁. Você tentou de tudo exceto o que realmente causava a falha, seja lá o que for 🤪

A falha de inicialização não é culpa exclusiva da falha do procedimento de reset. Pode ser um tandcoiz. fase da lua, horóscopo 😁 e etc ... em outras palavas deve ouvir conselhos de visões externas. Igual jogo de dama: quem tá de fora vê mais jogada 😉

 

Link para o comentário
Compartilhar em outros sites

@.if ,

 

Olha .... usava Z80 em automação industrial, não tinha essa frescura de brownout, e nunca falhava na inicialização.... e em tudo o que monto não uso essa frescura, tudo funciona direitinho.

Por isso que não recomendo a ninguém insistir em usar isso.

 

Paulo

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Z80? wtf? 😁

 

É isso aí Paulão. Sua experiência é bem válida como agregadora de valores ao forum sim. Inibir tal função pode ser solução desesperada pra quando tudo o mais falhar. Tmj: se funcionou, nem queira saber o porquê e toque o barco. No entanto existem até ci's especialistas em tal função que você tanto menospreza 😞. Google algo como power supply monitor with reset. Portanto penso que ela tem seu lugar ao sol sim.😁

zsm560_typicalapplication_1.jpg

Link para o comentário
Compartilhar em outros sites

@.if ,

 

Existem e faz bastante tempo... em 1985 usamos um desses em uma automação de uma fábrica de cacau na Bahia. Tinham algumas UARTS AYxxxxxx ( nem me lembro o modelo ) que insistiam em de vez em quando não funcionarem....

Naquela época as fontes de +5V tinham de ser mais parrudas, consumo era mais alto, e como usávamos um barramento industrial, tinham vários cartões com consumo alto. A solução foi usar um CI desse tipo que conseguia fazer essas UARTS iniciarem direitinho.

 

Como você disse .... existem muitas soluções para um mesmo problema. O mais complicado é "achar" qual é o verdadeiro problema, que no caso era a inicialização da alimentação de 5V distribuída em vários cartões no barramento.

 

Paulo

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

 

@aphawk só zoei. Subliminarmente de chamei de 'alguém com muitas "idas" '..👴 ... (outra subliminar 😜).

Também ja fiz programinha de teste em assembly z80 há não sei quantos anos kk. De fato a parrudez no passado influenciava na não sensibilidade. P.ex. sabia que rádios à válvula são imunes a radioatividade? 😁.  Atualmente a eletrônica é toda frutinha e de uma certa forma precisamos nos adaptar reciprocamente com ela.

 

1 hora atrás, aphawk disse:

existem muitas soluções para um mesmo problema. O mais complicado é "achar" qual é o verdadeiro problema, que no caso era a inicialização da alimentação de 5V distribuída em vários cartões no barramento

É isso aí.. 'quem procura "acha" '. :P

Link para o comentário
Compartilhar em outros sites

@.if ,

 

"Programinha" de teste em Assembly Z80 ?

33K de objeto, tudo em Assembly kkkk foram meses de escrita e testes, e o produto final usava um Apple ][  como interface homem-máquina, monitor colorido, um monte de telas mostrando todo o processo, tudo rodando em Basic  e um pouco de Assembly tratando a comunicação.

A empresa em que eu trabalhava vendeu o sistema todo por US$ 170.000,00  .... bons tempos né ?

 

Paulo

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...