SPI und SD-Card

OP #1864649
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
OP #1864695
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
OP #1864868
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&action=artikel&id=10). 
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren