Comunidad Gambas-es

Versión completa: IoT: ESP32 WROOM D32 Problema
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola...saludos:

Pues comencé a hacer proyectos con el ESP32 adicionando las librerías a Arduino bajo Win2 y también en Ubuntu 18.04. Para "subir" el software ya compilado al ESP32 hay que oprimir el botón BOOT mientras avanzan algunos % de carga. Luego se puede soltar y la carga continúa.

Durante estos momentos yo veía fluctuar en intensidad el led integrado rojo del ESP32. Luego al terminar de "subir" el software, y abriendo la terminal Serial, aparecían paquetes de mensajes, cuyo encabezado decía algo parecido a:

"Brownout detector was triggered. CPU Reset"...

Estuve buscando en la web temas relacionados, pero hay muy pocas soluciones. Incluso Expressive (los fabricantes) no proporcionan una solución. En cierta página, alguien propuso modificar un archivo de los descargados para la tarjeta ESP32, denominado sdkconfig, cambiando a la línea que contiene _BROWNOUT_DET=y, se le pone "n", para quedar como:

... _BROWNOUT_DET=n

Pero el colega que propuso esta solución indica que no le funcionó. Así que yo también modifiqué otro archivo:

sdkconfig.h

El cual contiene entre otras muchas la línea .... _BROWNOUT_DET=1

Así que por lógica, lo cambié por ..._BROWNOUT_DET= 0

Guardados ambos archivos, volví a compilar mi proyecto de ESP32 con Arduino y puede "subir" el software a la placa sin ningún problema. Al terminar de subir, de inmediato funcionó y sin mandar los molestos paquetes de error o reset.

Claro que bajé unos 4 datasheets del ESP32 para analizar un poco la cosa del registro que controla la detección de Brownout, que no es otra cosa que la detección del voltaje de alimentación que "baja" un poco por el consumo que hace el ESP32 al encender sus componentes diversos. También encontré que tiene 8 niveles de detección de niveles de voltaje, pero como lo he deshabilitado, ya no interesan de momento.

El problema real es cuando se arma un circuito con el ESP32, varios sensores, fuente y baterías de respaldo. En algún momento al funcionar con baterías, y estas agotarse un poco solamente, el ESP32 comenzará  a hacer sus RESETS, ante la asombro del diseñador.

Incluso si durante las prácticas se usa un cable USB largo (80 cm o mas), la caída de tensión será mas notoria. Es por eso que yo hice la maniobra en ambos archivos. Al principio quise aminorar el problema colocando un capacitor de 1000uF/10V entre Vin y Gnd del ESP32, pero no se quitó el problema.

Por último, he querido hacer lo mismo en Ubuntu, pero no encuentro los dichosos archivos....ayuda por favor...

Eso es todo....
<Nota: Editado>
Hola Alfredo.
Todo lo que pusiste en el tema me pierde un poco ya que mis conocimientos de electrónica digamos que son escasos Smile
Luego creo entender que buscas en el sistema el archivo skdconfig.h si es correcto hay una forma general de buscar en la terminal de GNU/Linux que es:
Bash
  1. locate skdconfig.h


Eso encontrara el archivo si existe en alguna parte, si no sale nada el archivo no existe.
Nota: Todas estas cosas de electrónica siempre me dan curiosidad pero como mi formación es en electricidad y mecánica es decir del enchufe para adentro, bajas frecuencias y altas potencias Smile .
Saludos.

Saludos.
Hola Tincho, gracias por responder, pues me has hecho ver mi error!!....

El archivo no es skdconfig.h, sino sdkconfig.h y esa es la principal razón de no encontrarlo.

La otra razón es no saber que con "locate" se puede hacer y muy rápido. Así que lo hice y el problema está resuelto.

Bien dicen que con la edad (tengo 62 años) se cometen también errores, aunque mas lento...je je je....

Muy agradecido y saludos a toda la comunidad...

Nota: Hay alguna manera de corregir mi Post inicial para cambiar esas letras ?...
Puedes editar tu post usando el botón dispuesto para ello, justo en la parte de abajo de cada post:


[Imagen: zqv6QOf.png]

Saludos
Hola Alfredo, yo tengo una poca experiencia en electrónica y te puedo decir que las ESP son muy sensibles al voltaje. No se que manejas con las salidas y habría que ver si el capacitor es de respuesta suficientemente rápida pero, a falta de mas datos, se me hace que el problema anda por ahi y no por el software. O algo mal soldado Confused

Si logras subir algunas fotos tal ve pueda ayudarte mas.

Saludos.
Hola tercoide:

Pues si creo que es un problema de cables. La caída de tensión por la demanda de corriente del propio uC al usar un cable de extensión USB desde la PC al ESP32, para tenerlo cómodamente en mi mesa de trabajo y no disponer de momento con un cable "de los mas buenos". Para abatir esa dificultad podría haber usado un cable USB de unos 25 cm, pero eso hacía que prácticamente trabajara mi ESP32 colgando de la parte posterior de mi PC.

En vez de eso, ajusté el BROWNOUT_DETECT a "desactivado" en mis archivos sdkconfig y sdkconfig.h de las carpetas de instalación del ESP32 DEV MODULE y con eso he solucionado el supuesto problema.

Subo una fotografía, donde se verá que he puesto un capacitor entre Vin y Gnd, que no resultó, pero ahí lo dejé porque es buena práctica. Así mismo puse un pequeño pulsador para el botón BOOT, porque me costaba trabajo oprimirlo por ser tan pequeño.

Saludos y te agradezco tu interés.[Imagen: JrtUamc.jpg]
Bueno a la distancia solo puedo decirte que el capacitor que has puesto no es de respuesta rápida, necesitas (y puede ponerse en paralelo) uno de cerámica. Aunque no estoy seguro si eso soluciona el problema, que para mi es una cuestión de falsos contactos en el cableado.
Suerte
Hola tercoide:

Y si.  Efectivamente buscando de acuerdo a tu sugerencia, el problema está en el contacto que los conectores USB tipo "A" Hembra  y Macho hacen entre si. Así que probé "subir" el software al ESP32 haciendo cierta presión en mi conector USB hacia la PC y todo marchó bien. Luego hice la misma operación sin tocar ese conector y falla.

En resumen, los cableados y el "pobre" contacto que proporciona el conector USB no son para alimentar este tipo de módulos, los cuales consumen algo mas de corriente. Medí el voltaje en la entrada de Vin y GND, arrojando 4.48VCD (Se pierden mas de 0.5VCD!!, tan solo por pérdidas de inserción.).

Mi otra solución fue poner una fuente de 5VCD adicional para soportar al ESP32 DEV MODULE, y que el cable USB solamente sirva para conducir los datos de ida y vuelta entre la PC y el dispositivo. Creo que así debe ser siempre.

Pues ya está....

Saludos...