Buenas tardes;
Estoy realizando la programacion de un PIC18F para comunicarme con un modem WAVECOM para el envio y recepcion de SMS. El PIC tiene una alimentacion de 3.3V, por lo que uso el MAX3232 para la conversion de niveles TTL a RS232, y enviar la informacion del PIC al modem mediante un puerto DB9. Todos las lineas RX y TX estan bien conectadas, ya que envio y recibo informacion.
El problema esta en que a la salida del MAX3232 consigo unos niveles de +6V a -5.6V, que estan dentro del estandar RS232. He verificado los niveles en el puerto COM1 del ordenador y da -10.8V a 11V.
Durante las pruebas, si conecto el modem al ordenador, y utilizo hyperterminal para comunicarme con el, todo funciona correcto. Luego el modem no esta dañado.
Si conecto el PIC al ordenador, y envio un simple putc(0xAA), en hyperterminal no se recibe nada, sin embargo se envian datos, ya que en el osciloscopio aparece la forma de onda correspondiente, pero con los citados niveles (+6V a -5.6V).
Si intento enviar algo al PIC mediante hyperterminal, utilizando la interrupcion de UART, en el momento que toco una tecla, entro en la interrupcion, sin embargo no recibo la informacion de la tecla pulsada, solo recibo 1111 1111 (255).
He monitorizado el puerto tambien con la herramienta que trae el PIC C compiler de CCS, obteniendo en la transmision de datos PIC-PC: 00 00 00 00, perfectamente sincronizado con la forma de onda del osciloscopio, pero no interpretando la informacion. En esta herramienta, la luz RX se pone verde cada vez que se reciben los datos, indicando que si extiste comunicacion por la linea RX.
Por supuesto, al no funcionarme las pruebas con el ordenador, no me funciona la comunicacion PIC-modem.
He probado a cruzar las lineas RX y TX en la comunicacion con el ordenador sin ningun resultado. Por supuesto la configuracion en la transmision de los datos es (que deberia ser correcta):
9600 bps
Sin paridad
8 bits
1 bit parada
sin control de flujo
Interpreto que es una especie de problema de mala codificacion o de probelmas con los niveles de tension, pero no consigo dar con el problema y por lo tanto tampoco con la solucion, y acudo a este foro activamente por primera vez, ya que sin ser usuario antes he aprendido y solucionado muchos errores gracias a vosotros.
Comentar que los C electroliticos que lleva el MAX son de 1uF, que segun el datasheet de MAXIM, estan dentro de los rangos (aunque recomienda 0.1uF, pero no creo que este sea el problema)
¿Que puedo estar haciendo mal?
Gracias por vuestro tiempo.