Power Management Controler Peripheral

PMC (AT91S_PMC) 0xFFFFFC00 (AT91C_BASE_PMC)
Periph ID AICSymbolDescription
1 (AT91C_ID_SYS)System Peripheral

SignalSymbolPIO controllerDescription
PCK1(AT91C_PA24_PCK1 )PIOA Periph: B Bit: 24PMC Programmable Clock Output 1
PCK0(AT91C_PB27_PCK0 )PIOB Periph: A Bit: 27PMC Programmable Clock Output 0

FunctionDescription
AT91F_PMC_CfgPMCEnable Peripheral clock in PMC for PMC
AT91F_PMC_CfgPIOConfigure PIO controllers to drive PMC signals


PMC Software API (AT91S_PMC)

OffsetFieldDescription
0x0PMC_SCERSystem Clock Enable Register
0x4PMC_SCDRSystem Clock Disable Register
0x8PMC_SCSRSystem Clock Status Register
0x10PMC_PCERPeripheral Clock Enable Register
0x14PMC_PCDRPeripheral Clock Disable Register
0x18PMC_PCSRPeripheral Clock Status Register
0x30PMC_MCKRMaster Clock Register
0x40PMC_PCKR[8] (PMC_PCKR)Programmable Clock Register
0x60PMC_IERInterrupt Enable Register
0x64PMC_IDRInterrupt Disable Register
0x68PMC_SRStatus Register
0x6CPMC_IMRInterrupt Mask Register

FunctionDescription
AT91F_CKGR_GetMainClockReturn Main clock in Hz
AT91F_PMC_GetProcessorClockReturn processor clock in Hz (for AT91RM3400 and AT91RM9200)
AT91F_PMC_DisablePeriphClockEnable peripheral clock
AT91F_PMC_EnablePCKEnable peripheral clock
AT91F_PMC_DisablePCKEnable peripheral clock
AT91F_PMC_EnablePeriphClockEnable peripheral clock
AT91F_PMC_GetMasterClockReturn master clock in Hz (just for AT91RM9200)

PMC Register Description

PMC: AT91_REG PMC_SCER System Clock Enable Register

OffsetNameDescription
0PMC_PCK
AT91C_PMC_PCK
Processor Clock
0 = The processor clock is disabled
1 = The processor clock is enabled
1PMC_UDP
AT91C_PMC_UDP
USB Device Port Clock
0 = The 48 MHz clock of the USB Device Port is disabled
1 = The 48 MHz clock of the USB Device Port is enabled
2PMC_MCKUDP
AT91C_PMC_MCKUDP
USB Device Port Master Clock Automatic Disable on Suspend
0 = The automatic disable of the master clock of the USB Device Port when suspend condition occurs is disabled.
1 = The automatic disable of the master clock of the USB Device Port when suspend condition occurs is enabled.
4PMC_UHP
AT91C_PMC_UHP
USB Host Port Clock
0 = The 48 MHz clock of the USB Device Port is disabled.
1 = The 48 MHz clock of the USB Device Port is enabled.
8PMC_PCK0
AT91C_PMC_PCK0
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
9PMC_PCK1
AT91C_PMC_PCK1
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
10PMC_PCK2
AT91C_PMC_PCK2
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
11PMC_PCK3
AT91C_PMC_PCK3
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
12PMC_PCK4
AT91C_PMC_PCK4
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
13PMC_PCK5
AT91C_PMC_PCK5
Programmable Clock Output
0 = No effect.
1 = Enables the corresponding programmable clock output.
14PMC_PCK6
AT91C_PMC_PCK6
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
15PMC_PCK7
AT91C_PMC_PCK7
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.

PMC: AT91_REG PMC_SCDR System Clock Disable Register

OffsetNameDescription
0PMC_PCK
AT91C_PMC_PCK
Processor Clock
0 = The processor clock is disabled
1 = The processor clock is enabled
1PMC_UDP
AT91C_PMC_UDP
USB Device Port Clock
0 = The 48 MHz clock of the USB Device Port is disabled
1 = The 48 MHz clock of the USB Device Port is enabled
2PMC_MCKUDP
AT91C_PMC_MCKUDP
USB Device Port Master Clock Automatic Disable on Suspend
0 = The automatic disable of the master clock of the USB Device Port when suspend condition occurs is disabled.
1 = The automatic disable of the master clock of the USB Device Port when suspend condition occurs is enabled.
4PMC_UHP
AT91C_PMC_UHP
USB Host Port Clock
0 = The 48 MHz clock of the USB Device Port is disabled.
1 = The 48 MHz clock of the USB Device Port is enabled.
8PMC_PCK0
AT91C_PMC_PCK0
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
9PMC_PCK1
AT91C_PMC_PCK1
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
10PMC_PCK2
AT91C_PMC_PCK2
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
11PMC_PCK3
AT91C_PMC_PCK3
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
12PMC_PCK4
AT91C_PMC_PCK4
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
13PMC_PCK5
AT91C_PMC_PCK5
Programmable Clock Output
0 = No effect.
1 = Enables the corresponding programmable clock output.
14PMC_PCK6
AT91C_PMC_PCK6
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
15PMC_PCK7
AT91C_PMC_PCK7
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.

