SPI und ATmega128

OP #3113863
Lesenswert?
• ▲
▼
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 #3117317
Lesenswert?
• ▲
▼
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

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.