LPCOpen Platform for LPC18XX/43XX microcontrollers  18XX43XX
LPCOpen Platform for the NXP LPC18XX/43XX family of Microcontrollers
Data Structures | Macros | Functions
CHIP: LPC18xx/43xx EEPROM driver

Detailed Description

Data Structures

struct  LPC_EEPROM_T
 EEPROM register block structure. More...
 

Macros

#define EEPROM_START   (0x20040000)
 
#define EEPROM_PAGE_SIZE   (128)
 
#define EEPROM_PAGE_NUM   (128)
 
#define EEPROM_ADDRESS(page, offset)   (EEPROM_START + (EEPROM_PAGE_SIZE * (page)) + offset)
 
#define EEPROM_CLOCK_DIV   1500000
 
#define EEPROM_READ_WAIT_STATE_VAL   0x58
 
#define EEPROM_WAIT_STATE_VAL   0x232
 
#define EEPROM_CMD_ERASE_PRG_PAGE   (6)
 
#define EEPROM_AUTOPROG_OFF   (0)
 
#define EEPROM_AUTOPROG_AFT_1WORDWRITTEN   (1)
 
#define EEPROM_AUTOPROG_AFT_LASTWORDWRITTEN   (2)
 
#define EEPROM_PWRDWN   (1 << 0)
 
#define EEPROM_INT_ENDOFPROG   (1 << 2)
 

Functions

STATIC INLINE void Chip_EEPROM_EnablePowerDown (LPC_EEPROM_T *pEEPROM)
 Put EEPROM device in power down mode. More...
 
STATIC INLINE void Chip_EEPROM_DisablePowerDown (LPC_EEPROM_T *pEEPROM)
 Bring EEPROM device out of power down mode. More...
 
void Chip_EEPROM_Init (LPC_EEPROM_T *pEEPROM)
 Initializes EEPROM. More...
 
STATIC INLINE void Chip_EEPROM_DeInit (LPC_EEPROM_T *pEEPROM)
 De-initializes EEPROM. More...
 
STATIC INLINE void Chip_EEPROM_SetAutoProg (LPC_EEPROM_T *pEEPROM, uint32_t mode)
 Set Auto program mode. More...
 
STATIC INLINE void Chip_EEPROM_SetReadWaitState (LPC_EEPROM_T *pEEPROM, uint32_t ws)
 Set EEPROM Read Wait State. More...
 
STATIC INLINE void Chip_EEPROM_SetWaitState (LPC_EEPROM_T *pEEPROM, uint32_t ws)
 Set EEPROM wait state. More...
 
STATIC INLINE void Chip_EEPROM_SetCmd (LPC_EEPROM_T *pEEPROM, uint32_t cmd)
 Select an EEPROM command. More...
 
void Chip_EEPROM_EraseProgramPage (LPC_EEPROM_T *pEEPROM)
 Erase/Program an EEPROM page. More...
 
void Chip_EEPROM_WaitForIntStatus (LPC_EEPROM_T *pEEPROM, uint32_t mask)
 Wait for interrupt occurs. More...
 
STATIC INLINE void Chip_EEPROM_EnableInt (LPC_EEPROM_T *pEEPROM, uint32_t mask)
 Enable EEPROM interrupt. More...
 
STATIC INLINE void Chip_EEPROM_DisableInt (LPC_EEPROM_T *pEEPROM, uint32_t mask)
 Disable EEPROM interrupt. More...
 
STATIC INLINE uint32_t Chip_EEPROM_GetIntEnable (LPC_EEPROM_T *pEEPROM)
 Get the value of the EEPROM interrupt enable register. More...
 
STATIC INLINE uint32_t Chip_EEPROM_GetIntStatus (LPC_EEPROM_T *pEEPROM)
 Get EEPROM interrupt status. More...
 
STATIC INLINE void Chip_EEPROM_SetIntStatus (LPC_EEPROM_T *pEEPROM, uint32_t mask)
 Set EEPROM interrupt status. More...
 
STATIC INLINE void Chip_EEPROM_ClearIntStatus (LPC_EEPROM_T *pEEPROM, uint32_t mask)
 Clear EEPROM interrupt status. More...
 

Macro Definition Documentation

#define EEPROM_ADDRESS (   page,
  offset 
)    (EEPROM_START + (EEPROM_PAGE_SIZE * (page)) + offset)

Get the eeprom address

Definition at line 52 of file eeprom_18xx_43xx.h.

#define EEPROM_AUTOPROG_AFT_1WORDWRITTEN   (1)

Erase/program cycle is triggered after 1 word is written

Definition at line 86 of file eeprom_18xx_43xx.h.

#define EEPROM_AUTOPROG_AFT_LASTWORDWRITTEN   (2)

Erase/program cycle is triggered after a write to AHB address ending with ......1111100 (last word of a page)

Definition at line 87 of file eeprom_18xx_43xx.h.

#define EEPROM_AUTOPROG_OFF   (0)

Auto programming off

Definition at line 85 of file eeprom_18xx_43xx.h.

#define EEPROM_CLOCK_DIV   1500000

Definition at line 53 of file eeprom_18xx_43xx.h.

#define EEPROM_CMD_ERASE_PRG_PAGE   (6)

EEPROM erase/program command

Definition at line 80 of file eeprom_18xx_43xx.h.

#define EEPROM_INT_ENDOFPROG   (1 << 2)

Definition at line 99 of file eeprom_18xx_43xx.h.

#define EEPROM_PAGE_NUM   (128)

The number of EEPROM pages. The last page is not writable.

Definition at line 50 of file eeprom_18xx_43xx.h.

#define EEPROM_PAGE_SIZE   (128)

EEPROM byes per page

