LPC 2378 board - ethernet access

spreetsingh wrote on Tuesday, November 18, 2008:

Running LPC 2378 board. The code is running but can not access it from the PC.
This is what has been setup:
The network router address is This also acts as DHCP server
The IP address of the PC used for browsing is
The IP address for the card is set to in the uIP_Task.c
The uiPMAC_ADDR is set to 0x00,0x12,0x13,0x10,0x15,0x11.
The above values are different than the one’s loaded into the ethernet chip. Those values are as given in
emac.h :
/* MAC address definition.  The MAC address must be unique on the network. */
#define emacETHADDR0 0
#define emacETHADDR1 0xbd
#define emacETHADDR2 0x33
#define emacETHADDR3 0x02
#define emacETHADDR4 0x64
#define emacETHADDR5 0x24

Are these not supposed to be the same??

program compiles OK. It seems to be running (you can see the “pass” message on the LCD and LED’s flashing)  but I am not able to access the board using the It times out.

the uip_hostaddr - shows
uip_ethaddr shows 0x00,0x00,0x00,0x00,0x00,0x00

Also, I am not able to put a break point where prvSetMACAddress() is called.

(The cable and connector on the board are OK as I can connect the same board using Keil software that came with the board.)
Any suggestions as to what to look for or is there something that needs to be set that I am missing.

spreetsingh wrote on Tuesday, November 18, 2008:

Hi all,
Any idea why the board is not responding to the web requests? Or what area should I look at?

pfav63 wrote on Tuesday, November 18, 2008:


some check points:

1) in FreeRTOSConfig.h check if  “configPINSEL2_VALUE” is set according to LPC device release ( rev ‘-’ or rev ‘A’ [B, …]). look on LPC label.

2) check if MAC is configured correctly on file emac.h

3) check if IP is configured correctly on file uIP_TASK.c

4) look if "link led" is ON (ethernet connector)

5) Try to ping the system


spreetsingh wrote on Thursday, November 20, 2008:

Thanks Paolo.
I have tried as suggested and I have the following information -
1. The marking on the chip is 2378FBD144 - I am assuming that this is revB. Also I think if the pin selection is not correct, the system does not even work. Issue I have is that the ethernet part is not working but other parts seem to be working as I can see the lcd message and LEd’s flashing.
2. Now the SA0 - SA2 of the 2378 have the information per the data in emac.h. However, this value as it comes with the demo code is different than the uipMAC_ADDR0-5 specified in the ui_task.c
Are these supposed to be the same or NOT???
3. IP address is configured per the ui_task.c and is which is on my local network and this value is available in uip_hostaddr[]
4. Link light is NOT on but flashes when a request is made to access the board. The ethernet connector has two lights one green and the other amber. The amber light (I think this represents the traffic for the card??) never comes up.
5. Can not ping the system.

It appears that some parameter is not set properly.

Does anybody else have this issue??

Other part of the code seems to be running as indicated by the LC and Led’s on the board.

Thanks for your help

pfav63 wrote on Thursday, November 20, 2008:

Hi Spreet,

let us to be focused on Ethernet LEDs

on Keil board there are 3 eth. LEDs: 2 on RJ connectors and one near the DP83848 (eth PHY).

The led on the board indicate the link speed (on = 100Mb)
The two on RJ connector indicate LINK and Activity.
When link is ok LINK led is always ON and if the link is 100Mb the led on the board is on too.
Activity led should blink.
So if on RJ connector you don’t have a led always on this means ethernet link is down!!!
On this case you have to investigate why link is down.

In the past I used this eval-board for a while and the FreeRTOS demo compiled by GNU tools was working.

let me know


spreetsingh wrote on Thursday, November 20, 2008:

I have finally gotten it to work. Issue is with the delays provided in the initialization of the EMAC. I had to go and increase the delay in the auto negotiation of the speed of connection - line number 184 of emac.c. By increasing the delay from 10 to 100 in VTaskdelay(100) - it seems to work for now.