Hallo, ich bin gerade dabei die SD-Karte näher kennenzulernen. Diese wird über Hardware-SPI des ATmega644p angesprochen. Am SPI ist ebenfalls der ENC28J60 angeschlossen, den ich bereits getestet hatte (Vielen Dank an Ulrich Radig). Nun möchte ich die SD-Karte ansprechen. Dazu setze ich die Selectleitung der ENC28J60 auf high, da diese low-aktiv ist. Nun würde ich erwarten, dass dieser die MISO-Leitung freigibt, indem diese auf low fällt. Leider bleibt diese auf high (Wie es im Bild zu sehen ist, hier wurde noch keine SD in den Slot eingesteckt). Nun mit diese Problem hatte ich mich schon seit einigen Stunden beschäftigt und komme zu keiner Lösung, leider. Somit möchte ich fragen was mache ich falsch, bzw. wie bekomme ich den MISO-Ausgang des ENC frei für die Kommunikation mit der SD-Karte (rauslöten ist nicht so eine schöne Sache :D )? Vielen Dank. Sorry wenn das Problem etwas komisch beschrieben ist. Wenn noch was unklar ist, so bitte ich um eine Benachrichtigung.
ich hatte mal gelesen, dass manche von den SPI - Lan chips den bus nicht hergeben..
Marc S. schrieb: > ich hatte mal gelesen, dass manche von den SPI - Lan chips den bus nicht > hergeben.. Das lässt sich ja leicht aus dem Datenblatt entnehmen, ich hab jetzt aber keine Lust das für andere nachzuschauen. Ein High auf der MISO Leitung kann ja auch ein floatender Zustand sein, hervorgerufen durch einen schwachen Pullup der irgendwo dazugeschaltet ist (z.B. auch vom Prozessor). Das würde man warscheinlich sehen wenn man das Signal analog darstellen würde. Mit dem Logikanalysator wohl keine Chance, der verschlimmbessert die Situation eher noch.
nachbar schrieb: > die Selectleitung der ENC28J60 auf high, da diese low-aktiv ist. Nun > würde ich erwarten, dass dieser die MISO-Leitung freigibt, indem diese > auf low fällt. Leider bleibt diese auf high Wenn der Ausgang hochohmig wird, was glaubst du, wird dann mit dem Pegel passieren? Was kann überhaupt noch passieren, solange keinerlei Strom rein- oder rausfließen kann? Die Antwort ist natürlich: garnix: Der Pegel wird den letzten Zustand einfach beibehalten. Jedenfalls für eine relativ lange Zeit. Es sei denn, du selektierst ein anderes Gerät. Dann wird dessen Ausgang niederohmig und kann dann den Pegel des Bussignals kontrollieren.
Marc S. schrieb: > ich hatte mal gelesen, dass manche von den SPI - Lan chips den bus > nicht hergeben.. es ging da wohl hauptsächlich um arduino shields mit anderen chips: http://john.crouchley.com/blog/archives/662 ob der enc auch probleme hat weiß ich leider nicht.
Nach mehreren Versuchen hatte ich festgestellt, dass es am Logikanalysator gelegen ist, durch das hinzufügen eine Pulldowns mit einigen kOhm an MISO-Leitung wurde das Problem gelöst. Der ENC28J60 gibt den Bus auf wenn man diesen deselected, somit sollte es funktionieren. Trotzdem besteht das Problem, dass die MicroSD-Karte nicht antwortet... Hat schon jemand mit microSd an AtmegaXXX Erfahrungen? Zur Karte: 2GB SanDisk microSD Es wird richtig gesendet, aber es kommt keine Antwort Vielen Dank schon mal an alle Helfer
nachbar schrieb: > durch das hinzufügen eine Pulldowns mit > einigen kOhm an MISO-Leitung wurde das Problem gelöst. Damit hast du kein Problem gelöst. Allerhöchstens hast du ein floatendes High in ein floatendes Low gezwungen, was der Tristate-Phase absolut nichts nützt. Du könntest höchstens (durch Analyse mit dem LA) behaupten dass dein MISO Bus nach wegnehmen des CS "schon wieder" nicht auf Tristate geht sondern irgendwoher (vom ENC28J60?) auf Low gezwungen wird.
>durch das hinzufügen eine Pulldowns mit >einigen kOhm an MISO-Leitung wurde das Problem gelöst.durch das hinzufügen Bei SD Karten ist dort aber ein Pullup sehr hilfreich.
nachbar schrieb: > Nach mehreren Versuchen hatte ich festgestellt, dass es am > Logikanalysator gelegen ist, durch das hinzufügen eine Pulldowns mit > einigen kOhm an MISO-Leitung wurde das Problem gelöst. Der ENC28J60 gibt > den Bus auf wenn man diesen deselected, somit sollte es funktionieren. Das ist Unsinn. Der Logikanalysator hat ganz brav genau das angezeigt, was auf dem Bus los war. Und wenn du auch nur den Hauch eines Anscheins von Kompetenz hättest, hättest du erkannt, daß es keinesfalls in Richtung Lösung geht, wenn du nur die Anzeige des Logikanalysators in Richtung deiner inkompetenten Erwartungen trimmst. Das kann allenfalls dafür dienen, verschiedene denkbare Fehlersituationen zweifelsfrei voneinander zu unterscheiden. Du hast also herausbekommen, daß die Ansteuerung und die Logik des Enc28J60 offensichtlich tut, was sie soll, das Problem also ausschließlich bei der Ansteuerung der SD-Karte liegen muß. Das ist eigentlich ein guter Schritt bei der Fehlersuche. Das Problem ist nur: deine Kompetenz reicht nicht, um das Ergebnis eigenständig dementsprechend zu interpretieren, stattdessen erfindest du völlig fiktive "Fehler" beim Logikanalysator... > Trotzdem besteht das Problem, dass die MicroSD-Karte nicht antwortet... Genau... Da stimmt was nicht. Jeder, der den Schädel nicht nur dazu hat, damit es ihm nicht in den Hals regnet, wird natürlich als allererstes die Signale zur SD-Card verfolgen, denn offensichtlich übernimmt sie ja niemals den Bus, womit alle Fehler innerhalb des SD-Codes als Ursache ausscheiden. Es muß daran liegen, daß die Karte erst garnicht mitkriegt, daß sie gemeint ist und irgendwas tun soll.
an c-hater: trinke weniger!!! und mach was aus deinem Leben, bist etwas verbittert. Aber das wird schon denke ich. Trotzdem vielen Dank für deine nicht ganz so kompetente und hilfreiche Antwort (ein Tipp: nächstes mal einfach mal nichts schreiben :D ) Die Signale hatte ich direkt an der SD gemessen, die Spannung ist mit 3,3V gegeben. (Der letze Absatz, endlich mal was sinnvolles, prima weiter so!) an Marc S.: Vielen Dank für die Website, hilft mir sogar weiter! an Holger: Ich hatte auch einen Pullup gemeint. Hatte das auch aus dem SD-Karten-Datenblatt.
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.