Autor Tema: Pic 16f88 SPI o I2C 16bits  (Leído 2640 veces)

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

Desconectado debonaire

  • PIC10
  • *
  • Mensajes: 12
Pic 16f88 SPI o I2C 16bits
« en: 02 de Agosto de 2011, 00:04:09 »
Hola Buenas amigos me comunico con ustedes para ver si me pueden ayudar con un problemita q tengo ya q necesito comunicarme con el modulo de la tienda Sparkfun SoMO 14D no es mas q un modulos de mensajes de audio pero para pedir la reproduccion de cada mensaje tengo q enviarle una trama de 16 bits, la cual se transmite con comunicación serial 2-wire osea con 2 linea, Clock y Data.

Y el diagrama es: SB(bit de inicio),D15,....D0,(bit de parada)SB

Anteriormente he trabajado bien con este micro en assembler y he comunicado con el USART, I2C sin ningun problema... :lol:

Ahora mi pregunta :?

Hay alguna manera de enviarle a este modulo con el pic 16f88 a través de bien sea la comunicación Serial SPI o I2C  el dato de 16Bits con el diagrama anteriormente indicado.

Espero su pronta y sabia respuesta Gracias!!!


P.D.: Programo en Assembler

Desconectado esteban_68

  • PIC12
  • **
  • Mensajes: 86
Re: Pic 16f88 SPI o I2C 16bits
« Respuesta #1 en: 02 de Agosto de 2011, 02:09:18 »
Si el dispositivo (cualquiera que sea) al que le vas a enviar la información no tiene restricciones en tiempo de setup y hold, y no requiere que mantengas funcionando continuamente SCK, puedes simplemente enviar dos datos SPI de 8 bits, uno tras otro consecutivamente. Y dependiendo de tu aplicación puedes necesitar hacer bit bang con SDO como GPIO.

Desconectado debonaire

  • PIC10
  • *
  • Mensajes: 12
Re: Pic 16f88 SPI o I2C 16bits
« Respuesta #2 en: 07 de Agosto de 2011, 20:58:29 »
Hola esteban_68 gracias por tu ayuda pero ahí esta el problema... q no se como comunicar I2C con este micro ya q pense q era de igual manera q el pic16f877 (con este he comunicado perfecto) q tiene un registro para enviar el bit de inicio y de parada pero al ver bien este PIC 16f88 no cuenta con estos registros.
Y quisiera saber si sabes algo de la comunicación I2C de este PIC el 16f88 y como configurarlo y enviar la trama I2C.

Gracias!!!

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2451
Re: Pic 16f88 SPI o I2C 16bits
« Respuesta #3 en: 07 de Agosto de 2011, 21:06:27 »
  Tal vez no tenga periférico para I2C o SPI y es por ello que no encontrás los registros....
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado debonaire

  • PIC10
  • *
  • Mensajes: 12
Re: Pic 16f88 SPI o I2C 16bits
« Respuesta #4 en: 07 de Agosto de 2011, 23:17:33 »
Eso es lo curioso q el datasheet dice q si tiene este modulo I2C y habla como configurarlo y todo pero en ningun registro encuentro donde enviar el bit de inicio y parada.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6739
    • Micros-Designs
Re: Pic 16f88 SPI o I2C 16bits
« Respuesta #5 en: 07 de Agosto de 2011, 23:25:53 »
Tiene SSP o MSSP ?  :roll:

 ;-)

Desconectado debonaire

  • PIC10
  • *
  • Mensajes: 12
Re: Pic 16f88 SPI o I2C 16bits
« Respuesta #6 en: 07 de Agosto de 2011, 23:36:52 »
Hola Suki dice: en la pagina de configuracion I2C en el Datasheet dice:
 "SSP I2C Mode Operation"
y en el   "Synchronous Serial Port Mode" Select bits q son 4Bits de configuracion en el Registro SSPCON 
dice:  1011 = I2C Firmware Controlled Master mode (Slave Idle)

