| LPCOpen Platform v1.03 LPCOpen Platform for NXP LPC Microcontrollers

- Main Page
- Modules
- Data Structures
- Files
- Related Pages

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
CHIP: LPC11xx System Control block driver
LPC11xx chip specific drivers

## Detailed Description

## Data Structures
struct | LPC_SYSCTL_T
| LPC11XX System Control block structure. More...

## Macros
#define | SYSCTL_RST_POR (1 << 0)
#define | SYSCTL_RST_EXTRST (1 << 1)
#define | SYSCTL_RST_WDT (1 << 2)
#define | SYSCTL_RST_BOD (1 << 3)
#define | SYSCTL_RST_SYSRST (1 << 4)
#define | SYSCTL_NMISRC_ENABLE ((uint32_t) 1 << 31)
#define | SYSCTL_DEEPSLP_BOD_PD (1 << 3)
#define | SYSCTL_DEEPSLP_WDTOSC_PD (1 << 6)
#define | SYSCTL_SLPWAKE_IRCOUT_PD (1 << 0)
#define | SYSCTL_SLPWAKE_IRC_PD (1 << 1)
#define | SYSCTL_SLPWAKE_FLASH_PD (1 << 2)
#define | SYSCTL_SLPWAKE_BOD_PD (1 << 3)
#define | SYSCTL_SLPWAKE_ADC_PD (1 << 4)
#define | SYSCTL_SLPWAKE_SYSOSC_PD (1 << 5)
#define | SYSCTL_SLPWAKE_WDTOSC_PD (1 << 6)
#define | SYSCTL_SLPWAKE_SYSPLL_PD (1 << 7)
#define | SYSCTL_POWERDOWN_IRCOUT_PD (1 << 0)
#define | SYSCTL_POWERDOWN_IRC_PD (1 << 1)
#define | SYSCTL_POWERDOWN_FLASH_PD (1 << 2)
#define | SYSCTL_POWERDOWN_BOD_PD (1 << 3)
#define | SYSCTL_POWERDOWN_ADC_PD (1 << 4)
#define | SYSCTL_POWERDOWN_SYSOSC_PD (1 << 5)
#define | SYSCTL_POWERDOWN_WDTOSC_PD (1 << 6)
#define | SYSCTL_POWERDOWN_SYSPLL_PD (1 << 7)

## Enumerations
enum | CHIP_SYSCTL_BOOT_MODE_REMAP_T { REMAP_BOOT_LOADER_MODE, REMAP_USER_RAM_MODE, REMAP_USER_FLASH_MODE, REMAP_BOOT_LOADER_MODE, REMAP_USER_RAM_MODE, REMAP_USER_FLASH_MODE, REMAP_BOOT_LOADER_MODE, REMAP_USER_FLASH_MODE, REMAP_BOOT_LOADER_MODE, REMAP_USER_RAM_MODE, REMAP_USER_FLASH_MODE }
enum | CHIP_SYSCTL_PERIPH_RESET_T { RESET_SSP0, RESET_I2C0, RESET_SSP1, RESET_CAN0, RESET_UART0, RESET_TIMER0_16, RESET_TIMER1_16, RESET_TIMER0_32, RESET_TIMER1_32, RESET_ACMP, RESET_DAC0, RESET_ADC0, RESET_SSP0, RESET_I2C0, RESET_SSP1, RESET_SPI0, RESET_SPI1, RESET_UARTFBRG, RESET_USART0, RESET_USART1, RESET_USART2, RESET_I2C, RESET_MRT, RESET_SCT, RESET_WKT, RESET_GPIO, RESET_FLASH, RESET_ACMP }
enum | CHIP_SYSCTL_BODRSTLVL_T { SYSCTL_BODRSTLVL_RESERVED1, SYSCTL_BODRSTLVL_2_06V, SYSCTL_BODRSTLVL_2_35V, SYSCTL_BODRSTLVL_2_63V, SYSCTL_BODRSTLVL_1_46V, SYSCTL_BODRSTLVL_2_06V, SYSCTL_BODRSTLVL_2_35V, SYSCTL_BODRSTLVL_2_63V, SYSCTL_BODRSTLVL_0, SYSCTL_BODRSTLVL_1, SYSCTL_BODRSTLVL_2, SYSCTL_BODRSTLVL_3 }
enum | CHIP_SYSCTL_BODRINTVAL_T { SYSCTL_BODINTVAL_RESERVED1, SYSCTL_BODINTVAL_RESERVED1, SYSCTL_BODINTVAL_2_22V, SYSCTL_BODINTVAL_2_52V, SYSCTL_BODINTVAL_2_80V, SYSCTL_BODINTVAL_LVL0, SYSCTL_BODINTVAL_LVL1, SYSCTL_BODINTVAL_LVL2, SYSCTL_BODINTVAL_LVL3 }

