Estoy tratando de conectar un ATmega328p y Raspberry Pi juntos, comunicándome a través de SPI. El Pi es Maestro y se usa para programar el ATmega cuando se conecta por primera vez (el ATmega está completamente en blanco).
El ATmega no responderá al comando de modo de programación y no puedo encontrar por qué.
Tengo el Pi a 3.3V y el ATmega a 5V (el diseño no permite que el ATmega se ejecute a 3.3V) con un cristal de 16Mhz. Se conectan a través de una palanca de cambio de nivel txb0104 para las 4 líneas SPI, y una resistencia y transistor pull-up para la línea de reinicio.
Viendo las entradas SPI (+ restablecer) al ATmega con un osciloscopio, tengo Reinicio y SS bajando, y SCK & Reloj MOSI en el comando de modo de programación (AC-53-00-00). Luego no recibo respuesta del MISO, y Pi es solo un intento de enviar el comando del modo de programación nuevamente después de 10 segundos.
He comprobado que las líneas SPI van a los pines correctos, y cualquier distorsión del cambio de nivel parece insignificante. También he usado un Arduino-as-isp para programar un ATmega en blanco en la misma configuración, omitiendo el cambio de nivel para que el Atmega se configure correctamente.
¿Hay algún lugar donde probablemente me esté yendo mal aquí? Lo único en lo que puedo pensar es que mi cambio de nivel no es adecuado.