Forum: Mikrocontroller und Digitale Elektronik M16C/6N4 SPI CC1101 Probleme mit CKPOL


von Sulu (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von qwert (Gast)


Lesenswert?

ckph im UARTi special mode register

UiSMR3 = 0x00 // ckph = 0 without clock delay
UiSMR3 = 0x02 // chph = 1 with clock delay

von Sulu (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.