Autor Tema: Problemas eeprom i2c Force_HW , velocidad i2c SSP? pic16f88 - RESUELTO -  (Leído 4392 veces)

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

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Hola !

Pues no logro comunicar el pic y la eeprom con force_HW uso el pic16f88 y eeprom 24lc256

Cuando lo hago por soft no tengo ningun problema , realmente no se a que se deba ya probe cambiando varios parametros y no me resulta.


Código: [Seleccionar]
#ifndef EEPROM_SDA

#define EEPROM_SDA  PIN_B1
#define EEPROM_SCL  PIN_B4

#endif

#use i2c(master,sda=EEPROM_SDA, scl=EEPROM_SCL,i2c1,force_hw)        //i2c1 pines i2c del hw del pic,Force_HW,forzar hard del pic

Con esa linea no logro nada de comunicacion ni un cambio , siempre me imprime FF FF FF FF

Cuando solo quito el i2c1 y el force_HW , logro leer y escribir correctamente la memoria.

Tenia el FAST_IO y nada , lo cambie por el STANDARD y nada

Lo mismo lo probe con FORCE_SW  y corre sin probelmas.

Alguna sugerencia?? Agrego que en proteus si funciona , pero xD proteus esta loco xD

Tambien como calculo la velocidad el modulo i2c??

Iba a modificar el SSPAD , pero al leer las especificaciones del pic16f88 note que no tiene MSSP sino SSP y en este no se como cambiar o calcular la velocidad. Tengo resistencias de 2.2K asi que puedo estar en 400KHz y 1MHz con la eeprom.


Gracias!!!
-------------

P.D. googleando xD pense que a alguein le sucedio lo mismo y estaba posteado en el foro xD y da la casualidad que llegue a mi propio tema xD lol  :D
« Última modificación: 14 de Enero de 2010, 17:23:43 por AKENAFAB »

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Problemas comunicacion eeprom i2c Force_HW , velocidad i2c ssp? pic16f88
« Respuesta #1 en: 14 de Enero de 2010, 11:01:45 »
Amigo Fabrizio, la 24LC256 sólo trabaja a 100kHz o a 400kHz...

http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010823

Sobre la velocidad del I2C...

http://img59.imageshack.us/img59/9929/i2c.png


Puedes probar con FAST=400000.

A ver qué pasa.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Problemas comunicacion eeprom i2c Force_HW , velocidad i2c ssp? pic16f88
« Respuesta #2 en: 14 de Enero de 2010, 16:07:16 »

Gracias por la respuesta!

Esos datos ya los cheque , tambiem lo de la eeprom , con los pic18F y la misma memoria no tengo problemas , pero estos pic tienen MSSP y en ellos con los bits SSPÄD puedo configurarles la velocidad , Si pongo SLOW el compilador me genera el baud para 100KHz si pongo FAST lo genera a 400KHz, esto solo en los con MSSP , en unos 16F no tienen MSSP sino SSP y en estos no hallo como cambiarle la velocidad , en la configuracion solo se indicia si es master y ya .

Lo raro es que como por FORCE_SW si me comunico con la eeprom y por FORCE_HW no >_<

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Problemas eeprom i2c Force_HW , velocidad i2c SSP? pic16f88 - RESUELTO -
« Respuesta #3 en: 14 de Enero de 2010, 17:21:15 »
Pues ya una vez desvelado >_<

Gran diferencia entre MSSP y SSP , el SSP en modo MAster se tiene que hacer practicamente todo por software . el toggle de los pines , el timming , etc.. y qiueda a cargo del usuario hacer todo esto.

Asi que pues lo dejo por soft.

En el MSSP , el modo MASTER ya incluye control de HARDware , por eso el el nombre de MSSP por master xD.

Me lei las notas PIC-MID RANGE refenrence Manual , la an554 y an578.

Doy por terminado este tema! 8)


Gracias !
« Última modificación: 14 de Enero de 2010, 17:24:06 por AKENAFAB »

Desconectado pandemonium

  • PIC10
  • *
  • Mensajes: 14
Re: Problemas eeprom i2c Force_HW , velocidad i2c SSP? pic16f88 - RESUELTO -
« Respuesta #4 en: 10 de Febrero de 2010, 01:38:10 »
Hola Señores TODOPIC. Soy nuevo en el foro. He aprendido con ustedes tantas cosas, tanto de los señores Nocturno, Marmatar, Miglsoft, Pocher, y un gran combo de maestros que me enseñan cada vez que entro a este Foro, que les agradezco sinceramente por la manera tan desinteresada de compartir conocimiento. Eso si, a los que no nombré también agradezco inmensamente cada uno de sus aportes (no me acuerdo ahora de todos por el sueño, 11:18PM :D) . Y pues en base a lo anterior, sería una falta de respeto con toda las cosas que he aprendido de ustedes no aportar mi granito de arena. Asi que entro en este hilo que habla de memorias eeprom i2c para compartir con ustedes una librería que me estaba "partiendo el coco" (rompiendo la cabeza). Está escrita específicamente para las memorias 2464 a partir de la librería que viene con el compilador (que por cierto es bastante básica), pero cualquiera con conocimientos minimos en programación la puede modificar para la memoría que quiera, especialmente la lc 128 y la lc256. el código está hecho en c para el compilador CCS. Eso sí, soy novato, muy novato en c, pero creo que a más de uno les puede servir. También me gustaría algún comentario de errores o mejoras que se le pueda hacer a dicha librería. Saludos.

Ventajas de esta librería: 1. se puede grabar la memoria con buffer paginado a 32 bytes. Esto quiere decir que escribir 32 bytes de pagina se demora los mismos 5ms aprox que se demora en la grabación de un solo byte. Por ejemplo si escriben una cadena de 64 caracteres, esta se demorará en grabar sólo 10 ms.
2 Se implementó la función "save_eeprom" que sirve para grabar cadenas menores o superiores a 32 bytes de pagina, con lo que nos podemos despreocupar de tener que segmentar las cadenas superiores a 32 bytes. Se recomienda que cuando se use esta función se apunte en las direcciones de inicio de cada página. Ej 0, 32, 64, 96, 128, etc.
3. bueno, hay otras funciones interesantes que están explicadas en el código. Cualquier duda trataré de estar pendiente para aclararla.

Saludos. :-/