Autor Tema: comunicación i2c  (Leído 1914 veces)

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

Desconectado daltonico82

  • PIC12
  • **
  • Mensajes: 89
comunicación i2c
« en: 13 de Mayo de 2008, 13:21:53 »
Código: Javascript
  1. [color=black]Hola  :-/:
  2.  
  3. Estoy intentando comunicar un 18F2520 con un ds1307 mediante comunicación serie. Tengo el puerto C ocupado con un LCD; Mi pregunta es la siguiente: [color=black][/color]¿Esto es correcto?: #use i2c(Master, SDA=PIN_A0, SCL=PIN_A1). ME LO ENCONTRE EN UN PROGRAMA ASI y CCS COMPILA aunque mi duda viene motivada porque en el datasheet del PIC dice esto:
  4.  
  5. "17.3 SPI Mode:
  6.  
  7. The SPI mode allows 8 bits of data to be synchronously
  8. transmitted and received simultaneously. All four
  9. modes of SPI are supported. To accomplish
  10. communication, typically three pins are used:
  11. • Serial Data Out (SDO) – RC5/SDO
  12. • Serial Data In (SDI) – RC4/SDI/SDA
  13. • Serial Clock (SCK) – RC3/SCK/SCL
  14. Additionally, a fourth pin may be used when in a Slave
  15. mode of operation:
  16. • Slave Select (SS) – RA5/SS
  17. Figure 17-1 shows the block diagram of the MSSP
  18. module when operating in SPI mode."
  19.  
  20. Gracias piclisteros, toda aportación será útil.
  21.  
  22. Saludos :mrgreen:[/color]

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: comunicación i2c
« Respuesta #1 en: 13 de Mayo de 2008, 14:39:12 »
Saludos daltonico!  :-)

Entonces tu quieres implementar comunicación i2c... pues el código que tienes allí es correcto... el compilador implementará la interfaz i2c, es decir, será por software.

Ahora bien, no entiendo tu duda. Lo que tienes copiado de la sección 17.3 de la DS es referente al módulo spi, no al i2c.
Es decir, el modulo MSSP tiene dos submodulos: el spi y el i2c. Y por cierto sólo puedes usar uno a la vez... si usas i2c no puedes usar spi, y viceversa.

Pero todo eso sería relevante si estuvieses implementando la interfaz por hardware... es decir, usando dicho módulo... tú no lo estás haciendo así porque, como mencionas, tienes el puerto C (donde están ubicados los pines para trabajar con MSSP) ocupados. Así que en realidad para tú código es como si ese módulo no existiera. El compilador está haciendo solito   el código para generar la interfaz... como te dije, es i2c por software.

Bueno espero haberme explicado... y no haberte enredado más la vida  :D
Ok nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado daltonico82

  • PIC12
  • **
  • Mensajes: 89
Re: comunicación i2c
« Respuesta #2 en: 13 de Mayo de 2008, 14:51:49 »

Hola firepic, muchas gracias por responder.

Entonces solo debo de respetar los pines C3 Y C4 (lo que lei del datasheet) si me comunico por el modo SPI.

Del otro modo (i2c) tengo 2 opciones: usar C3 y C4 ( i2c hardware) o usando otros pines (i2c software).

Espero haber entendido, y ahora manos a la obra... a comunicarme con el ds1307...

UN sALUDO


Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: comunicación i2c
« Respuesta #3 en: 13 de Mayo de 2008, 14:56:07 »
Bueno si puedes irrespetar los pines C3 y C4...  :D
Porque también existe la posibilidad de implementar spi por software... aunque no es recomendable... generalmente, si uno usa ambos protocolos (i2c y spi)... implementa uno por hardware y otro por software...
En tu caso si estás usando no más el i2c, puedes dejar los C3 y C4 como los tienes y hacerlo por software en los pines que defines en el #use i2c...
Ok nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado daltonico82

  • PIC12
  • **
  • Mensajes: 89
Re: comunicación i2c
« Respuesta #4 en: 13 de Mayo de 2008, 17:10:16 »
Respeto a los pines ante todo!!!jeje

Gracias amigo, en cuanto tenga algo interesante aqui estará; este es un trabajo de todos. Bendito foro!