HW SPI

Gast #93215
Lesenswert?

Hi,

ich habe ein kleines Problem und finde im Datasheet nix dazu.

Ich wollte gerne die Polaritaet des Mosi Pins aendern. ihmo ist es so
das er im IdleModus High ist. Ich wuerde den gerne auch LOW haben im
IdleMode. Die Polaritaet des SCK Pins kann man ja aendern ueber CPOL
(1/0). Gibt es beim AVR keine Moeglichkeit fuer den MOSI PIN?


Mfg

Dirk
Gast #93216
Lesenswert?

Hi,

ich habe jetzt mir eine Software SPI Routine geschrieben da es
anscheinend nicht Moeglich ist beim AVR die Polaritaet von Mosi und CLK
zuaendern.

Jetzt habe ich aber dabei ein kleines Verstaendis Problem und wuerde
mich ueber ein bischen Hilfe freuen.


IHMO. Sende ich die Daten ohne Timer. Sprich ich arbeite mit
Warteschleifen um mich an die Spezifikation des Slave's zuhalten
(Clocktime mind. 10 µS).


Ist es vielleicht besser den Clock bzw die ganze SW SPI Routine per
Timer zumachen? Mein timer0 nutze ich schon um Signale zu Caputen.
Dieses koennte ich relativ leicht auf den Timer1 meines µC legen.

Somit koennte ich doch dann den Timer0 nutzen um die SPI Daten zusenden
und den Clock zugenerien.

Was ist eure Meinung dazu ? Lieber mit Warteschleifen oder doch lieber
per Timer?

Mfg

Dirk
Gast #93217
Lesenswert?

Hallo Dirk!

bei der SPI handelt es sich ja um synchrone Datenübertragung ....
solang Minimum-Zeiten eingehalten werden, muss die Frequenz bei der
Clockleitung nicht sonderlich exakt sein. -> Warteschleifen ohne Timer
sollten reichen - und falls mitten in der Übertragung (beim Senden) ein
Interrupt dazwischenredet sollt das auch egal sein, die Wartezeiten
zwischen den einzelnen Clock Signalen müssen ja auch nicht konstant
sein.

mfG
Alex
#93218
Lesenswert?

Warum soll denn der MOSI high sein ?

Ohne Änderung am SCK ist es doch egal, es wird ja nichts übernommen.
Deshalb bleibt nach dem Ende des SPI-Transfers der MOSI einfach auf dem
letzten Datenbit stehen.


Du kannst ja nach dem Ende des SPI-Transfers das SPI abschalten.
Dann kannst Du den MOSI-Pin als ganz normalen Portpin so setzten wie du
lustig bist.


Peter
Gast #93219
Lesenswert?

Hi,

Mosi muss LOW sein wenn keine Daten gesendet werden (CLK auch).
Zumindest ist es so spezifiziert vom Wechsler.

Du hast schon Recht das dann keine Daten uebernommen werden, aber
leider kann ich dann keine 50ms Ruhepause zwischen den Datenpaketen
lassen sondern muss alle 2 ms die Daten neusenden.

Das mit dem SPI Disablen hab ich schon gemacht trotzdem habe ich immer
noch das Problem das die Kommunikation dann abbricht zum Radio.


Mfg

Dirk

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