TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: homfly en 08 de Diciembre de 2006, 15:35:14

Título: lectura-escritura de ibutton
Publicado por: homfly en 08 de Diciembre de 2006, 15:35:14
Hola, kiero hacer un control de acceso con ibutton, y kisiera q me proporcionarais toda la informacion q sepais o tengais respecto a lectura del nº de serie para luego procesarlo o de escritura en caso de tener ibutton eeprom.

gracias
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 09 de Diciembre de 2006, 16:34:06
¿por favor que?  :?
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 09 de Diciembre de 2006, 17:52:29
como???
Título: Re: lectura-escritura de ibutton
Publicado por: todopic en 09 de Diciembre de 2006, 20:12:05
Hola, aqui tienes una nota de aplicacion de maxim  :mrgreen:
http://www.maxim-ic.com/appnotes.cfm/appnote_number/2420

es lo unico que tengo por aqui....


Suerte!

Norberto
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 09 de Diciembre de 2006, 23:36:30
gracias, pero a eso ya le e exao un vistazo¡¡¡ buscare mas a ver
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 11 de Diciembre de 2006, 23:36:39
Si vas a usar el CCS, pues mirate el ejemplo EX_TOUCH.C, alli hacen la lectura del serial de un IButton, con el DS1990 del proteus funciona bello y la libreria (touch.c) tambien incluye las rutinas para leer y escribir en la eeprom.

Saludos.
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 14 de Diciembre de 2006, 20:38:59
ok, pues voy a buscarlo, a ver que tal. aunque yo solo quiero leer el serial, porque escribir en el no puedo porque es solo de ID.

gracias de todas formas, si alguien mas tiene algo(esquema para el control de acceso...nuevas ideas de diseño originales,etc...se agradece
Título: Re: lectura-escritura de ibutton
Publicado por: isharp en 24 de Diciembre de 2006, 07:54:03
Hola

Eso lo he visto yo funcionando a unos chicos de la universidad de granada

La verdad es que me da la sensacion de que es un sistema poco robusto para un control de accesos habiendo otro tipo de tecnologías

Saludos desde Granada
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 25 de Diciembre de 2006, 20:24:59
Esos chicos de granada son amigos mios, y de ahi he sacado la idea. isharp, eres de granada???

Y a k otro tipo de tecnologias, de uso personal t refieres para hacer un control de acceso q no sea ibutton, ni tarjetas, ni teclado???
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 26 de Diciembre de 2006, 01:30:36
Los sistemas biometricos, por ejemplo leer la huella dactilar.
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 26 de Diciembre de 2006, 06:27:41
ya, pero eso sale muxo mas caro q un control de acceso con ibutton. Lo habia pensao, pero ibutton, entre q pides samples y eso t sale tirado de precio. Los lectores de huellas cuestan mucho. Y yo lo quiero para uso personal , no es para una empresa ni nada. Lo de los ibutton lo hago como practica voluntaria a una asignatura de mi carrera
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 26 de Diciembre de 2006, 14:09:34
Son caros y mas dificiles de programar. EL Ibutton es bien interesante por el bus que utiliza, yo ya logre leer el serial con el ejemplo que te mensione anteriormente, ahora solo me falta escribir en su memoria interna.
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 26 de Diciembre de 2006, 14:53:20
yo lo hare con ibutton. Tambien estuve viendo el ejemplo, aunque pone que usa 3 pic??o es que tu coges el que quieras. yo solo quiero leer. Y el esquema de donde las sacado?

cuanto cuesta lo de la huella dactilar, economico¡¡

/////////////////////////////////////////////////////////////////////////
////                             EX_TOUCH.C                          ////
////                                                                 ////
////  This program interfaces a Dallas DS1991 touch memory device.   ////
////  It will display the family code and ID of any device that      ////
////  "touch"es pin B0.                                              ////
////                                                                 ////
////  Configure the CCS prototype card as follows:                   ////
////     Connect pin B0 through a 4.7K resistor to +5V               ////
////     Connect the touch device to GND and then "Touch" to pin B0  ////
////                                                                 ////
////  Jumpers:                                                       ////
////     PCB        pin A2 to RS232 RX, pin A3 to RS232 TX           ////
////     PCM,PCH    pin C7 to RS232 RX, pin C6 to RS232 TX           ////
////                                                                 ////
////  This example will work with the PCB, PCM and PCH compilers.    ////
////  The following conditional compilation lines are used to        ////
////  include a valid device for each compiler.  Change the device,  ////
////  clock and RS232 pins for your hardware if needed.              ////
/////////////////////////////////////////////////////////////////////////
////        (C) Copyright 1996,2003 Custom Computer Services         ////
//// This source code may only be used by licensed users of the CCS  ////
//// C compiler.  This source code may only be distributed to other  ////
//// licensed users of the CCS C compiler.  No other use,            ////
//// reproduction or distribution is permitted without written       ////
//// permission.  Derivative programs created using this software    ////
//// in object code form are not restricted in any way.              ////
/////////////////////////////////////////////////////////////////////////

ESTO NO LO ENTIENDO, IF DEFINE PCB INCLUDE 16C56, Y LUEGO EL PCM USA OTRO y para PCH OTRO. NO se cual tengo que usar¡¡

#if defined(__PCB__)
#include <16C56.h>
#fuses HS,NOWDT,NOPROTECT
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_A3, rcv=PIN_A2)

