Wie von anderen bereits angemerkt:
Die Taktrate des SPIs leitet sich vom Systemtakt ab und ist recht genau.
Anmerkung: Abhängig von deiner Anwendung kann es selbst bei Quarz
getakteten Prozessoren zu messbaren Mischprodukten den Clock-Jitters in
deinem ADC-Datenstrom kommen. Selbst in der Audiotechnik kann das ein
massives Problem darstellen.
Wenn du nun in deinem Linux einen SPI-Transfer startest läuft dieser
wohl geordnet ab, im Rahmen der Taktpräzision des Raspis. Das Problem
sind die Zeiten dazwischen, in denen dein Linux auch mal für einige
Millisekunden sagen kann: "Ne. Ich mach jetzt was anderes." Da fehlt in
diesem Fall die Echtzeitfähigkeit.
Wenn du wirklich Echtzeitfähig sein willst, kannst du versuchen das auf
dem Raspi mit Realtime Kernel etc hinzukriegen. Da liegen bei mir jetzt
keine Erfahrungen vor. Ich würde eventuell einen zweiten
Puffer-Controller zwischen Raspberry Pi und ADC hängen. Dieser wird dann
low-level programmiert sodass er den AD-Wandler echtzeitfähig bedienen
kann. Über ein weiteres SPI Interface kann dann das Raspberry Pi die
Daten auslesen, ohne dass es an dieser Stelle zu größeren
Echtzeitproblemen kommt. Man muss natürlich im externen uC soviel
Speicher haben, dass nichts überläuft. Das sollte aber im Zeitalter des
billigen Speichers kein Problem sein, zumahl der uC sonst ja nichts
anderes tut.