Autor Tema: C18 + Software I2C cambio de pines  (Leído 6635 veces)

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

Desconectado andros

  • PIC16
  • ***
  • Mensajes: 111
C18 + Software I2C cambio de pines
« en: 07 de Junio de 2006, 15:01:14 »
Hola a todos, espero estén bien:

Estoy usando la comunicación i2c con el compilador C18 de microchip, en esta oportunidad estoy haciendo uso de la librería sw_i2c.h, es decir, por software, ya que requiero el puerto c de mi PIC (18f252) para otras cosas. La cuestión es la siguiente:

* Ya uso efectivamente las funciones (trasnmisión, recepción, etc) cuando la libreria está configurada por defecto, más precisamente usando los pines SDA (RC4) y SCL (RC3).

* He leido el pdf de las librerías del compilador C18 en donde se indica que a través del simple uso de unas macros al interior de la librería sw_i2c.h, puedo cambiar los pines de transmisión (Datos, SDA) y el de sincronización (reloj, SCL). En efecto hago lo que me dicen; aquí muestro una porción de los cambios para usar los pines en el puerto A (obviamente he deshabilitado el ADC del PIC para estos pines):

#define  DATA_LOW   TRISAbits.TRISA4 = 0; // define macro for data pin output
#define  DATA_HI    TRISAbits.TRISA4 = 1; // define macro for data pin input
#define  DATA_LAT   LATAbits.LATA4        // define macro for data pin latch
#define  DATA_PIN   PORTAbits.RA4         // define macro for data pin

#define  CLOCK_LOW  TRISAbits.TRISA3 = 0; // define macro for clock pin output
#define  CLOCK_HI   TRISAbits.TRISA3 = 1; // define macro for clock pin input
#define  SCLK_LAT   LATAbits.LATA3        // define macro for clock pin latch
#define  SCLK_PIN   PORTAbits.RA3         // define macro for clock pin

Mi problema es sencillo de definir.... !no me funciona!, jeje, siendo más específico guardo las modificaciones de la librería y la incluyo en el proyecto del MPLAB (eso dicen que debe hacerce en el pdf); sin embargo probando en el proteus veo que no se transmite dato alguno por estos pines, en contraste, coloco el I2C debugger (Proteus) en los pines por defecto (RC4, RC3) y !transmite!, lo que me indica que el compilador o lo que sea no me hizo efectivos los cambios de la librería.

No se como hacer que el compilador me haga efectivos estos cambios, probablemente mi traducción del pdf es incorrecta o algo así, o no entiendo bien lo que me quieren decir.

Si alguien sabe como hacer que el I2C funcione con otros pines, o simplemente como hacer que el compilador me tome los cambios en la librería lo agradeceré mucho..... A continuación pongo el fragmento de texto del pdf donde dice como hacer los cambios efectivos (si es por mi problema de traducción, jejeje):

"After these definitions have been made, the user must recompile the I2C routines and
then use the updated files in the project. This can be accomplished by adding the library
source files into the project or by recompiling the library files using the provided batch
files"
. MPLAB® C18 C COMPILER LIBRARIES pag: 108


De antemano muchas gracias..

Saludos

Andros!
Andros!

Desconectado yoscape

  • PIC10
  • *
  • Mensajes: 8
Re: C18 + Software I2C cambio de pines
« Respuesta #1 en: 16 de Febrero de 2007, 20:12:14 »
hola como esta
no creo tener la respuesta as u pregunta y swiendo esta la frecha de la respuesta creo que ya lo resolvio, lo que pasa es que yo tambien estoy trabajando con i2c y logra la comunicacion entre un master y tres esclavos pero no he podido hacer que el esclavo le envie datos al master, podria por favor ayudarme.
mil gracias
yohan

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: C18 + Software I2C cambio de pines
« Respuesta #2 en: 16 de Febrero de 2007, 20:43:20 »
hola como esta
no creo tener la respuesta as u pregunta y swiendo esta la frecha de la respuesta creo que ya lo resolvio, lo que pasa es que yo tambien estoy trabajando con i2c y logra la comunicacion entre un master y tres esclavos pero no he podido hacer que el esclavo le envie datos al master, podria por favor ayudarme.
mil gracias
yohan


Yoscape, ¿estas hablando de i2c por software?

andros es una pena, no vi tu post, probablemente te hubiera podido echar una mano.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado andros

  • PIC16
  • ***
  • Mensajes: 111
Re: C18 + Software I2C cambio de pines
« Respuesta #3 en: 26 de Febrero de 2007, 11:47:30 »
jajaja!

pasaba por aquí y me emcuentro con esto!, si, es verdad, ha pasado bastante tiempo desde entonces..., aquella me ví obligado a usar los pines designados por hardware porque en realidad hice de todo y no me funcionó, así que ya estaba perdiendo demasiado tiempo.... Así que maunix, tus sugerencias son bienvenidas así ya haya terminado ese proyecto..., porque eso sí quedé con la espina (y la rabia) de no haber podido hacer funcionar las "maravillosas" macros de configuración del I2C por otros pines!


