Hi Alexandra,
It appears as if you are communicating correctly, but I can't verify or determine the output result as I can't line up the edges of the data to tell what is exactly being clocked out of the device (nor can I tell what is being written to the device). The default startup operation of the ADS1248 is RDATAC mode. I would suggest that after the RESET command is sent (and you must wait a minimum of 0.6ms after the reset command is sent before the next SPI command) you send the SDATAC command. This will stop the automatic posting of conversion results to the output register. The SDATAC command will not take effect until after the next conversion is complete. Even if SDATAC has been issued, you can still get corrupted results if the data has been posted to the output register while you are trying to read register data if the device state machine has not finished the conversion cycle to enter the SDATAC mode. This can be confusing. Issuing SDATAC right away should prevent this condition as writing to the registers will have no negative impact, and hopefully by the time you wait for the DRDY pulse, the ADS1248 should then be in SDATAC mode. Leave the device in SDATAC mode and use the RDATA command to read the conversion results. This will make sure you are using the correct timing and you should have the expected GPIO read.
Best regards,
Bob B