problema comandando modem GSM industrial

¡hola!

Creí que esto de las comunicaciones con el modem sería cosa fácil pero nada mas empezar me he dado en los morros... me explico:

tengo mi modem perfectamente registrado en la red, lo conecto el cable datos al hyperterminal y doy la orden:

atdxxxxxxxx;

siendo xxxxxxxxxx un número de tlf.....

e inmediatamente comienza a sonar el número xxxxxxxxxxxx, osea, que funciona

sin embargo doy la orden desde el pic:

printf ("atdxxxxxxx;\r\n");

pero nada, el (punto y coma) es para que la llamada sea de voz, no es un error, envio el retorno de carro también (\r\n) pero nada,,, no hace nada

¿se os ocurre alguna idea del porque no reconoce la orden?....

Es que me parece muy estraño, que solo desconecto el cable serie, la alimentación sigue activa para que no pierda el registro de la señal GSM, lo unico que hago es darle la orden desde el pic o bien desde hyperterminal. He probado conectar el pic al hyperterminal y la orden aparece bien.

ayuda porfavor!

Reply to
Carmelo J. Morales Muñoz
Loading thread data ...

Conecta el PIc, al Pc, con un MAX232, y mira que estás enviando realmente. Así debugeaba, yo, mis inventos con PIC y modems GSM.

Evidentemente, NO estás enviando lo mismo desde el hyperterminal y desde el PIC. Tal vez te falta un salto de carro, al final de la instrucción.

¿ baja linea en el hyperterminal, cuando recibe la secuencia del PIC ?

Conecta la salida del MAX232, tanto al modem, como al hyperterminal (a los 2 a la vez). Si el comando AT del PIC es erroneo, el modem te devolverá una repuesta de ERROR, que ahora mismo no estás viendo, pero que el hyperterminal, si que mostrará.

Reply to
KT88

hola!

¿que es eso de baja linea el hyperterminal?....

gracias!

Reply to
Carmelo J. Morales Muñoz

El salto de carro. Si envías varias veces el comando AT que hayas programado en el PIC, cada instrucción debe provocar un salto de linea. Es para verificar que estás enviando un salto de carro, al final de cada comando.

De todas formas, conecta ambos en paralelo (modem e hyperterminal), y el modem te mostrará en el hyperterminal un ERROR, si el comando AT del PIC es incorrecto.

Reply to
KT88

Carmelo J. Morales Muñoz expuso:

Yo no tengo mucha idea de módems GSM, pero lo que has escrito no tiene muy buena pinta. Yo probaría con: printf ("atdxxxxxxx;\n"); printf ("atdxxxxxxx;\n\r");

Más que nada que \n es el retorno de carro por excelencia. El \r se añade a los textos de Windows pero creo que podría ser que el módem no lo interpretara como retorno de carro o interfiriera con la sintaxis del comando. De hecho creo recordar que si envías algún otro carácter mientras está llamando y conectando (ATD), se cancela la conexión, de eso no estoy seguro porque tengo muy mala memoria, pero creo recordar que al pulsar alguna tecla en hiperterminal mientras está llamando se cancela.

Reply to
Jeroni Paul

ah!... ahora lo entiendo... muchas gracias....

lo probaré.... me parece muy buen truco para verificar... te comentaré lo que saque en claro!

Reply to
Carmelo J. Morales Muñoz

"Carmelo J. Morales Muñoz" schreef in bericht news:00cgd.167079$ snipped-for-privacy@news-reader.eresmas.com...

Line feed, o sea \n. El caracter \r es retorno de carro. Podrias probar enviando solo \n al final. o enviando solo \r. No se exactamente cual de los caracteres indica al modem ejecutar el comando. Seguro es un donde estan LF y CR. Aunque dudo que un modem necesite de los dos comandos. Tambnien hay compiladores que \n lo compilan como LF CR. Probablemente ande por ahi el problema.

Saludos,

Reply to
Dario Kusters

Ya nos contarás.

Así lo hice yo, cuando estuve trasteando con GSM y los PIC. También mis primeros desarrollos no iban ni a tiros, y me llevaron loco unos días.