#elif defined(__PCM__)
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

#elif defined(__PCH__)
#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#endif

#include <touch.c>


void main() {
   BYTE buffer[8];
   BYTE i;

   printf("\r\nWaiting for a touch device...\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();
        printf("Family: %2X  ID: ",buffer[0]);
        for(i=6;i!=0;--i)
          printf("%2X",buffer);
        printf("\r\n");
        delay_ms(1000);
     }
  }
}
Título: Re: lectura-escritura de ibutton
Publicado por: vszener en 26 de Diciembre de 2006, 16:42:02
No es que se use tres pic's, las instruciones #if son para el compilador, y se traducen de la siguiente manera:
En caso de que el programador defina el pic a usar el #include <16C56.h> pues se configura de la siguiente manera:
#fuses HS,NOWDT,NOPROTECT
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_A3, rcv=PIN_A2)
o en caso de que se  defina el pic #include <16F877.h> pues se configura de lamanera que está establecida, en total, hay tres configuraciones para tres pic's diferentes.


Suerte!!! ;)
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 26 de Diciembre de 2006, 16:45:19
algo de eso entendi cuando lo vi, pero como no lo habia visto antes nunca, por eso he preguntado. Pero bueno, todo eso se puede quitar y poner un solo include, del pic que tu quieras usar  con las propiedades que tu quieras y yasta, el cuerpo, es el mismo, para leer el nº de serie,no? Con lo demas se lee el nº de serie del ibutton?:-s

En esta pagina he visto algunos esquemas de lectura y/o escritura

http://pdfserv.maxim-ic.com/en/an/app74.pdf, pero nose cual coger

la figura 9 por ejemplo, la veo demasiado sencilla, que me decis
Título: Re: lectura-escritura de ibutton
Publicado por: vszener en 26 de Diciembre de 2006, 16:57:12
Claro, tú puedes poner el pic que quieras y su configuración correspondiente, el programa que has puesto es para el dispositivo DS1991, que lee el contenido de la memoria DS1991.


Suerte!!! ;)
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 26 de Diciembre de 2006, 17:52:02
ahora tengo que ver el datasheet y ver si para el ds1991 sirve tambien para el ds1990 que es el que tengo yo o seguramente tenga que cambiar algo.

Gracias
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 26 de Diciembre de 2006, 17:58:34
El compilador va a seleccionar la configuracion dependiendo del compilador seleccionado; asi pues si compilas con el PCB (micros de 12Bits) pues compila para 16C56; si seleccionas PCM (Micros de 14 bits) pues compila para 16F877 etc...

EL esquema que use en proteus consta de un pic 16F877a con una resistencia de 4,7K de B0 a Vcc y al pin de datos del Ibutton y un "virtual terminal" en en los pines Rx-Tx del micro
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 26 de Diciembre de 2006, 18:14:48
Imagen....

Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 26 de Diciembre de 2006, 18:21:00
Por cierto, el esquema anterior lo monte fisicamente y lo probe usando un IButton DS1986 - F3 y funciono perfectamente.
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 26 de Diciembre de 2006, 18:22:56
bueno, la resistencia que tu dices de 4,7k, hay pone 10k, m imagino q esta mal. Y el hiperterminal, es cuestion luego de ponerle una lcd o lo que se quiera. Y tu usaste ese mismo esquema??sin añadirle nada mas funciona?Seria cuestion de ponerle un transformador 220-12v si lo usas con corriente alterna, pero el pic, ya no necesita mas nada?Es que un amigo mio tiene un control de acceso con ibutton y tienen muchas mas cosas el circuito, entonces por eso pregunto. Que tampoco veo que sea tan complejo, es solo leer y sacar por pantalla, pero nose...

La libreria del ibutton DS1990 de donde las sacado? Y el programa entonces tu usaste el ex_touch de la carpeta examples,no?aunque ese sea para el ds1991, pero he mirado el datasheet y es lo mismo que el ds1990A#f5 que es el que tengo yo.

Yo aqui pido samples hasta que se cansen de mi. Tengo 6 y otros 2 con 1024kb de memoria, ya le dare uso, y lectores unos 4.
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 26 de Diciembre de 2006, 18:26:45
EL ejemplo dice 4,7K pero con 10K funciona en la simulacion y en la vida real  :)
El programa que use es el ejemplo compilado tal cual sin cambiar nada de nada e imagino que por compatibilidad (no he leido el datasheet en profundidad) el codigo de identificacion del Ibutton debe encontrarse en la misma posición de memoria en todos los ibutton.
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 26 de Diciembre de 2006, 18:31:58
y el simbolo para proteus del ibutton, donde las sacado? Y otra cosa, al programa habra que añadirle una tabla con el nº de serie de los ibutton que uno quiere que se acceda,no? Sino vale cualquier ibutton. Habria que añadirle la funcion que quiero que desempeñe, en mi caso, activar un rele, pero dependiendo si el nº de serie coincide con el que yo he programado o no, y eso en el programa no lo veoo soy tonto, que es otra posibilidad porque estoy comenzando con esto de los pics.

