Autor Tema: Leer codigo de 64 bits en la rom del ds18s20  (Leído 4859 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado fame15

  • PIC10
  • *
  • Mensajes: 15
Leer codigo de 64 bits en la rom del ds18s20
« en: 17 de Marzo de 2010, 19:23:53 »
Hola a todos, necesito una mano urgente, deseo leer los 64 bits de la memoria que tienen todos los dispositivos ds18s20 (dispositivo onewire) y mostrarlos en un lcd, ya que tengo que conectar dos de estos ds18s20 en un mismo pin del pic y nose como leer este codigo que tiene inplicitos en su memoria, agradezco toda ayuda.
Obviamente el codigo lo necesito en ccs.
« Última modificación: 17 de Marzo de 2010, 21:02:35 por un Moderador »

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #1 en: 17 de Marzo de 2010, 21:22:01 »
Es un codigo que lo identifica univocamente??

Te aclaro que si pides todo hecho aca vas un poco mal, raramente te van a ayudar de ese modo.
Mejor si explayas todos tus avances y donde estas atrancado.

Salvo que hicieras una busqueda en el foro y alguien ya lo haya hecho y explicado y lo encuentres, es dificil que te ayuden...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #2 en: 18 de Marzo de 2010, 00:23:22 »
Hola.

Estos sensores poseen un código único de identificación, son geniales.

Para leerlo es muy simple, usa el comando de lectura de la ROM del sensor que es 0x33

Saludos
El papel lo aguanta todo

Desconectado fame15

  • PIC10
  • *
  • Mensajes: 15
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #3 en: 18 de Marzo de 2010, 11:14:20 »
hola MLO estoy utilizando ese codigo pero debo estar haciendo algo mal porque lo unico que me muestra en el lcd es 36363636363636, les adjunto todo lo que estoy usando, esto es libreria onewire, libreria del ds18s20 y el programita que hice para que lo vean y me comenten que estoy haciendo mal porque yo no se donde mas buscar para poder leer ese vendito codigo, el nombre del programa en ccs es temds18s20, en el mismo rar esta esta el esquema en proteus, si me pueden ayudar lo antes posible mejor porque tengo que entregar este proyecto el día lunes por la tarde, jajajaj muy jugado con el tiempo no??????

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #4 en: 18 de Marzo de 2010, 11:30:58 »
Ahora si es otra cosa...

En tu funcion intentas traer datos con la funcion read_rom(), que devuelve un solo byte y es el ultimo byte leido de 8 lo que estas recibiendo...

Código: C
  1. int8 read_rom (void)
  2. {
  3. int8 v;
  4. char dato[9];
  5. onewire_reset();
  6. onewire_write(0xCC);
  7. onewire_write(0x55);
  8. for(v=0;v<8;v++){dato[v]=read_byte;}
  9. return dato;
  10. }

Tambien esta mal hecha la llamada, deberia ser asi:

Código: C
  1. for(i=0;i<8;i++){dat[i]=read_rom();}

Tu funcion deberia usar dato como global y no retornar nada, solo actualizarlo...

Con eso deberia funcionar bien.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #5 en: 18 de Marzo de 2010, 11:43:40 »
Hola.

El CCS tiene una librería para el manejo del 1-wire: TOUCH.C.

Si vas a usarla, puedes escribir este código para obtener el numero serial:

Código: C#
  1. if(touch_present())
  2. {
  3.         touch_write_byte(0x33);
  4.         for(i=7;i!=0;i--)
  5.         {
  6.                 memory[i] = touch_read_byte();
  7.                 delay_us(5);
  8.         }
  9. }

Que en si es lo mismo que te dice MGLSOFT  :mrgreen:

Si vas a sacar el valor por la LCD, ten presente que es un string.

Saludos
El papel lo aguanta todo

Desconectado fame15

  • PIC10
  • *
  • Mensajes: 15
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #6 en: 18 de Marzo de 2010, 17:18:29 »
Hola MGLSOFT probe con estas lineas y en el lcd me aparece 02020202020202, aca te pongo las lineas que uso
Código: C
  1. char read_rom (void)
  2. {
  3. int8 v;
  4. char dato[9];
  5. onewire_reset();
  6. onewire_write(0xCC);
  7. onewire_write(0x33);
  8. for(v=0;v<8;v++){dato[v]=read_byte();}
  9. }

y este codigo para mostar el dato en el lcd
Código: C
  1. for(i=0;i<8;i++){dat[i]=read_rom();}
  2.       lcd_gotoxy(1,1);
  3.       printf(lcd_putc,"%X%X%X%X%X%X%X%X\n",dat[7],dat[6],dat[5],dat[4],dat[3],dat[2],dat[1],dat[0]);
Si me podes decir que modificar para que funcione correctamente te lo agradeceria mucho porque la verdad es que no me doy cuenta que cuernos modificar

Desconectado fame15

  • PIC10
  • *
  • Mensajes: 15
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #7 en: 18 de Marzo de 2010, 17:28:36 »
Hola MLO e probado con esa sentencia y tampoco puede leer el dato de memoria, leo todos 0000000000

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #8 en: 18 de Marzo de 2010, 18:15:09 »
No lo se...
Existe ese dispositivo en Proteus??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado fame15

  • PIC10
  • *
  • Mensajes: 15
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #9 en: 18 de Marzo de 2010, 18:22:02 »
si si fijate en el archivo adjunto que esta el esquematico en proteus, y todo lo que estoy haciendo con todas las librerias en ccs....

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #10 en: 18 de Marzo de 2010, 18:28:38 »
OK esta noche veo si puedo hacerlo funcionar...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado fame15

  • PIC10
  • *
  • Mensajes: 15
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #11 en: 18 de Marzo de 2010, 18:30:06 »
ok MLGSOFT te lo agradezco muchisimo ya que me esta comiendo la cabeza hace dos semanas y no lo puedo resolver, muchas gracias...

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #12 en: 18 de Marzo de 2010, 22:34:52 »
Creo que funciona ahora, es mi primera vez con este dispositivo...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #13 en: 19 de Marzo de 2010, 00:03:09 »
Hola MLO e probado con esa sentencia y tampoco puede leer el dato de memoria, leo todos 0000000000

 :?

Raro, porque a mi si me funciona....
El papel lo aguanta todo

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Leer codigo de 64 bits en la rom del ds18s20
« Respuesta #14 en: 19 de Marzo de 2010, 08:27:33 »
Entre otras cosas elimine la sentencia de escribir 44H antes de 33H, eso debe ser lo peor que tenia... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.


 

anything