Tengo un Atmega328P chip (que se utiliza como una Arduino) que me gustaría conectar un Raspberry Pi a través de SPI.
Originalmente había un Atmega328P que se ejecutan en 3.3 V el uso de su sistema interno de 8MHz de cristal en lugar de hacerlo por el exterior de cristal de 16MHz. El Atmega fue impulsado desde la Raspberry Pi 3.3 v pin. Me podría conectar directamente MISO/MOSI/SCLK/CE0 pines entre los dos dispositivos y he utilizado con éxito la Pi como SPI maestro y el Atmega como SPI esclavo.
Ahora quiero usar un Atmega328 alimentado a 5V de CC externo (LM317, etc) usando un dispositivo de cristal de 16MHz. Obviamente, los 5V de pines Atmega no puedo hablar con el de 3.3 V Pi pines así que me puse un Bi-Direccional Nivel de Lógica del Convertidor (https://www.sparkfun.com/products/12009). Este es mi actual esquema:
Mi SPI código ya no funciona y no estoy muy seguro de por qué. Es esta la forma correcta de conectar los 5V Atmega y 3.3 V Pi para la comunicación SPI? Me estoy perdiendo alguna de las conexiones?
ACTUALIZACIÓN: yo acabé tratando de salir de comunicación I2C y funcionó de inmediato, así que creo que voy a cambiar para que. Sólo necesitaba baja velocidad de comunicación entre el microcontrolador Atmega y Pi de modo que se adapte a mis necesidades. Algún día voy a tener que probar algunas de las siguientes sugerencias.