Autor Tema: lectura-escritura de ibutton  (Leído 44426 veces)

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

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: lectura-escritura de ibutton
« Respuesta #30 en: 26 de Diciembre de 2006, 20:47:56 »
Los 48-bits son los que te hacen falta para identificar cada dispositivo, y con ese dato crear la tabla. Aunque con los primeros 8-bits, que son del código de la familia, puedes hacer ya la primera selección del producto.


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado ascii

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 131
Re: lectura-escritura de ibutton
« Respuesta #31 en: 26 de Diciembre de 2006, 20:55:24 »
Una cosa que no nombre es que mediante la interfaz que adjunte puedes separar la parte rx y tx logrando hacer entre comillas mas facil la parte de programacion que utilizando una resistencia push up.

Desconectado homfly

  • PIC12
  • **
  • Mensajes: 77
Re: lectura-escritura de ibutton
« Respuesta #32 en: 29 de Diciembre de 2006, 07:53:04 »
por cierto, estoy viendo el datasheet y el esquema es un poco diferente. lo pongo aki. xk el que ha puesto ascii no lo encuentro  y varia ligeramente


Cual uso, el de ascii o este???

gracias
« Última modificación: 29 de Diciembre de 2006, 07:57:30 por homfly »

Desconectado ascii

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 131
Re: lectura-escritura de ibutton
« Respuesta #33 en: 29 de Diciembre de 2006, 15:40:21 »
El que subi esta 100% probado  :mrgreen:

Desconectado homfly

  • PIC12
  • **
  • Mensajes: 77
Re: lectura-escritura de ibutton
« Respuesta #34 en: 29 de Diciembre de 2006, 17:33:52 »
y otra cosa, donde compraste los componentes?Porque los mosfet y los diodos esos he preguntado en 2 tiendas de electronica en granada y ni los conocian. por internet hay samples o alguna tienda, por madrid??, a ver si me lo compra mi hermana

Q=2N7000

D=1N5232
« Última modificación: 29 de Diciembre de 2006, 19:24:14 por homfly »

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: lectura-escritura de ibutton
« Respuesta #35 en: 29 de Diciembre de 2006, 20:13:16 »
Para el diodo 1N5232
Para el transistor 2N7000

La búsqueda está en farnell

PD: Quizás en otras tiendas, los encuentres más baratos.


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado homfly

  • PIC12
  • **
  • Mensajes: 77
Re: lectura-escritura de ibutton
« Respuesta #36 en: 29 de Diciembre de 2006, 20:17:39 »
ya lo busque, pero uno de ellos no es de farnell porque no queda y:


El producto 4607144 se enviará directamente desde Newark InOne en EEUU, será entregado en 3 días laborables y tendrá un cargo adicional de 30 €. Si no desea este servicio, introduzca SERVICIO ESTÁNDAR NIO en "Comentarios Pedido" y el material se le entregará en 10 días laborables.

Gastarme 30E...manda cojones y lo de servicio estandar nio no lo encuentro.Nose si dandole a enviar ya acepto el envio y m meten los 30E. Voy a esperarme a ver si alguien mas me dice donde comprarlo

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: lectura-escritura de ibutton
« Respuesta #37 en: 29 de Diciembre de 2006, 20:28:43 »
Pues para eso está amidata
Diodo, no está el 1N5232, pero puedes usar alguno que se le parezca
Transistor 2N7000

Y en la red, hay varias empresas de componeentes electrónicas españolas que te pueden suministrar.


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado ascii

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 131
Re: lectura-escritura de ibutton
« Respuesta #38 en: 29 de Diciembre de 2006, 21:00:49 »
Ahi estamos mal yo soy de chile  :D

Desconectado homfly

  • PIC12
  • **
  • Mensajes: 77
Re: lectura-escritura de ibutton
« Respuesta #39 en: 01 de Enero de 2007, 02:38:04 »
De los 2 esquemas que tenia, el de duende_azul va perfecto en simulacion y es muy simple creo yo. y luego esta el otro que es de la pagina de ibutton-dallas con transistores 2n7000 y diodo zener que me pone waiting...pero no pone nº de serie, porque es?A pesar de que este segundo es mas completo, claro esta, va mas lento. deberian de funcionar los 2 igual, porque le meto el mismo programa, solo cambia el circuito y deberia funcionar igual. en el 2º sale mensaje, pero no sale leido el nº de serie¡¡¡

Y otra duda, los ibutton al programa habra que meterle los nº de serie tal cual estan 000010B1C4145A, asi viene en el ibutton fisico, pues ese nº habra que meter en el programa,no???ya esta en hexadecimal y los 48bits.

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: lectura-escritura de ibutton
« Respuesta #40 en: 02 de Enero de 2007, 08:45:08 »
El número de serie debe ser el que esté en cada i-buttons, sino no tendrá efecto.


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado homfly

  • PIC12
  • **
  • Mensajes: 77
