HW SPI

Gast #93215
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.