Experimentierplatine für LPC2478

Der LPC2478 ist ein von NXP entwickelter Mikrocontroller mit ARM7 Kern, der einiges an interessanter Peripherie beinhaltet. Dazu gehören unter anderem:

Um mit diesem Controller eigene Anwendungen testen und entwickeln zu können entstand bzw. entsteht diese Platine. Mit rund 50 € Bauteilkosten ist es ein sehr günstiger Einstieg in diese Klasse Mikrocontroller.

LPC 2478 Platine

Die Platine ist nur ca. 75 mm x 100 mm groß und beinhaltet folgendes:

Auf dieser Seite finden Sie nach und nach alles über die Hard- und Software des LPC Boards.


Hardware des LPC2478 Boards

In Revision 1.0 kommen folgende ICs zum Einsatz:

Der Controller verfügt über zwei externe Taktquellen einmal ein 12 MHz Quarz und ein 32 kHz Uhrenquarz. So kann der Controller auch mit nur 32 kHz arbeiten und hat so einen deutlich reduzierten Stromverbrauch.

Einige Ports sind auf normale 2,54 mm Stiftleisten geführt. Hier eine Auflistung:

JTAG:

BezeichnungNr.Nr.Bezeichnung
3,3 V123,3 V
!TRST34GND
TDI56GND
TMS78GND
TCK910GND
TCK1112GND
TDO1314GND
!RESET1516GND
NC1718GND
NC1920GND

I²C:

Nr.Bezeichnung
1P0.28/SCL0
2P0.27/SDA0
3GND

SV1:

Nr.Bezeichnung
1P2.23/!DYCS3/CAP3.1/SSEL0
2P0.30/USB1 D-
3P0.29/USB1 D+

SV2:

Nr.Bezeichnung
1GND
23,3 V
33,3 V

SV3/LED:

Nr.Bezeichnung
1P2.27/CKEOUT3/MAT3.1/MOSI0/LED1 (Rot)
2P2.26/CKEOUT2/MAT3.0/MISO0/LED3 (Grün)
3P2.25/CKEOUT1/LED2 (Blau)

CON2:

DNC = Do not connect = Nichts anschließen!

BezeichnungNr.Nr.Bezeichnung
3,3 V12GND
NC34NC
NC56NC
P1.2/DNC78NC
P1.3/DNC910NC
NC1112NC
P1.51314NC
P1.6/DNC1516NC
NC1718P4.20/A20/SDA2/SCK1
NC1920P4.21/A21/SCL2/SSEL1
NC2122P4.22/A22/TXD2/MISO1
NC2324P4.23/A23/RXD2/MOSI1
P1.9/DNC2526LVDS Y0-
NC2728LVDS Y0+
P1.132920LVDS Y1-
P1.14/DNC3132LVDS Y1+
P1.15/DNC3334LVDS Y2-
NC3536LVDS Y2+
NC3738LVDS CLK-
NC3940LVDS CLK+

LVDS Transmitter - LCD Controller

Hardware: LVDS Transmitter: SN75LVDS84
Signale:
LCD[0:5]R[0:5]
LCD[8:13]G[0:5]
LCD[16:21]B[0:5]
LCDCLKClock
LCDFPVSync
LCDLPHSync
LCDENABEnabled

Besonderheiten:

Der LCD Controller muss im 24 Bit Modus betrieben werden, auch wenn nur 18 Bit genutzt werden. Im PCONP Register muss der LCD Controller aktiviert werden.

PINSEL:
PINSEL0 |= 0x00055500;
PINSEL3 |= 0x05555500;
PINSEL4 |= 0x050FFFFF;
PINSEL9 |= 0x0A000000;
PINSEL11 |= 0x0000000F;

MCI Bus - SD Card

Signale:
P0.11Card Detect
P4.16Write Protect
MCIDAT0 / P1.6DAT0
MCIDAT1 / P1.7DAT1
MCIDAT2 / P1.11DAT2
MCIDAT3 / P1.12DAT3
MCICLK / P1.2CLK
MCICMD / P1.3CMD

Besonderheiten:

Card Detect und Write Protect schaltet gegen Masse. Für beide müssen die internen Pull Up Widerstände aktiviert werden (PINMODE Register). Im PCONP Register muss MCI aktiviert werden.

