Revision History for NicheLite Rev. 1.00, 09/2006 Official release from Interniche. Rev. 1.01, 06/11/2007 The LCD pins ENABLE has been modified on the new Keil MCB2300 board, from P1.30 to P1.31, software change for the LCD driver needed to address this issue. Rev. 1.02, 07/17/2007 In order to have both old and new rev. coexist for LPC23xx, we can use the MAC module ID bit to identify the part and determine if port pin P1.6 needs to be set or not based on the errata. Here are the steps to initialize the MAC based on the module ID. Right after setting the EMAC clock in the PCONP register, add a few lines as below: /* turn on the ethernet MAC clock in PCONP, bit 30 */ regVal = PCONP; regVal |= PCONP_EMAC_CLOCK; PCONP = regVal; /*------------------------------------------------------------------------------ * write to PINSEL2/3 to select the PHY functions on P1[17:0] *-----------------------------------------------------------------------------*/ /* P1.6, ENET-TX_CLK, has to be set for EMAC to address a BUG in the rev"xx-X" or "xx-Y" silicon(see errata). On the new rev.(xxAY, released on 06/22/2007), P1.6 should NOT be set. */ regVal = MAC_MODULEID; if ( regVal == ((0x3902 << 16) | 0x2000) ) { /* This is the rev."-" ID for the existing MCB2300 board. */ PINSEL2 = 0x50151105; /* selects P1[0,1,4,6,8,9,10,14,15] */ } else { /* on rev. "A", MAC_MODULEID should NOT equal to above value, P1.6 should NOT be set. */ PINSEL2 = 0x50150105; /* selects P1[0,1,4,8,9,10,14,15] */ } PINSEL3 = 0x00000005; /* selects P1[17:16] */