This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Comunicación Arduino 5V con modulos 3v3... SPI, I2C y Serial
#1
Buenas, estoy trabajando con un arduino a 5V y le estoy conectando módulos que trabajan tanto a 5v como a 3v3, el problema viene a la hora de la comunicación, que tengo que usar un convertidor de nivel para adecuar las señales entre 5v y 3v3. He visto varios esquemas para I2C y Serial, con lo cual no tengo problema con ellos pero para SPI no se que señal tengo que adaptar ni como ¿MISO? ¿MOSI? .El como me refiero bien adaptada, porque lo único que he visto ha sido con una resistencia simple en MOSI, no se si es suficiente pero lo veo simple en comparación por ejemplo con el conversor para I2C o Serial.
Estoy trabajando con un pro mini y un modulo NRF24L01.

Para la comunicación serial tengo este esquema:

http://dlnmh9ip6v2uc.cloudfront.net/data...verter.pdf

Para la comunicación I2C:

[Imagen: i2c-level-shift-mosfet.png]

Viendo esto lo que se me pasa por la cabeza seria realizar una conversión del MOSI y MISO tipo al SDA y SCL :nuse:

Saludos Mola
  Responder
#2
siempre puedes usar algun buffer tipo 4050D Guiño
  Responder
#3
Si lo dices por el NRF permite trabajar con tensiones logicas en sus IO de 5v no tendrias pega

[Imagen: y5u3uqe2.jpg]

Enviado desde mi Nexus 4 mediante Tapatalk
  Responder
#4
ark escribió:siempre puedes usar algun buffer tipo 4050D Guiño

Te refieres a este:

http://www.taydaelectronics.com/cd4050-c...ng-ic.html

¿Que serviría para ajustar cualquier señal lógica?

Triggerr escribió:Si lo dices por el NRF permite trabajar con tensiones logicas en sus IO de 5v no tendrias pega

[Imagen: y5u3uqe2.jpg]

Enviado desde mi Nexus 4 mediante Tapatalk

Lo decía exactamente por el NRF, alimentación a 3v3 tengo pero pensé que debería adaptar también "la señal" como en el caso de Serial y I2C.
Porque no miraría las especificaciones antes de adentrarme a buscar solución a "bajar a 3v3" :dale2:

Un par de Saludos y Gracias Mola Mola
  Responder
#5
Yo uso ese nrf con un micro de 5v. Sin adaptar niveled gunciona, pero por asegurar el tiro, con una resistencia a 5v en la linea que comentas, dicen que es suficiente. Yo no he tenido problemas de momento, tengo una placa con residtencia y otra sin resistencia
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#6
ClioS escribió:
ark escribió:siempre puedes usar algun buffer tipo 4050D Guiño

Te refieres a este:

http://www.taydaelectronics.com/cd4050-c...ng-ic.html

¿Que serviría para ajustar cualquier señal lógica?

sí, ese por ejemplo. En tiendas de electronica están mas o menos al mismo precio.

Sobre si sirve para cualquier señal: NO jejej esos buffers tienen un tiempo de respuesta bastante rápido (del orden de nanosegundos) pero en según que velocidades de cambio de estado podrías llegar a comerte bits. De todas formas para las aplicaciones del 90% de mortales aficionados a la electronica es más que suficiente.
  Responder
#7
grafisoft escribió:Yo uso ese nrf con un micro de 5v. Sin adaptar niveled gunciona, pero por asegurar el tiro, con una resistencia a 5v en la linea que comentas, dicen que es suficiente. Yo no he tenido problemas de momento, tengo una placa con residtencia y otra sin resistencia

¿Te refieres a ponerle una resistencia en MISO o MOSI?
He visto por la red que hay gente que le pone resistencia en MOSI porque es la señal que viene de arduino, ya que MISO es la que va del NRF al arduino y no haría falta adaptarla ya que arduino la "interpreta" bien. ¿Esto es así?
Tengo un medio cacao mental con esto... pero mejor tener un cacao mental que un futuro circuito que huela quemado Confundidois1:

ark escribió:sí, ese por ejemplo. En tiendas de electronica están mas o menos al mismo precio.

Sobre si sirve para cualquier señal: NO jejej esos buffers tienen un tiempo de respuesta bastante rápido (del orden de nanosegundos) pero en según que velocidades de cambio de estado podrías llegar a comerte bits. De todas formas para las aplicaciones del 90% de mortales aficionados a la electronica es más que suficiente.

Tomo nota de el para el futuro ya que serviría para simplificar un poco todo, pero vamos pasito a pasito. Sisi3


Un par de saludos Mola Mola
  Responder
#8
Yo con el NRF no me complicaria, esta echo para trabajar con tensiones de 5V, de echo yo lo tengo a pelo y sin problema
  Responder
#9
Para hacer la conversión para spi se suele ver mucho en los esquemas que montan por internet un circuito conversor de niveles, un buffer como comentan más arriba.

