Hilfe Atmega64M1 als SPI -Slave - Daten ausgeben

OP #2050931
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren