El I²C, su mujer y otras cosas de meter
Moderadores: cacharreo, Fundadores
Reglas del Foro
Aquí solo tienen cabida proyectos de hardware que incluyan siempre al menos sus esquemáticos para poder reproducirlos si llevan componentes electrónicos, y si es posible los ficheros del programa en que se hacen, los diseños de las placas, los gerber, etc. Si llevan algún tipo de software asociado debe estar diponible el código fuente
Para los que no cumplen estas condiciones se debe postear en el foro de proyectos generales.
Aquí solo tienen cabida proyectos de hardware que incluyan siempre al menos sus esquemáticos para poder reproducirlos si llevan componentes electrónicos, y si es posible los ficheros del programa en que se hacen, los diseños de las placas, los gerber, etc. Si llevan algún tipo de software asociado debe estar diponible el código fuente
Para los que no cumplen estas condiciones se debe postear en el foro de proyectos generales.
- zx81
- Aspirante a demonio
- Mensajes: 499
- Registrado: 19 Oct 2013, 16:27
- Ubicación: Valencia
- Has thanked: 10 times
- Been thanked: 2 times
- Contactar:
El I²C, su mujer y otras cosas de meter
Resulta que, después de haber estado un tiempecillo dándole vueltas a eso de empezar a trastear a lo burro, la semana pasada me pedí unos cuantos cacharrillos, entre ellos, una pantalla LCD de 20x4 que va por I²C, un módulo de RTC, un sensor de presión, temperatura y humedad, un pack de componentes electrónicos variados, una breadboard...
De microcontrolador no sabía muy bien qué pillar y como los Uno y Mega me parecían un poco rácanos de potencia y memoria, me pillé esto:
https://www.pjrc.com/store/teensy40.html
Es un puñetero bicharraco que se programa con el mismo IDE que los Arduino (sigh!). Ahora quisiera empezar por conectar la pantalla LCD a la Teensy o, para empezar a una de mis PI. Y me ha surgido una duda que quizá los electrónicos del lugar me podáis ayudar. Resulta que el LCD se alimenta a 5V y tanto la PI como la Teensy no aceptan entradas en sus pines superiores a 3V3. Y yo pregunto, ¿si conecto las señales SCA y SCL por las buenas a la pantalla me zumbaré mis cacharillos?. ¿Cómo podría conectar la pantalla en ese caso?.
Algo he leído de poner unas resistencias de pull-up desde cada línea del I²C a 5V, pero no sé los valores más adecuados (tampoco tengo resistencias de todos los valores, solo unos pocos) ni estoy seguro de si me cargaría las placas igualmente.
¿Alguna recomendación, por favor?
De microcontrolador no sabía muy bien qué pillar y como los Uno y Mega me parecían un poco rácanos de potencia y memoria, me pillé esto:
https://www.pjrc.com/store/teensy40.html
Es un puñetero bicharraco que se programa con el mismo IDE que los Arduino (sigh!). Ahora quisiera empezar por conectar la pantalla LCD a la Teensy o, para empezar a una de mis PI. Y me ha surgido una duda que quizá los electrónicos del lugar me podáis ayudar. Resulta que el LCD se alimenta a 5V y tanto la PI como la Teensy no aceptan entradas en sus pines superiores a 3V3. Y yo pregunto, ¿si conecto las señales SCA y SCL por las buenas a la pantalla me zumbaré mis cacharillos?. ¿Cómo podría conectar la pantalla en ese caso?.
Algo he leído de poner unas resistencias de pull-up desde cada línea del I²C a 5V, pero no sé los valores más adecuados (tampoco tengo resistencias de todos los valores, solo unos pocos) ni estoy seguro de si me cargaría las placas igualmente.
¿Alguna recomendación, por favor?
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek
Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
John Sladek
Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
- mad3001
- Demonio segundo orden
- Mensajes: 1921
- Registrado: 25 Nov 2015, 00:15
- Ubicación: Mostoles(Madrid)
- Has thanked: 81 times
- Been thanked: 113 times
Re: El I²C, su mujer y otras cosas de meter
Tienes 4 opciones:zx81 escribió: ↑23 Feb 2020, 22:12 Resulta que, después de haber estado un tiempecillo dándole vueltas a eso de empezar a trastear a lo burro, la semana pasada me pedí unos cuantos cacharrillos, entre ellos, una pantalla LCD de 20x4 que va por I²C, un módulo de RTC, un sensor de presión, temperatura y humedad, un pack de componentes electrónicos variados, una breadboard...
De microcontrolador no sabía muy bien qué pillar y como los Uno y Mega me parecían un poco rácanos de potencia y memoria, me pillé esto:
https://www.pjrc.com/store/teensy40.html
Es un puñetero bicharraco que se programa con el mismo IDE que los Arduino (sigh!). Ahora quisiera empezar por conectar la pantalla LCD a la Teensy o, para empezar a una de mis PI. Y me ha surgido una duda que quizá los electrónicos del lugar me podáis ayudar. Resulta que el LCD se alimenta a 5V y tanto la PI como la Teensy no aceptan entradas en sus pines superiores a 3V3. Y yo pregunto, ¿si conecto las señales SCA y SCL por las buenas a la pantalla me zumbaré mis cacharillos?. ¿Cómo podría conectar la pantalla en ese caso?.
Algo he leído de poner unas resistencias de pull-up desde cada línea del I²C a 5V, pero no sé los valores más adecuados (tampoco tengo resistencias de todos los valores, solo unos pocos) ni estoy seguro de si me cargaría las placas igualmente.
¿Alguna recomendación, por favor?
1.-Probar:Ver si el lcd funciona con 3.3V.. es decir, en vez de alimentarlo a 5V hazlo a 3.3V, algunos son 5V tolerant pero tambien van con 3.3v
2.-Facil:Comprar un lcd que vaya a 3.3V
3.-Menos fecil:Intercalar un "Level Shifter" que hace el tránsito bidireccional entre 3.3V y 5V.... los tienes a patadas en los chinos (50 centimos) y en otros sitios (lo que quieran pedir)..
4.-Menos menos facil: mirar si el lcd tiene resistencias intercaladas para bajar la tension de 5v a 3.3v... hay muchos lcds de 5v que realmente son de 3.3v ... es cuestion de revisar bien la placa (o incluso si encuentras un esquema del mismo). No digo que el tuyo sea así, pero hay de todo en la viña del señor.
Ahí tienes un ejemplo: Salu2
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Volviendo a los origenes... programa en assembler
- wilco2009
- Hermano de Lucifer
- Mensajes: 8152
- Registrado: 01 Abr 2013, 23:47
- Ubicación: Valencia
- Has thanked: 47 times
- Been thanked: 101 times
Re: El I²C, su mujer y otras cosas de meter
Si el master es a 3v3 no hay ningun problema ya que el master pondra a 3.3v el bus mediante un pull-up y la comunicación consiste en meter ceros conectando el bus a masa.
Si el master fuera a 5v sí que habría problema.
Si el master fuera a 5v sí que habría problema.
Última edición por wilco2009 el 23 Feb 2020, 23:33, editado 1 vez en total.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".
Douglas Adams. Guía del autoestopista galáctico.
Douglas Adams. Guía del autoestopista galáctico.
- dandare
- Hermano de Lucifer
- Mensajes: 3718
- Registrado: 09 Feb 2016, 15:09
- Ubicación: I Register
- Been thanked: 6 times
Re: El I²C, su mujer y otras cosas de meter
i2c es un protocolo que usa señales open-collector / open-drain. Es decir, no usa "1" activos, sino que deja que los pull-ups pongan ese valor alto. Por tanto, si no existen pull-ups ya (no debería si es algo hecho con algo de cabeza), como 3,3v es reconocido como "1" tanto en lógica CMOS de 3,3v como de 5v. Pon pull-ups a 3,3v y listo.
Si ya existen pull-ups, y son a 5v, simplemente haz un divisor de tensión con "pull downs"
Si ya existen pull-ups, y son a 5v, simplemente haz un divisor de tensión con "pull downs"
- wilco2009
- Hermano de Lucifer
- Mensajes: 8152
- Registrado: 01 Abr 2013, 23:47
- Ubicación: Valencia
- Has thanked: 47 times
- Been thanked: 101 times
Re: El I²C, su mujer y otras cosas de meter
Lo mas habitual en una placa tipo arduino es que ya tenga un pull-up.dandare escribió: ↑23 Feb 2020, 23:21 i2c es un protocolo que usa señales open-collector / open-drain. Es decir, no usa "1" activos, sino que deja que los pull-ups pongan ese valor alto. Por tanto, si no existen pull-ups ya (no debería si es algo hecho con algo de cabeza), como 3,3v es reconocido como "1" tanto en lógica CMOS de 3,3v como de 5v. Pon pull-ups a 3,3v y listo.
Si ya existen pull-ups, y son a 5v, simplemente haz un divisor de tensión con "pull downs"
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".
Douglas Adams. Guía del autoestopista galáctico.
Douglas Adams. Guía del autoestopista galáctico.
- zx81
- Aspirante a demonio
- Mensajes: 499
- Registrado: 19 Oct 2013, 16:27
- Ubicación: Valencia
- Has thanked: 10 times
- Been thanked: 2 times
- Contactar:
Re: El I²C, su mujer y otras cosas de meter
Yo creo que pull-ups ya existen, aunque he leído que deberían ponerse siempre que se vayan a conectar más de un slave en el bus. He comprado cacharritos I²C como para montar un colegio (¿para eso es un bus, no?).dandare escribió: ↑23 Feb 2020, 23:21 i2c es un protocolo que usa señales open-collector / open-drain. Es decir, no usa "1" activos, sino que deja que los pull-ups pongan ese valor alto. Por tanto, si no existen pull-ups ya (no debería si es algo hecho con algo de cabeza), como 3,3v es reconocido como "1" tanto en lógica CMOS de 3,3v como de 5v. Pon pull-ups a 3,3v y listo.
Si ya existen pull-ups, y son a 5v, simplemente haz un divisor de tensión con "pull downs"
El caso es que pensando en lo que me ha dicho mad3001, he conectado sin más el LCD a 3V3 y el backlight se enciende igual que si lo alimentara a 5V. Otra cosa es si luego funciona bien o no. Lo de las resistencias está un poco más complicado porque el LCD es normal y luego lleva una plaquita adosada con un PCF8574T que es el que proporciona comunicación I²C. Ambas placas llevan resistencias en tirereta. A saber. EL LCD se supone que es un Hitachi 44780, que es bastante común por lo que he podido ver en l'Internec.
Mañana, lo mismo me tiro al pisto y lo conecto, a ver qué pasa. Hoy no puedo hacerlo bien porque pedí un kit de componentes que llevaba una breadboard de 840 puntos y un alimentador de 3V3-5V a la breadboard. Como no me fío ni de mi sombra, antes de conectar nada le dí alimentación y medí con el multímetro. Le entraban 9V y salían 8'64 por las dos salidas, la de 5 y la de 3,3. Si llego a conectar algo me fundo hasta el horno de la cocina.
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek
Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
John Sladek
Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
- dandare
- Hermano de Lucifer
- Mensajes: 3718
- Registrado: 09 Feb 2016, 15:09
- Ubicación: I Register
- Been thanked: 6 times
Re: El I²C, su mujer y otras cosas de meter
Si, pero si los lleva, lo hace al voltaje adecuado que, según nos cuenta, es a 3,3v. Me planteaba si los lleva o no la pantalla, que es lo que creo que no debería. En cualquier caso, tienes razón, no había comentado nada de los posibles p/ups del teensy.wilco2009 escribió: ↑23 Feb 2020, 23:33Lo mas habitual en una placa tipo arduino es que ya tenga un pull-up.dandare escribió: ↑23 Feb 2020, 23:21 i2c es un protocolo que usa señales open-collector / open-drain. Es decir, no usa "1" activos, sino que deja que los pull-ups pongan ese valor alto. Por tanto, si no existen pull-ups ya (no debería si es algo hecho con algo de cabeza), como 3,3v es reconocido como "1" tanto en lógica CMOS de 3,3v como de 5v. Pon pull-ups a 3,3v y listo.
Si ya existen pull-ups, y son a 5v, simplemente haz un divisor de tensión con "pull downs"
- dandare
- Hermano de Lucifer
- Mensajes: 3718
- Registrado: 09 Feb 2016, 15:09
- Ubicación: I Register
- Been thanked: 6 times
Re: El I²C, su mujer y otras cosas de meter
No, el I2C es "incapaz" de poner una señal a "1" y necesita que lo hagan unas resistencias conectadas a VCC: Los pull-ups. Da igual si conectas uno o 20 cacharros al bus.
En cualquier caso, verifica lo que ha dicho Wilco, que es muy posible que pase y el teensy tenga ya pull-ups a 3,3v, así que no tendrías nada más que hacer que enchufar.
Última edición por dandare el 23 Feb 2020, 23:48, editado 1 vez en total.
- wilco2009
- Hermano de Lucifer
- Mensajes: 8152
- Registrado: 01 Abr 2013, 23:47
- Ubicación: Valencia
- Has thanked: 47 times
- Been thanked: 101 times
Re: El I²C, su mujer y otras cosas de meter
Igual lo mas prudente es que conectes solo la tension y la masa al display y compruebes si las lineas del I2C tienen tension con un polimetro y así sales de dudas.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".
Douglas Adams. Guía del autoestopista galáctico.
Douglas Adams. Guía del autoestopista galáctico.
- zx81
- Aspirante a demonio
- Mensajes: 499
- Registrado: 19 Oct 2013, 16:27
- Ubicación: Valencia
- Has thanked: 10 times
- Been thanked: 2 times
- Contactar:
Re: El I²C, su mujer y otras cosas de meter
Sí señor, en SCA/SCL tengo la tensión de entrada, tanto si lo alimento a 3V3 como a 5V. Eso sí, he visto que a 3V3 el backlight brilla mucho menos.
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek
Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator
John Sladek
Emulador de Spectrum JSpeccy.
Emulador de Spectrum Bare-metal para las Raspberry PI ZXBaremulator