SPI und ATmega128

OP #3113863
Hallo,

ich habe hier einen ATmega128 und bin dabei eine Verbindung zum einem 
ENC28j60 per SPI aufzubauen.

Will ich nun Daten übertragen, verhalten sich das clocksignal und der 
chipselect wie gewollt, jedoch messe ich mit dem Oszi auf MOSI 5V und 
ein bisschen "zuckeln" zum gleichen Zeitpunkt des CLK-signals.

Meine Funktionen sehen so aus:
1
void spi_write(uint8_t op, uint8_t address, uint8_t data)
2
{
3
   CSACTIVE; //ss low
4
   SPDR = op | (address & ADDR_MASK);
5
   while(!(SPSR&(1<<SPIF)))
6
   // write data
7
   SPDR = data;
8
   while(!(SPSR&(1<<SPIF)))
9
   CSPASSIVE; //ss high
10
}
11

12
void spi_init()
13
{
14
...
15
   SPCR = (1 << SPE) | (1 << MSTR);
16
   SPSR |= (1 << SPI2X);
17
...
18
}

Hat einer auf die schnelle eine Idee? Kann ich das Überhaupt testen ohne 
"Buspartner"?

Grüße
OP
Hi,

danke für die schnellen Antworten.

>an MOSI solltest du ja deine Daten sehen die du ins SPDR schreibst.
Genau auf MOSI messe ich durchweg HIGH-Pegel.
>MOSI Pin auf Ausgang konfiguriert? Das muss man nämlich selber machen,
>nicht wie beim UART, wo das automatisch passiert.
Da ist das Problem, MOSI und MISO vertauscht. Danke für den Tipp Falk !
1
DDRB |= (1 << MISO) | (1 << SCK); // mosi, sck output
2
DDRB &= ~(1 << MOSI); // MISO is input

Grüße

Antwort schreiben

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