Hallo, gibt es eine Möglichkeit die Frequenz des MMCI - und somit die Übertragungsgeschwindigkeit des von mir angeschlossenen SD Kartenslots - beim Grasshopper Board zu reduzieren? Ich habe im Moment Probleme beim Zugriff auf Dateien, die größer als ein paar Byte sind. Die Verzeichnisstruktur der Karte kann angezeigt werden und von kleinen Dateien von ein paar Byte, kann der Inhalt gelesen und beschrieben werden. Viele Grüße, Daniel
warum meinst du das die Übertragungsgeschwindigkeit dafür die Fehlerursache ist?
Bis jetzt ist das nur eine Vermutung, weil die Signale nicht 100%-ig sauber beim Slot ankommen. Hab sie mir mit einem Oszilloskop mal angesehen. Ansonsten hab ich im Moment leider keine Idee woran es liegen könnte. Viele Grüße, Daniel
Ja. Der Slot ist nach dem Vorbild des NGW100 gebaut - also mit je 47 kOhm als Pullup Widerstände an den 4 Datenleitungen und dem Commandsignal.
zeig doch mal einen Stromlaufplan aus dem hervorgeht welche Pins vom Slot an welche Pins vom Grasshopper angeschlossen sind.
Tja, da kann ich keinen Fehler feststellen, wenn es so verdrahtet ist.
So ca. 7-8 cm. Alle ungefähr gleich lang; +- 1 cm. Hast du einen Slot für den Grasshopper gebaut und es funktioniert?
ja, allerdings mit einem µSD-Slot. Stromlaufplan gibt es hier: Beitrag "Grasshopper und TFT Display"
Ok, danke. Hast du vielleicht noch eine Idee durch welche Tests ich die Fehlerquelle eingrenzen könnte?
verkürz mal die Zuleitungen. Die SD-Karte muss mit ext2fs partitioniert sein. Jedenfalls wenn du unter Linux arbeitest. Mal eine andere Karte nehmen.
Hatte die Karte erst mit FAT16 und FAT32 formatiert. Dachte eigentlich, dass das auch gehen sollte, wenn VFAT im Kernel eingebunden ist. Aber jetzt bei einer mit ext2fs formatierten Karte ist leider das gleiche Phänomen. Die zum Testen verwendete 1024 MB Karte verhält sich wie die vorher verwendete 512 MB Karte. Nach einstecken der SD Karte steht /dev/mmcblk0p1 zur Verfügung. Mit "mount /dev/mmcblk0p1 /mnt" lässt sich die Karte einbinden. Der Inhalt von /mnt lässt sich dann anzeigen, aber zB beim Kopieren von einer größeren Datei kommt die Meldung:
1 | end_request: I/O error, dev mmcblk0, sector 31079 |
2 | end_request: I/O error, dev mmcblk0, sector 31087 |
3 | end_request: I/O error, dev mmcblk0, sector 31095 |
4 | ... |
Bei einer 2 GB Karte kommt direkt beim Einstecken die Meldung:
1 | end_request: I/O error on dev mmcblk0, sector 0 |
2 | Buffer I/O error on device mmcblk0, logical block 0 |
3 | mmcblk0: error -84 transferring data |
4 | end_request: I/O error on dev mmcblk0, sector 0 |
5 | Buffer I/O error on device mmcblk0, logical block 0 |
Das Leitungen kann ich leider nicht so ohne weiteres verkürzen, da müsste ich eine ganz neue Platine bauen. Aber eigentlich müsste es doch gehen, wenn man statt die Kabel zu verkürzen die Geschwindigkeit verringert. Wobei ich noch nicht gefunden habe, wie das möglich ist. Eine neue Idee? Viele Grüße, Daniel
Wichtig ist vor allem auch der Kondensator in der Spannungsversorgung der MMC/SD Karte. Möglichst nahe am Kartenslot. Die Karten ziehen beim Aufwachen aus dem Standby ziemlich viel Strom. Ich habe irgendwo im Internet ein Dokument mit Messungen gefunden in dem das Spannungeinbrüche um bis zu 600mV an der Karte zur Folge hatte. Zudem stellt sich die Frage nach der von dir verwendeten Toolchain bzw. Kernel Version. Bei den Versionen vor Atmel Toolchain 2.3.0 (bzw. der aktuellen InCircuit Version) kenne ich solche Probleme auch, wenn auch erst bei Dateigrößen über einigen 100kB. Viel Erfolg Werner
> (bzw. der aktuellen InCircuit Version)
hatte InCircuit nicht letztens eine neue .iso bereitgestellt?
Kurz zur Software: Ich verwende Atmel Toolchain 2.3.0 mit dem Grasshopper Patch hier aus dem Forum (mit make extended-defconfig). Habe mir heute mal die Spannung angesehen. Beim Kopieren geht sie ganz schön in die Knie. Hab jetzt vor dem Slot einen 100nF und neu dazu einen 100uF Kondensator, aber trotzdem bleibt die Spannung nicht stabil. Auf dem Bild ist die Spannung beim Kopierversuch einer 7 MB Datei zu sehen. Durch den verwendeten Tastkopf ist ein Faktor 10 drin. Im Minimum geht die Spannung auf 1,95 V runter. Wie könnte ich die Spannung stabilisieren? Sind Kondensatoren von 100n und 100u vielleicht die falsche Wahl? Viele Grüße, Daniel
womit betreibst du den Grasshopper? Über USB (5V) oder über ein externes Netzteil? Auf jeden Fall sollten die Zuleitungen für die Spannungsversorgung des Slots entsprechenden Querschnitt haben. Ein 100nF und ein 10µF, jeweils Kerko, direkt am Slot, sollten genügen.
Mein 100µF Kondensator ist ein Elko. Ich habe jetzt direkt vor den Slot einen 4,7 µF großen Kerko eingelötet. Dazu habe ich die Massefläche vergrößert und siehe da: es geht. (scheint zumindest so :) ) Vielen Dank für die Hilfe. Daniel
Hallo leutz, habe auch versucht meine SDkarte am hopper zu lesen. Habe jetzt keine kerkos beschaltet gehabt. Habe zuerst die folgende Fehlermeldung gehabt
1 | atmel_mci atmel_mci.0: Atmel MCI controller at 0xfff02400 irq 28, 1 slots |
2 | mmc0: host does not support reading read-only switch. assuming write-enable. |
3 | mmc0: new SD card at address a95c |
4 | mmcblk0: mmc0:a95c SD512 483 MiB |
5 | mmcblk0:<4>mmcblk0: retrying using single block read |
6 | mmcblk0: error -84 transferring data, sector 0, nr 8, card status 0x900 |
7 | end_request: I/O error, dev mmcblk0, sector 0 |
8 | Buffer I/O error on device mmcblk0, logical block 0 |
9 | mmcblk0: retrying using single block read |
10 | mmcblk0: error -84 transferring data, sector 0, nr 8, card status 0x900 |
11 | end_request: I/O error, dev mmcblk0, sector 0 |
12 | Buffer I/O error on device mmcblk0, logical block 0 |
13 | unable to read partition table |
Habe daraufhin verschiedene Partitionen ausprobiert und leider immer die selbe fehlermeldung. Nun funktioniert nichts mehr. Nur "atmel_mci atmel_mci.0: Atmel MCI controller at 0xfff02400 irq 28, 1 slots" zeigt der noch an und der rest kommt nicht mehr. Liegt es vielleicht daran, dass ich immer die SD-Karte immer zog und ranstekte? Oder woran könnte es liege?
> Liegt es vielleicht daran, dass ich immer die SD-Karte immer zog und > ranstekte? Während des Betriebes? Öhm, das ist ein Betriebssystem.... du solltest vor dem Ziehen der Karte die Karte unmounten.
> Habe jetzt keine kerkos beschaltet gehabt.
Grober Fehler.
Da muss zwingend ein Kerko-Pärchen aus 1-10µF + 0,01-0,1µF so nah wie
möglich an die Slot-Anschlüsse von VCC gegen GND.
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.