| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- .. SPDX-License-Identifier: GPL-2.0+
- ToC:
- - Introduction
- - Booting
- - Debugging
- - i2c
- Introduction
- ============
- The Embedded Artists LPC3250 Developer's Kit v2 features the LPC3250 SoC
- which is based on the ARM926EJ-S CPU. The kit features a base board and
- a removable OEM board which features the SoC. Details, schematics, and
- documentation are available from the Embedded Artists product website:
- https://www.embeddedartists.com/products/lpc3250-developers-kit-v2/
- The base board includes::
- - 200 pos, 0.6mm pitch SODIMM connector for OEM Board
- - LCD expansion connector with control signals for touch screen interface
- - Expansion connector with all OEM Board signals
- - Ethernet connector (RJ45)
- - CAN interface & connector (provision for second CAN interface, but not mounted)
- - MMC/SD interface & connector
- - USB1: OTG or Host interface & connector
- - USB2: Device or Host interface & connector
- - Provision for NXP JN5148 RF module (former Jennic) interface (RF module not included)
- - Full modem RS232 (cannot be fully used on 32-bit databus OEM boards)
- - RS422/485 interface & connector
- - Provision for IrDA transceiver interface (transceiver not mounted)
- - I2S audio codec (mic in, line in, line out, headphone out)
- - SWD/JTAG connector
- - Trace connector and pads for ETM connector
- - Serial Expansion Connector, 14-pos connector with UART/I2C/SPI/GPIO pins
- - Power supply, either via USB or external 5V DC
- - Optional coin cell battery for RTC and LED on ALARM output (coin cell not included)
- - OEM Board current measuring
- - Parallel NOR flash on external memory bus
- - 16-bit register and LEDs on external memory bus
- - 5-key joystick
- - LM75 temperature sensor (I2C connected)
- - 5 push-button keys (four via I2C and one on ISP-ENABLE)
- - 9 LEDs (8 via I2C and one on ISP-ENABLE)
- - Trimming potentiometer to analog input
- - USB-to-serial bridge on UART #0 (FT232R) and ISP functionality
- - Reset push-button and LED
- - Speaker output on analog output from OEM Board, or from I2S audio codec
- - 160x150 mm in size
- The OEM board::
- - ARMv5 ARM926EJ-S @ 266 MHz with hard-float VFPv2
- - 256 KByte IRAM, 64 MByte SDRAM
- - 128 MByte NAND flash
- - 4 MByte NOR Flash
- - Graphics Output: Parallel RGB
- - Hardware 2D/3D Graphic: No
- - Hardware Video: SW only
- - Graphics input: No
- - Audio: I2S
- - Ethernet: 10/100 Mbps
- - USB: 1x FS USB 2.0 OTG
- - Wi-Fi: No
- - FlexIO: No
- - Serial: 2x I2C, 2x SPI, 7x UART
- - ADC/PWM: 3 ch (10-bit) / 2 ch
- - SD: MCI
- - PCIe: No
- - Serial ATA: No
- - Size: 68 x 48 mm
- - Connector: 200 pos SODIMM
- Booting
- =======
- The processor will start its code execution from an internal ROM,
- containing the boot code. This boot loader can load code from one of four
- external sources to internal RAM (IRAM) at address 0x0::
- - UART5
- - SSP0 (in SPI mode)
- - EMC Static CS0 memory
- - NAND FLASH
- The ROM boot loader loads code as a single contiguous block at a maximum
- size of 56 kByte. Programs larger than this size must be loaded in more
- steps, for example, by a secondary boot loader.
- Kickstart Loader
- ----------------
- By default the Embedded Artists LPC3250 OEM Board is programmed with the
- kickstart loader in block 0 of the NAND flash. The responsibility of this
- loader is to load an application stored in block 1 and onwards of the NAND
- flash. The kickstart loader will load the application into internal RAM
- (IRAM) at address 0x0.
- Stage 1 Loader (s1l)
- --------------------
- By default the Embedded Artists LPC3250 OEM Board is programmed with the
- stage 1 loader (s1l) in block 1 of the NAND flash. This application will be
- loaded by the kickstart loader when the LPC3250 OEM Board powers up. The
- S1L loader will initialize the board, such as clocks and external memory
- and then start a console where you can give input commands to the loader.
- S1L offers the following booting options::
- - MMC/SD card
- - UART5
- - NAND Flash
- U-Boot with kickstart+s1l
- -------------------------
- Out of the box, the easiest way to get U-Boot running on the EA LPC3250
- DevKit v2 board is to build the ea-lpc3250devkitv2_defconfig, copy the
- resulting u-boot.bin to a vfat-formatted MMC/SD card, insert the MMC/SD card
- into the MMC/SD card slot on the board, reset the board (SW1), and::
- Embedded Artist 3250 Board (S1L 2.0)
- Build date: Oct 31 2016 13:00:37
- EA3250>load blk u-boot.bin raw 0x83000000
- File loaded successfully
- EA3250>exec 0x83000000
- Debugging
- =========
- JTAG debugging of the Embedded Artists LPC3250 Developer's Kit v2 board is
- easy thanks to the included/populated 20-pin JTAG port on the main board (J8).
- openocd 0.11 has been used with this board along with the ARM-USB-OCD-H JTAG
- dongle from Olimex successfully as follows:
- # openocd \
- -f interface/ftdi/olimex-arm-usb-ocd-h.cfg \
- -f board/phytec_lpc3250.cfg
- i2c
- ===
- Some of the LEDs on the board are connected via an I/O Expander (PCA9532) that
- is attached to the i2c1 bus. Here is a sample session of toggling some of
- these LEDs via i2c in U-Boot:
- show the existing i2c busses:
- EA-LPC3250v2=> i2c bus
- Bus 0: i2c@300
- Bus 1: i2c@400a0000
- Bus 2: i2c@400a8000
- set i2c1 as the current bus:
- EA-LPC3250v2=> i2c dev 1
- Setting bus to 1
- see what potential devices are found with rudimentary probing on i2c1:
- EA-LPC3250v2=> i2c probe
- Valid chip addresses: 1A 1D 48 50 57 60 66 6E
- According to the schematics the i2c slave address of the PCA9532 is 0x60.
- dump all of the 10 registers from the I/O Expander; NOTE that the 0x10 in the
- command specifies the self-incrementing mode of the PCA9532; also NOTE that
- the values repeat themseves to fill out a full 16 bytes:
- EA-LPC3250v2=> i2c md 0x60 0x10 10
- 0010: 00 ff 00 80 00 80 00 00 00 00 4f ff 00 80 00 80 ..........O.....
- turn on LEDs 23, 25, 27, and 29 (green):
- EA-LPC3250v2=> i2c mw 0x60 9 0x55
- turn on LEDs 22, 24, 26, and 28 (red):
- EA-LPC3250v2=> i2c mw 0x60 8 0x55
- dim the green LEDs (23, 25, 27, 29):
- EA-LPC3250v2=> i2c mw 0x60 3 0x20
- EA-LPC3250v2=> i2c mw 0x60 9 0xaa
- turn off all LEDs (23-29):
- EA-LPC3250v2=> i2c mw 0x60 8 0
- EA-LPC3250v2=> i2c mw 0x60 9 0
- read value of switches (input):
- EA-LPC3250v2=> i2c md 0x60 0 1
- 0000: 4f O
- [none are pressed]
- press and hold SW2 while running the following:
- EA-LPC3250v2=> i2c md 0x60 0 1
- 0000: 4e N
- [SW2 is pressed]
|