Uso adecuado del IC de cambio de nivel CD4504BE para SPI

CD4504BE Hoja de datos: http://www.ti.com/lit/ds/symlink/cd4504b.pdf

He estado buscando en toda la web un ejemplo adecuado del uso de este IC, pero no he encontrado nada. Mi aplicación básica es cambiar las señales SPI de 5V de ATmega328P (Maestro) a ESP8266 de 3.3V (Esclavo).

El siguiente diagrama muestra cómo creo que debería estar conectado:

Conexiones CD4504BE

Preguntas:

  1. ¿Estas conexiones son correctas? Si no, ¿cómo deben conectarse?
  2. En cuanto a la línea MISO, la muestro como conectada directamente desde ESP8266 a ATmega328P. Esto funciona, pero idealmente me gustaría cambiar esta señal de 3.3V a 5V. ¿Es esto posible con un solo IC? Mi suposición es que no, necesitaría un segundo CD4504BE. Si es posible, ¿cómo se debe conectar?
¿Puedo sugerir usar una parte más moderna? Descubrirá que hay numerosos cambiadores de nivel bidireccionales de 4 bits que resuelven muy bien su problema. Por ejemplo, la TI TXS0104 .
Es una buena sugerencia, como mencioné en mi otro comentario, la razón por la que seleccioné el CD4504BE fue porque era la opción de menor costo disponible en un paquete DIP.

Respuestas (2)

¿Estas conexiones son correctas? Si no, ¿cómo deben conectarse?

si _ Excepto que el pin SELECT se conectará a tierra.

Me gustaría cambiar esta señal de 3.3V a 5V. ¿Es esto posible con un solo IC? Mi suposición es que no

tienes razón _

Necesitaría un segundo CD4504BE. Si es posible, ¿cómo se debe conectar?

Puedes optar. para el segundo IC, debe intercambiar la conexión VDD y VCC.
Pero, si puede usar una solución IC única, puede encontrar muchas mejores soluciones. Como se menciona en el comentario, el traductor de nivel bidireccional de 4 bits, TXS0104E , puede hacer el trabajo de ambos circuitos integrados.

Aquí está el diagrama de bloques con la clasificación de voltaje:
el dispositivo ESP será el controlador del sistema (bloque a la izquierda) y Arduino será el sistema (bloque a la derecha). Las clasificaciones de voltaje sugieren que cumple con sus expectativas.

ingrese la descripción de la imagen aquí

para la línea MISO
también puede considerar esto y funciona con seguridad.

Low Side - ESP  
High Side - Arduino  

ingrese la descripción de la imagen aquí

El circuito anterior se puede repetir simplemente tres veces y no necesita el IC de cambio de nivel en absoluto. Solo tiene que cambiar el lado bajo y el lado alto por los pines MOSI, CS y CLK.

Gracias por la respuesta. La razón por la que seleccioné el CD4504BE fue porque era la opción de menor costo disponible en un paquete DIP. Agradezco la información sobre el TXS0104E, sin duda es la mejor solución.

En la página uno, cuando SELECT se despliega, realiza la conversión de CMOS a CMOS. Dado que Arduino y ESP8266 son CMOS uC, debe bajar el pin SELECCIONAR. Vss va al suelo.

Necesitará 2 de estos circuitos integrados. Para pasar de Arduino a ESP8266:

Vdd como se muestra en la tabla de la página 2 debe ser el nivel de voltaje del ESP8266 (3.3V) y Vcc Arduino 5V.

Para ESP8266 a Arduino:

Vdd debe ser 5V y Vcc 3.3V.

Gracias por la información adicional, lo conectaré en consecuencia y agregaré un segundo IC si es necesario.