mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI und SD-Card


Autor: Karsten Sosna (scottyrebel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
nur zum Verständnis. Ich kann ja eine CD-Card an die SPI-Schnittstelle 
anschliessen. Jetzt habe ich gelesen, das ich den Pin SS der SD-Card auf 
Low ziehen muss, bevor ich die Übertragung einleite. Jetzt steht da aber 
auch, das ich nur einen Slave anschließen kann. Irgendwie widerspricht 
sich das doch. Hintergrund ist das ich zwei Slaves habe(ein mal die 
SD-Card und ein mal das RFM12-Modul) beide sollten über die 
SPI-Schnittstelle mit dem Controller kommunizieren. Das was bei der 
SD-Card der SS-Pin ist, ist beim RFM12 der nSEL-Pin. Ich bräuchte also 
nur die Daten und Clock-Leitungen parallel schalten und über 2 
zusätzlich Leitungen(SS und nSel) auswählen können mit welchem Slave 
sich der Controller "unterhalten" soll.
Eigentlich sollte das funktionieren, oder sehe ich das falsch?
Ich weiß das ich eine Pegelanpassung brauche, aber sollte nicht das 
Problem darstellen, da ich das RFM12-Modul auch mit 3.3V betreiben kann 
wie es die SD-Card vorgibt.

Danke für jeden Tipp.
--
Gruß Karsten

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zwei Slaves bedeuten 2 SS Leitungen. Die Zweite muss man dann eben zu 
Fuss mit einem Port Pin machen.

Autor: Karsten Sosna (scottyrebel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dürrer Zitterknilch schrieb:
> Zwei Slaves bedeuten 2 SS Leitungen. Die Zweite muss man dann eben zu
> Fuss mit einem Port Pin machen.

Das meine ich ja, bei der SD-Card heißt der Pin SS, beim RFM12 ist es 
nSel. Wenn ich den Controller grundsätzlich als Master laufen lasse 
müsste ich ja sowieso die Funktionalität des/ der SS-Pin(s) 
bereitstellen. Auszug Docu zum ATMega:
"When configured as a Master, the SPI interface has no automatic control 
of the SS line."
Jetzt habe ich nur Problem. Der Controller wird ja auch über SPI 
programmiert. Das bedeutet doch eigentlich das ich sicherstellen muss, 
dass die Slaves High-Signal am SS-Pin führen, wenn der Controller mal 
neu programmiert werden muss.
--
Gruß Karsten

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bein Einstecken des ISP Programmers wird im Mode mit Reset=Low 
gearbeitet. Dann muss kommt SCK, MISO und MOSI vom ISP Stecker.

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karsten Sosna schrieb:
> Das bedeutet doch eigentlich das ich sicherstellen muss,
> dass die Slaves High-Signal am SS-Pin führen, wenn der Controller mal
> neu programmiert werden muss.

ALso Pullup an die Leitungen und fertig.

Autor: Karsten Sosna (scottyrebel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Bein Einstecken des ISP Programmers wird im Mode mit Reset=Low
> gearbeitet. Dann muss kommt SCK, MISO und MOSI vom ISP Stecker.

Dann scheint mein Programmiergerät anders zu 
funktionieren(http://www.eproo.de/index.php?module=artikel&actio...). 
Wenn ich hier teste brauche ich den ISP-Stecker nicht zu lösen, damit 
der Prozessor "normal" läuft. Die Reset-Leitung wird also wohl nur beim 
Programmieren selber auf Low gezogen. Was mit dem Port-Pins während des 
Programmierens passiert habe ich noch nicht getestet, ich weiß nicht ob 
die in ein Z-State gehen. Hier auf meinem Testboard habe ich am PortB 
LEDs hängen, die werden auf jeden Fall abgeschaltet, was ja theoretisch 
einem Low-Signal entspricht. Damit würden die SS-Pins auch auf Low 
gezogen(auch mit Pull-Up-Widerstand). Das wiederum würde aber bedeuten, 
das sich die Slaves angesprochen fühlen, weil das SS-Signal Low-Aktiv 
ist. Eigentlich dürfte das so nicht funktionieren, denn die Slaves 
würden dem Programmer "dazwischen quatschen".
--
Gruß Karsten

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.