TODOPIC

Microcontroladores PIC => dsPIC => Mensaje iniciado por: claydergc en 31 de Enero de 2013, 00:50:39

Título: Leer/Escribir eeprom i2c con cualquier pin
Publicado por: claydergc en 31 de Enero de 2013, 00:50:39
Buenas noches con todos,

Llevo poco tiempo programando PICs y recien entré con los dsPICs. Estaba acostumbrado a programar en C con el compilador CCS, en donde entre cosas podía controlar una memoria eeprom con cualquier pin del dsPIC, es decir, no solamente con los pines destinados para la comunicacion I2C. Ahora ando usando el dsPIC30F4013 y me veo obligado a usar C30 con el cual pude correr el ejemplo de microchip para controlar estas memorias; sin embargo, solo puedo hacerlas funcionar si uso los pines destinados para I2C. El problema es que los pines para I2C son los mismos que los de SPI, y necesito usar ambos tipos de comunicacion. Por ello es que quisiera controlar la eeprom con cualquier pin de entrada y salida -si se pudiera. Existe alguna porción de codigo o libreria que ya haga esto (como el del CCS), algun ejemplo quizas? o tengo que programar el bus I2C por software?

Gracias por su ayuda.

Saludos.
Título: Re: Leer/Escribir eeprom i2c con cualquier pin
Publicado por: planeta9999 en 31 de Enero de 2013, 03:04:02
Por ello es que quisiera controlar la eeprom con cualquier pin de entrada y salida -si se pudiera.


Eso lo podrías hacer por hardware, en los micros que tienen PPS (remapeo de pines), como por ejemplo el dsPIC33FJ64GP202, no obstante el puerto remapeado sería el SPI que lo podrías asignar a otros pines para que no coincidan con los del I2C.

Consulta en el buscador de Microchip para seleccionar el micro más adecuado:
http://www.microchip.com/ParamChartSearch/Chart.aspx?branchID=8195

Título: Re: Leer/Escribir eeprom i2c con cualquier pin
Publicado por: Suky en 31 de Enero de 2013, 11:52:23
La función de CCS lo hace por software, así que de necesitar hacerlo deberás igualmente implementarlo por software. No recuerdo haber visto una librería para C30 así que puede que lo mejor sea dedicarle tiempo a realizarla, no es compleja.

Y sino es muy valida la recomendación de planeta9999.


Saludos!
Título: Re: Leer/Escribir eeprom i2c con cualquier pin
Publicado por: claydergc en 03 de Febrero de 2013, 00:27:08
Suky me gustaría implementarlo por software, por donde podria comenzar, tendras algo q me pueda servir?

Saludos.
Título: Re: Leer/Escribir eeprom i2c con cualquier pin
Publicado por: Suky en 03 de Febrero de 2013, 10:59:33
Teniendo el protocolo estudiado lo único que queda es generar las señales en los tiempos adecuados. Ten en cuenta que el bus tiene pull-up externas, así que lo único que tiene que forzar es un 0 lógico. Por aquí hay algo que puede ayudar:

http://www.phanderson.com/PIC/PICC/CCS_PCM/24_256_1.html


Saludos!
Título: Re: Leer/Escribir eeprom i2c con cualquier pin
Publicado por: claydergc en 03 de Febrero de 2013, 12:35:17
Gracias, voy a intentar programarlo y luego te cuento como me fue.

Saludos.
Título: Re: Leer/Escribir eeprom i2c con cualquier pin
Publicado por: claydergc en 12 de Febrero de 2013, 14:36:42
Funcionó bien! gracias. Lo extraño es que no funciona con el puerto B. Revisé si habia configurado los pines como entradas y salidas digitales, y asi estaban, que raro.

Saludos.
Título: Re: Leer/Escribir eeprom i2c con cualquier pin
Publicado por: MGLSOFT en 12 de Febrero de 2013, 14:49:28
Deshabilitaste los pull-up del puerto B ??