Hallo, ich versuche gerade mit dem M16C6N4 den CC1101 über SPI anzusprechen, welches auch funktioniert hat, solange ich das CKPOL-Bit im U0C0-Register auf 0 gesetzt habe (=> Transmit data is output at falling edge of transfer clock and receive data is input at rising edge). Nun sollen aber laut Datenblatt vom CC1101 die Flanken genau umgekehrt sein. Also habe ich das CKPOL-Bit im U0C0-Register auf 1 gesetzt (=> Transmit data is output at rising edge of transfer clock and receive data is input at falling edge). Der Takt hat nun die richtige Polarität, aber die Daten liegen so dicht an den positiven Flanken, das sie verfälscht werden. D.h. ich schreibe 30h in den Sendebuffer und 38h wird gesendet (siehe Diagramm im Anhang). Gibt es eine Möglichkeit die Daten in Bezug auf den Takt verzögert auszugeben?
Sulu schrieb: > Gibt es eine Möglichkeit die Daten in Bezug > auf den Takt verzögert auszugeben? Du solltest dir dazu noch die Phaseneinstellung CKPHA (o.ä.) ansehen (und mit dem Timing im Datenblatt CC1101 Bild 13 in Übereinstimmung bringen). Mit CKPHA wird nämlich festgelegt, wann gelatcht und wann weitergeschoben wird. Sieh dir dort mal das untere Bild an: http://www.lothar-miller.de/s9y/categories/17-SPI
ckph im UARTi special mode register UiSMR3 = 0x00 // ckph = 0 without clock delay UiSMR3 = 0x02 // chph = 1 with clock delay
Vielen Dank für Eure Hilfe. Das war genau das Bit, das ich gesucht habe. Auch auf der Internetseite von Lothar Miller ist es sehr anschaulich dargestellt. Danke.
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.