PINSEL:
PINSEL2 |= (2<<24)|(2<<22)|(2<<14)|(2<<12)|(2<<10)|(2<<6)|(2<<4);

Quelltexte / Treiber / Projekte

Titel: LPC2478 LCD Treiber
Beschreibung: Funktionen zur Initialisierung des LCD Controllers und zum anzeigen von Texten und Zahlen. Beispiel für SVGA Display.
Download: LPC2478_LCD.zip

Titel: LPC2478 LED Treiber
Beschreibung: Funktionen zur Ansteuerung der RGB LED
Download: LPC2478_LED.zip

Titel: LPC2478 UART0 Treiber
Beschreibung: Funktionen zur Initialisierung von UART0 und zum ausgeben von Texten und Zahlen.
Download: LPC2478_UART0.zip

Titel: LPC2478 PLL Treiber
Beschreibung: Funktion zur Initialisierung der PLL und somit zum Einstellen der Prozessortaktung.
Download: LPC2478_PLL.zip


Testprogramme

Download: Testprogramm 1
Beschreibung: Lässt die RGB LEDs blinken. Als Taktquelle dient der interne Oszillator.
Mögliche Fehler: Sollte das nicht laufen, aber der Controller sich flashen lassen, sind die MOSFETs und die Lötstellen am LPC2478 zu prüfen.

Download: Testprogramm 2
Beschreibung: Lässt die RGB LEDs blinken. Als Taktquelle dient der externe 12 MHz Quarz.
Mögliche Fehler: Sollte das nicht laufen, aber der Controller sich flashen lassen, sind die MOSFETs und die Lötstellen am LPC2478 zu prüfen, falls Test 1 auch nicht laufen sollte. Andernfalls den Quarz prüfen.

Download: Testprogramm 3
Beschreibung: Prüft die Ethernet PHY. PHY Daten werden über UART0 ausgegeben. LED leuchtet grün, wenn sich die PHY initialisieren lässt und RMII Clock vorhanden ist. Blaue LED leuchtet wenn Ethernet angeschlossen ist.
Mögliche Fehler: Init scheitert: LED nicht mit 10 kOhm überbrückt, oder PHY nicht korrekt gelötet. Netzwerkstatus wird nicht korrekt angezeigt: PHY nicht korrekt gelötet, Buchse sitzt nicht korrekt...


Bootloader

Mitlerweile gibt es einen Bootloader, der speziell für diese Board entwickelt wurde: http://sohalt.users.nerdzoo.de/pab/

Außerdem habe ich noch ein paar Prototypenplatinen von der Sammelbestellung übrig, wer Interesse hat kann mir eine Email schreiben.


Bugs:

SDRAM: A14 muss statt A12 auf das BA0 Pin vom SDRAM. Dazu A12 in der Nähe des Controllers durchtrennen und Lötstopp entfernen. Anschließen am Controller einen dünnen Draht anlöten und zu der Leitung zu BA0 führen. A13 und A14 muss immer an BA0 und BA1, auch wenn es nicht im Datenblatt klar wird.

SDRAM Fix
Leitung A12 auftrennen und mit A14 vom Controller verbinden

SDRAM Fix
Zum Beispiel so...

Ethernet PHY: LED 2 / Pin 2 / Grüne LED der Ethernet PHY benötigt einen pull down Widerstand von 10 kOhm. Dadurch wird CLKOUT aktiviert und der LPC2478 bekommt das erwartete 50 MHz Clock Signal von der Ethernet PHY.

SDRAM Fix
Ein 0805 oder 1206 Widerstand passt zwischen die Pads.


LCD Board

Alexander S. hat freundlicherweise ein passendes Display Board mit einigen zusätzlichen Erweiterung erstellt. Schaltplan, sowie Layout ist hier zu finden. Zusätzlich dazu gibt es auch diesmal wieder eine Sammelbestellung für die Platinen sowie Bauteile.


Quellen:

Mikrocontroller.net - Diskussion LPC2478 Board
Datenblatt LPC2478
Datenblatt TPS62056
Datenblatt MT48LC4M32
Datenblatt SN75LVDS84
Datenblatt FT232RL
Datenblatt LAN8720