Go Down

Topic: Bloqueo placa ESP32 (Read 773 times) previous topic - next topic

alfredomrh

Buenas tardes, aunque se que este foro es de arduino, recurro a el ante un problema a ver si alguien entendido en electrónica me puede ayudar, ya que en el foro oficial no he tenido mucho éxito.

Tengo un problema con mi tarjeta (es este ESP32), estoy haciendo un pequeño proyecto, que registra un temporizador, un botón (Pin D4) y 7 touch pad. Cuando el temporizador activa un semáforo binario en su isr, envía por wifi la información de las pulsaciones de botón y touch pads, que ha estado contando en su isr mediante el aumento de dos contadores, además también envía la temperatura del chip y la señal wifi.

Lo he programado con el entorno idf-esp y sus librerías específicas y lo alimento directamente a la red con un cable micro usb y un transformador como el del movil de 1A.

El problema es que se congela cada dos o tres días y deja de enviar información. Mediante software he implementado varios controles para evitar corrupcion en heap, restauro el sistema cada X envios y también he implementado un wdt. Por tanto pienso que no tiene que ver con el software, pues funciona perfectamente y además el problema no le da siempre transcurrido el mismo tiempo.

Me inclino a pensar que el problema viene de la alimentación, pues cuando se ha quedado colgado antes ha comenzado a realizar envios raros, con un intervalo no regular y los valores de la temperatura del chip comenzaron a variar bruscamente.

Voy a probar a alimentarlo con sus 3.3v con una fuente de protoboard a través del pin 3.3v a ver que hace.

¿Alguién me puede dar alguna idea de que puede estar pasando?

Gracias de antemano.


surbyte

Creo que has implementado la gran mayoría de las sugerencias que yo te hubiera hecho.
La verdad que me interesa el problema porque estoy trabajando con el mismo chip auqnue aun no lo tuve funcioando a full
No tendría problemas en poner en marcha uno haciendo lo mismo que tu para analizarlo en el tiempo, pero prestando atención a esto

Quote
Lo he programado con el entorno idf-esp y sus librerías específicas
Te diría que lo mas apropiado es que consultes en el foro Expressif para mejores sugerencias.

Pocos aca podran seguirte en ese entorno.


alfredomrh

Gracias surbyte, quién me recomendó esta placa fuiste tú y la verdad que es una maravilla, aunque para sacarle todas las posibilidades que tiene y poder usar el sistema operativo FreeRTOS que lleva embebido hay que programarle con el ide de espressif.

Ya he preguntado en el foro de esp32 pero sin éxito de momento, aunque sigo añadiendo detalles a ver si alguién me ayuda.

Yo me inclino en pensar que es un problema de alimentación, pues por software ya he implementado todos los controles "básicos" y  funciona a la perfección durante días y no se cuelga siempre al cabo del mismo tiempo. Ahora he puesto otra placa con una fuente de protoboard a ver que tal va.

Sin embargo otra placa que alimento con un micro usb y el adaptador del móvil, ahora lleva varios días funcionando y de momento todo va bien. Durante las pruebas iniciales cuando he probado con otros cargadores de móvil, me daba fallos. Unas veces no enviaba información, otras veces se quedaba congelado con otro cargador.

Otra prueba que hice es alimentarlo directamente con una batería lipo de 3.7v y tampoco iba bien, al cabo de un tiempo se colgaba. Se que se puede ajustar el nivel mínimo de voltaje en el menuconfig, pero ni bajandolo funcionaba.

En fin, sigo probando...saludos

surbyte

Si yo amo el ESP32. Me parece lo mejor que existe hoy. AD de 12bits, touch control, varios UARTs varios SPI, control de SD WIFI, ethernet (que no lo sabia), BT, y no se que me olvido.. I2C lo descarto.

Pero programar en Expressif es otro tema.. te comprendo pero se aleja de mi zona de confort. Yo voy tranquilo un paso mas lento, dejo que el software se estabilice, que se implemente en Arduino y luego lo uso.

Respecto de tu problema, tmb a mi la gran mayoría de las cosas han sido por fuente de alimentación.
Y si buscas leeras que hay problemas de todo tipo por ello que uno atribuye a otra cosa pero que se deben a la fuente.

alfredomrh

Y multitarea real con sus dos cores...en fin seguiré haciendo pruebas con la alimentación, pues me experiencia me dice que el código esta bien y además de testado.

Saludos,

alfredomrh

Kolban en su libro sobre ESP32 recomienda colocar un capacitor de 10 microfaradios entre el negativo y el positivo que alimenta la placa, pues dice que al transmitir por wifi consume mucha energia y esto puede generar rizos en la fuente de alimentación. Supongo que se conecta el positivo del capacitor al cable que entra al pin 3.3v de la placa y el negativo del capacitor al cable que va a tierra y esto funciona como un reservorio de energia que evita fluctuaciones que pueden causar problemas.

Esto es lo que dice...

When the ESP32 starts to transmit over wireless, that can draw a lot of current which
can cause ripples in your power supply. You may also have other sensors or devices
connected to your supply as well. These fluctuations in the voltage can cause
problems. It is strongly recommended that you place a 10 micro farad capacitor
between +ve and -ve as close to your ESP32 as you can. This will provide a reservoir
of power to even out any transient ripples. This is one of those tips that you ignore at
your peril. Everything may work just fine without the capacitor ... until it doesn't or until
you start getting intermittent problems and are at a loss to explain them. Let me put it
this way, for the few cents it costs and the zero harm it does, why not?

Si estoy equivocado por favor que alguien que entienda mas de electronica me corrija, gracias.

surbyte

Si claro, eso en nRF24 es fundamental para que funcione. Lo raro es que ese capacitor ya no este en el módulo ESP32 que usas a menos que lo hayas comprado sin el pcb de desarrollo.

alfredomrh

#7
Nov 09, 2017, 09:16 am Last Edit: Nov 09, 2017, 10:38 am by alfredomrh
Si claro, eso en nRF24 es fundamental para que funcione. Lo raro es que ese capacitor ya no este en el módulo ESP32 que usas a menos que lo hayas comprado sin el pcb de desarrollo.

He comprado placas de desarrollo como esta, no el chip aislado, pero no parece que tenga condensadores, aunque yo no entiendo podría ser que lo tuviera con otra forma. ¿Podrías decirme si la placa que utilizas tu lo tiene y si esta mía lo tiene integrado?

De todas formas Kolban recomienda ponerlo, supongo que por que o no lo tiene o si lo tiene mejor añadir otro.

Ahora ya me queda claro como sería si lo quisiese alimentar con una adaptador AC/DC de 12v y una fuente de protoboard, colocaría el condensador de 10 microFaradios puenteando el positivo y negativo cerca de la placa. ¿Pero habría alguna forma de hacerlo si lo alimento, como era mi idea inicial, con una adapdor de pared usb y el cable micro usb? Pues es la manera mas simple de alimentarlo y como queda más "elegante".

Y una última duda, ¿Que condensador debo utilizar? pues he visto que los hay de diferentes voltajes y dado que la placa trabaja a 3.3v ¿Que voltaje sería el recomendado, uno así valdría 10 uF 50 V 5*7?

Go Up