Cosas sobre el SIM800L

Hola a todos.

He conseguido agenciarme un modulo SIM800L como el de la imagen y quiero trasterar un poco, pero me surgen dudas...

general.png

Entre las caracteristicas he visto lo siguiente:

  • Alimentación entre 3.7v y 4.4v
  • Consumo de media 350mA con picos de 2A
  • Pines con lógica de 2.8v
  • Detección de la velocidad del puerto

Con respecto a la lógica de los pines TX y RX tengo claro que voy a tener que usar una fuente de 2.8v y convertidores de nivel para conectar al Arduino.

He visto que hay gente que los conecta directamente a 5v o a través de un divisor de resistencias en la entrada TX. No me gusta ninguno de los dos métodos, ya que en el datasheet se especifica que funcionan a 2.8 y no a otra tensión. El divisor resistivo podría funcionar, pero no tanto a la hora de recibir, ya que los 2.8V están en el límite de la logica TTL del arduino (a partir de 2.8V es un "1" lógico), con lo que puede y habrá fallos.

La lástima del módulo es que no disponga de la señal VDD_EXT que posee el SIM800...

En cuanto a la alimentación, he visto que algunos modulos (especialemente la versión 2.0 de este) viene con dos diodos 1N54xx de alto amperaje que reducen la tensión que entra.

Aquí es cuando no me salen los cálculos. Si a 5v le quito la caida de tensión de dos diodos (0.7v * 2) tengo 3.6 voltios... muy justo para la alimentación. Más aun teniendo en cuenta que si la corriente aumenta la VF del diodo aumenta también pudiendo llegar al voltio. Con lo cual el modulo se queda sin su alimentación.

Curvas del 1N54xx de dos datasheet distintos
curva1.png
curva2.png

Si solo pongo un diodo tenemos 4.3 voltios... y si me salen las cuentas... Entonces, ¿por que dos?

La idea es hacer un enchufe GSM que por SMS puede encender o apagar "algo", y quisiera aprovechar (hay que reciclar) una fuente de 2A que tengo de una tablet que murió, por lo que hacer una fuente de 4V con un lm317 no me es muy factible, aunque sería lo suyo.

Este es el circuito que mas veces he visto por hay (obviando la lógica del 2.8v en el puerto serie):

minimal_sim800L.png

Mira este link victor Módulo GSM/GPRS SIM800L
Tienes mucha información ahi, aunque tal vez ya dispones de ella.

Veo que para la adaptación de niveles usan la misma técnica que con los 2n7000 conectados entre 5 y 3.3V

Y respecto de la alimentación veo 1 y otra vez que usan este arreglo, similar al que comentas asi que adelante porque debe funcionar

PowerSIM800L.png

Bueno, no he dicho nada respecto de los diodos. No me lo había puesto a analizar porque hay cuestiones de los esquemas que tomo como reglas practicas que ya han sido estudiadas y que funcionan.
Veo que para picos de 2A supongamos que continuos, estarías en algo mas de 0.8, tal vez 0.82 así que dos sería 1.64V.
5V - 1.64 = 3.36V. Vaya que eso queda fuera de lo que sugiere la hoja de datos!!
Pero para llegar a este valor hemos supuesto varias cosas y por lo visto, no son del todo correctas. O ha sido un análisis medio liviano.

En una condición menos límite, la caída en los diodos sería menor, así que supongamos que estaríamos dentro del rango pero para que eso ocurra 3.7V deberíamos tener una caída de solo 1.3V o sea apenas 0.65V en cada uno, que coincide con tu primer recta roja en la primer curva del 1n54XX.
Asi que esa situación apenas coloca el SIM800L en condiciones de alimentación correcta. Lo que me deja pensando...

Tengo toda la información, incluido ese esquema.

De hecho al ver ese esquema vi lo de la salida VDD_EXT, que es una salida de alimentación de 2.8 voltios (no de 3.3v) que tiene el SIM800 y que sirve, entre otras cosas, para un adaptador de nivel. Lo único que no me he leido entero el datasheet (¿alguien lo hace?), solo partes.

