Autor Tema: Lecciones aprendidas: SHT11 compartiendo un bus I2C  (Leído 1807 veces)

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

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Lecciones aprendidas: SHT11 compartiendo un bus I2C
« en: 17 de Mayo de 2012, 08:52:05 »
El SHT11 es un sensor de humedad que usa un esquema de comunicación similar al I2C.
En su hoja de datos indica que puede insertarse en un bus I2C sin interferir con los demás esclavos, si bien requiere una programación de la comunicación adhoc, pues no es compatible con la I2C.

En mi proyecto uso el puerto I2C hardware del PIC para controlar un ds3231 y 4 25aa1024, y he insertado en ese mismo bus el SHT11.

LECCION 1: Era incapaz de comunicarme con el SHT11 hasta que con el osciloscopio me he dado cuenta de que el pin SCK (reloj) no respondía a las subidad y bajadas que le ordenaba.
El problema es que estaba habilitado el puerto I2C hardware, que hace que los pines sda y sck no se comporten como pines I/O estándar.
Ahora, cuando quiero comunica con el sht11 deshabilito previamente el I2C con sspcon_sspen = false y todo funciona perfectamente.

LECCION 2: El SHT11 se ha fabricado en varias versiones. La más actual es la v4, pero la que yo tenía (de un sample que me mandaron hace años) era v3. Todas las versiones funcionan igual pero tienen una fórmula para compensar el valor de la humedad con el de la temperatura que utiliza coeficientes diferentes en función de la versión. Si váis a usar un SHT11 averiguad su versión y buscar los coeficientes apropiados (por ejemplo, los de la v3 yo los he encontrado aquí http://www.symbrion.eu/tiki-download_file.php?fileId=90)


Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17779
    • MicroPIC
Re: Lecciones aprendidas: SHT11 compartiendo un bus I2C
« Respuesta #1 en: 17 de Mayo de 2012, 12:33:34 »
¿Y qué tontería ha hecho el fabricante diseñando ese dispositivo sin cumplir el I2C?

Supongo que será un tema de patentes, pero vaya faena.
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4583
Re: Lecciones aprendidas: SHT11 compartiendo un bus I2C
« Respuesta #2 en: 26 de Mayo de 2012, 14:52:47 »
Hola.

Pues ... a mi no me a querido funcionar la simulacion del SHT11 si el pin de datos no esta en RA4, es decir, en un pin de colector abierto :( ...

Saludos
El papel lo aguanta todo

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4583
Re: Lecciones aprendidas: SHT11 compartiendo un bus I2C
« Respuesta #3 en: 27 de Mayo de 2012, 21:44:12 »
Hola.

Por cierto jfmateos2: el sensor te responde cuando usas un cristal de 20MHz?

Saludos
El papel lo aguanta todo

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Lecciones aprendidas: SHT11 compartiendo un bus I2C
« Respuesta #4 en: 28 de Mayo de 2012, 03:05:02 »
Lo estoy usando sin cristal externo... uso el oscilador interno del PIC configurado a 48MHz y me responde bien enviando los datos por USB CDC.

Ten en cuenta que hay que respetar los tiempos que tarda en realizar la medida (que varían en función de la resolución elegida)... y también que existe un comando para resetear la comunicación en caso de que quede bloqueada.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4583
Re: Lecciones aprendidas: SHT11 compartiendo un bus I2C
« Respuesta #5 en: 28 de Mayo de 2012, 22:38:20 »
Hola

Pues ... estoy utilizando una libreria que hace mucho tiempo posteo el mestre J1M ... y solo me funciona a 12MHz ...

Saludos
El papel lo aguanta todo

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Lecciones aprendidas: SHT11 compartiendo un bus I2C
« Respuesta #6 en: 29 de Mayo de 2012, 01:26:47 »
Yo estoy usando esta librería de JAL: http://code.google.com/p/jallib/source/browse/trunk/include/external/humidity/humidity_sht.jal?r=1529

No debería ser difícil compararla con la de J1M para ver dónde pueden estar las diferencias.