SPI Problem: 1 Bit Shift

Gast #4362120
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
Gast
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
Gast
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
Gast
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
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 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.