Tengo un chip Atmega328P (que se usa como Arduino) que me gustaría conectar a una Raspberry Pi a través de SPI.
Originalmente tenía un Atmega328P funcionando con 3.3V usando su propio cristal interno de 8MHz en lugar de un externo de 16MHz. El Atmega fue alimentado desde el pin 3.3v de Raspberry Pi. Podría conectar directamente los pines MISO / MOSI / SCLK / CE0 entre los dos dispositivos y usé con éxito el Pi como maestro SPI y el Atmega como esclavo SPI.
Ahora quiero usar un Atmega328 a 5 V alimentado desde una CC externa (LM317, etc.) usando un cristal externo de 16MHz. Obviamente, los pines Atmega de 5 V no pueden hablar con los pines de 3,3 V Pi, por lo que obtuve un Convertidor de nivel lógico bidireccional ( enlace ). Este es mi esquema actual:
Mi código SPI ya no funciona y no estoy seguro de por qué. ¿Es esta la forma correcta de conectar 5V Atmega y 3.3V Pi para la comunicación SPI? ¿Me faltan conexiones?
ACTUALIZACIÓN : terminé probando la comunicación I2C y funcionó de inmediato, así que creo que voy a cambiar a eso. Solo necesitaba comunicación de baja velocidad entre el Atmega y el Pi, por lo que se adapta a mis necesidades. Algún día tendré que probar algunas de las sugerencias a continuación.