mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM7 LPC2131 SPI Schnittstelle


Autor: Werner Muchitsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich bin schon recht verzweifelt.
Ich habe das Forum bereits durchgeschaut doch nichts Hilfreiches
gefunden. daher schreibe ich nun persönlich.

Ich habe mich durch durch das manual gewühlt und codebeispiele
durchforstet aber bei mir funktioniert das empfangen über SPI einfach
nicht.
Das Senden von Daten geht ohne Probleme. nur wenn ich Daten empfangen
möchte kommt nichts zurück. Ich möchte Ein externen Flash ansprechen
und testweise mal das Status Register auslesen.

Nachdem ich die notwendige Instruction Sequence geschickt habe möchte
ich ein Byte zurücklesen.
Meine empfangsroutine schaut folgendermassen aus:

unsigned char SPI_ReadByte(void)
{
unsigned byte = 0;
    S0SPDR       =   0xFF;
    while(!(S0SPSR & SPIF));
    byte = S0SPSR;
    byte = S0SPDR;

  status      =  0x05;        //set next state
    return(0);        //read data

}

Autor: Werner Muchitsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entschuldigt habe versehentlich den Beitrag abgeschickt bevor ich noch
fertig war.

Ich schicke auf jeden Fall ein Dummy Write mit dem data 0xFF damit ich
die Clockimpulse generiere, danach warte ich bis die 8 Bit geschickt
wurden und lese anschließend das S0SPDR register wieder aus wo
eigentlich das empfangene Byte geschickt werden sollte, aber es kommt
nichts daher. ich verstehe das nicht ganz und hoffe um eure mithilfe.
Danke

lg
Werner

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, der Codeschnippsel ist wohl nicht wirklich ernst gemeint.
- Wie sieht die Initialisierungsroutine aus (Pin-Connection, SPI)?
- Wie sieht die funktionierende Sende-Routine aus?
- Wie ist SPIF definiert (Maske oder Bitnummer)?
- CPOL, CPHA variiert?

Code meines LPC2000-Interfaces fuer die efsl ist vielleicht hilfreich:
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm...
-> Quellcodearchiv -> src/interfaces/lpc2000_spi.c

Martin Thomas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.