Autor Tema: Duda I2C en dos pic  (Leído 2397 veces)

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

Desconectado electroipod

  • PIC16
  • ***
  • Mensajes: 166
Duda I2C en dos pic
« en: 06 de Mayo de 2012, 23:39:41 »
Alguien me puede decir cual es la diferencia de I2C entre los pic 16f88 y 16f887 segun el datasheet el 16f88 es ssp y el 16f887 es mssp gracias por su respuesta.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Duda I2C en dos pic
« Respuesta #1 en: 07 de Mayo de 2012, 00:22:26 »
no creo que haya mucha diferencia, unicamente le han añadido una letra mas, quizas porque el M tenga algun registro o configuracion mas que el otro no tiene

Desconectado diguito_69

  • PIC16
  • ***
  • Mensajes: 136
Re: Duda I2C en dos pic
« Respuesta #2 en: 07 de Mayo de 2012, 00:53:30 »
La diferencia esta en que en el ssp el I2C solo puede trabajar solo como esclavo y en el mssp puede trabajar como maestro o como esclavo. El SPI puede estar como maestro o esclavo con cualquiera de los dos.

Saludos.
« Última modificación: 07 de Mayo de 2012, 04:38:01 por diguito_69 »
"Carezco de un don especial. Sólo soy apacionadamente curioso". Albert Einstein.

Desconectado electroipod

  • PIC16
  • ***
  • Mensajes: 166
Re: Duda I2C en dos pic
« Respuesta #3 en: 07 de Mayo de 2012, 17:44:25 »
En el datasheet del 16f88 dice:
• Synchronous Serial Port (SSP) with SPI™ (Master/Slave) and I2C™ (Slave)
En el datasheet del 16f887 dice:
• Master Synchronous Serial Port (MSSP) Module supporting 3-wire SPI (all 4 modes) and I2C™ Master and Slave Modes with I2C Address Mask.
Alguien que alla utilizado el I2C me podria explicar mejor estas lineas
Al parecer ambos pueden trabajar como maestro y esclavo entonces donde esta la diferencia
Gracias por sus respuestas

Desconectado diguito_69

  • PIC16
  • ***
  • Mensajes: 136
Re: Duda I2C en dos pic
« Respuesta #4 en: 07 de Mayo de 2012, 19:01:07 »
La diferencia es la que dije en el mensaje anterior, en el SSP , el I2C no puede trabajar como maestro y en MSSP si.

Synchronous Serial Port (SSP) with SPI™ (Master/Slave) and I2C™ (Slave)

O sea que el I2C solo permite trabajar como esclavo.

Master Synchronous Serial Port (MSSP) Module supporting 3-wire SPI (all 4 modes) and I2C™ Master and Slave Modes with I2C Address Mask.

O sea que el I2C puede trabajar tanto como maestro como esclavo, esta es la principal diferencia.

Además, este pic en particular viene con "I2C Address Mask", que por lo que pude ver rápidamente en el datasheet, creo que sirve para detectar la dirección del dispositivo y no tener que hacerlo por software. Pero esta caracteristica es de este pic, hay otros pic con mssp que no vienen con "I2C Address Mask".

Para el SPI aparentemente no hay ningún cambio, funciona igual en cualquiera de los dos módulos.

Saludos.
« Última modificación: 07 de Mayo de 2012, 19:37:14 por diguito_69 »
"Carezco de un don especial. Sólo soy apacionadamente curioso". Albert Einstein.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Duda I2C en dos pic
« Respuesta #5 en: 07 de Mayo de 2012, 19:57:06 »
El SSP tambien puede trabajar como maestro, mira mas abajo en el datasheet, donde viene MASTER CLK/04, MASTER CLK/08 ...

Desconectado diguito_69

  • PIC16
  • ***
  • Mensajes: 136
Re: Duda I2C en dos pic
« Respuesta #6 en: 07 de Mayo de 2012, 20:36:25 »
Si te referís a esta parte
 
SSPM<3:0>: Synchronous Serial Port Mode Select bits
0000 = SPI Master mode, clock = OSC/4
0001 = SPI Master mode, clock = OSC/16
0010 = SPI Master mode, clock = OSC/64
0011 = SPI Master mode, clock = TMR2 output/2
0100 = SPI Slave mode, clock = SCK pin. SS pin control enabled.
0101 = SPI Slave mode, clock = SCK pin. SS pin control disabled. SS can be used as I/O pin.
0110 = I2C Slave mode, 7-bit address
0111 = I2C Slave mode, 10-bit address
1011 = I2C Firmware Controlled Master mode (Slave Idle)
1110 = I2C Slave mode, 7-bit address with Start and Stop bit interrupts enabled
1111 = I2C Slave mode, 10-bit address with Start and Stop bit interrupts enabled
1000, 1001, 1010, 1100, 1101 = Reserved

el unico que puede trabajar en maestro es el SPI.

La unica opción de maestro para I2C es "I2C Firmware Controlled Master mode (Slave Idle)", pero no es parte del módulo SSP, hay que implementarla utilizando interrupciones, AN554.

Saludos.
"Carezco de un don especial. Sólo soy apacionadamente curioso". Albert Einstein.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Duda I2C en dos pic
« Respuesta #7 en: 08 de Mayo de 2012, 12:23:58 »
pues si, tienes razon, no lei el articulo completo de master mode, como tambien vi multi-master pues me supuse ya que se podia poner maestro