Software SPI - Unterberechung während der Übertragung

#692030
Lesenswert?

Hallo,

ich bin gerade dabei, Software SPI zu schreiben. Ich habe aber eine 
grundlegende Frage zur SPI Übertragung. Was passiert, wenn während der 
Übertragung(z.B nachdem 5 von 8 bits übertragen sind) ein Interrupt 
auftritt, der abgearbeitet wird und danach die Übertragung fortgesetzt 
wird? Ist das ein Problem?

Die Interrupts möchte ich während der Übertragung wenn möglich nicht 
deaktivieren. Ich denke, es sollte kein Problem sein, da sich der Slave 
ja an den Flanken von SCK orientiert. Wenn nun mal eine Pause von sagen 
wir 10ms zwischen 2 bits stattfindet, müsste das egal sein.

Ich hoffe, dass ich mich nicht irre.

mfg Stefan
#692206
Lesenswert?

Hallo,

danke. Empfänger kann clk sicher folgen, so schnell ist software spi 
dann auch nicht

Noch was anderes: was passiert, wenn CS auf low ist, die Pins SCK und 
MOSI vom Master aber keine definierten Pegel haben, also z.B high 
impedance sind?
Es wurde gerade ein Byte gesendet, nun bleibt CS aber auf low, SCK und 
MOSI nehmen nun für einige Zeit einen hohen Ausgangswiderstand an, 
danach wird wieder weitergesendet (SCK und MOSI wieder low impedance). 
Muss ich Pullup bzw Pulldown verwenden, damit keine Probleme entstehen?

Das ganze ist für folgende Anwendung: ich möchte bzw muss die Pins SCK 
und MOSI und MISO zwischendurch vom Bus trennen, CS muss aber auf low 
bleiben. Gibts sonst eine bessere Lösung für mein Problem? Das Trennen 
will ich mit einem 74HC125 machen.

mfg Stefan
Gast #692276
Lesenswert?

>Es wurde gerade ein Byte gesendet, nun bleibt CS aber auf low, SCK und
>MOSI nehmen nun für einige Zeit einen hohen Ausgangswiderstand an,
>danach wird wieder weitergesendet (SCK und MOSI wieder low impedance).
>Muss ich Pullup bzw Pulldown verwenden, damit keine Probleme entstehen?

Das hängt von deinem SPI Mode ab. Du solltest auf jeden
Fall die SPI Leitungen nicht floaten lassen wenn CS low ist.

Mir fällt im Moment aber auch keine Anwendung ein, wo man so
etwas unglaublich dummes tun müsste ;)
#692294
Lesenswert?

Hallo,

Ich brauche das für eine SD Karte. CS von der SD darf nicht auf high 
gehen während auf diese zugegriffen wird, und das braucht etwas Zeit die 
Sektoren zu lesen/schreiben.

Damit ich aber auch zwischendurch mal Daten an ein anderes SPI Gerät 
schicken kann (auch zeitkritische Daten zu empfangen) darf ich nicht 
immer warten, bis die SD fertig ist. Eine Abhilfe wäre ein 2. SPI, z.B 
Software SPI, aber wenn ich alles am Hardware-SPI unterbringen kann, 
wäre das besser. Die SPI Pins von der SD wollte ich dann vom Bus 
trennen, sobald Daten an ein anderes Gerät geschickt werden, wenn das 
irgendwie geht.

Wie könnte ich das sonst lösen?

mfg Stefan

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