PMC: AT91_REG PMC_SCSR System Clock Status Register

OffsetNameDescription
0PMC_PCK
AT91C_PMC_PCK
Processor Clock
0 = The processor clock is disabled
1 = The processor clock is enabled
1PMC_UDP
AT91C_PMC_UDP
USB Device Port Clock
0 = The 48 MHz clock of the USB Device Port is disabled
1 = The 48 MHz clock of the USB Device Port is enabled
2PMC_MCKUDP
AT91C_PMC_MCKUDP
USB Device Port Master Clock Automatic Disable on Suspend
0 = The automatic disable of the master clock of the USB Device Port when suspend condition occurs is disabled.
1 = The automatic disable of the master clock of the USB Device Port when suspend condition occurs is enabled.
4PMC_UHP
AT91C_PMC_UHP
USB Host Port Clock
0 = The 48 MHz clock of the USB Device Port is disabled.
1 = The 48 MHz clock of the USB Device Port is enabled.
8PMC_PCK0
AT91C_PMC_PCK0
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
9PMC_PCK1
AT91C_PMC_PCK1
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
10PMC_PCK2
AT91C_PMC_PCK2
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
11PMC_PCK3
AT91C_PMC_PCK3
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
12PMC_PCK4
AT91C_PMC_PCK4
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
13PMC_PCK5
AT91C_PMC_PCK5
Programmable Clock Output
0 = No effect.
1 = Enables the corresponding programmable clock output.
14PMC_PCK6
AT91C_PMC_PCK6
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.
15PMC_PCK7
AT91C_PMC_PCK7
Programmable Clock Output
0 = The corresponding programmable clock output is disabled.
1 = The corresponding programmable clock output is enabled.

PMC: AT91_REG PMC_PCER Peripheral Clock Enable Register


PID2...PID31: Peripheral Identifier 2 to 31
0 = No effect.
1 = Enables the peripheral clock.

PMC: AT91_REG PMC_PCDR Peripheral Clock Disable Register


PID2...PID31: Peripheral Identifier 2 to 31
0 = No effect.
1 = Disables the peripheral clock.

PMC: AT91_REG PMC_PCSR Peripheral Clock Status Register


PID2...PID31: Peripheral Identifier 2 to 31
0 = peripheral clock disabled.
1 = peripheral clock enabled.

PMC: AT91_REG PMC_MCKR Master Clock Register

OffsetNameDescription
1..0PMC_CSS
AT91C_PMC_CSS
Programmable Clock Selection
Clock selection
ValueLabelDescription
0PMC_CSS_SLOW_CLK
AT91C_PMC_CSS_SLOW_CLK

Slow Clock is selected
1PMC_CSS_MAIN_CLK
AT91C_PMC_CSS_MAIN_CLK

Main Clock is selected
2PMC_CSS_PLLA_CLK
AT91C_PMC_CSS_PLLA_CLK

Clock from PLL A is selected
3PMC_CSS_PLLB_CLK
AT91C_PMC_CSS_PLLB_CLK

Clock from PLL B is selected
4..2PMC_PRES
AT91C_PMC_PRES
Programmable Clock Prescaler
Master clock
ValueLabelDescription
0PMC_PRES_CLK
AT91C_PMC_PRES_CLK

Selected clock
1PMC_PRES_CLK_2
AT91C_PMC_PRES_CLK_2

Selected clock divided by 2
2PMC_PRES_CLK_4
AT91C_PMC_PRES_CLK_4

Selected clock divided by 4
3PMC_PRES_CLK_8
AT91C_PMC_PRES_CLK_8

Selected clock divided by 8
4PMC_PRES_CLK_16
AT91C_PMC_PRES_CLK_16

Selected clock divided by 16
5PMC_PRES_CLK_32
AT91C_PMC_PRES_CLK_32

