Skip Navigation LinksProjects > LPC1343 Reference Design > LPC1343 Code Base

LPC1343 Code Base

An open source GCC-based software library for the Cortex-M3 based LPC1300 family

The LPC1343 Code Base is a complete open-source (BSD license) software library for NXP's Cortex-M3 based LPC1300 family, with support for all the main internal peripherals, and drivers for common hardware like I2C or SPI-based EEPROM. The code base includes complete C startup code and an easy to understand make file and linker script for building from the command-prompt on any OS (Yagarto 4.5.0 was used for builds), as well as project files for the open-source CodeLite C/C++ IDE and the commercial GCC-based Crossworks for ARM (useful for HW debugging).

Latest Release

A final release has not yet been made yet for the LPC1343 Code Base, and we hope to publish an initial release in the next month or two.  While the code is largely complete, there are a a few cross-platform issues that need to be resolved with the GCC toolchain and build environment, and a number of items that can benefit from being reorganised or restructured.  Nonetheless, a current beta version of the LPC1343 Code Base can be downloaded here.  For the most up to date code, see 'Current Development Code' below.

Current Beta Download
Version Number Release Date Release Notes
Download 1.1.1 14 April 2012 See ChangeLog.txt

Current Development Code

The LPC1343 Code Base is a work in progress.  The latest version of the code can always be found at https://github.com/microbuilder/LPC1343CodeBase

Please be advised that the current development code is experimental, and may or may not function as expected. The code is cleaned up before any final releases, but development code is often filled with debugging routines, and other code which doesn't belong in production builds.  Please keep this in mind when using current development code in your projects.

If you don't already have a GCC toolchain installed, we've put together a tutorial showing how to install them and use the LPC1343 Code Base in a Windows development environment here: Setting up a GCC Development Environment for the Cortex M0/M3.

Documentation

A preliminary version of the documentation for the LPC1343 Code Base has been published, providing a list of all the main methods available, along with a number of basic examples. This documentation will continue to be expanded as software development continues.

License

Unless otherwise noted, all files in the LPC1343 Code Base are provided under a Modified BSD license. Exact license terms, conditions and copyright notices are visible in each individual source file.

Included Drivers

Drivers for the following external hardware are included in the latest release of the LPC1343 Code Base:

  • EEPROM/AT25040 (SPI EEPROM)
  • EEPROM/MCP24AA (I2C EEPROM)
  • SENSORS/LM75B (I2C Temp Sensor)
  • CHIBI - A simple, open source wireless stack from Freaklabs for sensor nodes. Configured to work with the AT86RF212 transceiver at 868MHz.
  • FATFS - A port of Chan's FATFS which includes support for FAT32, and a simple MMC driver capable of reading SDHC cards
  • ILI9325 - Driver for 240x320 TFT LCDs based on the ILI9325/ILI9328 controller (8-bit interface required)
  • ST7565 - Driver for 128x64 pixel bitmap displays
  • SSD1306 - Driver for 128x64 OLED displays (bit-banged SPI mode)
  • TCS3414 - TAOS RGB sensor
  • ISL12022M - Temperature Compensated RTC 
  • TSL2561 - TAOS luminosity sensor
  • PN532 - 13.56MHz RFID/NFC transceiver (the driver is very limited at present)
  • STEPPER - Basic driver for bi-polar stepper motors using an L293D or SN754410N
Supported Peripherals

The following system peripherals are supported in the latest release of the LPC1343 Code Base:

  • CPU (Set to 72MHz)
  • ADC (Analog to Digital Convertor)
  • GPIO (General-Purpose Input/Output)
  • I2C (Interrupt driven generic I2C code)
  • PMU (Power-management)
  • PWM (Pulse-Width Modulation)
  • SSP (Generic SSP/SPI code)
  • Systick (24-bit Systick timer)
  • Timer16 (16-bit timers)
  • Timer32 (32-bit timers)
  • UART (Interrupt driven UART code)
  • USBCDC USB Serial Port Emulation
  • USBHID-ROM (ROM-based USB HID)
  • WDT (Watchdog Timer)
Other Software

The following additional software and command-line utilities are also included

  • CMD - An easy to extend command-line interface that can be used to communicate with the board via UART or USBCDC.
  • LPCRC - A command-line utility to correct the checksum value of compiled .bin files.  This ensures that the files will not be rejected by the USB bootloader.  Windows binary and GNU GCC source included.