Autor Tema: AYUDA CON I2C Y SPI  (Leído 2259 veces)

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

Desconectado dark_panzer

  • PIC10
  • *
  • Mensajes: 2
AYUDA CON I2C Y SPI
« en: 19 de Diciembre de 2006, 17:47:55 »
Hola a todos me encuentro haciendo un proyecto que trata de un medidor trifasico con el integrado sa9604a el que se comunica con el PIC, en mi caso un 16c63, por SPI los datos capturados por el pic los debo almacenar en 8 memorias EEPROM x24320 las cuales se conectan al PIC mediante un bus I2C. Mi problemas es que que para ambas configuraciones se utilizan los mismos pines de entrada y salida. ¿alguien sabe alguna manera de poder cambiar los pines de transmisión del SPI o darme alguna idea al respecto. Gracias.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: AYUDA CON I2C Y SPI
« Respuesta #1 en: 19 de Diciembre de 2006, 18:15:41 »
Siempre puedes emular uno de los dos protocolos por software.

De hecho, algunos compiladores, como CCS lo hacen automáticamente simplemente si seleccionas otros pines en la cláusula #use

Desconectado dark_panzer

  • PIC10
  • *
  • Mensajes: 2
Re: AYUDA CON I2C Y SPI
« Respuesta #2 en: 19 de Diciembre de 2006, 18:20:31 »
pero que conviene mas emular SPI o I2C? saludos

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: AYUDA CON I2C Y SPI
« Respuesta #3 en: 19 de Diciembre de 2006, 18:40:24 »
Lo desconozco. Parece que el SPI es más simple, pero nunca lo he programado a pelo.

Deimos

  • Visitante
Re: AYUDA CON I2C Y SPI
« Respuesta #4 en: 20 de Diciembre de 2006, 11:41:31 »
El SPI se basa en 4 lineas (SDI,SDO,SCK y SS). El i2c se basa en dos lineas (SDA,SCL).

Puedes hacer que el pic configure los modulos de i2c o de spi a medida que te hagan falta, pero, el i2c lleva una resistencia en pull-up en cada linea, cosa que no lleva el spi. Con estas resistencias además se limita la velocidad de transmision del bus i2c. Así que es posible que si pones las pull-up porque estás trabajando con el i2c, cuando cambies a spi las pull-up te den problemas.

Dentro del mplab tienes unas librerias, spi_w y i2c_w con las que puedes simular un puerto spi o i2c con cualquier entrada I/O del pic. Pero estas librerias solo son para PIC18 y ademas estan en C.

Ninguno de los dos montados a pelo son fáciles. El i2c tiene señal de ACK que hay que esperar para poder seguir mandando o recibiendo, la ventaja es que la misma linea recibe y envia, y puede llevar varios nodos colgando del bus. El spi tiene dos lineas de enviar y recibir pero es un sistema P2P, o sea que no puede haber mas de uno colgando del bus. Para poder colgar varios dispositivos en el spi hay que montar con salidas aparte, los chip select de cada nodo del bus, con lo que se gastan puertos.

Mi consejo. Cambia de pic, a uno que tenga el i2c y el spi por separado. A ser posible PIC18, encontraras mas ejemplos.

Dews