Lo que me deja pensando...

Ahí es donde empecé yo, pensando. Si suponemos que la corriente media es de unos 200mA-300mA, en la curva dos se aprecia que la caida de tensión es de 0.5 voltios (aproximadamente), con lo que la caida total de 1 y por lo tanto tenemos 4v ¡¡Milagro!! lo que necesitamos...

Pero en la vida real, me parece que será alrededor de 0.7v (1.4v y tenemos 3.6 voltios de alimentación).

El consumo real no sé cual será. Supongo que pinchandole todos los accesorios de los que dispone el chip (altavoces, microfono, radio fm, etc.) el consumo si se puede disparar a los 2 A. Deduzco que para enviar SMS y recibir llamadas a través de comando AT, el consumo es díficil que llegué a eso, y que los picos sean totalmente transitorios que apenas afectan.

Ahora mismo no dispongo de unos diodos 1N54xx así que no puedo comprobarlo físicamente con el polimetro. He hecho pruebas con el 1n4007 y de 0.6 no baja.

De hay que no me cuadre. Y he visto que a muchos les funciona y otros no,y a los que no, no se les ha solucionado bien. ¿Alguien ha jugado más con este tipo de modulos?

Entonces busca armarte algo con un LM317 mas un transitor de paso en serie para que pueda suministrar la corriente o bien... llendo mas lejos, un LM2596 step down de menos de 1 euro... o tal vez no quieras ni considerarlo. Pero resuelven muchos problemas. Dan 3 A.. funcionan bien.

Del datasheet SIM800L Hardware Design V1.00:

The power supply range of SIM800L is from 3.4V to 4.4V. Recommended voltage is 4.0V. The transmiting burst will cause voltage drop and the power supply must be abble to provide sufficinet current up to 2A.

Ensure that the input voltage nerver drops below 3.0V even when current consumption rises to 2A en the transmit burst. If the power volgate drops below 3.0V, the moduble may be shut down automatically.

Lo que viene a ser que la alimentación real debe rondar los 3.4 a 4.4V y nunca caer por debajo de los 3.0V ya que el modulo puede apagarse. Lo recomendable una fuente de 4.0V fija.

En el cajón desastre me he encontrado una placa de televisor vieja que por casualidad tenía dos diodos UF5402 (que viene a ser la versión rápida de los 1N54xx) y con un juego de resistencias de bajo valor he hecho un circuito para ver la caida de tensión en los diodos y en la resistencia. He obtenido valores entre 3.3V y 3.4V.

He intentado que la fuente me diera los 5 voltios justos. Pero ajustandola un poco más a 5.1V he obtenido valores entre 3.5 y 3.6V.

Viene a ser lo mismo que cuando lo alimentas con una bateria de 3.7V, que también se puede. La bateria te puede dar poca mas tensión y si no esta muy descargada no debe de bajar mucho con picos de corriente.

Ahora tengo más claro lo de los diodos. Aunque no me gusta mucho. Lo mas probable es que adquiera un LM350 que es capaz de regular hasta 3A, de momento me resisto a usar fuentes switching, ya que no tengo muy buenas experiencias con ellas.

Es algo para creer o reventar. Solución simple para un problema que de otro modo requiere un elemento mas costoso.
Funcionará en la mayoria de los casos y en algunos no. Dolor de cabeza para esa persona.
Eso hace 15 años no pasaba. Tendria su regulador.

Hola de nuevo chicos.

Bueno, pues ya me decidí y me he fabricado una pequeña plaquita para pruebas:

SIM800A.jpg
SIM800B.jpg

Básicamente se compone de una fuente de 4V con un LM350, otra de 2.8V, dos conversores de tensión a base de mosfet, un zócalo para el sim800L y un conector para TTL donde puedo meter +5V, RX, TX y GND. De momento las pruebas las estoy realizando con un conversor FTDI, pero le puedo pinchar el Arduino cuando quiera. Si alguien quiere el esquema y la pcb que la pida que la subo.