Es cuando se me ocurrió monitorizar lo que enviaba el PIC al modem, conectándolo, a la vez al PC, para visualizar los comandos en el hyperterminal. Mano de santo, fué un sistema de "debug", que me ahorró muchos quebraderos de cabeza.

Normalmente, si a un modem GSM le envías un comando que no existe o con una parametrización incorrecta, te devuelve un ERROR, y a veces, acompañado de alguna indicación del motivo que ha causado el error (aunque es muy parco en ese sentido).

Reply to
KT88

El problema parece mas grave..... me explico....

Resulta que si llamo al modem por tlf desde el movil, debería de enviar RING a cada tono de llama........

pues ni eso, no recibo nada, de nada, ya que hay un led que parpadea cuando recibe algo.

El caso es que he realizado un programa para capturar lo que tecleo en hyperterminal, que lo lee el pic y lo devuelve nuevamente y va bien.

Esto es de lo mas raro que he visto,

he probado a poner otras velocidades, 2400,4800,9600... pero todo igual...

Haré lo del doble puerto a ver que veo...

"Carmelo J. Morales Muñoz" escribió en el mensaje news:Dwbgd.167075$ snipped-for-privacy@news-reader.eresmas.com...

nada

datos

funciona

es

nada

lo

He

Reply to
Carmelo J. Morales Muñoz

Eso creo recordar que hay que activarlo con un comando AT. Además, si abres el Audiotel, el modem de Siemens que incorpora (creo que es un TC35), tiene una patilla que se pone a nivel alto cuando recibe tono de llamada, puedes usarla también, para despertar al PIC.

Reply to
KT88
¡Hola!

Supongo que debe de estar activado, porque conectando el modem al hyperterminal, cuando llamo a éste aparece RING

Tengo una sospecha, que el modem no esté configurado o no detecte la velocidad de transmisión a la que le habla el pic, y que con el terminal si la detecte bien.

Voy a mirar la documentación a ver si existe algún comando mediante el cual pueda indicar directamente la velocidad del puerto, no la de conexión, es decir, poder decirle que en db9 vaya a 9600 sin que tenga que averiguarlo él, ahi puede estar el problema.. ¿que opinas?.

bye!

Reply to
Carmelo J. Morales Muñoz

¡ quieto parao !

Los comandos que se envian al modem se envian con *solo* el retorno de carro, es decir el asci 13, representado por "\r" en C, no añadas el avance de linea "\n", porque eso puede abortar la ejeccion del comando.

El particular con ATDT, este comando tarda un rato en ejecutarse, si se reciebe mientras tanto un avance de linea o cualquier otro caracter, se corta la llamada.

Reply to
Nolo Pongo

Es posible que tengas además un problema físico de conexion, el problema puede estar en tantos sitios que así a ojo es deficil de decir lo que pasa.

El RING en principio debe aparecer siempre, no se activa de ninguna manera, está activado siempre.

De todas formas es conveniente que nada más arrancar el programa mandes un "AT\r" y compruebes que devuelve "OK" (o "AT\r\r\nOK\r\n"), el modem ha de saber de algun modo cual es la velocidad del interface serie, y generalmente se autoconfiguran al recibir un comando AT.

Tampoco estaria mal saber que clase de modem es, es un modem fijo, un gsm, lleva interface serie, o un conector propietario, etc....

Si puedes conectar el modem al PC y prtacticar un poco antes de conectarlo el PIC, mucho mejor.

Reply to
Nolo Pongo

Bueno la velocidad no la detecta automaticamente el modem, deben de coincidir en ambos dispositivos, además de la configuración de la trama.

No se que entiendes por velocidad del puerto y por velocidad de la conexión, yo creo que es lo mismo. Si configuras ambos a 9600, con la misma configuración del bit de start, stop, etc... deben entenderse sin problemas.

De todas formas, prueba lo que te dije, verás de inmediato, si el modem rechaza el comando AT, que le envía el PIC. Y en caso de rechazarlo, puede darte una pista del ERROR (no siempre).

Reply to
KT88

RooT expuso:

Sí, ya sé que va al revés, pero para probar que no quede. Mejor hubiera puesto la \r sola en vez de ponerlo al revés, así:

Reply to
Jeroni Paul

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.