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
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
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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.