Autor Tema: El 628 en salida serie con reloj interno  (Leído 1448 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado anpepla

  • PIC10
  • *
  • Mensajes: 11
El 628 en salida serie con reloj interno
« en: 11 de Noviembre de 2005, 01:07:00 »
Hola:
Hasta ahora todos mis proyectos e inventos han funcionado con cristal o con el oscilador en modo RC. Ahora necesito todas las patillas como I/O. No consigo comunicar a 9600, 8,N,1, utilizando el oscilador interno. ¿Alguien me podría decir cuales son las lineas en Pic Basic, mínimas para enviar un caracter?.
Yo utilizo lo siguiente:

Serout2 ,pin_salida,84,["1"]

¿Hay que poner alguna linea anterior para inicializar el pic? Habitualmente utilizo el 628 y el 819.
Muchas gracias

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: El 628 en salida serie con reloj interno
« Respuesta #1 en: 11 de Noviembre de 2005, 01:22:00 »
Hola:

Pues como se dijo en otro post a un compañero le habian comentado que no va bien la transmicion serie con el oscilador interno por lo que recomiendan utilizar uno externo... la verdad es que yo tampoco lo he provado...

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: El 628 en salida serie con reloj interno
« Respuesta #2 en: 12 de Noviembre de 2005, 14:10:00 »
Yo estoy usando el 16F628A con salida serie, oscilador interno y master reset interno.

Las comunicaciones a 9600. recibo 3 caracteres por la puerta serie y contesto con uno cada 50 milisegundos aproximadamente. Todo esto va a una red de 50,  a 100 nodos rs485 y me funciona de vicio (muy bien). Hay instalados unas 5000 unidades y van bien las comunicaciones.

Puedes tener problema si transmites cadenas largas por la puerta serie opr la inestabilidad del oscilador, pero si transmites pocos caracteres no tendrás problemas.

Mis setings en el programa son estos:

"***************************************
"*          FUSIBLES                   *
"***************************************

   @ DEVICE pic16F628, INTRC_OSC_NOCLKOUT    "Reloj interno solo   
   @ DEVICE pic16F628, WDT_OFF    " Watchdog Timer desconectado
   @ DEVICE pic16F628, PWRT_ON  " Power-On Timer conectado
   @ DEVICE pic16F628, BOD_ON   " Brown-Out Detect conectado
   @ DEVICE pic16F628, MCLR_OFF " Master Clear Externo desconectado
   @ DEVICE pic16F628, LVP_OFF  " Low-Voltage Programming desconectado
   @ DEVICE pic16F628, CPD_OFF  " Data Memory Code Protect desconectado
   @ DEVICE pic16F628, PROTECT_ON  " Program Code Protection conectado






"*****************************
"*        DEFINE             *
"*****************************

DEFINE    OSC      4      " Ajuste de la frecuencia del oscilador en 4MHz
DEFINE    SER2_BITS   8   "Ajusto la transmision a 8 bits sin paridad
DEFINE  NO_CLRWDT 1 "Obligo a que no ponga CLRWD automatico
define  CHAR_PACING 1000 "Tiempo entre caracteres de la puerta serie 1ms



pintran     var     PORTB.2 "Pin de transmision serie
pinreci     VAR     PORTB.1 "Pin de recepcion serie

dato1       var     BYTE    "Almacena el 1er dato de la puerta serie
dato2       var     BYTE    "Almacena el 2o dato de la puerta serie
dato3       var     BYTE    "Almacena el 3er dato de la puerta serie


velocidad=84 "Ajusto la velocidad a 9600,N,8,1 modo verdadero
espera=95 "Tiempo de espera de recepcion 95 milisegundos



 serin2 pinreci,velocidad,espera,sigo,[dato1,dato2,dato3]


Espero que te sirva,

Saludos,
Ricky