En cuanto a los consumos me sorprende, pues enchufada a la fuente de alimentación de laboratorio me oscila entre los 10-70 mA. Eso sí de momento no puedo garantizar esos consumos ya que no tengo SIM, bueno miento, si tengo una SIM pero es prepago y no la recargué en el último año, así que se la he puesto pero ni recibe, ni puede mandar nada.

Aunque para comprobar si funciona y testear algunos comandos AT me sobra.

He estado comprobando algunos comandos básicos y uno de ellos es +COPS que en teoría te lista los operadores de red dandome este resultado:

+COPS: (3,"vodafone","voda ES","21401"),(3,"MOVISTAR","MSTAR","21407"),,(0-4),(0
-2)

OK

Lo cual me hace pensar, que algo no está bien, pues mi teléfono móvil me reconoce: vodafone, movistar y orange. ¿Está bien o me equivoco?

Hola victor, podrias subir el esquema y el pcb? Tengo problemas con la comunicacion serial y me vendria muy bien. Desde ya muchas gracias.

Hola,
No tengo el esquema completo, los diseños suelo guardarlos en un usb para poder trabajar en casa/taller y trabajo y al final de llevarlo de un sitio a otro le he perdido la pista. Así que tengo en el ordenador de casa el esquema "preliminar":

Fuente de alimentación:

El circuito lo alimento a 12 voltios y se compone de dos fuentes, con sendos reguladores ajustables; un LM350 ajustado a 4 voltios y un LM317 ajustado a 2.8V (nivel lógico de los pines). A la entrada pongo un diodo para evitar problemas si conecto la polaridad al revés.

Ajustador de niveles:
sim800_level.png
Es el típico circuito de ajuste de niveles hecho con MOSFET, en un lado la lógica TTL de 5V de Arduino y por otro la "lógica" 2.8V del sim800.

Y por último el SIM800:
sim800_board.png

Básicamente utiliza la recomendación que viene en el datasheet: condensadores y zener de limitación.

En el circuito final, puse leds para ver que hacía pero no son necesarios.

Si encuentro el pen, espero encontrarlo porque si no estoy jodido :o :o :o subo el esquema y la pcb en proteus (aviso que trabajo con la versión 7.9).

Cómo andan? Ante todo, muy buena info la de este hilo!!!
Vengo trabajando con este módulo hace tiempo y me encontré con una falla que no entiendo, aunque creo saber por dónde viene el inconveniente.... el problema me pasó con varios módulos y no fueron comprados en la misma tanda ni siquiera al mismo proveedor, por lo que presumo que no tiene que ver con el lote de los mismos.

Como se comenta en muchos foros de internet, el múdulo lo conecté en comunicación con un Atmega328P directamente entre Rx y Tx y viceversa, sin adecuando los niveles de tensiones, es decir, sin tener en cuenta que el módulo requiere de niveles de 2,8V... Y TODO ANDUVO PERFECTO!!! También, es alimentado con una tensión regulada de 4,2V.
Como anduvo bien, ensayando la comunicación, me encontré que luego de un tiempo de pruebas en ocasiones pasa que al alimentar el conjunto (Atmega - Sim800L) cuando recibo un string desde el módulo, el microcontrolador se resetea... tal falla es aleatoria, ya que no ocurre siempre, pero es más frecuente cuanto más lo utilizo.

Como no me rendí, conecté un osciloscopio para ver los niveles de comunicación y me encontré con lo siguiente:

  • Cuando todo anda bien, los niveles son de 5V.
  • Cuando ocurre la falla, el microcontrolador se resetea ya que, desde el SIM800L, se reciben niveles de 2,8V.

Es obvio que voy a modificar mi circuito y agregaré la adaptación de niveles que planteó victorjam para ver si esto soluciona la falla, pero mientras les consulto... QUÉ PIENSAN USTEDES DE ESTO???

Pienso que el hilo es del 2017 y que debiste haber abierto un nuevo hilo y en todo caso colocar una referencia a este.
El unico que puedo continuar el hilo es @victorjam que sigue activo en el foro.
Los hilos viejos no se reviven.