Gibt es gerätespezifische Limits bei SDXC-Geräten (Reader, Kameras)?

Hallo,
ich sehe immer wieder bei Artikelbeschreibungen dass Speicherkarten bis zB. 128GB unterstützt werden.

Heisst das wirklich dass sie keine grösseren Karten unterstützen obwohl es derselbe Standard ist?
Hat da jemand konkrete Erfahrungen?

Die Frage ist, was Du unter „Standard“ verstehst. Ja, die Karten sehen gleich aus. Aber das darauf verwendete Dateisystem kann unterschiedlich sein. Und je nach Implementierung kann es dann durchaus auch sein, dass dieses nicht darauf ausgelegt ist Datenträger jenseits einer gewissen Grenze zu verwalten.

Das ist tatsächlich eine Frage, die ich mir auch schon oft gestellt habe. Der SDXC-Standard (SD 3.0) gilt für Karten bis 2 TB/2048 GB und schreibt auch mit MS exFAT ein konkretes Dateisystem vor. Dennoch liest (bzw. besser: las) man ab und an tatsächlich, dass nur Karten bis 128 GB kompatibel seien.

Jetzt bekomme ich das zeitlich nicht mehr ganz rekonstruiert, aber für meine Begriffe war die erste 128 GB-Karte so ab 2015 erhältlich, die 256 GB zwei Jahre später. Mein unbegründeter Verdacht war lange Zeit, dass die in den Handbüchern erwähnten Einschränkungen auf „bis 128 GB“ einfach darauf zurückzuführen waren, dass zum Zeitpunkt der Drucklegung (bspw. meines Audi seinerzeit) größere Karten als 128 GB noch nicht verfügbar waren und man sich deswegen im Handbuch nicht darauf festlegen wollte, dass größere Karten (trotz gleichen Standards und Dateisystems) tatsächlich auch funktionieren.

Nun habe ich das Auto nicht mehr zur Hand, um auszuprobieren, ob eine 256 GB-Karte auf funktioniert hätte, aber technisch kann ich so auf den ersten Blick nicht erkennen, warum das nicht der Fall sein sollte.

Schon mal überlegt, dass mehr Blöcke auf der Karte notwendigerweise auch mehr Einträge im Verzeichnis zur Verwaltung derselben benötigen? Was wiederum bei einer immer begrenzten Puffergröße im Speicher des auslesenden Prozessors wohl was bedeutet?

Mein Samsung S5 konnte übrigens auch nur 128GB-Karten verwenden. Mit einem alternativen, neueren Android. Vom Hersteller waren nur 64GB vorgesehen. Und haben auch tatsächlich nur funktioniert.

1 Like

Ich habe mich da ggf. nicht klar genug ausgedrückt. Das eigentliche Format auf der Karte muss nicht das Problem sein. Eher der Umgang mit einer solchen Karte durch das Betriebssystem/die Gerätesoftware, so wie es auch @anon76087543 dargestellt hat. Speicherplatz ist auf PCs schon lange kein Thema mehr, aber bei embedded systems immer noch ein rares und teures Gut. D.h. wenn ich mit einer großen Karte umgehen will, braucht es zum Einlesen des Verzeichnisbaums entsprechenden Speicher. Und da sind mir bei einzelnen Geräten durchaus auch schon Begrenzungen unterhalb der an sich vom Dateisystem gesetzten Grenzen über den Weg gelaufen/sind mir Probleme bekannt geworden, dass Leute z.B. bei Autoradios auf Dateien und Verzeichnisse nicht zugreifen konnten, die an sich zwar vom Dateisystem der Karte her unproblematisch sind (und auf einem PC auch problemlos gefunden werden), aber einfach jenseits dessen liegen, was das Gerät an reiner Zahl von Dateien, Verzeichnissen und Verzeichnisebenen verwalten kann.

1 Like

Ja, das könnte ein Punkt sein. Guter Hinweis.

Das mit dem Verzeichnisbaum ist durchaus ein Problem für solche Geräte, allerdings kann auch eine kleine Karte schon zu viele Dateien enthalten. Im Grunde ist auch weniger die Gesamtanzahl entscheidend, sondern die Anzahl pro Verzeichnis - es sei denn, das Gerät will immer alle Dateien kennen.

Ein anderer Punkt ist, dass Speichermedien immer in Blöcke (Sektoren) aufgeteilt sind. So ein Block ist die kleinste les- und schreibbare Einheit, und ist klassisch 512 Byte groß. Will man nur ein einziges Byte ändern, muss man den ganzen Block in den Speicher lesen, das Byte ändern, und den ganzen Block wieder auf die Karte schreiben. Die Blockgröße ist ab Werk fest, und lässt sich nicht ändern.

Mit zunehmender Speicherkapazität stößt man dann an Grenzen, was die Anzahl der Blöcke angeht. Die Lösung besteht darin, größere Blöcke mit 1024, 2048 oder 4096 Byte zu nutzen. Ein Gerät, das Audiodateien abspielen soll, müsste für eine unterbrechungsfreie Wiedergabe auch immer den nächsten Block im Voraus laden, also mindestens zwei Blöcke im RAM halten können.

So ein ESP32 ist schon ein recht moderner, dicker Microcontroller mit 512kB RAM. Viele andere Microcontroller haben viel, viel weniger Speicher. Die Arduino Megas haben nur 32kB, die kleineren eher 2-8kB.

Ein beträchtlicher Teil des RAMs geht also für die SD-Karte drauf, und da kann es durchaus sein, dass ein Gerät nur 512 oder vielleicht noch 1024Byte Blockgröße unterstützt.

Ich weiß nicht, ob bei 128GB ne magische Grenze überschritten wird, ab der die Blöcke größer werden, denkbar wäre das. Und das wäre dann ein Grund, warum solche Karten nicht unterstützt werden.

Solche Angaben bedeuten eher „mehr haben wir nicht getestet“.

Nach meiner Erfahrung können die Laufwerke meistens mehr, solange man innerhalb der gleichen SD-Version (SD, SDHC, SDXC, SDUC) bleibt. Es muss hier auch unterschieden werden, ob sie „nur“ grundsätzlich funktionieren oder ob der zusätzliche Datenspeichers (und wie viel davon) nutzbar ist.