Forum: Mikrocontroller und Digitale Elektronik Grasshopper Frequenz des MMCI


von Daniel (Gast)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

warum meinst du das die Übertragungsgeschwindigkeit dafür die 
Fehlerursache ist?

von Daniel (Gast)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

die Pullup-Widerstände sind dran?

von Daniel (Gast)


Lesenswert?

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.

von Gast (Gast)


Lesenswert?

zeig doch mal einen Stromlaufplan aus dem hervorgeht welche Pins vom 
Slot an welche Pins vom Grasshopper angeschlossen sind.

von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

Ich hoffe das Bild hilft.

Grüße,
Daniel

von Gast (Gast)


Lesenswert?

Tja, da kann ich keinen Fehler feststellen, wenn es so verdrahtet ist.

von Gast (Gast)


Lesenswert?

wie lang sind denn die Zuleitungen?

von Daniel (Gast)


Lesenswert?

So ca. 7-8 cm. Alle ungefähr gleich lang; +- 1 cm.

Hast du einen Slot für den Grasshopper gebaut und es funktioniert?

von Gast (Gast)


Lesenswert?

ja, allerdings mit einem µSD-Slot. Stromlaufplan gibt es hier:
Beitrag "Grasshopper und TFT Display"

von Gast (Gast)


Lesenswert?

der µSD-Slot hat eine andere Pin-Belegung.

von Daniel (Gast)


Lesenswert?

Ok, danke. Hast du vielleicht noch eine Idee durch welche Tests ich die 
Fehlerquelle eingrenzen könnte?

von Gast (Gast)


Lesenswert?

verkürz mal die Zuleitungen.
Die SD-Karte muss mit ext2fs partitioniert sein. Jedenfalls wenn du 
unter Linux arbeitest.
Mal eine andere Karte nehmen.

von Daniel (Gast)


Lesenswert?

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

von Werner B. (werner-b)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

> (bzw. der aktuellen InCircuit Version)

hatte InCircuit nicht letztens eine neue .iso bereitgestellt?

von Daniel L. (daniel-l)


Angehängte Dateien:

Lesenswert?

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

von Gast (Gast)


Lesenswert?

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.

von Daniel (Gast)


Lesenswert?

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

von Gast_w (Gast)


Lesenswert?

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?

von Gast (Gast)


Lesenswert?

> 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.

von Gast (Gast)


Lesenswert?

> 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
Noch kein Account? Hier anmelden.