Hi!
Ich überlege ob es sich lohnt ein Projekt, das einen UC3A1-Controller
hat, auf einen UC3A3/A4-Controller umzustricken.
Der Grund ist, das der Zugriff über SPI auf die SD-Karte mit dem
UC3A1-Controller nicht sehr schnell war. Geschwindigkeit war im
einstelligen
KB/sec-Bereich trotz guter Karte.
Hat einer von euch einen UC3A3/A4 mit dem Multi-Media-Card-Interface und
dem Memory-Stick-Interace probiert?
Bringt das eine spürbare Steigerung?
Cloud
Hi,
>UC3A1-Controller nicht sehr schnell war. Geschwindigkeit war im>einstelligen>KB/sec-Bereich trotz guter Karte.
Hmm? Dann hast du aufjedenfall was flasch gemacht. Ich konnte daten via
SPI mit bis zu 1,2Mb/sec lesen bei 24Mhz SPI speed.
Ich selber habe auch den UC3A1. Mit dem UC3A3/A4 sollte man sogar
4MB/sec und mehr schaffen (je nach SD).
Gruß
Zippi
Hi,
Hab meine eigenen Treiber geschrieben. Meine Karte ist FAT32 formatiert.
Schreiben hab ich noch nicht getestet. Hab mir damals nen Speed
testprogramm geschrieben.
>AVR32_SPI1.CSR1.scbr = 10;
Mach das auf 4. Das sollte jede SD karte noch schaffen.
>10 << AVR32_SPI_CSR1_DLYBS_OFFSET |>// 11 Wartezyklen, nach fall von Cs
Ka wie oft CS fällt bei dir. Mach da mal 0 und CS dann via GPIO, kurz
vor dem trasfare machst du CS auf LOW. Und wenn der Block fertig gelesen
ist wieder auf High.
>10 << AVR32_SPI_CSR1_DLYBCT_OFFSET;>//10 Wartezyklen zwischen den Transfers
Da mach auch mal auf 0. Wenn du dazu noch DMA nutzt, dann bringt das
nochmal ordentlich speed.
Gruß
Zippi
Hi,
der CS fällt nur wenn die Karte gemounted wird und nachdem
alle Schriebzugriffe fertig sind. Soweit ich weiß, muss die Karte neu
intialisiert werden, wenn CS einmal auf high gegangen ist!?
>Wenn du dazu noch DMA nutzt, dann bringt das>nochmal ordentlich speed.
Wie kann man die write-Funktion mit einem DMA-Controller laufen lassen?
Cloud
>Wie kann man die write-Funktion mit einem DMA-Controller laufen lassen?
Also die block init ist immernoch gleich, dann bei der schreibe routiene
wo du die 512byte schreibst, dort musst du den DMA rein machen.
Lies dir mal das Kaptiel im Datenblatt durch. DMA ist eigentlich recht
simple.
Gruß
Zippi