MOSI & MISO mehrfach belegung

Gast #3067219
Lesenswert?

Hallo,

möchte meinen Atmel Atmega32L über ISP programmieren und eine sd Karte 
als Speicher für die Datenaufzeichnung nutzen.

Nun suche ich schon seit längerem nach einer Lösung für ISP und SPI. Wie 
kann ich verhindern, das beim Programmieren der ISP Adapter und die SD 
Karte gleichzeituig auf die Ports zugreifen?

Die suche bei G*** und hier haben mir keine Antwort gegeben.

Bitte um fachliche Hinweise, Kritik oder Lösungsansätze oder auch evtl. 
passsenden Thread.

Danke
#3067222
Lesenswert?

Seit längerem? Jeder SPI-Salve hat ein Chip-Select. Ist das High so 
ignoriert der Slave alles auf SPI. Und für CS kann jeder Pin verwendet 
werden. Machste noch nen PullUp Ran damit beim Programmieren der Pin 
sicher auch auf Hi geht. Und fertig. SPI ist ein BUS, d.h. es ist normal 
wenn mehrere Slaves da dran hängen, also ist es ganz normal hier ein CS 
für jeden Slave einzusetzen. Und das soll nirgends zum SPI stehen? Na 
sicher doch.

gruß cyblord
Gast #3067231
Lesenswert?

ja, seit fast 4 Tagen, habe aber keine saubere Lösung gefunden. Aber du 
hast mich auf eine gute Idee gebracht. Ich könnte einen Schalter 
speziell fürs programmieren einbauen, der cs steuert. Eleganter wäre, 
wenn der ISP Programmer angeschlossen wird und eine automatische 
Abschaltung der SD Karte erfolgen würde.

Dazu ne gute Idee?
#3067235
Lesenswert?

iGast schrieb:
> ja, seit fast 4 Tagen, habe aber keine saubere Lösung gefunden. Aber du
> hast mich auf eine gute Idee gebracht. Ich könnte einen Schalter
> speziell fürs programmieren einbauen, der cs steuert. Eleganter wäre,
> wenn der ISP Programmer angeschlossen wird und eine automatische
> Abschaltung der SD Karte erfolgen würde.
>
> Dazu ne gute Idee?

Du willst Probleme lösen die du gar nicht hast. Erstmal stören sich 
Programmer und SD-Karte einfach nicht, wenn du es so machst wie von mir 
vorgeschlagen und dann kannst du wirklich einfach zum proggen kurz die 
Karte aus dem Slot nehmen wenn du trotzdem Störungen hättest. Also wozu 
irgendwas merkwürdiges Basteln? Ich beteilige mich da nicht dran.

gruß cyblord
Gast #3067237
Lesenswert?

iGast schrieb:
> ja, seit fast 4 Tagen, habe aber keine saubere Lösung gefunden. Aber du
> hast mich auf eine gute Idee gebracht. Ich könnte einen Schalter
> speziell fürs programmieren einbauen, der cs steuert. Eleganter wäre,
> wenn der ISP Programmer angeschlossen wird und eine automatische
> Abschaltung der SD Karte erfolgen würde.
>
> Dazu ne gute Idee?

Du machst dir Probleme wo keine sind.
Gast #3067240
Lesenswert?

cyblord ---- schrieb:
> Du willst Probleme lösen die du gar nicht hast. Erstmal stören sich
>
> Programmer und SD-Karte einfach nicht, wenn du es so machst wie von mir
>
> vorgeschlagen und dann kannst du wirklich einfach zum proggen kurz die
>
> Karte aus dem Slot nehmen wenn du trotzdem Störungen hättest. Also wozu
>
> irgendwas merkwürdiges Basteln? Ich beteilige mich da nicht dran.
>
>
>
> gruß cyblord

Ich bin mir nicht sicher, ob diese sich nicht gegenseitig beeinflussen 
können.

Trotzdem Danke für deinen Tipp. Der klingt schon logisch.
#3067380
Lesenswert?

iGast schrieb:
> Hallo,
>
> möchte meinen Atmel Atmega32L über ISP programmieren und eine sd Karte
> als Speicher für die Datenaufzeichnung nutzen.
>
> Nun suche ich schon seit längerem nach einer Lösung für ISP und SPI. Wie
> kann ich verhindern, das beim Programmieren der ISP Adapter und die SD
> Karte gleichzeituig auf die Ports zugreifen?

Beim Flashen per ISP ist !RESET auf Low, im Normalbetrieb auf High. 
Heißt also: Du könntest mit einem 74HC125 zwischen ISP und Prozessor den 
Programmer nur bei !RESET=Low aktiv schalten. Bei !Reset=High wären die 
Ausgänge des HC125 hochohmig.

fchk
#3067422
Lesenswert?

Eine SD Karte ist kein normaler SPI Slave, sie muss nach dem Power-Up in 
den SPI Modus versetzt werden. Das bedeutet leider auch, dass sie beim 
Programmieren dazwischen funken kann, selbst wenn CS = High ist: Die 
Daten der ISP Übertragung könnten zufällig gültigen SD Kommandos 
entsprechen. Das kann für die Daten (und sogar der Karte selbst) 
schädlich sein.

Daher sollte die Karte beim Programmieren besser nicht im Slot stecken, 
wenn die ISP Pins auch als SPI Pins verwendet werden.
Gast #3067492
Lesenswert?

Jim Meba schrieb:
> Eine SD Karte ist kein normaler SPI Slave, sie muss nach dem Power-Up in
> den SPI Modus versetzt werden.

cyblord ---- schrieb:
> Seit längerem? Jeder SPI-Salve hat ein Chip-Select. Ist das High so
> ignoriert der Slave alles auf SPI. Und für CS kann jeder Pin verwendet
> werden. Machste noch nen PullUp Ran damit beim Programmieren der Pin
> sicher auch auf Hi geht. Und fertig. SPI ist ein BUS, d.h. es ist normal
> wenn mehrere Slaves da dran hängen, also ist es ganz normal hier ein CS
> für jeden Slave einzusetzen.

Und nu? Hast du das mit dem CS für eine SD-Karte so am laufen?
Gast #3068065
Lesenswert?

Guten Morgen,

habe nochmal darüber geschlafen und bin auf einer Seite auf den 4053 
gestoßen. Mir scheint, dass ich mit diesem Baustein mein Problem lösen 
kann. Wenn ich den Atmega 32L nutze, muss ich mir auch keine Gedanken 
über die Spannung machen bzgl. dem Atemga und der SD Karte. Wäre sehr 
dankbar über eure Meinung ob das klappen kann.
Angehängte Dateien:

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