AnsweredAssumed Answered

LPC18xx / LPC43xx External Flash Drivers

Question asked by LPCware Support on Mar 31, 2016

This FAQ largely applies to LPCXpresso IDE v7.5 and earlier. If you are using LPCXpresso IDE v7.6 or later, please see the FAQ "LPC18xx / LPC43xx SPIFI Flash Drivers " instead.

 


Introduction

 

The NXP LPC18x0/43x0 MCUs do not have integrated, internal flash within the MCU. However they can be connected to external flash. LPCXpresso IDE provides mechanisms to configure the memory layout of a project to include this external flash, and then configure the debugger to be able to program the generated image down into the external flash. This configuration is carried out using the "Memory Configuration Editor".

 

This FAQ details the external flash drivers that are actually supplied with the LPCXpresso IDE. For details of how to modify these drivers, or produce your own for other flash devices, please see the FAQ "User loadable flash drivers ".

 

For more general information on developing for LPC43 family parts, please see the FAQ "LPC18xx / LPC43xx support in LPCXpresso ".

 

SPIFI Flash Drivers (old generation)

 

The following pre-built SPIFI flash drivers are provided with the LPCXpresso IDE (as of version 6.1.0):

Note: SPIFI flash is located at 0x14000000.

 

Flash driverFlash sizeSector sizeExample PartExample Board
LPC18_43_SPIFI_16MB_256KB.cfx16MB (128Mb)256KBHitex LPC1850 and LPC4350 (rev A5)
LPC18_43_SPIFI_8MB_256KB.cfx8MB (64Mb)256KB
LPC18_43_SPIFI_4MB_256KB.cfx4MB (32Mb)256KB
LPC18_43_SPIFI_2MB_256KB.cfx2MB (16Mb)256KB
LPC18_43_SPIFI_1MB_256KB.cfx1MB (8Mb)256KB
LPC18_43_SPIFI_16MB_64KB.cfx16MB (128Mb)64KB
LPC18_43_SPIFI_8MB_64KB.cfx8MB (64Mb)64KBSpansion S25FL064PHitex LPC1850 and LPC4350 (rev A4)
LPC18_43_SPIFI_4MB_64KB.cfx4MB (32Mb)64KBSpansion S25FL032NGX LPC4330-Xplorer and LPC1830-Xplorer
LPC18_43_SPIFI_2MB_64KB.cfx2MB (16Mb)64KB
LPC18_43_SPIFI_1MB_64KB.cfx1MB (8Mb)64KB
LPC18_43_SPIFI_8MB_4KB.cfx8MB (64Mb)4KBWinbond W25Q32
LPC18_43_SPIFI_4MB_4KB.cfx4MB (32Mb)4KBWinbond W25Q64
LPC18_43_SPIFI_2MB_4KB.cfx2MB (16Mb)4KB
LPC18_43_SPIFI_1MB_4KB.cfx1MB (8Mb)4KBWinbond W25Q80BVSSIGLPC-Link2

Notes:

  1. These flash drivers have been developed from the SPIFI library code provided in NXP's LPC18/43 Peripheral Driver Libraries, the original sources for which are available from LPCWare. The actual project files can be found in the LPCXpresso IDE examples subdirectory - so that you can modify in order to produce drivers for other SPIFI flash devices.
  2. All of the above SPIFI flash drivers assume a page size for programming of 256 bytes.
  3. A LPC1850A_4350A_SPIFI.cfx driver is also supplied which is identical to the LPC18_43_SPIFI_8MB_64KB.cfx driver. This is supplied for compatibility with projects originally created with LPCXpresso v4.

 

SPIFI Flash Drivers (new generation)

 

As of LPCXpresso 7.3.0, LPCXpresso IDE now ships with several SPIFI flash drivers based on the new generation LPCOpen lpcspifilib.

 

This new library has a number of advantages over the SPIFI library used for older LPCXpresso SPIFI flash drivers - in particular it supports programming newer flash devices, as well as being available in source form as well as in pre-built library form.

 

The actual project files for building these SPIFI flash drivers can be found in the LPCXpresso IDE examples subdirectory - so that you can modify in order to produce drivers for other SPIFI flash devices. You can import these into LPCXpresso from:

 

install_dir\lpcxpresso\Examples\FlashDrivers\NXP\LPC18xx_43xx\LPC18_43_lpcspifilib_driver.zip

 

As of LPCXpresso 7.30, the following prebuilt new generation flash drivers are shipped:

 

  • LPC18_43_S25FL032P.cfx : Spansion S25FL032P (4MB with 64KB sectors)
  • LPC18_43_S25FL164K.cfx : Spansion S25FL164K (8MB with 64KB sectors)
  • LPC18_43_MX25L3235E.cfx : Macronix MX25L3235E (4MB with 64KB sectors)

 

Note that unlike the older LPCXpresso SPIFI flash drivers, these new generation drivers are built for use with a specific flash device.

 

Further flash drivers are planned, as support for further devices is added to the underlying LPCOpen lpcspifilib.

 

EMC Flash Drivers

 

Flash drivers for external flash attached to the external memory controller is provided for specific boards/flash devices:.

 

Note: EMC flash is located at 0x1c000000.

 

These EMC flash drivers are based on code provided in NXP's LPC18/43 Peripheral Driver Libraries, the original sources for which are available from LPCWare. The actual project files can be found in the LPCXpresso IDE examples sub directory - so that you can modify in order to produce drivers for other flash devices.

 

Hitex Boards

 

Two prebuilt drivers are provided to support the use of the SST / EMC flash devices fitted to the Hitex LPC1850 / 4350 Evaluation boards (rev A4):

 

  • SST39VF3201B_Hitex_LPC1850A_4350A.cfx
  • SST39VF3201x_Hitex_LPC1850A_4350A.cfx

 

SST39VF3201B_Hitex_LPC1850A_4350A.cfx was the original flash driver but only supports the SST39VF3201B device, not the SST39VF3201 device (note the lack of the 'B') that is now being fitted to some Hitex eval boards. SST39VF3201x_Hitex_LPC1850A_4350A.cfx is an updated driver that supports both the SST39VF3201B and SST39VF3201 devices, and is the recommended driver to use.

 

Diolan Boards

 

The following prebuilt driver is provided to support the flash device fitted to the Diolan LPC1850-DB1 / LPC4350-DB1 boards:

  • LPC18_43_Diolan_S29AL016J70T.cfx

Outcomes