Autor Tema: duda I2C entre MSSP Y SSP  (Leído 3178 veces)

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

Desconectado electroipod

  • PIC16
  • ***
  • Mensajes: 166
duda I2C entre MSSP Y SSP
« en: 09 de Junio de 2013, 21:52:03 »
Saludos a todos, he buscado la difencia entre MSSP y SSP pero sin buenos resultados, tengo dos pic uno usa SSP(pic16f88) y el otro usa MSSP(pic16f887), quisiera saber cual es la difencia entre estas dos tecnologias, al ver sus datasheet veo que usan casi los mismos registros, quisiera saber realmente como funciona el protocolo I2C y hacerme una libreria para controlar el DS1307(Reloj Calendario), pero en internet hay tanta informacion que nose por donde comenzar, alguien que ya este metido en este mundo me podria decir donde puedo encontrar informacion concreta o alguna libreria I2C, muchas gracias por sus respuestas.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: duda I2C entre MSSP Y SSP
« Respuesta #1 en: 09 de Junio de 2013, 22:33:43 »
  Por lo que llego a entender de los datasheet, la diferencia está en que los PIC que poseen MSSP implementan todo el HardWare necesario para trabajar tanto en Master como en Slave, mientras que los PIC con SSP implementan el HardWare para trabajar como slave. En el caso de los PIC con SSP es menester del programador hacer las rutinas necesarias para la generación de los pulsos de clock y data. Mientras que en los PIC con MSSP simplemente hay que configurar ciertos registros y está casi todo listo.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado electroipod

  • PIC16
  • ***
  • Mensajes: 166
Re: duda I2C entre MSSP Y SSP
« Respuesta #2 en: 09 de Junio de 2013, 22:50:08 »
 Por lo que llego a entender de los datasheet, la diferencia está en que los PIC que poseen MSSP implementan todo el HardWare necesario para trabajar tanto en Master como en Slave, mientras que los PIC con SSP implementan el HardWare para trabajar como slave. En el caso de los PIC con SSP es menester del programador hacer las rutinas necesarias para la generación de los pulsos de clock y data. Mientras que en los PIC con MSSP simplemente hay que configurar ciertos registros y está casi todo listo.
segun el datasheet de pic16f88 se puede configurar como maestro configurando los pines del registro SSPCON:
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

aun no me queda claro lo que dijiste sobre que el programador debe hacer las rutinas necesarias para la generación de los pulsos de clock y data, seguire estudiando, gracias por tu respuesta.
« Última modificación: 09 de Junio de 2013, 22:52:38 por electroipod »

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: duda I2C entre MSSP Y SSP
« Respuesta #3 en: 10 de Junio de 2013, 00:09:55 »
 Por lo que llego a entender de los datasheet, la diferencia está en que los PIC que poseen MSSP implementan todo el HardWare necesario para trabajar tanto en Master como en Slave, mientras que los PIC con SSP implementan el HardWare para trabajar como slave. En el caso de los PIC con SSP es menester del programador hacer las rutinas necesarias para la generación de los pulsos de clock y data. Mientras que en los PIC con MSSP simplemente hay que configurar ciertos registros y está casi todo listo.
segun el datasheet de pic16f88 se puede configurar como maestro configurando los pines del registro SSPCON:
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

aun no me queda claro lo que dijiste sobre que el programador debe hacer las rutinas necesarias para la generación de los pulsos de clock y data, seguire estudiando, gracias por tu respuesta.

Es como le dijo AngelGris, si el PIC tiene modulo SSP tiene que  hacer rutinas para que manejar las lineas SCL y SDA.

La opcion que señala 1011 = I2C Firmware Controlled Master mode (Slave Idle) lo indica, Modo maestro  I2C controlado por Firmware(programa de usuario), la opcion (Slave Idle) sirve si es que el micro se utiliza en un sistema multimaster, ya que puede detectar si se produce un bit de start o un bit de stop producidos por otro maestro, yo no he usado un sistema multimaster, pero fue lo que averigue mientras investigaba las diferencias del SSP y MSSP.

Saludos



La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado electroipod

  • PIC16
  • ***
  • Mensajes: 166
Re: duda I2C entre MSSP Y SSP
« Respuesta #4 en: 10 de Junio de 2013, 18:05:36 »
He leido el manual an554, pero este manual solo es para los pic que no tienen un hardware i2c incorporado, ademas estan usando el pic 16c84 y el manual es del año 97, si no puedo conseguir ayuda de la misma microchip nose donde mas puedo buscar, si tan solo tuviera una libreria de ejemplo para saber como usar los registros del pic16f88 correspondientes al i2c, o sino en todo caso buscar un pic de 18 pines que tenga MSSP.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: duda I2C entre MSSP Y SSP
« Respuesta #5 en: 10 de Junio de 2013, 18:30:18 »
He leido el manual an554, pero este manual solo es para los pic que no tienen un hardware i2c incorporado, ademas estan usando el pic 16c84 y el manual es del año 97, si no puedo conseguir ayuda de la misma microchip nose donde mas puedo buscar, si tan solo tuviera una libreria de ejemplo para saber como usar los registros del pic16f88 correspondientes al i2c, o sino en todo caso buscar un pic de 18 pines que tenga MSSP.

  En el caso del 16f88 sería casi lo mismo, ya que no tiene HardWare para funcionar como Master. Puedes buscar en el foro acerca de I2C por software... hay mucha información.

  Sería buena saber también con que compilador estás trabajando ya que si fuera CCS éste tiene su propia forma de gestionar I2C por software y es realmente sencillo y vas a encontrar muchos ejemplos.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado electroipod

  • PIC16
  • ***
  • Mensajes: 166
Re: duda I2C entre MSSP Y SSP
« Respuesta #6 en: 10 de Junio de 2013, 18:38:45 »
Yo quiero hacerlo con el compilador xc8 o con el hitech ya que vienen a ser lo mismo, me he pasado todo el dia buscando información pero al parecer en español no hay, asi es que comenzare a hacer la busqueda en ingles ojala tenga suerte.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: duda I2C entre MSSP Y SSP
« Respuesta #7 en: 10 de Junio de 2013, 18:57:58 »
Yo quiero hacerlo con el compilador xc8 o con el hitech ya que vienen a ser lo mismo, me he pasado todo el dia buscando información pero al parecer en español no hay, asi es que comenzare a hacer la busqueda en ingles ojala tenga suerte.

  Aquí hay buena información para XC8, http://www.todopic.com.ar/foros/index.php?topic=40649.60 .Incluso he subido rutinas de I2C por SoftWare. Será cuestión de utilizar dichas rutinas para poder comunicarte con el DS1307
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas