Forum: Digitale Signalverarbeitung / DSP / Machine Learning SPI Problem: 1 Bit Shift


von Tom (Gast)


Lesenswert?

Hallo,

ich verwende einen Piccolo Mikrocontroller von TI (F28035) und möchte 
über die SPI Schnittstelle A 48 Bits senden und empfangen (Priorität: 
Empfangen).

Ich habe zum Testen MISO und MOSI miteinander verbunden um zu 
überprüfen, ob meine gesendeten Daten wieder richtig eingelesen werden.
1
SpiaRegs.SPITXBUF = 0xFF00;
2
SpiaRegs.SPITXBUF = 0xF0F0;
3
SpiaRegs.SPITXBUF = 0xFFFF;
4
5
RX1 = SpiaRegs.SPIRXBUF;
6
RX2 = SpiaRegs.SPIRXBUF;
7
RX3 = SpiaRegs.SPIRXBUF;

Der oben gezeigte Code führt zu

RX1: 1111111110000000

RX2: 0111100001111000

RX3: 0111111111111111

Wie kann es zu diesem ungewollten Shift von 1 Bit kommen ?

Ich wäre für Tipps und Anregungen sehr dankbar.

- Tom

von Olaf (Gast)


Lesenswert?

Sender und Empfaenger koennten unterschiedliche Vorstellungen davon 
haben wann ein Bit gültig ist oder übernommen werden soll.

Olaf

von Tom (Gast)


Lesenswert?

Hallo,

nein das ist nicht der Fall, da es sich nicht um zwei unterschiedliche 
Geräte handelt, sondern lediglich den einen Mikrocontroller, welcher mit 
einer Hardware-Loop (MOSI -> MISO) aufgebaut ist.

Ich habe das Problem gefunden. Es besteht in der zu hoch eingestellten 
Taktfrequenz (CLK). Nachdem ich diese auf 8,5 MHz verringert habe, ist 
der Shift verschwunden.

Gruß
Tom

von Olaf (Gast)


Lesenswert?

Also ich kenne deinen Controller nicht, aber 8.5Mhz klingt mir nicht 
nach einem zu hohen Wert. Vielleicht ein Problem mit 
Verkabelung/Terminierung von SCK?

Olaf

von Tom (Gast)


Lesenswert?

Da der SCK bei meinem Test nach außen gar nicht angeschlossen ist, 
glaube ich nicht, dass es mit der fehlenden Terminierung des SCK zutun 
hat. Der Aufbau:

SCK -->
CS  -->
MOSI ---|
MISO <--|

SCK und CS offen, MOSI und MISO miteinander verbunden (Loopback Test).

- Tom

von Georg A. (georga)


Lesenswert?

Musst du evtl einstellen, dass der Slave-Teil auf die andere Flanke von 
SCK reagieren soll? Ausgeben und Einlesen erfolgt um 180Grad versetzt, 
SPI ist kein normales synchrones Interface, wo alles nur mit einer 
Taktflanke passiert.

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.