Tengo un convertidor de analógico a digital que lee y envía datos en bordes descendentes. También tengo dos MCU: la FEZ Hydra y la FEZ Cobra. He notado que al usar el osciloscopio los datos del ADC y los datos del ADC son exactamente los mismos, sin embargo, al leer los datos en la computadora que han almacenado las MCU obtengo diferentes valores.
Dado que el ADC solo envía salidas en los flancos descendentes del reloj, cada vez que los bits de salida de datos cambian de 0 a 1, la Hidra lee en 1 mientras la cobra aún lee en 0; y cada vez que los bits de salida de datos cambian de 1 a 0, la Hidra lee en 0 y la cobra aún lee en 1. Parece que la Cobra no da suficiente tiempo entre el borde negativo del reloj y la lectura de la entrada para permitir para que la actualización suceda.
Estoy usando la biblioteca spi de microsoft. Mi pregunta es: ¿hay alguna forma de retrasar la función de lectura de SPI? ¿Cuál es el resultado razonable en esta situación que se supone para mí?
Nota: hay un retraso de 60 ns en el tiempo de acceso a los datos en el ADC.