## Functions
STATIC INLINE void | Chip_SYSCTL_Map (CHIP_SYSCTL_BOOT_MODE_REMAP_T remap)
| Re-map interrupt vectors.
STATIC INLINE void | Chip_SYSCTL_AssertPeriphReset (CHIP_SYSCTL_PERIPH_RESET_T periph)
| Assert reset for a peripheral.
STATIC INLINE void | Chip_SYSCTL_DeassertPeriphReset (CHIP_SYSCTL_PERIPH_RESET_T periph)
| De-assert reset for a peripheral.
STATIC INLINE void | Chip_SYSCTL_PeriphReset (CHIP_SYSCTL_PERIPH_RESET_T periph)
| Resets a peripheral.
STATIC INLINE uint32_t | Chip_SYSCTL_GetSystemRSTStatus (void)
| Get system reset status.
STATIC INLINE void | Chip_SYSCTL_ClearSystemRSTStatus (uint32_t reset)
| Clear system reset status.
STATIC INLINE uint32_t | Chip_SYSCTL_GetPORPIOStatus (int index)
| Read POR captured PIO status.
STATIC INLINE void | Chip_SYSCTL_SetBODLevels (CHIP_SYSCTL_BODRSTLVL_T rstlvl, CHIP_SYSCTL_BODRINTVAL_T intlvl)
| Set brown-out detection interrupt and reset levels.
STATIC INLINE void | Chip_SYSCTL_EnableBODReset (void)
| Enable brown-out detection reset.
STATIC INLINE void | Chip_SYSCTL_DisableBODReset (void)
| Disable brown-out detection reset.
STATIC INLINE void | Chip_SYSCTL_SetSYSTCKCAL (uint32_t sysCalVal)
| Set System tick timer calibration value.
void | Chip_SYSCTL_SetDeepSleepPD (uint32_t sleepmask)
| Setup deep sleep behaviour for power down.
STATIC INLINE uint32_t | Chip_SYSCTL_GetDeepSleepPD (void)
| Returns current deep sleep mask.
void | Chip_SYSCTL_SetWakeup (uint32_t wakeupmask)
| Setup wakeup behaviour from deep sleep.
STATIC INLINE uint32_t | Chip_SYSCTL_GetWakeup (void)
| Return current wakeup mask.
void | Chip_SYSCTL_PowerDown (uint32_t powerdownmask)
| Power down one or more blocks or peripherals.
void | Chip_SYSCTL_PowerUp (uint32_t powerupmask)
| Power up one or more blocks or peripherals.
STATIC INLINE uint32_t | Chip_SYSCTL_GetPowerStates (void)
| Get power status.
STATIC INLINE uint32_t | Chip_SYSCTL_GetDeviceID (void)
| Return the device ID.

## Macro Definition Documentation

#define SYSCTL_DEEPSLP_BOD_PD (1 << 3)

Deep sleep setup valuesBOD power-down control in Deep-sleep mode, powered down

Definition at line 551 of file sysctl_11xx.h.

