Forum: Mikrocontroller und Digitale Elektronik µC Spannung fällt SPI Verbindung


von Maximilian B. (sebastian_p580)


Angehängte Dateien:

Lesenswert?

Hallo liebe Mikrocontroller Community!

Ich möchte zurzeit mein Wissen im Bereich MCU / Elektrotechnik 
verbessern.
Dazu habe ich mir ein paar Projekte mit Mikrocontroller überlegt und mir 
dazu auch ein Oszilloskop zugelegt.
Ich möchte mit einem ATTiny44 eine SDKarte mittels SPI ansteuern.
Dazu habe ich auf dem ATTiny44 die tinySPI Bibliothek verwendet.
Für Testzwecke habe ich den SCK Pin an einen Arduino Mega 2650 
angeschlossen (SCK auf Pin 52).
Der ATTiny wird mit 3.3V und der Mega über USB mit Strom versorgt.

Nun habe ich bereits das erste Problem:

Wenn ich kein Kabel vom Tiny an den Mega anschließe, sehen die Signale 
auf dem Oszilloskop aus wie erwartet (Normal.jpg).
Sobald ich jedoch den Clock Pin an den Mega anschließe, habe ich auf der 
Datenleitung plötzlich 0V und die Spannung der Clock reduziert sich 
ebenfalls auf ein nicht lesbares Maß (gering.jpg).

Ein Spannungsfall der Stromversorgung des Tinys ist nicht vorhanden - 
dort ist alles normal. Ebenso habe ich das gleiche Phänomen, wenn ich 
den Tiny mit 5V vom Arduino versorge.

PullDown oder PullUp Widerstände verwende ich nirgends.

Ich würde mich freuen wenn mir jemand helfen kann bzw. mir Artikel zu 
dem Thema zeigt.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Dieses Subjekt kein Satz!

> Ich möchte mit einem ATTiny44 eine SDKarte mittels SPI ansteuern.
> Dazu habe ich auf dem ATTiny44 die tinySPI Bibliothek verwendet.
> Für Testzwecke habe ich den SCK Pin an einen Arduino Mega 2650
> angeschlossen (SCK auf Pin 52).

Du kannst SCK des ATTiny nicht einfach so mit SCK des ATMega verbinden. 
Zumindest nicht, ohne vorher(!) einen von beiden als SPI Slave zu 
konfigurieren. Am Master (bei dir offensichtlich beide) ist SCK ein 
Ausgang. Für MISO und MOSI gilt sinngemäß das selbe. Da steckt schon im 
Namen, für welchen Teilnehmer das Ein- bzw. Ausgang ist.

> Ich würde mich freuen wenn mir jemand helfen kann bzw. mir Artikel zu
> dem Thema zeigt.

Jeder Einsteigerartikel (sogar das Datenblatt des µC) enthält ein 
Diagramm, das die Datenrichtung auf SCK, MISO und MOSI veranschaulicht.

von Forist (Gast)


Lesenswert?

Sebastian P. schrieb:
> gering.jpg
> normal.jpg

Bei deinem Oszi scheint es sich um ein DSO zu handeln.
Normalerweise gibt es dort eine Möglichkeit, den Bildschirminhalt in 
einer Datei abzulegen (oft "Save" o.ä).
Das vermeidet Spiegelungen und Verzerrungen

von Maximilian B. (sebastian_p580)


Lesenswert?

Vielen Dank für deine Antwort.

Tatsächlich habe ich vergessen das entsprechende Register des Megas als 
Slave zu konfigurieren. Sodass sich mein Problem gelöst hat.

Ich wusste zwar, dass man einen als Master und den anderen als Slave 
definieren muss, wusste aber nicht, dass sich das Spannungsmuster 
derartig verändert, wenn die Pins nicht richtig definiert sind.

Vielen Dank!

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


Lesenswert?

Sebastian P. schrieb:
> Sobald ich jedoch den Clock Pin an den Mega anschließe, habe ich auf der
> Datenleitung plötzlich 0V und die Spannung der Clock reduziert sich
> ebenfalls auf ein nicht lesbares Maß (gering.jpg).
Das ist eine ordinäre Buskollision: ein Teilnehmer treibt High, der 
Andere treibt Low auf die selbe Leitung.

Du musst dich nochmal einarbeiten, wie SPI funktioniert und wann wer 
Zugriff auf die Busleitungen hat und wie dieser Zugriff erteilt und 
signalisiert wird.

Als Tipp: nimm für die Verbindung zwischen 2 uC nicht SPI, sondern 
eine simple asynchrone serielle Schnitte.
Denn beim SPI muss der Slave immer "rechtzeitig" und dank oft ungünstig 
implementiertem Protokoll vor allem "schnell" reagieren.

: Bearbeitet durch Moderator
von Stefan F. (Gast)


Lesenswert?

Außerdem darf man nicht einfach einen 5V Ausgang mit einem Eingang 
verbinden, der nur mit 3,3V versorgt wird. Siehe "Absolute Maximum 
Ratings" im Datenblatt.

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.