SPI 2 Devices als Slave Mega128

Gast #368200
Lesenswert?
• ▲
▼
Hallo

Ist es denn wirklich so schwer mit dem SPI Bus???


Habe ein Display und eine SD-Card am Hardware SPI meines 128iger Mega.


Port B
Pin B.3 =MISO
Pin B.2 = MOSI
Pin B.1 = CLK
Pin A.1 = CS SD-CARD
Pin B.5 = CS Display
Pin B.6 = Reset Display

B.2 B.1 ist parallel am Display und SDCARD

B.3 nur empfangen an SDCARD und nicht am Display da  es nur empfängt.

SS nicht belegt

wie initialisiere ich den SPI???

wie kommuniziere ich mit dem Display und mit der SDCARD????

Komme nicht weiter.

wenn ich den Code von Ullrich radig nehme für die MMC

geht mein Display nicht aber die SDCARD.

Wenn ich den code für das Nokia 6100 nutze geht das display aber die SD
nicht.


Ich mußß ja nur einmal den SPI initialsieren und dann nur mit CS den
Slave auswählen aber wie???

habe schon probiert den CS auf High der SDCARD und den CS auf low des
Displays um das Display anzusteuern aber ohne erfolg.


könnte mir einer ein Beispiel zeigen wie man den SPI global
initialisiert und dann das entsprechende gerät über CS abfragt.

Danke
Gast #368201
Lesenswert?
• ▲
▼
Allgemeiner Ablauf der SPI-Kommunikation:

setze das CS-Signal des Slave low.
übertrage Daten in beide Richtung synchron zum Takt (Dazu muß man nur
ein bestimmtes Bit in einem SPI-Register setzen. (Müsste ich jetzt auch
nachgucken).
Solange CS low ist, übernimmt der Slave mit jeder (vorher festgelegten)
Taktflanke (SCK) die Daten.

Wenn du also mit der SD-Karte kommunizieren möchstest, mußt du Port A.1
auf low setzen und Port B.5 muß high sein.
Der Ruhezustand beider Pins ist High (kann man auch per externem
Pull-Up-Widerstand erzwingen).

>habe schon probiert den CS auf High der SDCARD und den CS auf low des
>Displays um das Display anzusteuern aber ohne erfolg.

Das könnte auch an der Taktgeschwindigkeit liegen.
Gast #368204
Lesenswert?
• ▲
▼
Ich zitiere mal aus dem ATmega128 Datenblatt S.166
>Master Mode
>When the SPI is configured as a master (MSTR in SPCR is set), the
>user can determine the direction of the SS pin. If SS is configured
>as an output, the pin is a general output pin which does not affect
>the SPI system. Typically, the pin will be driving the SS pin of the
>SPI slave. If SS is configured as an input, it must be held high to
>ensure Master SPI operation. If the SS pin is driven low by
>peripheral circuitry when the SPI is configured as a master with the
>SS pin defined as an input, the SPI system interprets this as another
>master selecting the SPI as a slave and starting to send data to it.
>To avoid bus contention, the SPI system takes the following actions:
>1. The MSTR bit in SPCR is cleared and the SPI system becomes a
>slave. As a result of the SPI becoming a slave, the MOSI and SCK pins
>become inputs.

Wenn also jemand den SS Pin nicht benutzt ist der auf Default eingang
, kein Pullup jetzt muss er nur noch ein bisschen nach low kippen und
der Master ist ein Slave.
Gast #368205
Lesenswert?
• ▲
▼
> wenn ich den Code von Ullrich radig nehme für die MMC
>
> geht mein Display nicht aber die SDCARD.

Da fehlt ein Komma. Meinst du:

 ... geht mein Display, nicht aber die SDCARD.

oder

 ... geht mein Display nicht, aber die SDCARD.

?
Moderator Persönliche Seite #368206
Lesenswert?
• ▲
▼
> Wenn also jemand den SS Pin nicht benutzt ist der auf Default
> eingang, kein Pullup jetzt muss er nur noch ein bisschen nach low
> kippen und der Master ist ein Slave.

OK, überredet. ;-)

Ist wohl sowieso das Sinnvollste, diesen Pin als Standard-Slaveselect
zu benutzen.  Im vorliegenden Fall braucht man natürlich zwei
Slaveselects, aber spricht ja nix dagegen, einen davon mit /SS zu
implementieren.

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.