Moin ! Ich wollte mal fragen ob einer von Euch mittels Microblaze und XPS SPI Core eine SD Karte angesprochen bekommen hat. Hab im Internet gefunden das es wohl nicht geht? Gruss !
Christian F. schrieb: > Hab im Internet gefunden das es wohl nicht geht? Und warum nicht? > mittels Microblaze und XPS SPI Core eine SD Karte angesprochen Nicht, dass ich diese spezielle Kombination am Laufen hätte, aber: warum sollte das nicht gehen? SPI an die Karte und ein uC zur Verwaltung. So wird das weltweit gemacht.
Moin und zwar hat einer in seiner Bachelorarbeit sowas (bzw. genau das) in der Art gemacht. Zitat : Um die SD Karte anzusteuern, wurde ein eigener SPI-Core entwickelt, da der XPS-SPI-Core nicht flexibel genug ist, um SD-Karten anzusprechen. Das erste Problem war, dass bei jedem Sendevorgang automatisch der eingestellte Slave selektiert wurde. Die SD-Ansteuerung erfordert aber jeweils am Anfang des zu sendenden Kommandos 8 Takte im inaktiven Zustand der SD-Karte. Keine Ahnung woher er das hat, sind damit die ~80 Dummybytes am Anfang der Initialisierung gemeint? Gruss !
Also meine initialisierung sähe so aus (kleiner Ausschnitt eines Beispieles aus SP605 Board mit CF Karte ) :
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
Moin. Hab noch mal rumgewerkelt und es sollte in etwa so laufen: Das einzige Problem das ich habe, ist die Xspi_transfer Funktion. Sofern irgendeiner schon mit der Xspi.h Xspi.c Bibliothek gearbeitet hat. Bitte melden :)
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
Gibt es keinen hier der schonmal mit dem SPI Core versucht hat eine SD Karte anzusprechen? :( Gruss !
Gast
#2325462
Christian F. schrieb: > Gibt es keinen hier der schonmal mit dem SPI Core versucht hat eine SD > Karte anzusprechen? :( Sieht nicht so aus. Wo hängt es denn jetzt? Kann doch nicht so schwer sein. Machen hier im Forum doch alle mit AVR & Co. Duke
Naja das Problem das ich habe ist der SPI Core an sich und die Xilinx Treiber. Es gibt vorgefertigte Funktionen wie z.B. XSpi_Transfer etc. Allerdings ist es dort wohl kritisch in Sachen CS Signal. Jedenfalls hat es wohl einer damit versucht : Beitrag "SD Karte Spartan 3A XPS_SPI Modul" Allerdings keine Ahnung wo genau da sein Problem ist. Es hakt halt in der Timing Sache, also z.B. 80x Dummyclock Senden ohne die SD Karte anzusprechen. Das geht wohl nicht, da die XSpi_Transfer funktion immer ein Slave eingestellt haben will und ansonsten:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
Es ist halt schwierig zu erklären, deswegen habe ich gehofft das einer sich mit dem XPS SPI Core auseinandergesetzt hat.
Gast
#2327345
Hast Du einen Simulator? Hast Du einen Logic-Analyzer? Meine Simulation und die Messung auf der Hardware habe ich mal angehangen. Ich verwende allerdings den SPI-Flash (im 2x-Mode) auf dem SP601 Eval-Board. Angesteuert wird der Chip von spimctrl aus der grlib. Ich hab das Ganze solange simuliert bis es gut aussah; dann erst bin ich auf die Hardware gegangen. Duke
Hi, Ich könnte auf ChipScope zugreifen. Allerdings habe ich noch nie damit gearbeitet. Ich glaub ich werde nicht die Xilinx Treiber nehmen, sondern die low level Treiber auf denen auch dieses Treiber existieren. Dann schreibe ich direkt in die Register und erzeuge mir so eine low level Routine zum Schreiben/Lesen eines Bytes. Das ist dazu die Beschreibung des Cores : http://www.xilinx.com/support/documentation/ip_documentation/xps_spi.pdf Nur versteh ich da nicht die Verwendung vom CS Signal (einfach SPISSR auf Low ? ) sowie den genauen Start eines Transferes ( Clock wird erzeugt? ). " Angesteuert wird der Chip von spimctrl aus der grlib." = ? :)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.

