ARM7 LPC2131 SPI Schnittstelle

Gast #321263
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

}
Gast #321264
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
Gast #321265
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_projects/efsl_arm/index.html
-> Quellcodearchiv -> src/interfaces/lpc2000_spi.c

Martin Thomas

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