Yo si he mirado el data sheet y si sirve estos 2 ibutton y otros cuantos mas que estan en la tabla
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 26 de Diciembre de 2006, 18:39:50
EL Ibutton esta en el proteus 6.9 y lo que dices es cierto, debes tener una lista con los numeros de los Ibutton autorizados, si colocas un Ibutton en el lector y su numero está en dicha lista, pues accede sino lo rechazas.
Título: Re: lectura-escritura de ibutton
Publicado por: vszener en 26 de Diciembre de 2006, 18:49:13
En la implementación del hardware, uno especifica la dirección de cada elemento, y para acceder a él, tendremos que escribir en el bus su dirección.

Con respecto al resistor de 10k o 4k7, e slo mismo, son valores típicos de resistores de pull-up.


Suerte!!! ;)
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 26 de Diciembre de 2006, 19:05:33
oks¡¡, ahora me pondre a implementarlo, aver como queda. ya me pasaré por aqui. Tu lo has implementado duende_azul?y lo has puesto para que se pueda programar externamente??o cada vez que quieras añadir un ibutton, sacas el pic del circuito y lo vuelves a programar?? Y por ultimo, el ibutton, Vcc va alimentado con 12V? o con 5?
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 26 de Diciembre de 2006, 19:11:17
EL ibutton yo lo conecte a 5V con la resistencia de 10K.
Lo unico que hice fue leer el codigo del ibutton, aun me falta escribir en su memoria, de momento no tengo ninguna aplicacion entre manos para ese dispositivo.
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 26 de Diciembre de 2006, 19:13:45
entonces le metiste un regulador, 7805.yo la alimentacion ya la tengo a 12v.
Yo pedi 2 ibutton con memoria de 1024kb y me los mandaron., ya le dare utilidad, aver si se aprende a escribir
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 26 de Diciembre de 2006, 19:39:49
Siempre uso un 7805 para alimentar el pic y de ahi mismo tomo la del Ibutton.
Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 26 de Diciembre de 2006, 20:41:59
Basicamente el circuito funciona mas o menos asi:

El PIC envía un pulso de reset de aproximadamente 480 us el cual es detectado por el iButton el cual envía hacia el PIC un pulso de presencia. Luego que el PIC detecta este pulso de presencia se envía la instrucción 33h a la ROM del iButton para que comience a enviar su código en forma serial, el iButton comienza enviando el Byte en Hexadecimal que corresponde a la familia del producto, posteriormente transmite los 6 bytes correspondientes al numero serial de 48 bits que identifica al iButton y el ultimo Byte en transmitirse es el correspondiente al CRC.

La interfaz la adjunte a continuacion.
Título: Re: lectura-escritura de ibutton
Publicado por: vszener 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!!! ;)
Título: Re: lectura-escritura de ibutton
Publicado por: ascii 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.
Título: Re: lectura-escritura de ibutton
Publicado por: homfly 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
Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 29 de Diciembre de 2006, 15:40:21
El que subi esta 100% probado  :mrgreen:
Título: Re: lectura-escritura de ibutton
Publicado por: homfly 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
Título: Re: lectura-escritura de ibutton
Publicado por: vszener en 29 de Diciembre de 2006, 20:13:16
Para el diodo 1N5232 (http://es.farnell.com/jsp/search2/browse.jsp?N=500017&Ntk=gensearch_001&Ntt=1N5232&Ntx=&_requestid=739256)
Para el transistor 2N7000 (http://es.farnell.com/jsp/search2/browse.jsp?N=500017&Ntk=gensearch_001&Ntt=2N7000&Ntx=&_requestid=739713)

La búsqueda está en farnell (http://es.farnell.com/jsp/home/homepage.jsp;jsessionid=LDYEUKQRL1E15QFIAEWUNZQ)

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


Suerte!!! ;)
Título: Re: lectura-escritura de ibutton
Publicado por: homfly 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
Título: Re: lectura-escritura de ibutton
Publicado por: vszener en 29 de Diciembre de 2006, 20:28:43
Pues para eso está amidata (http://www.amidata.es/cgi-bin/bv/rswww/home.do?returningUser=N&cacheID=esie)
Diodo, no está el 1N5232, pero puedes usar alguno que se le parezca (http://www.amidata.es/cgi-bin/bv/rswww/searchBrowseAction.do?obs=sObs&name=SiteStandard&No=0&N=0&Ntk=I18NAll&Ntt=1N5&Nty=1&D=1N5&Ntx=mode%20matchpartial&Dx=mode%20matchpartial&callingPage=/jsp/search/noResults.jsp&BV_SessionID=@@@@1126663835.1167434611@@@@&BV_EngineID=cccdaddjkhdgedecefeceeldgondhgg.0&cacheID=esie&Nr=avl:es)
Transistor 2N7000 (http://www.amidata.es/cgi-bin/bv/rswww/searchBrowseAction.do?obs=sObs&name=SiteStandard&No=0&N=0&Ntk=I18NAll&Ntt=2N7000&Nty=1&D=2N7000&Ntx=mode%20matchpartial&Dx=mode%20matchpartial&callingPage=/jsp/homePage/homePage.jsp&BV_SessionID=@@@@1126663835.1167434611@@@@&BV_EngineID=cccdaddjkhdgedecefeceeldgondhgg.0&cacheID=esie&Nr=avl:es)

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


Suerte!!! ;)
Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 29 de Diciembre de 2006, 21:00:49
Ahi estamos mal yo soy de chile  :D
Título: Re: lectura-escritura de ibutton
Publicado por: homfly 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.
Título: Re: lectura-escritura de ibutton
Publicado por: vszener 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!!! ;)
Título: Re: lectura-escritura de ibutton
Publicado por: homfly 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");
}
   }
  }
Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 03 de Enero de 2007, 13:10:55
Homfly no has probado con el esquema que monte yo  :mrgreen:???
Título: Re: lectura-escritura de ibutton
Publicado por: homfly 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.
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul 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  :)
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 03 de Enero de 2007, 21:05:59
GRACIAS TIO¡¡, lo he entendido todo, menos if (tabla[j][k]!=buffer[6-k]) esto. El buffer[6-k] porque es asi?Explicamelo que quiero aprender. Hemos estao 3 personas, 2 de ellas que saben c....y no lo sacabamos. Estabamos mas o menos encaminaos comparando con iguales y tal, pero...el buffer[6-k] ma matao¡¡¡

