Autor Tema: GP8F-W5 (R2-W2-A5) AYUDA  (Leído 3468 veces)

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

Desconectado POLIGRAFO

  • PIC10
  • *
  • Mensajes: 5
    • Automatismos Passera
GP8F-W5 (R2-W2-A5) AYUDA
« en: 25 de Agosto de 2008, 14:15:21 »
HOLA AMIGOS. ES MI PRIMERA VEZ CREANDO UN TEMA, NO LO HABÍA NECESITADO PORQUE INTERNET HABÍA SIDO MUY GENEROSO CONMIGO. PERO AGOTADO EL RECURSO GOOGLE...  :-) ...AQUÍ ME TIENEN ESPERANDO ALGUNA LÁGRIMA DE SUS SABIDURÍAS...

EL TEMA ES ESTE: ME DECIDÍ HACER UN SISTEMA DE CONTROL DE ACCESO RFID DE 125KHZ, HABIENDO LEIDO ATENTAMENTE LA NOTA DE APLICACIÓN DE CIKA, CON EL 12F629, TOMÉ EL BARCO SIN MAS QUE UN MODERADO CONOCIMIENTO DE ASM EN LA MALETA. TRAS PEDIR EN CIKA EL GP8F-R2, ME MANDARON EL GP8F-W5, Y SUPONIENDO QUE ERAN COMPATIBLES ME DI CUENTA DE ALGUNAS DIFERENCIAS QUE NO LOGRO DILUCIDAR COMPLETAMENTE.

 :-/ HE AQUÍ EL MOTIVO DE ESTE APARTADO.

PARECE SER QUE EL W5 FUNCIONA CON 5V Y NO CON 12 COMO EL R2. CONEXIONÉ TODO SEGÚN LA NOTA DE APLICACIÓN, PERO A 5V PORQUE A 12V NO ANDA, Y LO ÚNICO QUE RECIBO CON CADENAS DE CEROS LÓGICOS(+5V), DESPUES DEL START, A 9600BPS.

¿SERÁ QUE LA "W" SIGNIFICA "WRITE"?

LO ÚNICO QUE CONSEGUÍ, Y EN TAIWANÉS (O CHINO, DE CUALQUIER MANERA NO ME QUEDA CLARO), ES LA IMAGEN QUE ADJUNTO AQUÍ ABAJO (EL DATASHEET ME LO DEBEN)

SI ALGUIEN FUERA TAN AMABLE DE ACLARARME UN POCO ESTE TEMA ESTARÉ MAS QUE AGRADECIDO.

SALUDO AFECTUOSO

LUCAS
« Última modificación: 25 de Agosto de 2008, 18:20:11 por POLIGRAFO »

Desconectado POLIGRAFO

  • PIC10
  • *
  • Mensajes: 5
    • Automatismos Passera
Re: GP8F-W5 (R2-W2-A5) AYUDA
« Respuesta #1 en: 13 de Septiembre de 2008, 20:51:42 »
HE AQUÍ EL DATASHEET

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4862
Re: GP8F-W5 (R2-W2-A5) AYUDA
« Respuesta #2 en: 13 de Septiembre de 2008, 21:13:55 »
Si ya le metiste 12 voltio tiralo, 12 voltio seria si estuviera el Regulador pero si no lo tiene son 5Voltio.
Saludo

Desconectado HEMO

  • PIC10
  • *
  • Mensajes: 7
    • Sistemas Embebidos
Re: GP8F-W5 (R2-W2-A5) AYUDA
« Respuesta #3 en: 24 de Septiembre de 2008, 16:20:57 »
HOLA AMIGOS. ES MI PRIMERA VEZ CREANDO UN TEMA, NO LO HABÍA NECESITADO PORQUE INTERNET HABÍA SIDO MUY GENEROSO CONMIGO. PERO AGOTADO EL RECURSO GOOGLE...  :-) ...AQUÍ ME TIENEN ESPERANDO ALGUNA LÁGRIMA DE SUS SABIDURÍAS...

EL TEMA ES ESTE: ME DECIDÍ HACER UN SISTEMA DE CONTROL DE ACCESO RFID DE 125KHZ, HABIENDO LEIDO ATENTAMENTE LA NOTA DE APLICACIÓN DE CIKA, CON EL 12F629, TOMÉ EL BARCO SIN MAS QUE UN MODERADO CONOCIMIENTO DE ASM EN LA MALETA. TRAS PEDIR EN CIKA EL GP8F-R2, ME MANDARON EL GP8F-W5, Y SUPONIENDO QUE ERAN COMPATIBLES ME DI CUENTA DE ALGUNAS DIFERENCIAS QUE NO LOGRO DILUCIDAR COMPLETAMENTE.

 :-/ HE AQUÍ EL MOTIVO DE ESTE APARTADO.