Por eso digo q si tiene comunicacion I2C pero no se como comenzar la comunicacion sino me indica como enviar los bit de inicio y parada en ningun registro, tal y como es en el 16F877A q anteriormente he ccomunicado sin ningun problema

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2451
Re: Pic 16f88 SPI o I2C 16bits
« Respuesta #7 en: 07 de Agosto de 2011, 23:54:29 »
Esto dice el datasheet...

"Master mode operation is supported in firmware using
interrupt generation on the detection of the Start and
Stop conditions. The Stop (P) and Start (S) bits are
cleared from a Reset, or when the SSP module is dis-
abled. The Stop (P) and Start (S) bits will toggle based
on the Start and Stop conditions. Control of the I 2C bus
may be taken when the P bit is set, or the bus is Idle
and both the S and P bits are clear.
In Master mode operation, the SCL and SDA lines are
manipulated in firmware by clearing the corresponding
TRISB<4,1> bit(s). The output level is always low, irre-
spective of the value(s) in PORTB<4,1>. So, when
transmitting data, a ‘1’ data bit must have the
TRISB<1> bit set (input) and a ‘0’ data bit must have
the TRISB<1> bit cleared (output). The same scenario
is true for the SCL line with the TRISB<4> bit. Pull-up
resistors must be provided externally to the SCL and
SDA pins for proper operation of the I2C module."

Por lo poco que entiendo de ingles (que para los datasheet y por el momento me fue suficiente  :D ) parece ser que en modo maestro vos tenés que generar la señales de SDA y SCL manipulando el TRISB. De hecho recomienda la lectura de la siguiente nota

"For more information on Master mode operation, see
Application Note AN554, “Software Implementation of
I2C™ Bus Master”.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6739
    • Micros-Designs
Re: Pic 16f88 SPI o I2C 16bits
« Respuesta #8 en: 07 de Agosto de 2011, 23:56:02 »
No es igual al 16F877, hay que leer detalladamente el datasheet, pero para enviar datos hay que trabajar con el registro TRISB, no se hace automáticamente como con un MSSP. Revisa en el datasheet la sección de I2C/Master


Saludos!

Desconectado debonaire

  • PIC10
  • *
  • Mensajes: 12
Re: Pic 16f88 SPI o I2C 16bits
« Respuesta #9 en: 08 de Agosto de 2011, 23:33:15 »
Hola estuve leyendo la nota de Aplicación AN554 y según leo esta transmisión I2C hay q hacerla a pie, me explico mandar cada bit tanto el de dato y el del clock y también controlar el tiempo de cada uno.
Ahora si es asi lo puedo hacer con cualquier otro pin?? porq si los estoy mandando manualmente hasta el clock y los bits de datos y hago la sincronización de estos con retardos o los timer no entiendo para q utilizar los pines TRISB <4,1> q son los de SCL,SDA.

Por favor si alguien  alguna vez ha comunicado asi con protocolo I2C una ayudita porfa...!

(en ASSEMBLER )

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6739
    • Micros-Designs
Re: Pic 16f88 SPI o I2C 16bits
« Respuesta #10 en: 08 de Agosto de 2011, 23:41:10 »

Desconectado debonaire

  • PIC10
  • *
  • Mensajes: 12
Re: Pic 16f88 SPI o I2C 16bits
« Respuesta #11 en: 09 de Agosto de 2011, 19:42:28 »
Ok gracias por la aduda suki  ;-), Tratare de realizar la comunicación en I2C pero 16 Bits con el dispositivo SOMO 14D  y les aseguro q pondre por aqui la rutina en asm.  Cuando la logre realizar.

Junto a otras rutinas en assembler q he creado. Solo q no sabria en que seccion Postearla...  sera por esta misma???

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2451
Re: Pic 16f88 SPI o I2C 16bits
« Respuesta #12 en: 09 de Agosto de 2011, 19:44:37 »
Creo que sería mejor en "Almacén del Assembler"
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas


 

anything