Ya se que tengo que practicar mas, he hecho 2 programas solo, el de ic2 y este. no se puede construir la casa por el tejado, pero...he aprendido bastante. Seguramente vendre otro dia con mas dudas, pero a ver si termino los examenes y tengo tiempo de ponerme mas en fondo con esto.

Y gracias. Quiero cambiar unas cosillas, de asignar a cada vector un nombre para sacarlo por pantalla y ponerle las librerias LCD, que ya se hacerlo.

POr cierto duende_azul, porque tu esquema es mas simple que el que me dio ascii con transistores que ya he pedido y todo por internet, y ahora en la simulacion el tuyo con 2 resistencias funciona y el otro no??

muchas gracias¡¡
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 03 de Enero de 2007, 21:32:38
el detalle esta en que el programa de ejemplo TOUCH.C  guarda los bytes del serial del IButton al contrario de como los pusiste tu en la tabla, entonces lo que tienes que hacer es comparar el elemento 0 de tu tabla con el elemento 6 del codigo del ibuttom; a medida que k se incrementa, el indice de Buffer disminuye.

Con respecto a lo del otro esquema, pues yo soy de los que piensan ¿para que poner 2 cables si con uno basta?  :D , no he probado el otro esquema pero viendolo por encima se ve que el codigo del ejemplo que estas usando no va a funcionar pues en dicho esquema se requieren dos lineas de datos.
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 03 de Enero de 2007, 21:38:41
mira que hasta pense en eso, pero como lo mostraba por pantalla bien, pues digo, la comparacion ya esta puesta del sentido correcto. Pero claro, en el if de la comparacion comparaba el primer byte del vector de la tabla con el ultimo.  asi en la vida son iguales. Y lo que has hecho tu es empezar la comparacion del buffer por el final. Vale, lo demas si lo tengo todo entendido. Mañana me pondre a depurar si se puede depurar y a dejarlo medio presentable.

Muchas gracias¡¡

Y lo del circuito?porque puede ser que el tuyo que es mucho mas simple funcione y el otro que viene de la pagina de dallas como esquema de read (lectura), no sirva??