Re: lectura-escritura de ibutton
« Respuesta #41 en: 02 de Enero de 2007, 22:13:44 »
Aqui pongo el codigo, aver los fallos que encontrais. el nº de serie y el primer vector de la matriz coinciden y deberia de salir un YES,  pero siempre sale yes¡¡ cambio el nº de serie de la simulacion para que salga NO¡ y tambien sale YES. me estan ayudando 3 personas mas y nada, que no sabemos donde falla:

#include <16f876.h>                          // Definiciones del PIC 16F876A
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT  // Los Fuses de siempre
#use delay(clock=4000000)                     // Oscilador a 4 Mhz
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)// RS232 Estándar

#include <touch.c>

void main() {
   char buffer[8];

   int j,k,iguales=0,i;
 char tabla[4][6]={{0x00,0x00,0x87,0x65,0x43,0x21},{0x00,0x00,0xEF,0xFF,0xFF,0xFA},{0x00,0x00,0xDF,0xFF,0xFF,0xFA},{0x00,0x00,0xCF,0xFF,0xFF,0xFA}};


   printf("\r\nibutton...\r\n");
   while (TRUE) {
     while(!touch_present()) ;
     delay_ms(200);
     if(touch_present()) {
        touch_write_byte(0x33);
 for(i=0;i<8;++i)
 buffer=touch_read_byte();
       for(i=6;i!=0;i--)


        printf("%2X",buffer);
        printf("\r\n");
        delay_ms(100);
printf("%2X%2X%2X%2X%2X%2X\r",tabla[0][0],tabla[0][1],tabla[0][2],tabla[0][3],tabla[0][4],tabla[0][5]);
delay_ms(200);

i=0;
for(j=0;j<4;j++)
{ for(k=0;k<6;k++){
if (tabla[j][k]==buffer){iguales=0; i++;}
else {iguales=1; i++;}}}
if(iguales==0){
printf("\r\nYES");
delay_ms(200);
}
else
printf("\r\nNO\r\n");
}
   }
  }
« Última modificación: 02 de Enero de 2007, 22:28:25 por homfly »

Desconectado ascii

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 131
Re: lectura-escritura de ibutton
« Respuesta #42 en: 03 de Enero de 2007, 13:10:55 »
Homfly no has probado con el esquema que monte yo  :mrgreen:???

Desconectado homfly

  • PIC12
  • **
  • Mensajes: 77
Re: lectura-escritura de ibutton
« Respuesta #43 en: 03 de Enero de 2007, 19:56:55 »
ascii, el k mando duende_zul con 2 resistecnias solo en el virtual terminal si me sale los prinft, aunque el programa aun no me funciona porque comparo tabla con vector buffer y siemre dice que son distintos. Y probe el mismo programa con el esquema que me diste y no funciona, nose porque. me aparece el mensaje: waiting....pero no me imprime en pantalla el nº de serie. me va el circuito sencillo y ese que me pusiste no, y uso el mismo programa, y uno me imprime al menos los printf, pero el tuyo ascii, solo el primer printf y yasta.

Desconectado Duende_Azul

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 908
Re: lectura-escritura de ibutton
« Respuesta #44 en: 03 de Enero de 2007, 20:43:47 »
Código: [Seleccionar]
#include <16f876.h>                          // Definiciones del PIC 16F876A
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT  // Los Fuses de siempre
#use delay(clock=4000000)                     // Oscilador a 4 Mhz
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)// RS232 Estándar

#include <touch.c>

void main() {
   char buffer[8];
   int j,k,iguales=0,i;
   char tabla[4][6]={{0x00,0x00,0x87,0x65,0x43,0x21},
                     {0x00,0x00,0xEF,0xFF,0xFF,0xFA},
                     {0x00,0x00,0xDF,0xFF,0xFF,0xFA},
                     {0x00,0x00,0xCF,0xFF,0xFF,0xFA}};


   printf("\r\nibutton...\r\n");
//   while (TRUE) {
     while(!touch_present()) ;
     delay_ms(200);
     if(touch_present()) {
         touch_write_byte(0x33);
         for(i=0;i<8;++i)
            buffer[i]=touch_read_byte();
         for(i=6;i!=0;i--)
            printf("%2X",buffer[i]);
         printf("\r\n");
         delay_ms(100);
         //printf("%2X%2X%2X%2X%2X%2X\r\n",tabla[0][0],tabla[0][1],tabla[0][2],tabla[0][3],tabla[0][4],tabla[0][5]);
         delay_ms(200);
     }
i=0;
j=0;
   while (j<4){
      for(k=0;k<6;k++){
         if (tabla[j][k]!=buffer[6-k]){
            iguales=1;
            j++;
            i=0;
            break;
         }
         else{
            iguales=0;
            i++;
            If (i==6) j=4;
         }
      }
    }

    if(iguales==0){
       printf("YES\r\n");
       delay_ms(200);
      }
      else
         printf("NO\r\n");
   
   }
//  }


Hice unos cambios y al parecer funciona bien. Esta medio chapucero pues lo hice a la carrera  :lol: .
Ahora estudialo y trata de entender su funcionamiento y prectica mas la sintaxis del C  :)