PicManía by RedRaven
 

Búsqueda personalizada

 

PROYECTOS : AUX RS-232 x 2

 

 

Doble circuito auxiliar de comunicaciones RS232 mediante el MAX232 (Rediseñado)

 
Descripción:
 

   Al igual que en nuestro anterior AUX RS232 este circuito auxiliar se encarga de las comunicaciones de nuestro PIC con el PC. En realidad no es mas que un conversor de voltaje entre las salidas TX y RX del PIC que nos dan ceros y unos con 0V y 5V y el estándar de RS-232 que hace la misma modulación pero con +12V y -12V. Esa conversión es de la que se encarga el circuito integrado MAX232 del fabricante Maxim

   En este nuevo diseño vamos a utilizar los dos canales que implementa el MAX232, pudiendo utilizarlos indistintamente. Vamos a colocarle dos juegos de clemas Tx-Rx para poder inyectarle dos juegos de señales TTL y sus correspondiente pareja de conectores DB9 para conectarlos con los puertos COM de uno o dos PC's.

   El incluirle los LEDS para monitorizar las transmisiones TTL se basa en una idea original de Daniel González (Radon)

 

 Para hacerla compatible con nuestra RRBOARD2 ... Para ello necesitamos implementar sólo dos ideas base:
 
  • Tamaño de la placa PCB: que vamos a elegir la de QUARTER_EUROBOARD de 50 x 80 mm, con los taladros de fijación a 5 mm de sus bordes. La RRBOARD2 va montada sobre una HALF_EUROBOARD de 80 x 100 mm. (ver Recursos para el PCB Eagle Layout Editor.)
     
  • Conector de Cable Plano CON-ML-10 de 10 pines con el mismo pinout del puerto PORTC de la RRBOARD2, aunque solo utilizando de todos ellos los correspondientes a la alimentación y los PORTC6 y PORTC7 que son Tx y Rx respectivamente de los PIC's 16F877 y/o 18F4550.

 

Recursos:
 
  • Datasheet del MAX232 (PDF 637 Kb)
   Tres interesantes Application Notes :

 

Esquema:
 


Circuito impreso:
 

 

 

Pruebas de conexión simple a la RRBOARD2 :
 


 

 

 


 

Rediseño:
 
Conectado el Canal 2 a los pines del conector para Cable Plano 10 pines, con dos Jumpers para poder conectarlo / desconectarlo del circuito (Necesario para poder utilizar dos canales serie desde el PIC, uno por Hardware mediante la USART y otro por software emulando la misma).
 

 

 
 
 
 

 

Pruebas de conexión de doble canal:
 
  • Y .. ¿como no? ...
  • hace unos días contesté "teóricamente" a una pregunta que ahora estoy dispuesto a contestar "prácticamente", tanto en hardware como en software ...
  • y que es una Doble Conexión entre el PIC y el PC:
  • He escrito un pequeño programa que abre dos "streams" serie distintos. Uno de ellos, el STANDARD, hace uso de la USART del PIC, y el otro, el ESPECIAL, la simula por software.
  • Como podéis comprobar este programa escribe en ambos streams tras el Reset, la interrupción RDA que solo "escucha" el stream STANDARD se encarga de volcar sobre el ESPECIAL el carácter ASCII siguiente al recibido.
El programa es:
 
#include <18f4550.h>
#fuses HS,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOPBADEN, NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7,stream=STANDARD)
#use rs232(baud=9600, xmit=PIN_D0,stream=ESPECIAL)

char Keypress=0x00;

#int_rda
void serial_isr() {
  Keypress=0x00;
  if(kbhit()){
    Keypress=getc();
    if(Keypress!=0x00){
      fputc(keypress ,STANDARD);
      fputc(keypress+1,ESPECIAL);
      keypress=0x00;
    }
  }
}

void main(){

  setup_adc_ports(NO_ANALOGS);
  setup_adc(ADC_OFF);
  setup_spi(FALSE);
  setup_psp(PSP_DISABLED);
  setup_counters(RTCC_INTERNAL,RTCC_DIV_2);
  setup_timer_0(RTCC_OFF);
  setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);
  setup_timer_2(T2_DISABLED,0,1);
  setup_timer_3(T3_DISABLED);
  setup_comparator(NC_NC_NC_NC);
  setup_vref(FALSE);
  port_b_pullups(FALSE);

  set_tris_c(0b10000000);
  set_tris_e(0b00010000);

  fprintf(STANDARD,"\r\n18F4550 in RRBOARAD2\r\n");
  fprintf(STANDARD,"¡I'm alive! in STANDAR Channel\r\n\r\n");

  fprintf(ESPECIAL,"\r\n18F4550 in RRBOARAD2\r\n");
  fprintf(ESPECIAL,"¡I'm alive! in SPECIAL Channel\r\n\r\n");

  enable_interrupts(int_rda);
  enable_interrupts(global);

  while(TRUE) {

  }
}
 
  • El hardware lo he conectado mediante la recién nacida "RS232 Doble Canal". Del puerto PORTC de la RRBOARD2 conecto la alimentación y RC6 y RC7 al Canal 1, y el PORTD mediante dos hilos conecto RD0 y RD1 al Canal 2.
     


 

El Canal 1 lo conecto al COM1 del PC y el Canal 2 al COM3 del mismo. En éste abro dos instancias del Monitor Serie del CCS C, el Siow.exe, monitorizando estos dos puertos serie del PC.
 
Y los resultados :
 

 
 
 
PCB's en PDF Listos para imprimir.

 

Esta página se modificó el 27/12/2008


Esta página usa la letra Ñ

Nota pública importante sobre las consultas al Webmaster de PicManía.


Sugerencias a Picmanía... (que serán leídas pero seguramente no podrán ser contestadas)

Esta página pertenece al grupo de páginas de Diego RedRaven

 

 



Nota: Esta página Web esta repleta de imágenes, textos, logotipos y demás material extraídos de los mas variados medios de los que no soy ni autor ni depositario de los correspondientes derechos de autor, uso y/o reproducción. Si Ud. es depositario de dichos derechos y desea que el material correspondiente sea eliminado de esta Web no dude en ponerse en contacto conmigo mediante e-mail y será inmediatamente retirado. Gracias.
 
Visitas
Totales : 17489 Hoy: 1 Activas: 1 Vistas: 17489

Esta página fue modificada el 07-08-2010 15:42:21

           
 DmSoft WAMP Escribir Unreal