#define SYSCTL_DEEPSLP_WDTOSC_PD (1 << 6)

Watchdog oscillator power control in Deep-sleep, powered down

Definition at line 552 of file sysctl_11xx.h.

#define SYSCTL_NMISRC_ENABLE ((uint32_t) 1 << 31)

Non-Maskable Interrupt Enable/Disable valueEnable the Non-Maskable Interrupt (NMI) source

Definition at line 195 of file sysctl_11xx.h.

#define SYSCTL_POWERDOWN_ADC_PD (1 << 4)

ADC power down

Definition at line 629 of file sysctl_11xx.h.

#define SYSCTL_POWERDOWN_BOD_PD (1 << 3)

BOD power down

Definition at line 627 of file sysctl_11xx.h.

#define SYSCTL_POWERDOWN_FLASH_PD (1 << 2)

Flash power down

Definition at line 625 of file sysctl_11xx.h.

#define SYSCTL_POWERDOWN_IRC_PD (1 << 1)

IRC oscillator power-down

Definition at line 624 of file sysctl_11xx.h.

#define SYSCTL_POWERDOWN_IRCOUT_PD (1 << 0)

Power down configuration valuesIRC oscillator output power down

Definition at line 623 of file sysctl_11xx.h.

#define SYSCTL_POWERDOWN_SYSOSC_PD (1 << 5)

System oscillator power down

Definition at line 630 of file sysctl_11xx.h.

#define SYSCTL_POWERDOWN_SYSPLL_PD (1 << 7)

System PLL power down

Definition at line 632 of file sysctl_11xx.h.

#define SYSCTL_POWERDOWN_WDTOSC_PD (1 << 6)

Watchdog oscillator power down

Definition at line 631 of file sysctl_11xx.h.

#define SYSCTL_RST_BOD (1 << 3)

Brown-out detect reset status

Definition at line 189 of file sysctl_11xx.h.

#define SYSCTL_RST_EXTRST (1 << 1)

External reset status

Definition at line 187 of file sysctl_11xx.h.

#define SYSCTL_RST_POR (1 << 0)

System reset statusPOR reset status

Definition at line 186 of file sysctl_11xx.h.

#define SYSCTL_RST_SYSRST (1 << 4)

software system reset status

Definition at line 190 of file sysctl_11xx.h.

#define SYSCTL_RST_WDT (1 << 2)

Watchdog reset status

Definition at line 188 of file sysctl_11xx.h.

#define SYSCTL_SLPWAKE_ADC_PD (1 << 4)

ADC wake-up configuration

Definition at line 587 of file sysctl_11xx.h.

#define SYSCTL_SLPWAKE_BOD_PD (1 << 3)

BOD wake-up configuration

Definition at line 586 of file sysctl_11xx.h.

#define SYSCTL_SLPWAKE_FLASH_PD (1 << 2)

Flash wake-up configuration

Definition at line 585 of file sysctl_11xx.h.

#define SYSCTL_SLPWAKE_IRC_PD (1 << 1)

IRC oscillator power-down wake-up configuration

Definition at line 584 of file sysctl_11xx.h.

#define SYSCTL_SLPWAKE_IRCOUT_PD (1 << 0)

Deep sleep to wakeup setup valuesIRC oscillator output wake-up configuration

Definition at line 583 of file sysctl_11xx.h.

#define SYSCTL_SLPWAKE_SYSOSC_PD (1 << 5)

System oscillator wake-up configuration

Definition at line 588 of file sysctl_11xx.h.

#define SYSCTL_SLPWAKE_SYSPLL_PD (1 << 7)

System PLL wake-up configuration

Definition at line 590 of file sysctl_11xx.h.

#define SYSCTL_SLPWAKE_WDTOSC_PD (1 << 6)

Watchdog oscillator wake-up configuration

Definition at line 589 of file sysctl_11xx.h.

## Enumeration Type Documentation

enum CHIP_SYSCTL_BODRINTVAL_T

