= Lpc24xx = == Infobox BSP == ||''' BSP_name ''' ||Lpc24xx || ||''' Manufacturer ''' ||NXP || ||''' image ''' ||Lpcc.png || ||''' caption ''' ||LPC2478 board || ||''' Board_URL ''' ||[http://www.embeddedartists.com/products/kits/] || ||''' Architecture ''' ||ARMv4 || ||''' CPU_model ''' ||ARM7TDMI-S || ||''' Monitor''' ||U-Boot|| ||''' Simulator ''' ||N/A|| ||''' Aliases ''' ||Various|| ||'''RAM''' ||32 MB SDRAM + 96 KB internal|| ||''' NVMEM''' ||128 MB NAND Flash, 4 MB NOR Flash + 512 KB internal || ||'''Serial''' ||3 x I2C, 1 x I2S, 4 x UARTs, 3 x SPI/SSP || ||'''NICs''' ||10/100 Ethernet || ||'''Other ''' ||USB 2.0 full-speed OTG/Device/ OHCI plus PHY and DMA || = Overview = The LPC24xx series is built on a 2-AHB bus architecture. Like the LPC23xx series, the LPC24xx features Ethernet, USB FS, and CAN. The LPC24xx further adds a USB Host/OTG, an external bus, and higher I/O count, making this the most powerful series of ARM7-based MCUs in the marketplace. The newest LPC247x microcontrollers further integrate an LCD controller supporting high resolution STN and TFT panels with up to 24-bit true color. These microcontrollers support Super-Twisted Nematic (STN) and Thin-Film Transistor (TFT) graphic display panels up to 1024 x 768 pixels, from monochrome up to 24-bit true-color, and with hardware cursor support. This capability is ideal for point-of-sale, industrial, and medical/diagnostic applications. Further, the LCD controller supports Windows CE data formats. This BSP has a number of BSP variants: * lpc24xx_ncs_ram * lpc24xx_ncs_rom_ext * lpc24xx_ncs_rom_int * lpc2362 * lpc23xx_tli800 * lpc24xx_ea = Key Features = * 72-MHz, 32-bit ARM7TDMI-S with dual AHB buses * 512 KB of ISP/IAP Flash and 98 KB of SRAM * 10/100 Ethernet MAC with DMA and MII/RMII interface * Two CAN 2.0B controllers with acceptance filtering * General-purpose DMA controller * 10-bit A/D converter and 10-bit D/A converter * 160 general-purpose Fast I/O pins * XGA LCD controller with dedicated DMA for TFT and * STN panels (LPC247x only) * USB 2.0 full-speed OTG/Device/Host plus PHY and DMA * Multiple serial interfaces: three I2C, one I2S, four UARTs, three SPI/SSP * External memory interface for SDRAM, SRAM, and Flash * Two PWM units and Boundary scan * Four 32-bit timers, a low-power realtime clock, and a Watchdog timer * 4-MHz internal RC (IRC) oscillator trimmed to 1% accuracy * 160 general-purpose Fast I/O pins * Single 3.3-V power supply [wiki:File:_Lpc_diagram.png 400px] = Board Setup = = RTEMS Lab Board = The LPC24xx base board in the RTEMS lab had to be slightly modified to enable remote control of power. As shipped, the board is powered either through an external 9-15V DC jack or through the USB port. When power is supplied through the USB port, the external jack has no effect. The 5V DC power present on the MINI-USB-B connector pin 1 powers the USB Serial Bridge chip U8 then flows through zener diode D6 to power the rest of the board. Unsoldering one end of the zener diode prevents the USB voltage from powering the board but still allows it to power the USB Serial Bridge chip, allowing us to remotely control the power to the board. Use the boot monitor's "printenv" command to display the firmware settings: {{{ LPC2468_OEM_Board # printenv bootargs=root=/dev/ram initrd=0xa1800000,4000k console=ttyS0,38400N8 bootdelay=3 tftp_boot=tftpboot a0008000 linux.bin;tftpboot a1800000 romfs.bin;go a0008000 nand_boot=nand read a0008000 0 200000;nand read a1800000 200000 400000;go a0008000 mmc_boot=mmc;fatload mmc 0 a0008000 linux.bin;fatload mmc 0 a1800000 romfs.bin;go a0008000 update_uboot=tftpboot a1000000 u-boot.bin;protect off 0 2ffff;erase 0 2ffff;cp.b a1000000 0 $(filesize) update_nor=tftpboot a1000000 linux.bin;protect off 80000000 803fffff;erase 80000000 803fffff;cp.b a1000000 80000000 $(filesize);tftpboot a1000000 romfs.bin;cp.b a1000000 80200000 update_nand=nand erase;tftpboot a1000000 linux.bin;nand write a1000000 0 200000;tftpboot a1000000 romfs.bin;nand write a1000000 200000 400000 netmask=255.255.255.0 ethaddr=00:1a:f1:00:07:a2 bootcmd=echo Booting RTEMS ...;run rtems ipaddr=192.168.1.246 serverip=192.168.1.92 rtems=tftp a1000000 /lpc24xx_ea.img;bootm baudrate=115200 stdin=serial stdout=serial stderr=serial Environment size: 989/4092 bytes }}} = Downloading and Executing = Use the boot monitor's boot command to download and execute the RTEMS image: {{{ LPC2468_OEM_Board # boot Booting RTEMS ... emac: link status = 100Mbps, full duplex emac: MAC address = 0:1a:f1: 0: 7:a2 TFTP from server 192.168.1.92; our IP address is 192.168.1.246 Filename '/lpc24xx_ea.img'. Load address: 0xa1000000 Loading: ################################## done Bytes transferred = 169211 (294fb hex) ## Booting image at a1000000 ... Image Name: RTEMS Image Type: ARM RTEMS Kernel Image (gzip compressed) Data Size: 169147 Bytes = 165.2 kB Load Address: a0000000 Entry Point: a0000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK ## Transferring control to RTEMS (at address a0000000) ...? }}} = Debugging = How do you debug code on this board? What gdb setup? BDM, stub, etc? = Test Reports = {{Test Report |Version = CVS head |Date = March 24, 2011 |User = [wiki:User:Richard_Campbell User:Richard Campbell] |Report = Successfully ran ticker and File I/O. }} {{Test Report |Version = CVS head |Date = 2009-12-28 |User = [wiki:User:Unknown User:Unknown] |Report = Complete test suite pass with VFP soft-float model. }} = References = * http://ics.nxp.com/products/lpc2000/lpc24xx/ * http://www.arm.com/community/partners/display_product/rw/ProductId/2102/ * http://www.digikey.com/us/en/ph/NXP/lpc24.html?WT.z_Tab_Cat=Featured%2520Products {{Navbox_BSPs}}