Saludos

Andros!
Andros!

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: C18 + Software I2C cambio de pines
« Respuesta #4 en: 26 de Febrero de 2007, 19:24:21 »
jajaja!

pasaba por aquí y me emcuentro con esto!, si, es verdad, ha pasado bastante tiempo desde entonces..., aquella me ví obligado a usar los pines designados por hardware porque en realidad hice de todo y no me funcionó, así que ya estaba perdiendo demasiado tiempo.... Así que maunix, tus sugerencias son bienvenidas así ya haya terminado ese proyecto..., porque eso sí quedé con la espina (y la rabia) de no haber podido hacer funcionar las "maravillosas" macros de configuración del I2C por otros pines!


Saludos

Andros!

Bueno, la técnica suele consistir en copiar todas las funciones del C18 en tu proyecto.  Sí, así como lo lees ;)

Luego las referencias del C18 haciendo el include del .h de las mismas, el cual debes enmarcar con comillas "" para indicar que no busque en el path por defecto sino en el directorio actual del proyecto.

En ese archivo .h que incluiste y está tu código, en ese mismo archivo debes modificar los bits.

En el de microchip editas el código pero como están compilados en librerias, es de ahí de donde se saca el código al final por eso que tus cambios no se veían reflejados.  Para que no te veas obligado a hacer una librería del LCD (.lib) es que te sugiero que copies y pegues el código en tu proyecto y lo modifiques ahí.

Esto te debiera funcionar.

Cualquier cosa, me vuelves a preguntar.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado andros

  • PIC16
  • ***
  • Mensajes: 111
Re: C18 + Software I2C cambio de pines
« Respuesta #5 en: 02 de Marzo de 2007, 12:07:17 »
good!

Andros
Andros!

Desconectado Palomino86

  • PIC16
  • ***
  • Mensajes: 180
Re: C18 + Software I2C cambio de pines
« Respuesta #6 en: 19 de Octubre de 2010, 20:57:24 »
He realizado los pasos que se dicen y aun no logro hechar a andar el protocolo de comunicacion i2c por software.... alguna otra sugerencia?

Saludos
Lo que no me destruye, me fortalece

Desconectado saveuc_siul

  • PIC10
  • *
  • Mensajes: 12
Re: C18 + Software I2C cambio de pines
« Respuesta #7 en: 24 de Febrero de 2012, 03:06:02 »
alguien ha obtenido una solucion??? a mi no me sale aún =(

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: C18 + Software I2C cambio de pines
« Respuesta #8 en: 24 de Febrero de 2012, 13:19:36 »
Tienen que agregar los .asm al proyecto
No contesto mensajes privados, las consultas en el foro

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re: C18 + Software I2C cambio de pines
« Respuesta #9 en: 16 de Diciembre de 2012, 18:28:19 »
Tienen que agregar los .asm al proyecto

A mi me pasa lo mismo, podrías explicar esto que dices Suky.
gracias
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: C18 + Software I2C cambio de pines
« Respuesta #10 en: 16 de Diciembre de 2012, 18:50:53 »
Solo tienes que agregar al proyecto los archivos fuente de la librería: \src\pmc_common\SW_I2C



Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re: C18 + Software I2C cambio de pines
« Respuesta #11 en: 17 de Diciembre de 2012, 10:04:40 »
Vale, eso ya lo tenía hecho pero sigue sin funcionar, los pines los reasigno en el puerto B poniendo

Código: [Seleccionar]
#define SW_I2C_IO_VI
esto los define el los pines B4 y B3 pero ni caso, siguen saliendo por los pines C3 y C4,
he probado a borrar de la librería las definiciones de los pines  y forzarlo a los que yo designo pero ni caso.
he probado a poner el código en varias secciones diferentes del proyecto y nada.

¿alguna sugerencia?
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re: C18 + Software I2C cambio de pines
« Respuesta #12 en: 21 de Diciembre de 2012, 21:01:01 »
Pues ya está solucionado, y explico como es:

Yo lo que hago es lo que ha dicho suky pero con otras cosillas más.

Copio la carpeta SW_I2C que se encuentra en el directorio donde se instala el c18, en la ruta src/pmc_common a la carpeta donde está mi proyecto.
También copio el driver del protocolo (sw_i2c.h) que se encuentra en la carpeta h dentro de la carpeta de instalación del c18, a la carpeta de mi proyecto.

Todos esos archivos los añado a la ventana de proyecto de mi proyecto, quedaría de ésta manera:



Ahora tenemos que indicarle al compilador que queremos trabajar con los puertos que nosotros queramos, para ello tenemos que editar el archivo fuente del protocolo i2c, ósea en el archivo sw_i2c.h.
Tenemos dos opciones, o en la cabecera del archivo ponemos la definición de los puertos a utilizar.
Ejemplo:

Código: [Seleccionar]
#define SW_I2C_IO_V1
O incluimos el define en un archivo de cabecera y lo llamamos tal que así:



Espero que esto le sea útil a alguien como me lo ha sido para mi, saludos
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...


 

anything