Brown-out detector interrupt level

Enumerator:

  SYSCTL_BODINTVAL_RESERVED1 |
  SYSCTL_BODINTVAL_RESERVED1 |
  SYSCTL_BODINTVAL_2_22V | Brown-out interrupt at 2.22v
  SYSCTL_BODINTVAL_2_52V | Brown-out interrupt at 2.52v
  SYSCTL_BODINTVAL_2_80V | Brown-out interrupt at 2.8v
  SYSCTL_BODINTVAL_LVL0 |
  SYSCTL_BODINTVAL_LVL1 |
  SYSCTL_BODINTVAL_LVL2 |
  SYSCTL_BODINTVAL_LVL3 |

Definition at line 256 of file sysctl_11xx.h.

enum CHIP_SYSCTL_BODRSTLVL_T

Brown-out detector reset level

Enumerator:

  SYSCTL_BODRSTLVL_RESERVED1 | Only possible value for LPC11A/02/XXLV
  SYSCTL_BODRSTLVL_2_06V | Brown-out reset at 2.06v
  SYSCTL_BODRSTLVL_2_35V | Brown-out reset at 2.35v
  SYSCTL_BODRSTLVL_2_63V | Brown-out reset at 2.63v
  SYSCTL_BODRSTLVL_1_46V | Brown-out reset at 1.46v
  SYSCTL_BODRSTLVL_2_06V | Brown-out reset at 2.06v
  SYSCTL_BODRSTLVL_2_35V | Brown-out reset at 2.35v
  SYSCTL_BODRSTLVL_2_63V | Brown-out reset at 2.63v
  SYSCTL_BODRSTLVL_0 | Brown-out reset at 1.46 ~ 1.63v
  SYSCTL_BODRSTLVL_1 | Brown-out reset at 2.06v ~ 2.15v
  SYSCTL_BODRSTLVL_2 | Brown-out reset at 2.35v ~ 2.43v
  SYSCTL_BODRSTLVL_3 | Brown-out reset at 2.63v ~ 2.71v

Definition at line 232 of file sysctl_11xx.h.

enum CHIP_SYSCTL_BOOT_MODE_REMAP_T

System memory remap modes used to remap interrupt vectors

Enumerator:

  REMAP_BOOT_LOADER_MODE | Interrupt vectors are re-mapped to Boot ROM
  REMAP_USER_RAM_MODE | Interrupt vectors are re-mapped to Static RAM
  REMAP_USER_FLASH_MODE | Interrupt vectors are not re-mapped and reside in Flash
  REMAP_BOOT_LOADER_MODE | Interrupt vectors are re-mapped to Boot ROM
  REMAP_USER_RAM_MODE | Interrupt vectors are re-mapped to Static RAM
  REMAP_USER_FLASH_MODE | Interrupt vectors are not re-mapped and reside in Flash
  REMAP_BOOT_LOADER_MODE | Interrupt vectors are re-mapped to Boot ROM
  REMAP_USER_FLASH_MODE | Interrupt vectors are not re-mapped and reside in Flash
  REMAP_BOOT_LOADER_MODE | Interrupt vectors are re-mapped to Boot ROM
  REMAP_USER_RAM_MODE | Interrupt vectors are re-mapped to user Static RAM
  REMAP_USER_FLASH_MODE | Interrupt vectors are not re-mapped and reside in Flash

Definition at line 116 of file sysctl_11xx.h.

enum CHIP_SYSCTL_PERIPH_RESET_T

Peripheral reset identifiers, not available on all devices

