Go Down

Topic: [SOLUCIONADO] Módulo A6 GPRS se sobrecalienta (Read 89 times) previous topic - next topic

PinaGamer

May 16, 2017, 03:47 pm Last Edit: May 17, 2017, 04:33 pm by PinaGamer
Hola a todos, llevo un par de semanas atascado con lo mismo. Utilizo un módulo A6 como éste en mi proyecto controlado por el transistor NMOS IRF520. El problema es que a la hora de encender el módulo de comunicaciones en un determinado punto del programa y comenzar a enviarle comandos se sobrecalientan dos de los integrados más destacados (en especial el integrado MAX232):



Integrados que se sobrecalientan tras el encendido y envío de comandos al módulo


Cuando me refiero a sobrecalentar, me refiero a que llegar a quemar tocándolos con los dedos. Pensaba que el problema tenía que ver con el transistor que controla el módulo, pero creo que tiene que ver con los pines RX y TX. Cuando los desconecto del Arduino, el módulo no se sobrecalienta pero sí si los tengo conectados al microcontrolador y con la sentencia Serial.begin() en el setup del programa (antes de encender el módulo GSM).

He mirado algo de información del integrado MAX232 y está relacionado con los pines de comunicación, aunque sinceramente no sé que es lo que hace. ¿Por qué al desconectar los pines RX y TX previo al encendido del módulo no se sobrecalienta? He probado a cerrar el circuito activando el pin digital de la puerta del transistor y después de unos segundos de delay, establecer la sentencia Serial.begin(). No se calienta, pero tampoco se comunica con el módulo.

Muchas gracias.

surbyte

Muy raro lo que comentas porque el MAX232 es un integrado para comunicar TTL a RS232 y tu no tienes ni necesitas eso con Arduino.
Los niveles RS232 son +-12V y arduino requiere TTL o sea 0-5V.

Veo que has equivocado las salidas que debes usar.
Mira esto


Ahi dice claramente que U_TXD y U_RXD son salidas TTL.

No uses las que dicen RS232 porque son para conectar a una PC por ejemplo.

PinaGamer

Mirad que estuve atascado semanas con el mismo problema y es justo poner el hilo en el foro, darle un par de vueltas más y encontrar la solución.

Pensé por un momento que sería el transistor que controla el módulo. No obstante, he hecho los deberes protegiendo la puerta con una resistencia y colocando una resistencia en paralelo entre la puerta y masa. Todo esto lo explican muy bien en este post: https://www.luisllamas.es/arduino-transistor-mosfet/


Conexionado actual de mi circuito


El problema estaba en la "inofensiva" sentencia que yo al menos estaba acostumbrado a colocar en el setup del código, esa de Serial.begin. Pues bien, si la comunicación serial estaba abierta y pretendía encender el módulo, el chip MAX232 se hacía un lío y comenzaba a sobrecalentarse. Sin embargo, si primero enciendo el módulo, hago un delay de unos cuantos segundos para que al chip le de tiempo a encontrar la red y conectarse y ejecuto la sentencia Serial.begin, entonces funciona sin problemas.

Así que ya sabéis, primero hay que encender el módulo y después abrir la comunicación serial. Por supuesto, al finalizar, usar Serial.end() o permanecerá abierta la comunicación y cuando volváis a encender el módulo volverá a sobrecalentarse.

Un saludo y muchas gracias por la ayuda surbyte

surbyte

Mira como son las cosas y yo que pensaba que todo ocurría porque estabas conentando el A6 usando los terminales RS232 con el Arduino y no era el caso.

Ahora te comprendí!!

Recuerdo el otro hilo al que ahora refieres, es de hace unos dias atras.

Go Up