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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.