Selected clock divided by 32
6PMC_PRES_CLK_64
AT91C_PMC_PRES_CLK_64

Selected clock divided by 64
9..8PMC_MDIV
AT91C_PMC_MDIV
Master Clock Division
ValueLabelDescription
0PMC_MDIV_1
AT91C_PMC_MDIV_1

The master clock and the processor clock are the same
1PMC_MDIV_2
AT91C_PMC_MDIV_2

The processor clock is twice as fast as the master clock
2PMC_MDIV_3
AT91C_PMC_MDIV_3

The processor clock is three times faster than the master clock
3PMC_MDIV_4
AT91C_PMC_MDIV_4

The processor clock is four times faster than the master clock

PMC: AT91_REG PMC_PCKR Programmable Clock Register

OffsetNameDescription
1..0PMC_CSS
AT91C_PMC_CSS
Programmable Clock Selection
Clock selection
ValueLabelDescription
0PMC_CSS_SLOW_CLK
AT91C_PMC_CSS_SLOW_CLK

Slow Clock is selected
1PMC_CSS_MAIN_CLK
AT91C_PMC_CSS_MAIN_CLK

Main Clock is selected
2PMC_CSS_PLLA_CLK
AT91C_PMC_CSS_PLLA_CLK

Clock from PLL A is selected
3PMC_CSS_PLLB_CLK
AT91C_PMC_CSS_PLLB_CLK

Clock from PLL B is selected
4..2PMC_PRES
AT91C_PMC_PRES
Programmable Clock Prescaler
Master clock
ValueLabelDescription
0PMC_PRES_CLK
AT91C_PMC_PRES_CLK

Selected clock
1PMC_PRES_CLK_2
AT91C_PMC_PRES_CLK_2

Selected clock divided by 2
2PMC_PRES_CLK_4
AT91C_PMC_PRES_CLK_4

Selected clock divided by 4
3PMC_PRES_CLK_8
AT91C_PMC_PRES_CLK_8

Selected clock divided by 8
4PMC_PRES_CLK_16
AT91C_PMC_PRES_CLK_16

Selected clock divided by 16
5PMC_PRES_CLK_32
AT91C_PMC_PRES_CLK_32

Selected clock divided by 32
6PMC_PRES_CLK_64
AT91C_PMC_PRES_CLK_64

Selected clock divided by 64

PMC: AT91_REG PMC_IER Interrupt Enable Register

OffsetNameDescription
0PMC_MOSCS
AT91C_PMC_MOSCS
MOSC Status/Enable/Disable/Mask
0 = Main oscillator is not stabilized.
1 = Main oscillator is stabilized.
1PMC_LOCKA
AT91C_PMC_LOCKA
PLL A Status/Enable/Disable/Mask
0 = PLL A is not locked.
1 = PLL A is locked.
2PMC_LOCKB
AT91C_PMC_LOCKB
PLL B Status/Enable/Disable/Mask
0 = PLL B is not locked.
1 = PLL B is locked.
3PMC_MCKRDY
AT91C_PMC_MCKRDY
MCK_RDY Status/Enable/Disable/Mask
0 = MCK Clock is not ready to be turned on.
1 = MCK Clock is ready to be turned on.
8PMC_PCK0RDY
AT91C_PMC_PCK0RDY
PCK0_RDY Status/Enable/Disable/Mask
0 = Pad Clock0 is not ready to be turned on.
1 = Pad Clock0 is ready to be turned on.
9PMC_PCK1RDY
AT91C_PMC_PCK1RDY
PCK1_RDY Status/Enable/Disable/Mask
0 = Pad Clock1 is not ready to be turned on.
1 = Pad Clock1 is ready to be turned on.
10PMC_PCK2RDY
AT91C_PMC_PCK2RDY
PCK2_RDY Status/Enable/Disable/Mask
0 = Pad Clock2 is not ready to be turned on.
1 = Pad Clock2 is ready to be turned on.
11PMC_PCK3RDY
AT91C_PMC_PCK3RDY
PCK3_RDY Status/Enable/Disable/Mask
0 = Pad Clock3 is not ready to be turned on.
1 = Pad Clock3 is ready to be turned on.
12PMC_PCK4RDY
AT91C_PMC_PCK4RDY
PCK4_RDY Status/Enable/Disable/Mask
0 = Pad Clock4 is not ready to be turned on.
1 = Pad Clock4 is ready to be turned on.
13PMC_PCK5RDY
AT91C_PMC_PCK5RDY
PCK5_RDY Status/Enable/Disable/Mask
0 = Pad Clock5 is not ready to be turned on.
1 = Pad Clock5 is ready to be turned on.
14PMC_PCK6RDY
AT91C_PMC_PCK6RDY
PCK6_RDY Status/Enable/Disable/Mask
0 = Pad Clock6 is not ready to be turned on.
1 = Pad Clock6 is ready to be turned on.
15PMC_PCK7RDY
AT91C_PMC_PCK7RDY
PCK7_RDY Status/Enable/Disable/Mask
0 = Pad Clock7 is not ready to be turned on.
1 = Pad Clock7 is ready to be turned on.

