Forum: Mikrocontroller und Digitale Elektronik Hilfe bei lpc2132


von Mattias (Gast)


Lesenswert?

Hallo Leute,
ich bin beim Proggen eines LPC2132 und es gibt ein Problem beim
schreiben eines Registers.
Ich will die SPI Schnittstelle verwenden.
Die Init mache ich genaus wie beim Philips AN 10369.

void init_dac(void)
{
 PINSEL1 |= 0x000000A8;      // PIN an SCK1, Miso1, MOSI1
 VPBDIV = 0x00000002;       // set the peripheral bus clock speed
 S1SPCCR = 0x08;      // Set highest speed for SPI at 10 Mhz -> 1.25
Mhz
 S1SPCR = 0x20;        // Select Device as Master
 IO1DIR |= SPI_SYNC_A;       // PIN 1.30 als output definieren
 IO1SET  = SPI_SYNC_A;      // PIN high
}

Immer bei der Zeile (S1SPCCR = 0x08;) hängt sich der controller auf.
Ich habe schon unterschiedliche Quarze versucht und den PLL
eingeschaltet oder auch weggelassen.
Kann es sein, dass man den SPI irgendwie reseten muss ???
Interrupts gehen auch nicht mehr, nachdem ich init_dac() ausführe. Ich
habe sogar schon den Controller ausgetauscht. Es muss also was am code
sein. Als Quarz verwende ich jetzt einen 10 Mhz Quarz.
Wer kann mir da weiterhelfen ?

Danke schon im voraus.

Mattias

von Mattias (Gast)


Lesenswert?

Habe noch was gefunden.
In den Header Dateien steht die Adresse vom Register SPI0 mit
0xE0020000 und die Aresse von SPI1 mit 0xE0030000. Im Datenblatt steht
aber, dass 0xE0030000 nicht verwendet wird. Hm...
Wie komme ich aber dann an mein SPI1 Register. Im Datenblatt steht,
dass es diese Schnittstelle gibt. Ich werd hier noch mal wahnsinning.
Ich verwende übrigens den gcc.

Kennt sich denn keiner damit aus ???

Mattias

von Mattias (Gast)


Lesenswert?

So, hab das Problem gelöst.
Die SPI1 Schnittstelle versteckt sich hinter der SSP Schnittstelle. Die
Register heißen auch alle ganz anders. In den Header Dateien, die man so
findet, werden immer die SPI0 und SPI1 Register beschrieben. Das ist
völlig falsch. Man muß das SSP Register so configurieren, dass es als
SPI arbeitet. Ich habe in verschiedenen Datenblättern unterschiedeliche
angaben von den Gegisteradressen gefunden. Die richtige Adresse für das
SSP Register beginnt beim LPC2132 bei 0xE0068000.
Man, da kann man schon einige Tage mit verbringen.

Mattias

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.