Hi Leute, ich habe mal wieder eine Frage für mein momentanes Projekt, und zwar möchte ich Tondaten (als WAV-Rohdaten) mit einem Xmega Aufnehmen. Im Moment suche ich nach einem geeigneten Speicher und wollte daher Fragen, welche Erfahrungen ihr bezüglich der Schreibgeschwindigkeit gemacht habt. Bei einer SD-karte (natürlich SPI)... ... mit Dateisystem? ... ohne Dateisystem? Bei einer SATA-Festplatte über einen IDE-SATA-Adapter... ... mit Dateisystem? ... ohne Dateisystem? Oder gibt es noch eine Andere Möglichkeit, an die ich nicht gedacht habe? Wie gesagt soll der Controller ein Xmega werden, der dann auf 32Mhz laufen wird. LG Schwane
> Erfahrungen ihr bezüglich der Schreibgeschwindigkeit [...] > Bei einer SD-karte (natürlich SPI)... > ... mit Dateisystem? > ... ohne Dateisystem? Kaum Unterschied, wenn man über-allokiert, d.h. größere Blocke als einen Cluster beim Schreiben reserviert. Man muss halt ab und zu einen FAT-Sektor wegschreiben zusätzlich. Probleme bekommt man eher durch Fragmentierung des Dateisystems, da dann u.U. erst viele FAT-Sektoren später wieder was "frei" ist. Lass aber viel Platz im Puffer, die Spec erlaubt SDHC Karten durchaus Bedenkzeiten von einer Sekunde. Das brauchen die real aber nur ganz selten. Wenn möglich, arbeite mit "multiple write" - und vermeide direktes Lesen nach einem Schreibvorgang. Da musst Du dann die Schreibzeit abwarten. Ansonsten: Forensuche. Hier gibts viele Threads über SD. > Bei einer SATA-Festplatte über einen IDE-SATA-Adapter... Wie willst Du den an den XMega anschliessen? Würde mich stark verwundern, wenn die was anderes als UDMA unterstützen, also ab 33 MHz aufwärts...
Erst mal danke ;) > wie willst Du den an den XMega anschließen? Würde mich stark > verwundern, wenn die was anderes als UDMA unterstützen, also ab 33 MHz > aufwärts... Die SD-Carte kann meines Wissens maximal einen SPI-Takt von 25 MHz, und ich frage mich ob da nicht die Parallele Ansteuerung einer IDE-Festplatte auch bei Frequenzen < 32MHz schneller ist. Und AVR oder AVR32 Beispiele mit Festplatten gibt es ja auch manche. > Forensuche. Hier gibts viele Threads über SD. Ja, die habe ich auch schon gefunden, nur leider finde ich so gut wie nie Angaben über wirklich erreichte Maximale Datenraten. Und ich hatte gehofft so was hier zu bekommen, sodass ich weiß, wie weit ich überhaupt mit den Audiodaten gehen kann. holger schrieb: > Beitrag "SD-Karten-Wave-Recorder" Danke, aber den Beitrag hatte ich mir auch schon durch gelesen. Auch dort gibt es keine angaben über die Datenrate, außer das es anscheinend knapp ist und mit Dateisystem nicht gereicht hätte. Außerdem wird auch dort auf eine Festplatte verwiesen. Deswegen hatte ich ja hier gerade nach der Schreibgeschwindigkeit gefragt.
>Die SD-Carte kann meines Wissens maximal einen SPI-Takt von 25 MHz, und Und das ist ein schöner Wunschtraum dem so manche in die Falle gehen. Das ist die maximale Datenrate die das Interface erlaubt. Da kommen dann noch Busy Zeiten von der SD dazu um die Daten zu speichern. Nach meinen Erfahrungen so 7kB/s bis zu 450kB/s mit einem AVR und 8MHz SPI Takt. Diese kleinen lästigen sporadischen Pausen von bis zu 500ms die sich die SD mal gönnt können schon ganz schön nervern.
Hendrik S. schrieb: > ich frage mich ob da nicht die Parallele Ansteuerung einer > IDE-Festplatte auch bei Frequenzen < 32MHz schneller ist. Tricky, da die IDE-Schnittstelle 16-Bit-Zugriffe erfordert. Wenn die über I/O-Ports abgewickelt werden sollen, wird das ganze recht langsam, wenn der µC keine echten 16-Bit-Ports hat. Am schnellsten wird es bei µCs mit externem 16-Bit-Speicherinterface, wenn memory-mapped I/O verwendet wird. Es gibt zwar IDE-Implementierungne für 8-Bit-µCs, diese aber nutzen üblicherweise eine nur von CF-Karten zur Verfügung gestellte 8-Bit-Betriebsart.
>das heiß bei 25MHz Takt maximal etwa 1,6 MB/s?
Das heisst bei 25MHz unbestimmte Schreibzeiten
von 0-500ms pro Sektor. Wenn alle Karten gleich schnell
beim schreiben wären, dann könnte man sich Vergleichstests
in diversen Computerzeitschriften sparen.
Hendrik S. schrieb: > holger schrieb: >> Beitrag "SD-Karten-Wave-Recorder" > > Danke, aber den Beitrag hatte ich mir auch schon durch gelesen. Auch > dort gibt es keine angaben über die Datenrate, außer das es anscheinend > knapp ist und mit Dateisystem nicht gereicht hätte. Mit mehr RAM (ich verwendete 128kB Pufferspeicher) sollte es auch mit Dateisystem funktionieren oder gar mit höherer Samplerate. Bei einem nächsten Projekt habe ich 512kByte benutzt und das reicht schon für gut 2s bei 48kHz/16Bit stereo, damit sollte jede Karte zurecht kommen.
Die meisten SD-Karten schaffen ja heute zweistellige MB/s Datendurchsätze. Selbst mit SPI 1 Bit seriell schafft man bei 25 MHz schon etwa 4 MB/s. Hier ist also kein Flaschenhals. Der liegt eher in den Schreibpausen der Karte. Hier muss ein FIFO her. Wie groß der sein muss, muss man prüfen. Gefühlt würde ich sagen, dass man 100-500ms puffern muss. MfG Falk
Da hier ja ein xmega zum Einsatz kommen soll, würde sich als FIFO ein SDRAM anbieten.
SRAM ebenso. Mit SDRAM hat man mehr Probleme, als Nutzen. Ist bei den aktuellen XMEGA nun mal so. Falk Brunner schrieb: > Gefühlt würde ich sagen, dass man 100-500ms > puffern muss. Wird bei SDHC knapp. 500ms Pause habe ich schon bei 'normalen' SanDisk-Karten (2GB) gesehen und war darüber auch ziemlich baff. 128kByte waren damals ein sicher funktionierender Puffer für den Zweck.
Also ihr würdet von der Festplatte abraten... So wie ich das jetzt sehe reicht auch die SD-Karte locker aus. Ich arbeite mich gerade mit dem A1 Xplained in die Xmegas ein und da ist ja ein 8MB SDRAM drauf. Ich werde mir mal einen SD-Karten Socket besorgen und testen, wie weit ich mit der Datenrate gehen kann (bei verschiedenen Karten) und mich dann daran orientieren. Mal sehen was dabei raus kommt ;) Wenn du eher SRAM verwenden würdest... Welche Chips gibt es denn da?
Hendrik S. schrieb: > Also ihr würdet von der Festplatte abraten... > So wie ich das jetzt sehe reicht auch die SD-Karte locker aus. Oder, wenn beschaffbar (u.a. Digi-Key), könnte man auch direkt ein NAND-Flash nehmen... z.B. http://download.micron.com/pdf/datasheets/flash/nand/2_4_8gb_nand_m49a.pdf max. 700 us pro 2048 Byte Page-Write (~2.9 MB/s) und max 3 ms pro 128 kiB Block-Erase (Page/Block jeweils ohne die 64 extra Bytes gerechnet, die normalerweise für die Fehlerkorrektur verwendet werden).
Arc Net schrieb: > könnte man auch direkt ein > NAND-Flash nehmen... SD-Karten nutzen das Flash besser aus, indem sie die Blöcke gleichmässig beschreiben, um das 'Abnutzen' einzelner Zellen zu vermeiden. Zudem sind sie billig und klein (Micro-SD).
Rufus Τ. Firefly schrieb: > Es gibt zwar IDE-Implementierungne für 8-Bit-µCs, diese aber nutzen > üblicherweise eine nur von CF-Karten zur Verfügung gestellte > 8-Bit-Betriebsart. Was würde denn dagegen sprechen, eine solche zu verwenden? Wenn SD-Karten und Festplatten Optionen sind, dann doch bestimmt auch CF-Karten.
Zudem kann man sich die 16bit Zugriffe sparen wenn man nur die Hälfte der Kapazität der HD nutzt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.