PMC: AT91_REG PMC_IDR Interrupt Disable Register

OffsetNameDescription
0PMC_MOSCS
AT91C_PMC_MOSCS
MOSC Status/Enable/Disable/Mask
0 = Main oscillator is not stabilized.
1 = Main oscillator is stabilized.
1PMC_LOCKA
AT91C_PMC_LOCKA
PLL A Status/Enable/Disable/Mask
0 = PLL A is not locked.
1 = PLL A is locked.
2PMC_LOCKB
AT91C_PMC_LOCKB
PLL B Status/Enable/Disable/Mask
0 = PLL B is not locked.
1 = PLL B is locked.
3PMC_MCKRDY
AT91C_PMC_MCKRDY
MCK_RDY Status/Enable/Disable/Mask
0 = MCK Clock is not ready to be turned on.
1 = MCK Clock is ready to be turned on.
8PMC_PCK0RDY
AT91C_PMC_PCK0RDY
PCK0_RDY Status/Enable/Disable/Mask
0 = Pad Clock0 is not ready to be turned on.
1 = Pad Clock0 is ready to be turned on.
9PMC_PCK1RDY
AT91C_PMC_PCK1RDY
PCK1_RDY Status/Enable/Disable/Mask
0 = Pad Clock1 is not ready to be turned on.
1 = Pad Clock1 is ready to be turned on.
10PMC_PCK2RDY
AT91C_PMC_PCK2RDY
PCK2_RDY Status/Enable/Disable/Mask
0 = Pad Clock2 is not ready to be turned on.
1 = Pad Clock2 is ready to be turned on.
11PMC_PCK3RDY
AT91C_PMC_PCK3RDY
PCK3_RDY Status/Enable/Disable/Mask
0 = Pad Clock3 is not ready to be turned on.
1 = Pad Clock3 is ready to be turned on.
12PMC_PCK4RDY
AT91C_PMC_PCK4RDY
PCK4_RDY Status/Enable/Disable/Mask
0 = Pad Clock4 is not ready to be turned on.
1 = Pad Clock4 is ready to be turned on.
13PMC_PCK5RDY
AT91C_PMC_PCK5RDY
PCK5_RDY Status/Enable/Disable/Mask
0 = Pad Clock5 is not ready to be turned on.
1 = Pad Clock5 is ready to be turned on.
14PMC_PCK6RDY
AT91C_PMC_PCK6RDY
PCK6_RDY Status/Enable/Disable/Mask
0 = Pad Clock6 is not ready to be turned on.
1 = Pad Clock6 is ready to be turned on.
15PMC_PCK7RDY
AT91C_PMC_PCK7RDY
PCK7_RDY Status/Enable/Disable/Mask
0 = Pad Clock7 is not ready to be turned on.
1 = Pad Clock7 is ready to be turned on.

PMC: AT91_REG PMC_SR Status Register

