Se me ocurre que inicies “a mano” y luego sigas con el módulo SPI.
Sería por ejemplo creando una rutina que haga lo siguiente:
-Desactivas primero el módulo spi. Entonces los pines SDO y CLK serían pines normales previamente configurados como salida.
El diagrama que has puesto es para SPI en modo 0,0 (ten eso en cuenta).
-Pones CLK a nivel bajo para dejarlo preparado.
-Pones SDA a nivel alto para dejar preparado el bit START
-Pones CS a nivel bajo (Activas el chip).
-Esperas el tiempo que el datasheet te diga que hay que esperar desde CS hasta el primer flanco de reloj.
-Pones CLK a nivel alto (el bit start comienza)
-Ahora activa el módulo SPI del pic en modo 0,0
Envía un byte que debe contener:
Bit7: STL/DIF
Bit6/4: D2,D1,D0
Bits3/0: todos a cero.
- recibe el dato que habrá recibido el pic. Contendrá el NULL que te ha enviado el adc seguido de los dos bits de mayor peso del resultado de la conversión. Bits 9 y 8.
- envía otro byte con el valor que quieras (es indiferente)
- recibe el dato que habrá recibido el pic. Contendrá los 8 bits de menor peso del valor de conversión.
- Construye una variable de 16 bits y pásale esos 10 bits y listo.
- Vuelve a desactivar el módulo SPI para la próxima captura.
Y poco más. Sigue sin ser lo ideal pero así ganas bastante.
Un saludo.