Enumerator:

  RESET_SSP0 | SSP0 reset control
  RESET_I2C0 | I2C0 reset control
  RESET_SSP1 | SSP1 reset control
  RESET_CAN0 | CAN0 reset control
  RESET_UART0 | UART0 reset control
  RESET_TIMER0_16 | 16-bit Timer 0 reset control
  RESET_TIMER1_16 | 16-bit Timer 1 reset control
  RESET_TIMER0_32 | 32-bit Timer 0 reset control
  RESET_TIMER1_32 | 32-bit Timer 1 reset control
  RESET_ACMP | Analog comparator reset control
  RESET_DAC0 | DAC reset control
  RESET_ADC0 | ADC reset control
  RESET_SSP0 | SSP0 reset control
  RESET_I2C0 | I2C0 reset control
  RESET_SSP1 | SSP1 reset control
  RESET_SPI0 | SPI0 reset control
  RESET_SPI1 | SPI1 reset control
  RESET_UARTFBRG | UART fractional baud rate generator reset control
  RESET_USART0 | USART0 reset control
  RESET_USART1 | USART1 reset control
  RESET_USART2 | USART2 reset control
  RESET_I2C | I2C reset control
  RESET_MRT | MRT reset control
  RESET_SCT | SCT reset control
  RESET_WKT | Self wake-up timer (WKT) control
  RESET_GPIO | GPIO reset control
  RESET_FLASH | FLASH reset control
  RESET_ACMP | ACMP reset control

Definition at line 135 of file sysctl_11xx.h.

## Function Documentation

STATIC INLINE void Chip_SYSCTL_AssertPeriphReset | ( | CHIP_SYSCTL_PERIPH_RESET_T | periph | ) |

Assert reset for a peripheral.

Parameters

  periph | : Peripheral to assert reset for

Returns
  Nothing

Note
  The peripheral will stay in reset until reset is de-asserted. Call Chip_SYSCTL_DeassertPeriphReset() to de-assert the reset.

Definition at line 157 of file sysctl_11xx.h.

STATIC INLINE void Chip_SYSCTL_ClearSystemRSTStatus | ( | uint32_t | reset | ) |

Clear system reset status.

Parameters

  reset | : An Or'ed value of SYSCTL_RST_* status to clear

Returns
  Nothing

Note
  This function returns the detected reset source(s).

Definition at line 213 of file sysctl_11xx.h.

STATIC INLINE void Chip_SYSCTL_DeassertPeriphReset | ( | CHIP_SYSCTL_PERIPH_RESET_T | periph | ) |

De-assert reset for a peripheral.

Parameters

  periph | : Peripheral to de-assert reset for

Returns
  Nothing

Definition at line 167 of file sysctl_11xx.h.

STATIC INLINE void Chip_SYSCTL_DisableBODReset | ( | void |  | ) |

Disable brown-out detection reset.

Returns
  Nothing

Definition at line 303 of file sysctl_11xx.h.

STATIC INLINE void Chip_SYSCTL_EnableBODReset | ( | void |  | ) |

Enable brown-out detection reset.

Returns
  Nothing

Definition at line 294 of file sysctl_11xx.h.

STATIC INLINE uint32_t Chip_SYSCTL_GetDeepSleepPD | ( | void |  | ) |

Returns current deep sleep mask.

Returns
  OR'ed values of SYSCTL_DEEPSLP_* values

Note
  A high bit indicates the peripheral will power down on deep sleep.

Definition at line 575 of file sysctl_11xx.h.

STATIC INLINE uint32_t Chip_SYSCTL_GetDeviceID | ( | void |  | ) |

Return the device ID.

Returns
  the device ID

Definition at line 672 of file sysctl_11xx.h.

STATIC INLINE uint32_t Chip_SYSCTL_GetPORPIOStatus | ( | int | index | ) |

Read POR captured PIO status.

Parameters

  index | : POR register index, 0 or 1

Returns
  captured POR PIO status

Note
  Some devices only support index 0.

Definition at line 224 of file sysctl_11xx.h.

STATIC INLINE uint32_t Chip_SYSCTL_GetPowerStates | ( | void |  | ) |

Get power status.

Returns
  OR'ed values of SYSCTL_POWERDOWN_* values

Note
  A high state indicates the peripheral is powered down.

Definition at line 663 of file sysctl_11xx.h.

