TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: electroipod 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.
-
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
-
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.
-
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
-
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.
-
El SSP tambien puede trabajar como maestro, mira mas abajo en el datasheet, donde viene MASTER CLK/04, MASTER CLK/08 ...
-
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 (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011043).
Saludos.
-
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