OffsetNameDescription
0PMC_MOSCS
AT91C_PMC_MOSCS
MOSC Status/Enable/Disable/Mask
0 = Main oscillator is not stabilized.
1 = Main oscillator is stabilized.
1PMC_LOCKA
AT91C_PMC_LOCKA
PLL A Status/Enable/Disable/Mask
0 = PLL A is not locked.
1 = PLL A is locked.
2PMC_LOCKB
AT91C_PMC_LOCKB
PLL B Status/Enable/Disable/Mask
0 = PLL B is not locked.
1 = PLL B is locked.
3PMC_MCKRDY
AT91C_PMC_MCKRDY
MCK_RDY Status/Enable/Disable/Mask
0 = MCK Clock is not ready to be turned on.
1 = MCK Clock is ready to be turned on.
8PMC_PCK0RDY
AT91C_PMC_PCK0RDY
PCK0_RDY Status/Enable/Disable/Mask
0 = Pad Clock0 is not ready to be turned on.
1 = Pad Clock0 is ready to be turned on.
9PMC_PCK1RDY
AT91C_PMC_PCK1RDY
PCK1_RDY Status/Enable/Disable/Mask
0 = Pad Clock1 is not ready to be turned on.
1 = Pad Clock1 is ready to be turned on.
10PMC_PCK2RDY
AT91C_PMC_PCK2RDY
PCK2_RDY Status/Enable/Disable/Mask
0 = Pad Clock2 is not ready to be turned on.
1 = Pad Clock2 is ready to be turned on.
11PMC_PCK3RDY
AT91C_PMC_PCK3RDY
PCK3_RDY Status/Enable/Disable/Mask
0 = Pad Clock3 is not ready to be turned on.
1 = Pad Clock3 is ready to be turned on.
12PMC_PCK4RDY
AT91C_PMC_PCK4RDY
PCK4_RDY Status/Enable/Disable/Mask
0 = Pad Clock4 is not ready to be turned on.
1 = Pad Clock4 is ready to be turned on.
13PMC_PCK5RDY
AT91C_PMC_PCK5RDY
PCK5_RDY Status/Enable/Disable/Mask
0 = Pad Clock5 is not ready to be turned on.
1 = Pad Clock5 is ready to be turned on.
14PMC_PCK6RDY
AT91C_PMC_PCK6RDY
PCK6_RDY Status/Enable/Disable/Mask
0 = Pad Clock6 is not ready to be turned on.
1 = Pad Clock6 is ready to be turned on.
15PMC_PCK7RDY
AT91C_PMC_PCK7RDY
PCK7_RDY Status/Enable/Disable/Mask
0 = Pad Clock7 is not ready to be turned on.
1 = Pad Clock7 is ready to be turned on.

PMC: AT91_REG PMC_IMR Interrupt Mask Register

OffsetNameDescription
0PMC_MOSCS
AT91C_PMC_MOSCS
MOSC Status/Enable/Disable/Mask
0 = Main oscillator is not stabilized.
1 = Main oscillator is stabilized.
1PMC_LOCKA
AT91C_PMC_LOCKA
PLL A Status/Enable/Disable/Mask
0 = PLL A is not locked.
1 = PLL A is locked.
2PMC_LOCKB
AT91C_PMC_LOCKB
PLL B Status/Enable/Disable/Mask
0 = PLL B is not locked.
1 = PLL B is locked.
3PMC_MCKRDY
AT91C_PMC_MCKRDY
MCK_RDY Status/Enable/Disable/Mask
0 = MCK Clock is not ready to be turned on.
1 = MCK Clock is ready to be turned on.
8PMC_PCK0RDY
AT91C_PMC_PCK0RDY
PCK0_RDY Status/Enable/Disable/Mask
0 = Pad Clock0 is not ready to be turned on.
1 = Pad Clock0 is ready to be turned on.
9PMC_PCK1RDY
AT91C_PMC_PCK1RDY
PCK1_RDY Status/Enable/Disable/Mask
0 = Pad Clock1 is not ready to be turned on.
1 = Pad Clock1 is ready to be turned on.
10PMC_PCK2RDY
AT91C_PMC_PCK2RDY
PCK2_RDY Status/Enable/Disable/Mask
0 = Pad Clock2 is not ready to be turned on.
1 = Pad Clock2 is ready to be turned on.
11PMC_PCK3RDY
AT91C_PMC_PCK3RDY
PCK3_RDY Status/Enable/Disable/Mask
0 = Pad Clock3 is not ready to be turned on.
1 = Pad Clock3 is ready to be turned on.
12PMC_PCK4RDY
AT91C_PMC_PCK4RDY
PCK4_RDY Status/Enable/Disable/Mask
0 = Pad Clock4 is not ready to be turned on.
1 = Pad Clock4 is ready to be turned on.
13PMC_PCK5RDY
AT91C_PMC_PCK5RDY
PCK5_RDY Status/Enable/Disable/Mask
0 = Pad Clock5 is not ready to be turned on.
1 = Pad Clock5 is ready to be turned on.
14PMC_PCK6RDY
AT91C_PMC_PCK6RDY
PCK6_RDY Status/Enable/Disable/Mask
0 = Pad Clock6 is not ready to be turned on.
1 = Pad Clock6 is ready to be turned on.
15PMC_PCK7RDY
AT91C_PMC_PCK7RDY
PCK7_RDY Status/Enable/Disable/Mask
0 = Pad Clock7 is not ready to be turned on.
1 = Pad Clock7 is ready to be turned on.