fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

I2C entre Atmel y Microchip.

16 Respuestas
6 Usuarios
0 Reactions
4,674 Visitas
furri
Respuestas: 2708
Topic starter
(@furri)
Ardero
Registrado: hace 19 años

Estoy reciclando un LCD y un teclado 4x3 que tenia en mi taller, los tengo funcionando con un PIC18F4550 y van fenomeno peeeeeero... 🙂

... despues de pillarme los pines USB, Serie y algunas entradas analógicas me he quedado sin pines para otras cositas interesantes... como opción tengo un ampliador de puertos I/O como este de Boops o la opción de un segundo micro.

Tanto para uno como para otro tengo un dilema, el teclado 4x3 ocupa el puerto B y por tanto los pines I2C y aqui surge mi primera pregunta

¿se pueden cambiar por software en un pic los pines I2C seleccionando otros que tengamos libres?

Dejando por ahora a un lado esta duda y como todo lo hago para aprender cosas nuevas he decidido complicarme la vida aún mas... y comunicar con un segundo micro ATMEL, concretamente el Atmega168... y aqui están mis otras dudas....

¿alguien lo ha hecho ya?... ¿cual interesa poner de Master, el PIC o el Atmega?... ¿alguna sugerencia?...

furri.

PD: Para los mas practicos decir que si... ya se que hay LCD con teclado incluido por I2C... tengo uno en casa y lo he usado pero no tiene chiste... si sabes I2C no se aprende nada nuevo.

Responder
15 respuestas
mif
Respuestas: 1095
 Mif
(@mif)
Noble Member
Registrado: hace 19 años

jajaja... si, la verdad es que un poco accidentado si, pero lo pasamos bien 🙂

Espero ver tus avances con este nuevo experimento, que aunque esté al otro lado del charco os voy siguiendo a todos muy de cerca!

Responder
furri
Respuestas: 2708
Topic starter
(@furri)
Ardero
Registrado: hace 19 años

El lcd sí que funciona sin problemas, pero el teclado no tenemos ni el esquema de conexión. Se que pines son, pero no en que orden. Y el modo de leer el teclado, tampoco lo tengo muy claro. Me podrías decir como lo hacías tú en ccs?

a ver... ahora si he podido enchufarme a superrobotica, la conexión pin a pin te viene en la página... si es que hablamos del mismo LCD y del mismo teclado.... 🙂

http://www.superrobotica.com/S310118.htm

En esta foto verás entre parentesis el pin correspondiente en el teclado.
s310118bbig

El código fuente no lo tengo, tendré que buscar en un disco duro antiguo con copias que tengo que tener perdido en algún cajón.... pero si tengo el programa de comunicación I2C de una placa de potencia, concretamente la parte de lectura de encoders, ligeramente adaptado para el LCD.

i2c_start(); // arrancamos
i2c_write(0xb0); // en el LCD la dirección es 0xC6
i2c_write(1); // primer registro a leer, hay que leer el 1 y el 2
i2c_start(); // arrancamos otra vez
i2c_write(0xb1); // ¿0xC7? ... 🙄
byte_bajo = i2c_read(1);
byte_alto = i2c_read(1);
version = i2c_read(1);
i2c_stop();

para comprobar que funciona mira la variable "versión", asi podrás confirmar que la comunicación funciona, lo digo para separar un error de código de un error de teclado...

Responder
dragonet80
Respuestas: 1328
(@dragonet80)
Ardero
Registrado: hace 17 años

Gracias furri. Lo de los número entre paréntesis no me había dado cuenta 😳 No entiendo muy bien el protocolo I2C, pero probaré lo que tú me has mandado. En cuanto acabemos los exámes me pongo manos a la obra.

Responder
beamspot
Respuestas: 1132
(@beamspot)
Noble Member
Registrado: hace 17 años

Hola:

Voy rapidito que ando muuuy liado. Ya os contaré.

http://www.atmel.com/dyn/products/app_n ... ily_id=607

Buscad TWI (el nombre que Atmel da al I2C para no pagar derechos de patente). Hay pdf's y código (en C para GNU/WinAVR). Lo he usado tanto como esclavo como maestro (M128 y M1281), así que os podré echar algún cablecito cuando tenga tiempo.

Beamspot.

Responder
ranganok
Respuestas: 3875
(@ranganok)
Ardero
Registrado: hace 19 años

beamspot, tu lo has dicho, ya nos contaras... 😛

S2

Ranganok Schahzaman

Responder
Página 3 / 4
Compartir: