pero necesito saber como en el PIC puedo tener el SDI y el SDO en el mismo pin? Utilizando el MSSP.
Haciendolo por software podrias llegar a realizarlo. Con todas las protecciones correspondientes y hagas un estilo de medida medio raro entre medio, en el que das un 3/4 pulso con la salida y luego pasas a entrada para leer. De todas formas es invitar a problemas.
Date cuenta que si tenes SDO que es una salida, y del otro lado el SDO de tu esclavo que tambien es una salida, estarias conectando 2 salidas juntas. Y lo peor de todo es que a medida que ingresas pulsos de clk no solo tenes que cambiar tu salida sino que ademas la salida del DS tambien cambia tratando de ingresar valores.
Asi que con el MSSP lo que planteas no me parece adecuado, ya que el MSSP va a enviar los 8bits en una sola oportunidad y no te dejaria tener esa oportunidad para leer lo demas, sino las otras opciones son:
- buscar otro con mas pines, aunque ese PIC ya posee 36 I/O.
- tratar de ahorrar algun otro pin, para liberar el SDI
- Buscar un RTCC por I2C asi lo manejas con 2 pines como lo estas planteando con el SPI.