PARECE SER QUE EL W5 FUNCIONA CON 5V Y NO CON 12 COMO EL R2. CONEXIONÉ TODO SEGÚN LA NOTA DE APLICACIÓN, PERO A 5V PORQUE A 12V NO ANDA, Y LO ÚNICO QUE RECIBO CON CADENAS DE CEROS LÓGICOS(+5V), DESPUES DEL START, A 9600BPS.

¿SERÁ QUE LA "W" SIGNIFICA "WRITE"?

LO ÚNICO QUE CONSEGUÍ, Y EN TAIWANÉS (O CHINO, DE CUALQUIER MANERA NO ME QUEDA CLARO), ES LA IMAGEN QUE ADJUNTO AQUÍ ABAJO (EL DATASHEET ME LO DEBEN)

SI ALGUIEN FUERA TAN AMABLE DE ACLARARME UN POCO ESTE TEMA ESTARÉ MAS QUE AGRADECIDO.

SALUDO AFECTUOSO

LUCAS

Lucas, como andas, la W es de Wiegand 26, es el protocolo electrico que usa a la salida, es un estandar en los lectores de tags para control de accesos, basicamente se utilizan dos pines, uno envia la secuencia de "1" logicos y por el otro el tren de pulsos correspondientes a los "0" logicos que conforman el numero del tag o tarjeta, en total tendrás 26 bits.  Ah, si es de 5V y no es a 9600bps,  las lineas estan a nivel alto y bajan a 0 indicando el tipo de bit logico que te mencione antes,  tenes que hacer la rutina en el micro para que detecte los pulsos bajos (en dos pines) y según baje uno u otro pin tenes "1" o "0", los encadenas como entraron y descartas el primer bit y el último que son de paridad, te quedan 24 bits,  8 bits altos del fabricante y 16 bits bajos del numero de tag o tarjeta.
Espero que te ayude y no confunda

Abajo te pego un código en "C" para HI-TECH que uso para leer esos lectores:
//**********************************************************************
// CARD TEST
#define CARDDETECT  RB0
#define DATA0       RB1
#define DATA1       RB2

volatile bank2 WORD gwUserid;
bit   ACCESO;
bit   even;
bit   odd;
bit   indata;
volatile bank1 BYTE  bcount;
volatile bank1 BYTE  gbFacilitycode; // not used
#define PRO_TIMEOUT 0xFFFF

#define PRO_CODLENG 26
#define PRO_TOFAC    9
#define PRO_PAR     13


bit P_SER_IN(void)
{
WORD  x;
static bit res;
//    di();           // disable all interrupts
    odd=0;
    even=0;
    bcount=0;
    res = 0;
   gbFacilitycode = 0;
   gwUserid = 0;
     x=100;
     while( --x ) 
                CLRWDT();             
    do { // read data
            indata=(DATA1)?0:1;           
       // BITCELL TIMEOUT
         x=PRO_TIMEOUT;
         while( --x )  {
                CLRWDT();             
            if( DATA1&&DATA0 ) break;
         }
         if(x==0) goto fin;

               switch(bcount)
               {
                case 0:
                case (PRO_CODLENG-1):
                break;           
                default:
                    if( bcount < PRO_TOFAC ){
                      if( indata )
                       gbFacilitycode=(gbFacilitycode<<1)|0x01;
                      else
                       gbFacilitycode=(gbFacilitycode<<1)&0xFE;             
                    } else {
                      if(indata)
                       gwUserid=(gwUserid<<1)|0x0001;
                      else 
                       gwUserid=(gwUserid<<1)&0xFFFE;
                    }     
               } // switch
         // Parity check
         if( bcount < PRO_PAR ) // even
            even^=indata;
         else // odd         
            odd^=indata;

         if( ++bcount > (PRO_CODLENG-1) ) break;
       // SPACE TIMEOUT
         x=PRO_TIMEOUT;
         while( --x )  {
                CLRWDT();             
              if( !DATA1 || !DATA0 ) break;
    }
         if(x==0) goto fin;
      }while( bcount < PRO_CODLENG );
#ifdef WPAR 
  if( even ) goto fin;// even fail
  if( !odd ) goto fin;// odd fail
#endif
  res = 1;
fin: 
     x=100;
     while( --x )  {
                CLRWDT();             
              if( !DATA1 || !DATA0 ) x=100;
    }
//  ei();           
  return res;
} // P_SER_IN     
//**********************************************************************

Saludos y suerte con el proyecto.

« Última modificación: 24 de Septiembre de 2008, 16:23:47 por HEMO »