Hilfe Atmega64M1 als SPI -Slave - Daten ausgeben

OP #2050931
Hallöchen

Bin gerade dabei mehrere uC ( AtMega64M1 ) über SPI zu vernetzen ( 
1*Master 3*Slave )
Der Master sendet Daten und die Slaves empfangen diese auch.
Aber die Slave senden keine Daten zurück ( Die Slave senden gar nichts - 
laut Oszi )
Wann muss ich die Daten ins Register schreiben damit bei MISO was raus 
kommt ?


Hier mein Code

 if (SPSR & (1<<SPIF))
    {
    SendByte = 0x30 + Adresse;
    SPDR = SendByte;
    RecByte = SPDR;
    if (RecByte == 0x85)
       {
  reagieren .......
       }
    }

Danke Euch.

mfg
Mandi
Gast #2055887
Du solltest Recht haben mit deiner Annahme.
Ich habe die Atmel-Datenblätter jedenfalls bisher so verstanden, dass 
sobald vom Master Daten und Tackt kommen, Slaves auch Daten 
rausschreiben.

Wenn die Slaves auf einen Befahl vom Master erst Daten senden sollen, 
ist zu bedenken, dass der Master auch noch "Dummy-Daten" senden muss, um 
die Antwort des Slaves einzutackten.

Evtl. musst du die SPI-Pins auch noch passend als Ein-/Ausgang 
konfigurieren. Ich meine die sind nicht automaitsch richtig gesetzt.

mfg technikadonis
OP #2060196
Hallöchen

Es wird nix. Ich bring's nicht hin.

PIN 1 und 2 MISO_A und MOSI_A
PIN 3 SS_A

MOSI_A wird automatisch als Input geschaltet
MISO_A hab' ich aus Ausgang konfiguriert und sollte automatich Hochohmig 
werden wenn SS high ist.

ich schreibe Daten in Register SPDR.

Beim nächsten Daten empfangen sollten diese doch ausgegeben werden ?

Hat sowas noch niemand gemacht ?

Danke Euch.

mfg
Mandi
OP #2061221
Hallöchen

's läuft.

Hab' mal gemessen wieviel Strom fliest wenn ich den Ausgang gegen Masse 
kurzschliesse. Und es waren 0.14mA - Kann also nur ein PullUp-Widerstand 
sein.

Ich hatte die PIN's korrekt konfiguriert. Aber in der Init-Funktion im 
Library wurden die Pin's dann falsch konfiguriert :-(.

hmg
Mandi

Antwort schreiben

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