Definition at line 48 of file eeprom_18xx_43xx.h.

#define EEPROM_PWRDWN   (1 << 0)

Definition at line 94 of file eeprom_18xx_43xx.h.

#define EEPROM_READ_WAIT_STATE_VAL   0x58

Definition at line 54 of file eeprom_18xx_43xx.h.

#define EEPROM_START   (0x20040000)

EEPROM start address

Definition at line 46 of file eeprom_18xx_43xx.h.

#define EEPROM_WAIT_STATE_VAL   0x232

Definition at line 55 of file eeprom_18xx_43xx.h.

Function Documentation

STATIC INLINE void Chip_EEPROM_ClearIntStatus ( LPC_EEPROM_T pEEPROM,
uint32_t  mask 
)

Clear EEPROM interrupt status.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
mask: Interrupt mask (or-ed bits value of EEPROM_INT_*)
Returns
Nothing

Definition at line 263 of file eeprom_18xx_43xx.h.

STATIC INLINE void Chip_EEPROM_DeInit ( LPC_EEPROM_T pEEPROM)

De-initializes EEPROM.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
Returns
Nothing

Definition at line 133 of file eeprom_18xx_43xx.h.

STATIC INLINE void Chip_EEPROM_DisableInt ( LPC_EEPROM_T pEEPROM,
uint32_t  mask 
)

Disable EEPROM interrupt.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
mask: Interrupt mask (or-ed bits value of EEPROM_INT_*)
Returns
Nothing

Definition at line 221 of file eeprom_18xx_43xx.h.

STATIC INLINE void Chip_EEPROM_DisablePowerDown ( LPC_EEPROM_T pEEPROM)

Bring EEPROM device out of power down mode.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
Returns
Nothing

Definition at line 116 of file eeprom_18xx_43xx.h.

STATIC INLINE void Chip_EEPROM_EnableInt ( LPC_EEPROM_T pEEPROM,
uint32_t  mask 
)

Enable EEPROM interrupt.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
mask: Interrupt mask (or-ed bits value of EEPROM_INT_*)
Returns
Nothing

Definition at line 210 of file eeprom_18xx_43xx.h.

STATIC INLINE void Chip_EEPROM_EnablePowerDown ( LPC_EEPROM_T pEEPROM)

Put EEPROM device in power down mode.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
Returns
Nothing

Definition at line 106 of file eeprom_18xx_43xx.h.

void Chip_EEPROM_EraseProgramPage ( LPC_EEPROM_T pEEPROM)

Erase/Program an EEPROM page.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
Returns
Nothing

Definition at line 81 of file eeprom_18xx_43xx.c.

STATIC INLINE uint32_t Chip_EEPROM_GetIntEnable ( LPC_EEPROM_T pEEPROM)

Get the value of the EEPROM interrupt enable register.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
Returns
OR-ed bits value of EEPROM_INT_*

Definition at line 231 of file eeprom_18xx_43xx.h.

STATIC INLINE uint32_t Chip_EEPROM_GetIntStatus ( LPC_EEPROM_T pEEPROM)

Get EEPROM interrupt status.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
Returns
OR-ed bits value of EEPROM_INT_*

Definition at line 241 of file eeprom_18xx_43xx.h.

void Chip_EEPROM_Init ( LPC_EEPROM_T pEEPROM)

Initializes EEPROM.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
Returns
Nothing

Definition at line 72 of file eeprom_18xx_43xx.c.

STATIC INLINE void Chip_EEPROM_SetAutoProg ( LPC_EEPROM_T pEEPROM,
uint32_t  mode 
)

Set Auto program mode.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
mode: Auto Program Mode (One of EEPROM_AUTOPROG_* value)
Returns
Nothing

Definition at line 145 of file eeprom_18xx_43xx.h.

STATIC INLINE void Chip_EEPROM_SetCmd ( LPC_EEPROM_T pEEPROM,
uint32_t  cmd 
)

Select an EEPROM command.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
cmd: EEPROM command
Returns
Nothing
Note
The cmd is OR-ed bits value of EEPROM_CMD_*

Definition at line 184 of file eeprom_18xx_43xx.h.

STATIC INLINE void Chip_EEPROM_SetIntStatus ( LPC_EEPROM_T pEEPROM,
uint32_t  mask 
)

Set EEPROM interrupt status.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
mask: Interrupt mask (or-ed bits value of EEPROM_INT_*)
Returns
Nothing

Definition at line 252 of file eeprom_18xx_43xx.h.

STATIC INLINE void Chip_EEPROM_SetReadWaitState ( LPC_EEPROM_T pEEPROM,
uint32_t  ws 
)

Set EEPROM Read Wait State.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
ws: Wait State value
Returns
Nothing
Note
Bits 7:0 represents wait state for Read Phase 2 and Bits 15:8 represents wait state for Read Phase1

Definition at line 158 of file eeprom_18xx_43xx.h.

STATIC INLINE void Chip_EEPROM_SetWaitState ( LPC_EEPROM_T pEEPROM,
uint32_t  ws 
)

Set EEPROM wait state.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
ws: Wait State value
Returns
Nothing
Note
Bits 7:0 represents wait state for Phase 3, Bits 15:8 represents wait state for Phase2, and Bits 23:16 represents wait state for Phase1

Definition at line 172 of file eeprom_18xx_43xx.h.

void Chip_EEPROM_WaitForIntStatus ( LPC_EEPROM_T pEEPROM,
uint32_t  mask 
)

Wait for interrupt occurs.

Parameters
pEEPROM: Pointer to EEPROM peripheral block structure
mask: Expected interrupt
Returns
Nothing

Definition at line 89 of file eeprom_18xx_43xx.c.