Respuesta extraña del Hiperterminal

Hola amigos...
Mi problema es el siguiente. Acabo de simular un ejemplo del libro Compilador C CCs de la pag 188 donde envia datos del PIC al PC y al reves por puerto serie. La idea es practicar con la comunicacion 232. En la simulacion la respuesta del Proteus y el Hiperterminal es excelente. Pero en la practica la respuesta del Hiperterminal es un desastre. Les comento q realice una revision minuciosa de todo el cableado, alimentacion, componenetes hasta remplace el max232 por otro y la respuesta es siempre la misma, en un principio pense que el problema era en el pic asi que lo retire de la placa y sigue saliendo lo mismo... necesito consejos. Adjunto una imagen del hiperterminal.
Saludos
 

Adjuntos

  • problema.JPG
    problema.JPG
    131.8 KB · Visitas: 38
Supongo que has comprobado en la conexión del hyperterminal que la velocidad y el resto de configuración sea la adecuada, no?
 
todo... en un principio lo prove con un USB converter 232 y pense que el adaptador estaba mal asi que hice la prueva con una vieja pentium4 a su puerto COM1 y salio lo mismo
 
puede ser que la velocidad de comunicacion no este bien configurada o que no estes utilizando el crystal adecuado... que ejemplo es el que estas revisando??
 
Aqui el codigo...

#include <16f877A.h>
#FUSES XT,NOWDT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
#include <LCD.C>

char ch;
#int_RDA //RS232 dato recibido; atiende interrupcion
void serial_isr() {
ch=getchar();//{}
puts("recibido");
}


void main() {
lcd_init();
enable_interrupts(global);
enable_interrupts(int_rda);
while(1) {
printf(lcd_putc, "\n\r Valor %c",ch);

}
}
 

Adjuntos

  • simulacion1.JPG
    simulacion1.JPG
    76.5 KB · Visitas: 12
Buenos días karlitos3000.
Para salir de dudas y descartar dónde está el error haz lo siguiente.
En el conector DB9 haz un puente entre los pines 2 y 3 (TX-RX) ahora todo lo que teclees por el teclado tiene que aparaecer en el monitor.
Los símbolos que te están apareciendo es lo clásico cuando hay algo mal configurado como veliocidad de transmisión, paridad, etc.

Sal U2.
 
Última edición:
Y la inversión de datos del MAX232 que ya se ha comentado mucho por aqui.

En realidad, el MAX232 no invierte nada, esa cuestión viene dada por una interpretación erronea de los niveles lógicos.
La norma RS232 establece que un "1" es una tensión negativa de hasta -15V y un "0" es una tensión positiva de hasta +15v.
El MAX232 lo que hace es pasar estos niveles a TTL, esto da como resultado que las tensiones negativas las pasa a "1" TTL y las positivas las pasa a "0" TTL.
Otra cuestión, que se hace en ocasiones, es atacar al Puerto Serie del PC con niveles TTL, si ponemos "1" TTL el Puerto lo interpreta como un "0" y si ponemos un "0" TTL el Puerto lo interpreta como un "1" en este caso si que podemos hablar de inversión de niveles.

Sal U2
 
Bueno amigos... luego de mucho leer he aquí la razon. Mi cable db9 no tenía tierra y leí por ahí que se necesita conectar por que es la referencia de las tensiones segun la norma RS232 asi que en mi vieja pentium4 el circuito funciono... Pero el adaptador USB-RS232 sigue lanzando el mismo problema. En un principio noté que algunos de los cables db9 hembra tienen el GND conectado al cuerpo de metal del mismo conector y no así al pin5 que es de GND segun la norma... cosa extraña porque el adaptador USB-232 macho no conecta a la carcasa de metal su GND. Solde un cable que una tierra entre el circuito y la carcasa en el adaptador y sigue saliendo el mismo problema.
Bueno, seguiré haciendo pruevas y encontre algunas cosas interesantes sobre modificar el circuito interno que espero mostrarcelos en otro tema... he aqui una pagina

http://www.endless-sphere.com/forums/viewtopic.php?f=2&t=8317&start=32

GRACIAS.... :apreton:
 
Atrás
Arriba