Otra cosa que deberías considerar es si realmente necesitas el cambio de nivel. Muchos chips tienen pines de entrada tolerantes a 5V incluso cuando funcionan a un voltaje inferior como el de 3,3. La CPU atmega también interpreta cualquier cosa por encima de 0,6*Vcc o 3V para un arduino como un alto lógico, por lo que una señal de 3,3V puede conducir directamente un pin del arduino sin cambio de nivel.
Asumiendo que estás usando un arduino de 5V y necesitas hablar con una parte de 3.3V, si la parte tiene entradas tolerantes a 5V (muchas lo hacen hoy en día), simplemente conéctalas y funcionará. Si su línea bidireccional es un diseño de colector abierto, como i2c, donde los dispositivos sólo tiran de la línea baja, entonces simplemente conecte las resistencias pull up a 3,3V en lugar de 5V y las cosas simplemente funcionarán.
Si no, todo lo que tienes que hacer es asegurarte de que la línea no supera los 3,3V, puedes hacerlo con una resistencia y un zener, pon una resistencia en la línea del arduino y luego un zener para sujetar la tensión a 3,3V.
(fuente: <a href="http://repetae.net/zenerresistor.png" rel="noreferrer">repetición.net </a>)
Puedes tener la tentación de vivir peligrosamente y sólo usar la resistencia de 10k y nada más. La razón por la que esto (¡a veces!) funciona es que hay un diodo de sujeción dentro del chip receptor que desvía el exceso de voltaje a vcc o 3,3V. Este diodo se quemará si intentas llevar toda la línea de 3,3V a 5V a través de él (además de cualquier daño causado por llevar esa línea a 5V), sin embargo con la resistencia no fluirá mucha corriente y asumiendo que tu línea de 3,3V tiene una carga no trivial en ella no cambiará el nivel de tu línea de alimentación sustancialmente pero hay muchas advertencias. Así que, en general, no hagas esto a menos que tengas un bus local y aislado de 3,3V y realmente no puedas prescindir de los dos centavos extra para el zener. Sólo lo menciono porque lo verás en los esquemas de las placas breakout baratas que consigues en ebay y puede que te sientas tentado a copiarlo, sólo que no dejes que se cuele en la protoboard en un diseño de producción :)
Editar Acabo de notar que estabas usando el nuevo arduino de 3.3V, así que solo invierte lo que dije arriba, el truco de la resistencia zener seguirá funcionando aunque aparentemente algunas de las líneas i/o en el debido pueden ser tolerantes a 5v, parece que hay algún desacuerdo en los foros. El teensy 3.1 es también una pequeña placa ARM que tiene todos los pines tolerantes a 5V y es menos de la mitad del costo de la due y mejor diseñado IMHO http://www.pjrc.com/store/teensy31.html
0 votos
Será mejor que proporcione información sobre por qué o cómo no entiendes cómo funcionan o cómo interactuar con ellos...
2 votos
¿Cuál es la gama de frecuencias prevista?
1 votos
Por ejemplo supongamos que quiero conectar un dispositivo de 5V a un arduino de 3,3V. No he podido averiguar dónde conectar la salida de 5V y la entrada de 3,3V. ¿Y qué pasa con la salida de 3,3V de un arduino, por ejemplo, a un dispositivo de 5V? ¿A qué te refieres con rango de frecuencias?
0 votos
Cuál será la frecuencia de la señal que vas a transferir, puede ser 10KHz o 100KHz o 1MHz...
1 votos
No estoy seguro de haber captado tu punto de vista, no he tratado con frecuencias antes, mi propósito es para la electrónica simple :|
0 votos
Por ejemplo cuando quieres conectar el arduino de 5v a una memoria flash SPI de 3v o a una tarjeta SD o a un dispositivo I2C entonces las señales entre los dos dispositivos se transfieren a cierta velocidad dependiendo de la velocidad de reloj que establezcas para el periférico, el traductor debería ser capaz de mantener esa velocidad de cambio. Por otro lado, si sólo te interesa transferir una línea de habilitación (más bien una señal estática), la frecuencia no tiene mucho sentido.
0 votos
Sí, sólo quiero enviar 1 o 0, eso es todo :)
3 votos
Sparkfun tiene una placa, se llama 'convertidor de nivel'
1 votos
Por lo general, he utilizado ICs de texas instruments. Las series TXS y TXB tienen traductores de tensión bidireccionales (por ejemplo, TXS0102 tiene dos canales)
1 votos
Últimamente he probado varios cambiadores de nivel lógicos... no tengo un osciloscopio pero necesitaba una transmisión muy rápida y la mayoría de esos circuitos de mosfet/transistores u otros ic's no podían manejar la velocidad. los chips que funcionaron correctamente son el 74HC125 / 74HC126 & 74LVC245 & TXB0108