STATIC INLINE uint32_t Chip_SYSCTL_GetSystemRSTStatus | ( | void |  | ) |

Get system reset status.

Returns
  An Or'ed value of SYSCTL_RST_*

Note
  This function returns the detected reset source(s).

Definition at line 202 of file sysctl_11xx.h.

STATIC INLINE uint32_t Chip_SYSCTL_GetWakeup | ( | void |  | ) |

Return current wakeup mask.

Returns
  OR'ed values of SYSCTL_SLPWAKE_* values

Note
  A high state indicates the peripehral will powerup on wakeup.

Definition at line 613 of file sysctl_11xx.h.

STATIC INLINE void Chip_SYSCTL_Map | ( | CHIP_SYSCTL_BOOT_MODE_REMAP_T | remap | ) |

Re-map interrupt vectors.

Parameters

  remap | : system memory map value

Returns
  Nothing

Definition at line 127 of file sysctl_11xx.h.

STATIC INLINE void Chip_SYSCTL_PeriphReset | ( | CHIP_SYSCTL_PERIPH_RESET_T | periph | ) |

Resets a peripheral.

Parameters

  periph | : Peripheral to reset

Returns
  Nothing

Definition at line 177 of file sysctl_11xx.h.

void Chip_SYSCTL_PowerDown | ( | uint32_t | powerdownmask | ) |

Power down one or more blocks or peripherals.

Parameters

  powerdownmask | : OR'ed values of SYSCTL_POWERDOWN_* values

Returns
  Nothing

Definition at line 98 of file sysctl_11xx.c.

void Chip_SYSCTL_PowerUp | ( | uint32_t | powerupmask | ) |

Power up one or more blocks or peripherals.

Parameters

  powerupmask | : OR'ed values of SYSCTL_POWERDOWN_* values

Returns
  Nothing

Definition at line 109 of file sysctl_11xx.c.

STATIC INLINE void Chip_SYSCTL_SetBODLevels | ( | CHIP_SYSCTL_BODRSTLVL_T | rstlvl,
|  | CHIP_SYSCTL_BODRINTVAL_T | intlvl
| ) |  |

Set brown-out detection interrupt and reset levels.

Parameters

  rstlvl | : Brown-out detector reset level
  intlvl | : Brown-out interrupt level

Returns
  Nothing

Note
  Brown-out detection reset will be disabled upon exiting this function. Use Chip_SYSCTL_EnableBODReset() to re-enable.

Definition at line 273 of file sysctl_11xx.h.

void Chip_SYSCTL_SetDeepSleepPD | ( | uint32_t | sleepmask | ) |

Setup deep sleep behaviour for power down.

Parameters

  sleepmask | : OR'ed values of SYSCTL_DEEPSLP_* values (high to powerdown on deepsleep)

Returns
  Nothing

Note
  This must be setup prior to using deep sleep. See the user manual (PDSLEEPCFG register) for more info on setting this up. This function selects which peripherals are powered down on deep sleep. This function should only be called once with all options for power-down in that call.

Definition at line 82 of file sysctl_11xx.c.

STATIC INLINE void Chip_SYSCTL_SetSYSTCKCAL | ( | uint32_t | sysCalVal | ) |

Set System tick timer calibration value.

Parameters

  sysCalVal | : System tick timer calibration value

Returns
  Nothing

Definition at line 315 of file sysctl_11xx.h.

void Chip_SYSCTL_SetWakeup | ( | uint32_t | wakeupmask | ) |

Setup wakeup behaviour from deep sleep.

Parameters

  wakeupmask | : OR'ed values of SYSCTL_SLPWAKE_* values (high is powered down)

Returns
  Nothing

Note
  This must be setup prior to using deep sleep. See the user manual (PDWAKECFG register) for more info on setting this up. This function selects which peripherals are powered up on exit from deep sleep. This function should only be called once with all options for wakeup in that call.

Definition at line 89 of file sysctl_11xx.c.