Además del circuito que pones en la imagen, también se suele hacer la conversión poniendo un solo diodo o poniendo solo una resistencia en serie con la línea de menor tensión, la resistencia sirve para limitar la corriente que pasa por el diodo de protección del pin de entrada, clamp diode, que por lo general es de menos de 1 mA, por lo que cuidado con el valor de esa resistencia ya que si se pone muy pequeña se quema el pin de entrada.

Sin estudiarlo mucho (velocidad del spi) yo me iría a la opción del buffer, es la que suelen usar muchos de los esquemas por internet que hacen conversión de niveles en spi.
  Responder
#10
Confirmo también que va perfecto con la alimentación a 3.3V y sus pines digitales a 5V, estupendamente de hecho Mola
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
  Responder
#11
Ese esquema del buffer es dado por el creador del i2c. Hay varias versiones.
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#12
Viendo las respuestas a ver si me aclaro... para este caso en concreto del NRF no necesito realizar ningún tipo de conversión ya que admite claramente 5V en los pines digitales.
Por otro lado si se necesita realizar conversión de SPI hay que apoyarse en un buffer ya sea tipo 4050D o en el que he puesto en I2C.

Un millón Mola
  Responder
#13
Si precisas adaptar niveles por narices, para el i2c, ese puede ser un circuito valido. Cuidado con los mosfet, que tienen que permitir conmutaciones de ns
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#14
grafisoft escribió:Si precisas adaptar niveles por narices, para el i2c, ese puede ser un circuito valido. Cuidado con los mosfet, que tienen que permitir conmutaciones de ns

Pues no había mirado el datasheet del mosfet pero comentan que hay que usar el BSS138 o el TN2501, así que supongo que"ellos" lo mirarían, aunque la suposición es la madre de todas las meteduras de pata Facepalm

Esto he encontrado en el datasheet del BSS:
[Imagen: 28rfryr.png]

Saludos Mola
  Responder
#15
¿Y por qué no usas un level shifter como este https://www.adafruit.com/products/395 ? Es bidireccional y tiene hasta 8 puertos de E/S.
  Responder
#16
sistemasorp escribió:¿Y por qué no usas un level shifter como este https://www.adafruit.com/products/395 ? Es bidireccional y tiene hasta 8 puertos de E/S.

porque para el uso que le va a dar es caro.

por otra parte:

Cita:Only thing that doesn't work well with this chip is i2c (because it uses strong pullups which confuse auto-direction sensor).
[...] it does not have strong output pins that can drive LEDs or long cables, it's meant to sit on a breadboard between two logic chips!
  Responder
#17
¿8 dólares caro? Joder, si que estamos ajustando el precio. Pues nada, que use este http://www.adafruit.com/products/757 o incluso este https://www.sparkfun.com/products/11978

Y lo que el decía era SPI, no I2C

Cita:con lo cual no tengo problema con ellos pero para SPI no se que señal tengo que adaptar ni como ¿MISO? ¿MOSI?

Por cierto, un buen tutorial sobre conversión de niveles: http://www.olimex.cl/tutorials.php?page=...e-sensores
  Responder
#18
sistemasorp escribió:¿8 dólares caro? Joder, si que estamos ajustando el precio. Pues nada, que use este http://www.adafruit.com/products/757 o incluso este https://www.sparkfun.com/products/11978

Y lo que el decía era SPI, no I2C

Cita:con lo cual no tengo problema con ellos pero para SPI no se que señal tengo que adaptar ni como ¿MISO? ¿MOSI?

Por cierto, un buen tutorial sobre conversión de niveles: http://www.olimex.cl/tutorials.php?page=...e-sensores

Buen aporte, lo que busco es poder hacer yo las conversiones sin tener que utilizar módulos ya fabricados, lo que se llama dar un paso mas. :roto2:

Saludos Mola
  Responder
#19
Entonces con MOSFETs es una buena solución. En principio tendrías que adaptar aquellas señales que van de 5 voltios a 3,3 ya que al revés no suele haber problema. En el caso que has expuesto serían SCLK, MOSI y SS y este sería el circuito (entendiendo un mosfet N con patillas GATE-DRAIN-SOURCE):
   

P.D: En el NRF24L01 por claridad sólo he puesto los pines referentes a SPI
  Responder
#20
Se que soy cabezon jajaja, yo al NRF no le meteria conversion de niveles, esta preparado para trabajar a 5V, no es que lo diga yo, esque lo dice el datasheet jajajaja
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Error en función Serial.printIn Bear 6 1,048 30-05-2021, 08:54 PM
Último mensaje: Bear
  CONSULTA Problema con display I2C AcoranTf 2 1,458 16-04-2020, 06:05 PM
Último mensaje: AcoranTf
  Problema con arduino NANO y modulos transmisores 433mhz Flautarian 4 2,350 27-06-2018, 09:18 PM
Último mensaje: Flautarian
  Módulos Sonoff manejados con Virtuino ormaina 0 1,549 26-06-2017, 07:26 AM
Último mensaje: ormaina
  Problema LCD 20x4 conectado por I2C jukillo 46 23,872 12-08-2015, 12:12 AM
Último mensaje: chicaenproblema