Übertragungsproblem SPI

Gast #4435497
Lesenswert?
• ▲
▼
Hallo zusammen,
ich nehme gerade meine erste SPI Schnittstelle in Betrieb und habe 
Probleme. Als Hardware habe ich einen Arduino DUE (ATSAM3X8E) als SPI 
Master und ein SPI Device (Hilscher netx51).
Ich habe im ersten Schritt nur das Clock Signal und Chip Select 
verbunden! MISO und MOSI ist nicht am SPI Device angeschlossen. Mit 
meinem Oszi kann ich nun alle Signale am Oszi messen. Alles funktioniert 
super. Chip select, Clock und MOSI gehen richtig raus und auf der MISO 
Leitung stehen ebenfalls gültige und richtige Daten an. Sobald ich aber 
nun die MISO Leitung an meinen Arduino DUE anschliesse, kann ich keine 
Signale mehr auf MISO und MOSI messen. Chip Select und Clock sind nach 
wie vor ok.
Irgendwelche Ideen an was das liegen könnte?
Gast #4435506
Lesenswert?
• ▲
▼
Wie hast du die denn verbunden? Zum netX51 finde ich nur 
Übersichtsblätter, aber keinerlei Datenblatt. Wäre es möglich, das mal 
hier zu verlinken und den Schaltplan zu posten?

Normalerweise wird MISO mit MISO und MOSI mit MOSI verbunden. Das hast 
du auch so gemacht?
Gast #4435532
Lesenswert?
• ▲
▼
Ja, genauso habe ich es verbunden. Das habe ich auch schon öfters 
überprüft. Das passt auf jeden Fall. Ich habe Controllerpin A25 (MISO) 
mit Ader 10 verbunden und Controllerpin A26 (MOSI) mit Ader 9. Ich habe 
dazu noch folgende Ideen:
- Sowohl Arduino wie auch das SPI Device laufen mit 3.3V. Könnte dies 
Probleme machen, da auf dem SPI Stecker (am Arduino) 5V mit drauf sind, 
oder sollte SPI ebenfalls mit 3.3V problemlos funktionieren?
- Irgendwelche Potentialprobleme in der Schaltung? Allerdings relativ 
unwahrscheinlich, da ich das SPI Device über die 3.3V 
Spannungsversorgung aus dem Arduino Board versorge und ausser SPI sonst 
gar nichts mehr angeschlossen habe
- Eventuell MISO und MOSI Pin falsch konfiguriert. Ich bin aber der 
Meinung, daß ich im Programm die Pins auf Peripherie konfiguriert habe 
und nicht über PIO Controller.
Angehängte Dateien:
Gast #4435549
Lesenswert?
• ▲
▼
ekon schrieb:
> - Sowohl Arduino wie auch das SPI Device laufen mit 3.3V. Könnte dies
> Probleme machen, da auf dem SPI Stecker (am Arduino) 5V mit drauf sind,
> oder sollte SPI ebenfalls mit 3.3V problemlos funktionieren?

Solange 5V nirgends an die 3,3V-Logik angeschlossen wird, ist das kein 
Problem. Wenn beide Halbleiter mit 3,3V arbeiten, dann ist das so 
richtig.

> - Irgendwelche Potentialprobleme in der Schaltung? Allerdings relativ
> unwahrscheinlich, da ich das SPI Device über die 3.3V
> Spannungsversorgung aus dem Arduino Board versorge und ausser SPI sonst
> gar nichts mehr angeschlossen habe

Vielleicht. Komisch ist, dass beim Verbinden von MOSI und MISO (während 
CLK und GND bereits verbunden sind) plötzlich nichts mehr passiert. 
Könnte es sein, dass der Takt noch vorhanden ist, die Pegel der beiden 
Leitungen aber auf Masse bleiben, weil Nullen ausgegeben werden?
Hast du den richtigen SPI-Mode?


> - Eventuell MISO und MOSI Pin falsch konfiguriert. Ich bin aber der
> Meinung, daß ich im Programm die Pins auf Peripherie konfiguriert habe
> und nicht über PIO Controller.

Passt aber nicht dazu, dass was zu sehen ist, solange nur CLK und GND 
verbunden sind, oder?
Gast #4435590
Lesenswert?
• ▲
▼
Also der Takt ist immer ok, auch wenn ich die MISO Leitung anschliesse 
(Chip select auch). ich glaube nicht daß ich nullen ausgebe und auch 
nicht das ich nullen zurückbekomme. Ich kann es definitiv am Oszi sehen, 
daß sobald ich den Pin verbinde die Leitung auf 0 bleibt. Es scheint so 
auf der MISO Leitung als wolle das SPI Device teilweise eine 1 setzen, 
aber dies nicht "schafft". Ich kann dies an einem leichten Zappeln am 
Anfang sehen wo normalerweise eine 1 zurückkommen sollte.
Laut Datenblatt soll das Device mit SPI Mode 3 betrieben werden. Dies 
mache ich auch (siehe Statusflags im Anhang). Ich habe aber gerade auch 
mal eben alle anderen SPI Modes durchgespielt. Es ändert sich nichts.
Angehängte Dateien:
Gast #4435602
Lesenswert?
• ▲
▼
Wurde der MISO-Pin am Controller vielleicht als Ausgang gesetzt (falls 
das überhaupt geht)?

Prüfung ginge mit einem Pullup-Widerstand gegen 3,3V. Ich vermute mal, 
3k..10k wären okay. Aber erstmal mit 10k anfangen.
Gast #4435854
Lesenswert?
• ▲
▼
Ok, den Test mach ich dann morgen. Einfach einen 10k Pullup Widerstand 
von MISO auf 3.3V. Wenn der Pin trotzdem auf 0V bleibt ist dieser wohl 
aus Ausgang definiert und auf False geschrieben. Richtig?

Generell müssten alle 4 Pins im PIO Status Register auf 0 sein, um hier 
sicherzustellen, daß Peripherie angewählt ist und nicht der PIO 
Controller den Pin schaltet.Zudem muss MISO im Output Status Register 
auf 0 sein und die anderen 3 Leitungen auf 1. Richtig?
Gast #4435897
Lesenswert?
• ▲
▼
Ich bin mir sicher, daß die Belegung passt. Zudem hab ich die Kabel auch 
schon mal vertauscht um sicherzugehen, daß nicht was falsch in der einen 
oder anderen Doku drin steht. Das Problem bleibt aber... Leider.
Gast #4436399
Lesenswert?
• ▲
▼
Hallo,
ich habe nun heute deinen Pullup-Test durchgeführt. Vielen Dank nochmals 
für den Tip. Es ist wirklich so, daß der MISO Pin immer auf Low bleibt!!

Das heißt jetzt für mich ich muss mein Programm durchforsten um den Pin 
auf Input zu schalten. Richtig?
Gast #4436413
Lesenswert?
• ▲
▼
Ja, zum einen das. Schaue parallel aber auch mal nach Kurzschlüssen. 
Und, auch wenn schon öfters gemacht, kontrolliere besser nochmal, dass 
MOSI und MISO wirklich nicht vertauscht sind.

Obwohl der Test leicht ist, da beim Senden Daten aus MOSI kommen...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.