Autor Tema: Ayuda con MAX232 y PIC 16F84  (Leído 6182 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado Ric555

  • PIC10
  • *
  • Mensajes: 37
Ayuda con MAX232 y PIC 16F84
« en: 13 de Marzo de 2004, 14:48:00 »
Hola a todos/as,
necesito conectar un 16f84 con el PC para ello le añado un max232 el caso es que necesito un esquema muy sencillo de conexión del max232. He probado con varios en donde la alimentación del max no la saco del PC y sólo obtengo basura, sin embargo con otro esquema que he probado en el cual la alimentación sí la saca del PC, obtengo lo que le envía el pic.

Sabeis porque puede ocurrir esto. He probado con estos dos esquemas
http://www.iearobotics.com/proyectos/cuadernos/ct1/ct1.html


En esta otra página
http://inicia.es/de/pmaicas/goofy/capc.htm
el esquema de arriba no me da ningún problema pero el de abajo obtengo lo que os comento antes de basura en el PC.

Muchas gracias

Desconectado pacalaconcurso

  • PIC24F
  • *****
  • Mensajes: 718
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #1 en: 13 de Marzo de 2004, 17:32:00 »
la conexion del max232 no deberia ser ningun problema.
puedes guiarte por cualquiera de los esquema que tengo en mi web, cambiando el micro por el 16f84.

saludos

Desconectado Ric555

  • PIC10
  • *
  • Mensajes: 37
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #2 en: 24 de Marzo de 2004, 16:33:00 »
Gracias Pacalaconcurso, pero me sigue sin funcionar.
El tema es que .:

Cuando comunico 2 pic entre ellos sin nigún Max232 me va bien tanto envía como reciben.

Cuando comunico 1 pic y el PC con el Max232 con el esquema en el que la corriente se saca del PC, resulta que en el PC si se recibe lo que envía el PIC, pero cuando trato de enviar algo al PIC, no funciona.

lo que no me queda muy claro de un esque que he visto en tu página son las conexiones al pc, la (1, 3 y 4) en vez de lo que he visto en otros esquemas (5, 3 y 2).

¿Algún consejo?, gracias

Desconectado pacalaconcurso

  • PIC24F
  • *****
  • Mensajes: 718
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #3 en: 25 de Marzo de 2004, 10:01:00 »
lo de la numeracion depende si el DB9 es macho o hembra aunque es cierto que puede dar lugar a confusiones.
en la configuracion del pc usas 8,n,1 ???
es raro eso que cuentas.

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #4 en: 25 de Marzo de 2004, 12:41:00 »
Hola

Yo tambien tuve varios problemas de comunicacion antes de que pudiera hacer nada con el MAX232 , el PIC16F84A y mi PC...

Si de SEROUT se trata el problema, comprueba minuciosamente, que los parametros son totalmente iguales en los dos dispositivos, y que si pones MAX232 en medio, has puesto en NON-INVERTED por parte del PIC.  Asimismo, 8N1 deberia de ser la configuracion.

si el PIC está en 2400.8N1 , el puerto COM tambien debes de configurarlo asi. Yo la primera vez recibia muchisima basura en vez de texto, y despues de consultarlo en el foro, descubri que el problema era, que si hay un MAX232, la entrada es NON-INVERTED. Si usas un circuito alternativo de conversion (por la red circulan algunos en los que usas apenas 6 componentes) supongo que sera INVERTED.


saludos

Desconectado Ric555

  • PIC10
  • *
  • Mensajes: 37
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #5 en: 25 de Marzo de 2004, 16:57:00 »
Muchas gracias por las respuestas, pero me temo que continúo como antes. La configuración es 9600,8,N,1.

He probado con otra alternativa al MAX232, el esquema es el de la página de PABLIN, http://www.pablin.com.ar/electron/circuito/mc/ttl232/index.htm

que está formado por 2 transistores un diodo y unas cuantas resistencias.  Pues bien. Conectando este esquema, programando el pic con Invert. La trasmisión no funciona, pero si la Recepción.

Puede que sea algo del programa??. Os mando el codigo que meto en el pic está hecho con el CSS

#include <16F84A.h>
#fuses XT, NOWDT, NOPROTECT
#use delay(clock=4000000)
#define Tx   PIN_B4   // PIN de Transmisión
#define Rx   PIN_B5   // PIN de Recepción

#use rs232(baud=9600, xmit=Tx, rcv=Rx,INVERT)

SET_TRIS_B(0b01101111) ;      // PIN B4 Tx Salida B5 Rx Entrada
SET_TRIS_A(0x1F) ;            
PORT_B_PULLUPS(TRUE);
SETUP_COUNTERS(RTCC_INTERNAL,RTCC_DIV_2);

byte ENTRADA;

void S_ENVIAR (byte a){
putc (a);
delay_ms (100);
}

void S_ENCENDER_LED () {
   output_high(PIN_B1);
   delay_ms (500);
   output_low(PIN_B1);
   delay_ms (500);
}


VOID MAIN() {
Inicio:
ENTRADA = " ";
if (!input (PIN_A1)){  // Si se pulsa el A1
   S_ENVIAR (65);      // Se envia la letra "A"
}

if (kbhit()){ENTRADA = getc();}
if (ENTRADA=="B"){
   S_ENCENDER_LED () ;
}

goto Inicio;
}


Resumiendo.:

Con MAX232 y con INVERT -> Transmisión PIC SÍ, Recepción PIC NO
Con esquema de transistores y sin INVERT -> Transmisión PIC NO, Recepción PIC SÍ


Alguna sugerencia ?

Muchas gracias


Desconectado Ric555

  • PIC10
  • *
  • Mensajes: 37
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #6 en: 26 de Marzo de 2004, 17:32:00 »
Después de hacer más pruebas, he obtenido la siguiente conclusión.

Usando una velocidad de 2400 y quitando el INVERT del programa,el PIC envia y recibe sin problemas.  
Al final uso el Max232 y cableo el DB9 del PC de la siguiente forma Tx(3), Rx(2) Gnd(5), uniendo además (1-4-6) y (7-8).

Ahora el problema me surge, porque mi aplicación del PC está hecha en Visual Basic 6 y las pruebas las he hecho con un programa de Ms-dos. Con el programa de MS-dos, sin problemas, pero con la aplicación de visual Sólo me envía, no recibe.

Sin embargo a 9600 y metiendo el Invert la aplicación visual sí recibe, pero no me envía.

¿alguna sugerencia con el control MsComm de visual?

Muchas gracias

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #7 en: 27 de Marzo de 2004, 10:02:00 »
Hola, yo comunico el pic con la pc, sin problemas, justamente ayer termine una aplicacion, donde la pc envia informacion,y consulta al micro, y luego este le responde....  sin el max232....

yo empleo 1200 de velocidad, ya que no realizo control de errores...

debes tener en cuenta, que el VB controla el puerto, con la norma 232... pero el pic, esta trabajando con nivel de 0-5 voltios...

es decir, un uno para rs232  es una tension negativa, que antiguamente era de -15 voltios... (ahora ya no....)
y un cero era +15 voltios...

y justamente digo era, porque con 5 voltios reconoce como un cero... y con cero voltios reconoce como uno...

asi que si no empleas el max, tendras que invertir el codigo del pic....

espero se entienda

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado Ric555

  • PIC10
  • *
  • Mensajes: 37
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #8 en: 27 de Marzo de 2004, 11:01:00 »
Hola Todopic,
Entonces sino usas el Max232, como conectas el Pic al Pc, ¿con alguna resistencia?, o directamente a los pines 2 y 3 del Db9

Muchas gracias

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #9 en: 28 de Marzo de 2004, 07:39:00 »
Hola

Yo tengo un programa para la comunicacion RS232 hecho con VB6.
Pongo un timer con un intervalo relativamente bajo , y cada vez que se cumple timer1.interval ,  albergo mscomm1.input en una variable. Y esta variable la apendizo a un textbox, así veo cómo llega la información. En mi progrma el interval es de 41, pero puedes poner menos; yo uso 2400 8N1, por ello me parece suficiente.
Cuando universalice el programa RS232 (pues ahora mismo sirve solo para una configuracion concreta) lo colgaré por el foro. Le pienso poner soporte para PICs.

saludos!

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #10 en: 28 de Marzo de 2004, 14:20:00 »
Hola, para transmitir, empleo una R de 1k, y para recibir una de 10k  y me funciona muy bien


Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado Ric555

  • PIC10
  • *
  • Mensajes: 37
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #11 en: 28 de Marzo de 2004, 14:33:00 »
gracias manex, por la información.
El problema con Vb6 son los siguientes.

Si uso una configuracion de max232 donde lo alimento con el PC, a 9600,n,8,1 me funciona el enviar desde el Pic, pero no el recibir. en el Pic pongo el INVERT


Usando una configuración de Max con alimentación externa, a 9600 no funciona. A 2400 y 1200 quitando el invert sólo me funciona el recibir, es decir al contrario que en el caso anterior.

Te mando los trozos de codigo de la aplicación de Vb en donde uso comunicaciones

AL ABRIR LA APLICACIONES
MSComm1.CommPort = "1"
MSComm1.Settings = "1200,N,8,1"
MSComm1.PortOpen = True
MSComm1.InBufferCount = 0

CADA VEZ QUE LE ENTRA ALGO AL PC
Private Sub MSComm1_OnComm()
Sleep (10)
If MSComm1.InBufferCount > 0 Then
    Entrada = MSComm1.Input
    Call ENVIAR
    Entrada = ""
End If
End Sub

BOTON DE ENVIAR
Private Sub Command3_Click()
Sleep (10)
MSComm1.Output = "B"
Text1.SetFocus
End Sub


Muchas gracias

Desconectado FirmSoft

  • PIC16
  • ***
  • Mensajes: 118
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #12 en: 08 de Febrero de 2005, 17:32:00 »
  Holas a todos, una pregunta de curioso.. le afecta en algo el valor del capacitor???.. algunos circuitos tienen 100 nf y otros 1uf... en el link de arriba encontre un circuito que dice 22uf, al final no entiendo ni se que poner :"( ... alguien puede darme una opinion o consejo?. Gracias!

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #13 en: 08 de Febrero de 2005, 20:17:00 »
El capacitor tiene algo q ver con la velocidad de trabajo del MAX232, creo q a mayor velocidad menor es el valor de los capacitores. Tenia una tabla por alli q especificaba el valor del capacitor en funcion de esa velocidad pero no se dond esta. Cuando la encuentre la publico.

Desconectado Ignite

  • PIC16
  • ***
  • Mensajes: 107
RE: Ayuda con MAX232 y PIC 16F84
« Respuesta #14 en: 09 de Febrero de 2005, 08:05:00 »
Si no recuerdo mal, en el datasheet lo comenta. Creo que era para estabilizar la tensión, ya que el chip tiene que duplicarla y tal..... nose como digo no me acuerdo muy bien.