Eso suena como un proyecto interesante para jugar con Arduino y MCU. Espero que no sea demasiado tarde y que sigas trabajando en el proyecto.
Si tiene un osciloscopio, es posible que desee comenzar a echar un vistazo a las líneas de datos y SCK, ¿hay algún pin CS o CE para la selección de chips? Verifique también los voltajes en esos pines para asegurarse de que nada se queme ...
Si no tiene acceso a un osciloscopio, es posible que pueda usar Arduino y una interrupción externa. Básicamente, creará un software SPI esclavo muy simple, algo así debería hacerlo:
(No he intentado compilar este código, es posible que necesite algunos ajustes)
//Connect your Data to the pinMISO.
int pinSCK = 7;
int pinMISO = 8;
//Variables used inside interrupt functions needs to be volatile
volatile uint8_t myByte = 0;
volatile uint8_t bitCounter = 0;
int8_t byteCounter = 0;
void setup() {
pinMode(pinSCK, INPUT);
pinMode(pinMISO, INPUT);
//This tells Arduino to execute bitRead() every time the pinSCK goes from LOW to HIGH. In other works, it'll get executed every clock.
attachInterrupt(pinSCK, bitRead, RISING);
//Add some serial output so you can debug on screen and don't worry with the second part of you code for now.
Serial.begin(115200);
}
//This function will be called every time the interrupt is triggered, it's important to keep it very simple to run fast!
void bitRead() {
//Left shit one bit, this assume the communication is MSB first
myByte <<= 1;
//Append the read value of the pinMISO to our byte (it'll be 0 or 1). I think I need to cast to (uint8_t) as digitalRead returns an int.
myByte |= (uint8_t)digitalRead(pinMISO);
//Increment our bit counter
bitCounter++
}
void loop() {
if(bitCounter == 8) {
Serial.print("New byte [ "); Serial.print(byteCount); Serial.print("] "); Serial.println(myByte, bin);
//Increment our byte counter
byteCounter++;
//Reset myByte and bitCounter for the next byte
myByte = 0;
bitCounter = 0;
}
Este es solo un ejemplo ... Espero que la velocidad de SCK sea lo suficientemente lenta para que funcione el código y que la comunicación esté utilizando un múltiplo de 8 bits. Un problema aquí podría ser la "impresión" que se interpone en el camino, por lo que es posible que necesite crear un búfer de bytes e imprimir desde el búfer.
Puedes usar un ejemplo similar solo para contar cuántos bits obtienes y crear el tamaño de búfer correcto. Con este código, debería poder decodificar la pantalla y comenzar a pensar cómo escribir la segunda parte para imprimir en la pantalla de reemplazo.
Dependiendo de su caso, es posible que pueda usar el SPR de hardware de AVR como esclavo. Pero eso podría ser un poco difícil de entender si está empezando con MCU. Eche un vistazo en esta página: enlace
¡Buena suerte!