buenas noches¡¡
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 03 de Enero de 2007, 21:44:20
Que yo sepa, la gracia del bus one-wire es justamente esa; usar solo una linea para comunicacion...
Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 04 de Enero de 2007, 16:26:13
 :( Al tratar de simular el crto. con una resistencia a VCC en el proteus 6.9 sp4 me marca un error como el que se ve en la foto....duende azul sabes a que se debe eso???

 
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 04 de Enero de 2007, 16:53:24
pon que se vea el esquema, que lo tapa el mensaje, a ver lo que tienes puesto. Yo al final uso el esquema de duendeazul que es mucho mas corto.aunque ya tengo pedidos los dichosos transistores, porque tu esquema ascii, no me furula.

Ya tengo hecho la lcd, los leds, un zumbador de aviso le puesto, y me falta el rele, que casi lo termino. pero pongo el pin donde esta el rele en alta dentro de la condicion de OK, y no salen 5V, ni de cerca.Salen 0v. Asi no se excita ni.... Alomejor es que en casa de los reles, se usa de otra forma. Yo he usado este esquema para el rele

http://www.todopic.com.ar/foros/index.php?topic=10992.msg61583#msg61583
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 04 de Enero de 2007, 21:00:21
ya lo tengo casi terminado. Simplemente me he empeñado en que tenga los ibuttons personalizados, es decir, un ibutton mi padre, otro mi madre otro yo...etc y segun quien los use y entre en el control de acceso salga un mensaje en pantalla, bienvenido jose, antonio...etc.


aqui tengo el programa y en negrita lo que he añadido para esto, que nose donde puede fallar. Ya es simple curiosidad, porque el programa va de escandalo. ya que nos ponemos lo hacemos perfecto para exposicion:

lo he hecho por comparacion de cadenas: cadena vuelca y buffer que es el vector nº ibutton que leo. Si hay alguna otra forma...
Poco a poco ya voy aprendiendo algo de C:

#include <16f876.h>                          // Definiciones del PIC 16F876A
#include <stdlib.h>
#include <string.h>
#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
#define use_portb_lcd TRUE         //definir portb lcd
#use fixed_io(a_outputs=PIN_a0,PIN_a1)
#include <lcd.c>                  //libreria manejo lcd
#include <touch3.c>



void main() {
   char buffer[8];
   int j,k,iguales=0,i,z;


   char vuelca[6];
   char tabla[4][6]={{0x00,0x00,0x10,0x12,0x79,0x00},             //Para cambiar nº ibutton acceso
                     {0x00,0x00,0x10,0x14,0xB1,0x3D},
                     {0x00,0x00,0xFF,0xFF,0xFF,0xFA},              // J Y VECTOR-Hay 4 cambios de J //
                     {0x00,0x00,0xFF,0xFF,0xFF,0xFB}};
while (true)
{
    lcd_init();
    printf(lcd_putc,"    Esperando
    ibutton...\r\n");
    delay_ms(650);                                      //DUDA CON ESTE TIEMPO

    while(!touch_present()) ;                           //El ibutton esta en el lector
           delay_ms(200);

     if(touch_present()) {
         touch_write_byte(0x33);                         //Escribo en la posicion 0x33 el nº serie
         for(i=0;i<8;++i)
         buffer=touch_read_byte();                    //leo el nº de serie
                                                         // for(i=6;i!=0;i--)
                                                         // para visualizar su nº de serie// printf("%2X",buffer);
                                                         //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;                                       //inicializo vectores
            j=0;
               while (j<4){                     //   J   //
               for(k=0;k<6;k++){                         //se mueve a lo largo de cada vector
                   if (tabla[j][k]!=buffer[6-k])         //Comparamos vectores-tabla inicio con buffer final-k, dandole
                                                         //...la vuelta, xk vector buffer empieza x el final. Si son distintos...
                     {
                   iguales=1;
                   j++;                                  //paso al siguiente vector y...
                   i=0;                                  //inicializo vector buffer
                   break;
                     }
                        else{
                          iguales=0;                      //si son iguales...
                          i++;                            //incremento vector buffer
                          if (i==6) j=4;              //   J  //  Hasta que llega al maximo el vector y la tabla
                           }
                                    }
                  }




lcd_init();                                                    //inicializo de nuevo la lcd

if(iguales==0){                                                //si iguales=0 entonces se cumple, OK¡


   set_tris_a(0xFE);                                           //porta como salida, pin_A0, PIN_A1
   disable_interrupts(GLOBAL);                                 //todas las interrupciones desactivadas

            //ibutton correcto Mensaje-led verde-1beep //

       printf(lcd_putc,"   Bienvenido\r\n");
       delay_ms(100);

z=0; for(k=6;k>0;--k){vuelca[z]=tabla[0][k];z++;}
if(strcmp(buffer,vuelca )==0) printf(lcd_putc,"Hola jose");
else{z=0; for(k=6;k>0;--k){vuelca[z]=tabla[1][k];z++;}}
if(strcmp(buffer,vuelca )==0) printf(lcd_putc,"Hola Lola");
else{z=0; for (k=6;k>0;--k){vuelca[z]=tabla[2][k];z++;}}
if(strcmp(buffer,vuelca )==0) printf(lcd_putc,"Hola Padre de Jose");
else{z=0; for(k=6;k>0;--k){vuelca[z]=tabla[3][k];z++;}}
if(strcmp(buffer,vuelca )==0) printf(lcd_putc,"Hola madre de Jose");



          output_high(PIN_A0);                                  //led on
          output_high(PIN_B3);                                  //activa buzzer 2 veces(beep)
          delay_ms(450);                                        //tiempo de escucha del beep
          output_low(PIN_B3);                                   // buffer off
          delay_ms(5000);
          output_low(PIN_A0);                                   // Led off

    }

      else{
         printf(lcd_putc,"Acceso Denegado\r\n");

         //Secuencia de luces y sonidos//

         output_high(PIN_a1);                               //led on
         output_high(PIN_B3);                               //activa buzzer 2 veces(beep)
         delay_ms(150);                                     //tiempo de escucha del beep
         output_low(PIN_a1);                                //led off
         output_low(PIN_B3);                                //buffer off
         delay_ms(150);
         output_high(PIN_a1);
         output_high(PIN_B3);
         delay_ms(150);
         output_low(PIN_a1);
         output_low(PIN_B3);
         delay_ms(150);
         output_high(PIN_a1);
         output_high(PIN_B3);
         delay_ms(150);
         output_low(PIN_a1);
         output_low(PIN_B3);
         delay_ms(150);
         output_high(PIN_a1);
         delay_ms(4000);
         }


   }
}

Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 04 de Enero de 2007, 23:01:25
Muy bien homfly el esquema que trate de simular es el esquema que planteo duende azul, el mio que plantie de los transistores nunca lo probe en simulacion, lo probe directo a la placa. Lo de los ibutton puedes mandar a pedir unos samples en la pagina de maxim, lo que si el conector donde se pone el ibuton no lo encontre como sample. :D
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 05 de Enero de 2007, 01:40:20
ascii, ese error me salió hace tiempo y creo que reinstalando el proteus se arregló, la verdad no recuerdo bien como fue la cosa.
Por cierto, Maxim me envió como sample el zócalo para la lectura de los ibutton asi que revisa bien  :)
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 05 de Enero de 2007, 01:44:14
homfly, lo que tienes que hacer es tomar el valor de j  cuando se haga una comparacion exitosa, asi sabes con cual de los 4 codigos almacenados coincidio el ibutton leido, por supuesto, tendras que colocar el valor de J a otra variable antes de hacer j=4:


           j=0;
               while (j<4){                     //   J   //
               for(k=0;k<6;k++){                         //se mueve a lo largo de cada vector
                   if (tabla[j][k]!=buffer[6-k])         //Comparamos vectores-tabla inicio con buffer final-k, dandole
                                                         //...la vuelta, xk vector buffer empieza x el final. Si son distintos...
                     {
                   iguales=1;
                   j++;                                  //paso al siguiente vector y...
                   i=0;                                  //inicializo vector buffer
                   break;
                     }
                        else{
                          iguales=0;                      //si son iguales...
                          i++;                            //incremento vector buffer
                           if (i==6){
                              quien=j;     <------------Te dice con cual vector coincidio el ibutton     
                               j=4; }             //   J  //  Hace J = a 4 para salir del bucle
                           }
                                    }
                  }


luego segun el orden (eso lo sabras tu)  haces por ejemplo:

        switch (quien){

        case 1 : mensaje="Hola papa mio de mi";
                    Break;
        case 2 : mensaje="Hola Yo mismo";
                    Break;

        Default:mensaje="No te conozco";
                   Break;
        }

        printf(lcd_putc,mensaje);   (no estoy seguro si la sintaxis del printf es correcta pero algo asi es  :lol: )
Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 05 de Enero de 2007, 03:59:44
Gracias duende voy a reinstalar el programa, otra cosa que nombre tiene la serie para el zocalo que te enviaron??? :-/,..saludos
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 05 de Enero de 2007, 06:47:33
oks duende azul, le voy a exar un vistazo

Ascii, vamos a ver. De los ibutton hay muchos samples. Yo he pedido el mas simple que hay que es el ds1990a F5 solo de identificacion.

Los F5 son mas grandes que los F3(es una etiqueta que le ponen ellos).Eso teines que tenerlo en cuenta para pedir el lector que tambien hay de F5 y de F3, oks?

Aqui estan todos los ibutton, que claro esta, de todos no te dan, y menos de los de humedad,temperatura....
http://www.maxim-ic.com/products/ibutton/products/ibuttons.cfm
Estos son los lectores:
http://www.maxim-ic.com/products/ibutton/products/readers_probes_ports.cfm. Yo pedi el primero que hay
Estos son los llaveritos:
http://www.maxim-ic.com/products/ibutton/products/mounts.cfm
de estos yo pedi el ds9093a que sirve para los f5 (AB  es azul, AR es rojo...)

Para pedir te vas arriba ala pestaña de Buy.Bajas un poco y le das a BUY ON LINE. Te saldran arriba otras pestañas dale a sample cart (todo esto tienes que estar registrado claro). y abajo vas buscando las referencias:

ibutton:ds1990a (F3 o F5, yo tengo F5)  y le das a sample now
LECTOR:ds9092+
llaveritos:ds9093a  (Te pides 2 de cada color si quieres)

Cuando los tengas todos, a sample cart otra vez y le pones las cantidades que quieras...
Luego ala hora de pedir mucho ojo, teines que ponerle en anual usage: <1000 y al pedirlo ponle que eres ingeniero de diseño o cosas asi (escribeselo en ingles)

Yo lectores tengo ya 4 creo, e ibutton 14, uno de ellos de 1024Kb de memoria que ya me hara falta cuando aprenda a escrbir en ellos. Ami me mandan los samples de 2 en 2 siempre, hasta que se cansen de mi y me manden a tomar por saco.

Espero que te haya servido aunque la mayoria seguro que lo sabias¡¡ Ya que estaba he hecho un pequeño manual para la gente que venga de atras y quiera usarlo.


Hasta luego
Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 05 de Enero de 2007, 13:40:59
gracia homfly yo ya habia pedido unos samples pero solo los ibutton DS1990A-F5.  :D
Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 05 de Enero de 2007, 13:44:51
Hace un tiempo cuando trabaje con los ibutton compre el lector que bruto no ??   :D
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 05 de Enero de 2007, 15:10:04
duende, ya he mirado lo que me mandaste y tenia esa idea, pero pense q era mas largo. Hacerco con case... Lo que pasa que la salida la que me mandaste no funciona. Es decir, el vector j q son los ibutton son 4, es decir, case 0, case1,2,3. Con la condicion de YES que se abra la puerta estan correctas, cada ibutton con su nombre y OK. Pero cuando la contraseña no es correcta aparece el mensaje del case 0 siempre y no el mensaje de ERROR.

switch (quien){

        case 0 : printf(lcd_putc,"Bienvenido
        JOSE");

                    Break;
        case 1 :printf(lcd_putc,"Bienvenido
        Pepe");

                    Break;
        case 2 : printf(lcd_putc,"Bienvenido
        Lola");

                    Break;
        case 3 : printf(lcd_putc,"Bienvenido
        Dolores");

                    Break;

        default: printf(lcd_putc,"error");    // Esta debe de ser el mensaje cuando no es correcto. El led rojo de ERROR si me sale, lo unico que falla es el mensaje en pantalla que no sale error sino que pone BIENVENIDO JOSE, a pesar de que la contraseña no es la correcta, me explico? Cuando la contraseña es correcta, todo perfecto. Alomejor me falta un } o cambiar el  default. Lo mirare y mañana os cuento.
        break;
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 05 de Enero de 2007, 15:40:02
Ok, lo que pasa es que cuando no se detecta ningun ibutton correcto se sale del bucle While (j<4)  con j=0, lo que tendrias que hacer es agregar un valor a "quien" distinto de 0,1,2 o 3 en la parte siguiente:


          iguales=1;
                   j++;                                  //paso al siguiente vector y...
                   i=0;                                  //inicializo vector buffer
                   Quien=10;        <-------- Indicara que no hay ibutton valido y sera leido por el Default en el switch(quien)
                   break;
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 05 de Enero de 2007, 15:51:00
Cambie el valor de J por si era eso, pero no caí en darle valor a "quien". Gracias duende. Eres un maquina. He aprendido bastante contigo. Me queda solo activar el puerto del rele que tengo que buscar como porque no es igual que los leds, y pasarlo todo a pcb (con p-cad que lo controlo muy bien) y cuando lo tenga terminado lo pongo por aqui si alguien lo quiere o que me lo pida.

Gracias

Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 05 de Enero de 2007, 16:16:38
Reinstale el programa y sigue el mismo problema aqui dejo la foto del circuito que implemente.
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 05 de Enero de 2007, 18:13:56
El tx teines q poner en el Rx del pic, y el rx en el tx del pic. Ademas si el ibutton las puesto en el pin B1, debes de cambiar la libreria touch.c y poner el pin B1, en vez del B0 que creo que trae. Y tambien si cogiste mi programa, cambia el pic #include <16f628.h> que creo que usas tu.No se porque fallara.Le metes bien el programa?Y lo pones a 4mHz?
Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 05 de Enero de 2007, 20:04:00
No si el programa no lo hice en c lo hice en pbp. :mrgreen:
Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 07 de Enero de 2007, 12:19:06
Aqui dejo el archivo a ver si les funciona la verdad que a mi no ahi caso, homfly puedes subir tu archivo de proteus  :) de verdad te lo agradeceria mucho.
Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 07 de Enero de 2007, 13:55:58
ascii revisaste tus mensajes privados?  :?
Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 07 de Enero de 2007, 14:18:50
El problema ya lo solucione  :lol: , gracias duende resulta que hace unos minutos atras revise el pv  :D...saludos
Título: Re: lectura-escritura de ibutton
Publicado por: ascii en 07 de Enero de 2007, 15:32:15
Al fin como dije anteriormente era problema de libreria y por fin mi programa funciono  :mrgreen:, el programa lo hice en pbp  :-), Aqui dejo una imagen de la visualizacion, la verdad que no se por que ahi algunos ceros en  hex que no me muestra   :?, pero el programa ya esta probado  8), y nuevamente te doy las gracias duende por la ayuda  :mrgreen:

Título: Re: lectura-escritura de ibutton
Publicado por: Duende_Azul en 07 de Enero de 2007, 18:11:50
para eso estamos  :)
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 09 de Enero de 2007, 08:44:18
ascii te mandado el enlace con las librerias que pediste. No he podido conectarme antes porque estoy liado con los estudios, asi que no se cuando me mandaste el mensaje. Espero que te haya servido.

Adios
Título: Re: lectura-escritura de ibutton
Publicado por: karpegui en 13 de Enero de 2007, 05:26:13
Hola a todos estoy interesado en este tema por lo que voy a pedir unos samples a MAXIM, pero antes de nada me gustaria saber el metodo de transporte que utilizan (para saber que direccion pongo por que si pongo la mia y viene por agencia de transportes no dan con mi casa si en veinte años) y sobre todo si realmente son gratuitos. Vivo en España. Un saludo y gracias
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 13 de Enero de 2007, 05:30:19
te lo mandan ellos por corro ordinario, en un sobre de espumita de esa. Y si son gratis. yo tengo 14 ya y no he pagado nada¡¡
Título: Re: lectura-escritura de ibutton
Publicado por: karpegui en 13 de Enero de 2007, 05:46:33
Muchas gracias por la respuesta
Título: Re: lectura-escritura de ibutton
Publicado por: Sir Viciony en 10 de Febrero de 2007, 03:07:37
Muy Interesante todo lo que han logrado, felicidades :P
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 12 de Junio de 2007, 18:52:57
hola. Tengo un problema con mi circuito de ibutton.

Va todo casi bien. El problema es que el 80% de las veces, si es correcto abre, si es incorrecto no abre, pero hay veces, que nose si es que no lee bien el nº de serie, que no lo hace bien y si es correcto, me dice que no lo es y se enciende la luz roja. He leido por ahí que puede ser problema de la resistencia del PULL UP. Yo le tengo puesta 10K, pero he leido en el datasheet que puede ser hasta de 5K, y ejemplos que pone 2,2 o 4,7k. Entonces quiero saber si eso puede ser el fallo. Porque el proteus me lo simula bien, y no se si es problema del programa mio o de eso. Porque es raro que a veces lo haga bien y unas pocas mal. Porque podría ser???

Gracias, y en que caso de que el problema sea el programa, ya lo pondria por aqui, por si la comparacion está mal hecha.
Título: Re: lectura-escritura de ibutton
Publicado por: homfly en 14 de Junio de 2007, 05:21:45
le he cambiado la resistencia de pullup del lector de ibutton de 10k a 3,3k y sigue mal. me da fallos cuando quiere, el 20% de las veces hace lo contrario, abre cuando no y no abre cuando si. Alguien me ayuda?
Título: Re: lectura-escritura de ibutton
Publicado por: peterluz en 17 de Marzo de 2009, 10:43:15
Hola amigos,

ESTOY INTENTANDO COPIAR O LEER Y ESCRIBIR UNA DS1991 O DS1992.

PODEIS PASARME LOS ESQUEMAS Y EL PROGRAMA QUE NECESITO PARA PODER REALIZARLO.

GRACIAS DE ANTEMANO.

SALUDOS
Título: Re: lectura-escritura de ibutton
Publicado por: Frey_Cobain en 05 de Noviembre de 2009, 01:05:12
HOLA VEO QUE ESTE TEMA ESTA MUERTO  :(

ALGUNO TIENE IDEA COMO ESCRIBIR EN LA IBUTTON O LEER LA INFORMACION GRABADA

SALUDOS
Título: Re: lectura-escritura de ibutton
Publicado por: fidodido18 en 06 de Noviembre de 2009, 23:36:55
HOLA VEO QUE ESTE TEMA ESTA MUERTO  :(

ALGUNO TIENE IDEA COMO ESCRIBIR EN LA IBUTTON O LEER LA INFORMACION GRABADA

SALUDOS

Yo tambien estoy buscando informacion para leer las paginas internas de los ibuttons?? con la libreria es suficiente o hay que hacer otra cosa?
Título: Re: lectura-escritura de ibutton
Publicado por: fireman658 en 20 de Noviembre de 2009, 11:20:56
hola a todos

alguen sabe como conectar un ibutton ds1920??
o su programa en CCS

gracias
Título: Re: lectura-escritura de ibutton
Publicado por: fidodido18 en 20 de Noviembre de 2009, 17:33:53
hola a todos

alguen sabe como conectar un ibutton ds1920??
o su programa en CCS

gracias

Hola pues yo tenia un problema similar pero tenia una DS1992 y empece a buscar en los foros sin embargo no me di cuenta que en la carpeta DRIVER de CCS estaba la libreria para su hermana mayor la DS1993 (que es la misma cosa) y solucione el problema.

estaba leyendo la libreria y es muy facil de manejar! utiliza como base para tu DS1920 la libreria TOUCH.c le envias el comando por ejemplo para leer la ROM 33h y luego esperar lectura de la ibutton, lo mismo ocurre cuando vas a leer otro espacio de la ibutton en tu caso de temperatura!

No se te olvide enviar antes el pulso de presencia y rectificar que la ibutton este conectada!
Título: Re: lectura-escritura de ibutton
Publicado por: fireman658 en 23 de Noviembre de 2009, 16:57:25
gracias fidodido18

ya see como leer la temperatura en un ds1920
la libreria TOUCH.C simplifica bastante las cosas

Pero tu sabes como leer o escribir en estos ibuttons???
desde la memoria scratchpad

Título: Re: lectura-escritura de ibutton
Publicado por: fireman658 en 26 de Noviembre de 2009, 08:51:50
aaa wenoo ya resolvi mi problema

para conversion de temperatura del ibutton DS1920 se debe usar los siguientes comandos
obiamente usando la libreria TOUCH.C

                 touch_present() ;
                 delay_ms(200);   
                 touch_write_byte(0xCC);
                 touch_write_byte(0x44);
                 output_high(Pin_B0);
                 delay_ms(750);
             
                 touch_present() ;
                 delay_ms(200);   
                 touch_write_byte(0xCC);
                 touch_write_byte(0xBE);

                for(u=0;u<8;++u) {
                temperatura=touch_read_byte();
                }

con una resitencia Pullup por lo menos de 1,8k o mas chica.

weno eso saludos
Título: Re: lectura-escritura de ibutton
Publicado por: fidodido18 en 26 de Noviembre de 2009, 12:38:40
gracias fidodido18

ya see como leer la temperatura en un ds1920
la libreria TOUCH.C simplifica bastante las cosas

Pero tu sabes como leer o escribir en estos ibuttons???
desde la memoria scratchpad



hola te recomiendo que veas también la libreria ds1993.c ahí te dice como leer-escribir la ibutton desde la scratchpad.

y tu código lo cambiaría un poco

                
Código: [Seleccionar]
while(!touch_present()) ;//Mientras no este conectada la ibutton se queda esperando
                
                 if(touch_present()){// Si la ibutton esta conectada haga el código que sigue
                 touch_write_byte(0xCC);// No se para que haces esto!! si no recoges datos... :shock:
                 touch_write_byte(0x44);
                 output_high(Pin_B0);
                 delay_ms(750);}
            
                 if(touch_present()){// Si la ibutton esta conectada haga el código que sigue
                 delay_ms(200);    
                 touch_write_byte(0xCC);
                 touch_write_byte(0xBE);

                for(u=0;u<8;++u) {
                temperatura=touch_read_byte();
                }
                }

la resistencia de pullup que utilizo es de 4.7 K (recomendada por el datasheet)
Título: Re: lectura-escritura de ibutton
Publicado por: GRUNFELD69 en 10 de Febrero de 2011, 11:56:47
QUISIERA SABER DONDE PUEDO COMPRAR LOS IBUTTON EN COLOMBIA. ALGUIEN ME PUEDE AYUDAR???
Título: Re: lectura-escritura de ibutton
Publicado por: fidodido18 en 15 de Febrero de 2011, 22:54:51
QUISIERA SABER DONDE PUEDO COMPRAR LOS IBUTTON EN COLOMBIA. ALGUIEN ME PUEDE AYUDAR???
Lo mejor es encargarlas de USA y que te lleguen por allcourrier, es lo mejor! Sobre todo lo fácil, practico y económico que sale.