//***************************************************************************** | |
// | |
// sysctl.h - Prototypes for the system control driver. | |
// | |
// Copyright (c) 2005,2006 Luminary Micro, Inc. All rights reserved. | |
// | |
// Software License Agreement | |
// | |
// Luminary Micro, Inc. (LMI) is supplying this software for use solely and | |
// exclusively on LMI's Stellaris Family of microcontroller products. | |
// | |
// The software is owned by LMI and/or its suppliers, and is protected under | |
// applicable copyright laws. All rights are reserved. Any use in violation | |
// of the foregoing restrictions may subject the user to criminal sanctions | |
// under applicable laws, as well as to civil liability for the breach of the | |
// terms and conditions of this license. | |
// | |
// THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED | |
// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF | |
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. | |
// LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR | |
// CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. | |
// | |
// This is part of revision 991 of the Stellaris Driver Library. | |
// | |
//***************************************************************************** | |
#ifndef __SYSCTL_H__ | |
#define __SYSCTL_H__ | |
#ifdef __cplusplus | |
extern "C" | |
{ | |
#endif | |
//***************************************************************************** | |
// | |
// The following are values that can be passed to the | |
// SysCtlPeripheralPresent(), SysCtlPeripheralEnable(), | |
// SysCtlPeripheralDisable(), and SysCtlPeripheralReset() APIs as the | |
// ulPeripheral parameter. The peripherals in the fourth group (upper nibble | |
// is 3) can only be used with the SysCtlPeripheralPresent() API. | |
// | |
//***************************************************************************** | |
#define SYSCTL_PERIPH_PWM 0x00100000 // PWM | |
#define SYSCTL_PERIPH_ADC 0x00010000 // ADC | |
#define SYSCTL_PERIPH_WDOG 0x00000008 // Watchdog | |
#define SYSCTL_PERIPH_UART0 0x10000001 // UART 0 | |
#define SYSCTL_PERIPH_UART1 0x10000002 // UART 1 | |
#define SYSCTL_PERIPH_SSI 0x10000010 // SSI | |
#define SYSCTL_PERIPH_QEI 0x10000100 // QEI | |
#define SYSCTL_PERIPH_I2C 0x10001000 // I2C | |
#define SYSCTL_PERIPH_TIMER0 0x10010000 // Timer 0 | |
#define SYSCTL_PERIPH_TIMER1 0x10020000 // Timer 1 | |
#define SYSCTL_PERIPH_TIMER2 0x10040000 // Timer 2 | |
#define SYSCTL_PERIPH_COMP0 0x11000000 // Analog comparator 0 | |
#define SYSCTL_PERIPH_COMP1 0x12000000 // Analog comparator 1 | |
#define SYSCTL_PERIPH_COMP2 0x14000000 // Analog comparator 2 | |
#define SYSCTL_PERIPH_GPIOA 0x20000001 // GPIO A | |
#define SYSCTL_PERIPH_GPIOB 0x20000002 // GPIO B | |
#define SYSCTL_PERIPH_GPIOC 0x20000004 // GPIO C | |
#define SYSCTL_PERIPH_GPIOD 0x20000008 // GPIO D | |
#define SYSCTL_PERIPH_GPIOE 0x20000010 // GPIO E | |
#define SYSCTL_PERIPH_MPU 0x30000080 // Cortex-M3 MPU | |
#define SYSCTL_PERIPH_TEMP 0x30000020 // Temperature sensor | |
#define SYSCTL_PERIPH_PLL 0x30000010 // PLL | |
//***************************************************************************** | |
// | |
// The following are values that can be passed to the SysCtlPinPresent() API | |
// as the ulPin parameter. | |
// | |
//***************************************************************************** | |
#define SYSCTL_PIN_PWM0 0x00000001 // PWM0 pin | |
#define SYSCTL_PIN_PWM1 0x00000002 // PWM1 pin | |
#define SYSCTL_PIN_PWM2 0x00000004 // PWM2 pin | |
#define SYSCTL_PIN_PWM3 0x00000008 // PWM3 pin | |
#define SYSCTL_PIN_PWM4 0x00000010 // PWM4 pin | |
#define SYSCTL_PIN_PWM5 0x00000020 // PWM5 pin | |
#define SYSCTL_PIN_C0MINUS 0x00000040 // C0- pin | |
#define SYSCTL_PIN_C0PLUS 0x00000080 // C0+ pin | |
#define SYSCTL_PIN_C0O 0x00000100 // C0o pin | |
#define SYSCTL_PIN_C1MINUS 0x00000200 // C1- pin | |
#define SYSCTL_PIN_C1PLUS 0x00000400 // C1+ pin | |
#define SYSCTL_PIN_C1O 0x00000800 // C1o pin | |
#define SYSCTL_PIN_C2MINUS 0x00001000 // C2- pin | |
#define SYSCTL_PIN_C2PLUS 0x00002000 // C2+ pin | |
#define SYSCTL_PIN_C2O 0x00004000 // C2o pin | |
#define SYSCTL_PIN_ADC0 0x00010000 // ADC0 pin | |
#define SYSCTL_PIN_ADC1 0x00020000 // ADC1 pin | |
#define SYSCTL_PIN_ADC2 0x00040000 // ADC2 pin | |
#define SYSCTL_PIN_ADC3 0x00080000 // ADC3 pin | |
#define SYSCTL_PIN_ADC4 0x00100000 // ADC4 pin | |
#define SYSCTL_PIN_ADC5 0x00200000 // ADC5 pin | |
#define SYSCTL_PIN_ADC6 0x00400000 // ADC6 pin | |
#define SYSCTL_PIN_ADC7 0x00800000 // ADC7 pin | |
#define SYSCTL_PIN_CCP0 0x01000000 // CCP0 pin | |
#define SYSCTL_PIN_CCP1 0x02000000 // CCP1 pin | |
#define SYSCTL_PIN_CCP2 0x04000000 // CCP2 pin | |
#define SYSCTL_PIN_CCP3 0x08000000 // CCP3 pin | |
#define SYSCTL_PIN_CCP4 0x10000000 // CCP4 pin | |
#define SYSCTL_PIN_CCP5 0x20000000 // CCP5 pin | |
#define SYSCTL_PIN_32KHZ 0x80000000 // 32kHz pin | |
//***************************************************************************** | |
// | |
// The following are values that can be passed to the SysCtlLDOSet() API as | |
// the ulVoltage value, or returned by the SysCtlLDOGet() API. | |
// | |
//***************************************************************************** | |
#define SYSCTL_LDO_2_25V 0x00000005 // LDO output of 2.25V | |
#define SYSCTL_LDO_2_30V 0x00000004 // LDO output of 2.30V | |
#define SYSCTL_LDO_2_35V 0x00000003 // LDO output of 2.35V | |
#define SYSCTL_LDO_2_40V 0x00000002 // LDO output of 2.40V | |
#define SYSCTL_LDO_2_45V 0x00000001 // LDO output of 2.45V | |
#define SYSCTL_LDO_2_50V 0x00000000 // LDO output of 2.50V | |
#define SYSCTL_LDO_2_55V 0x0000001f // LDO output of 2.55V | |
#define SYSCTL_LDO_2_60V 0x0000001e // LDO output of 2.60V | |
#define SYSCTL_LDO_2_65V 0x0000001d // LDO output of 2.65V | |
#define SYSCTL_LDO_2_70V 0x0000001c // LDO output of 2.70V | |
#define SYSCTL_LDO_2_75V 0x0000001b // LDO output of 2.75V | |
//***************************************************************************** | |
// | |
// The following are values that can be passed to the SysCtlLDOConfigSet() API. | |
// | |
//***************************************************************************** | |
#define SYSCTL_LDOCFG_ARST 0x00000001 // Allow LDO failure to reset | |
#define SYSCTL_LDOCFG_NORST 0x00000000 // Do not reset on LDO failure | |
//***************************************************************************** | |
// | |
// The following are values that can be passed to the SysCtlIntEnable(), | |
// SysCtlIntDisable(), and SysCtlIntClear() APIs, or returned in the bit mask | |
// by the SysCtlIntStatus() API. | |
// | |
//***************************************************************************** | |
#define SYSCTL_INT_PLL_LOCK 0x00000040 // PLL lock interrupt | |
#define SYSCTL_INT_CUR_LIMIT 0x00000020 // Current limit interrupt | |
#define SYSCTL_INT_IOSC_FAIL 0x00000010 // Internal oscillator failure int | |
#define SYSCTL_INT_MOSC_FAIL 0x00000008 // Main oscillator failure int | |
#define SYSCTL_INT_POR 0x00000004 // Power on reset interrupt | |
#define SYSCTL_INT_BOR 0x00000002 // Brown out interrupt | |
#define SYSCTL_INT_PLL_FAIL 0x00000001 // PLL failure interrupt | |
//***************************************************************************** | |
// | |
// The following are values that can be passed to the SysCtlResetCauseClear() | |
// API or returned by the SysCtlResetCauseGet() API. | |
// | |
//***************************************************************************** | |
#define SYSCTL_CAUSE_LDO 0x00000020 // LDO power not OK reset | |
#define SYSCTL_CAUSE_SW 0x00000010 // Software reset | |
#define SYSCTL_CAUSE_WDOG 0x00000008 // Watchdog reset | |
#define SYSCTL_CAUSE_BOR 0x00000004 // Brown-out reset | |
#define SYSCTL_CAUSE_POR 0x00000002 // Power on reset | |
#define SYSCTL_CAUSE_EXT 0x00000001 // External reset | |
//***************************************************************************** | |
// | |
// The following are values that can be passed to the SysCtlBrownOutConfigSet() | |
// API as the ulConfig parameter. | |
// | |
//***************************************************************************** | |
#define SYSCTL_BOR_RESET 0x00000002 // Reset instead of interrupting | |
#define SYSCTL_BOR_RESAMPLE 0x00000001 // Resample BOR before asserting | |
//***************************************************************************** | |
// | |
// The following are values that can be passed to the SysCtlPWMClockSet() API | |
// as the ulConfig parameter, and can be returned by the SysCtlPWMClockGet() | |
// API. | |
// | |
//***************************************************************************** | |
#define SYSCTL_PWMDIV_1 0x00000000 // PWM clock is processor clock /1 | |
#define SYSCTL_PWMDIV_2 0x00100000 // PWM clock is processor clock /2 | |
#define SYSCTL_PWMDIV_4 0x00120000 // PWM clock is processor clock /4 | |
#define SYSCTL_PWMDIV_8 0x00140000 // PWM clock is processor clock /8 | |
#define SYSCTL_PWMDIV_16 0x00160000 // PWM clock is processor clock /16 | |
#define SYSCTL_PWMDIV_32 0x00180000 // PWM clock is processor clock /32 | |
#define SYSCTL_PWMDIV_64 0x001A0000 // PWM clock is processor clock /64 | |
//***************************************************************************** | |
// | |
// The following are values that can be passed to the SysCtlADCSpeedSet() API | |
// as the ulSpeed parameter, and can be returned by the SyCtlADCSpeedGet() | |
// API. | |
// | |
//***************************************************************************** | |
#define SYSCTL_ADCSPEED_1MSPS 0x00000300 // 1,000,000 samples per second | |
#define SYSCTL_ADCSPEED_500KSPS 0x00000200 // 500,000 samples per second | |
#define SYSCTL_ADCSPEED_250KSPS 0x00000100 // 250,000 samples per second | |
#define SYSCTL_ADCSPEED_125KSPS 0x00000000 // 125,000 samples per second | |
//***************************************************************************** | |
// | |
// The following are values that can be passed to the SysCtlClockSet() API as | |
// the ulConfig parameter. | |
// | |
//***************************************************************************** | |
#define SYSCTL_SYSDIV_1 0x07800000 // Processor clock is osc/pll /1 | |
#define SYSCTL_SYSDIV_2 0x00C00000 // Processor clock is osc/pll /2 | |
#define SYSCTL_SYSDIV_3 0x01400000 // Processor clock is osc/pll /3 | |
#define SYSCTL_SYSDIV_4 0x01C00000 // Processor clock is osc/pll /4 | |
#define SYSCTL_SYSDIV_5 0x02400000 // Processor clock is osc/pll /5 | |
#define SYSCTL_SYSDIV_6 0x02C00000 // Processor clock is osc/pll /6 | |
#define SYSCTL_SYSDIV_7 0x03400000 // Processor clock is osc/pll /7 | |
#define SYSCTL_SYSDIV_8 0x03C00000 // Processor clock is osc/pll /8 | |
#define SYSCTL_SYSDIV_9 0x04400000 // Processor clock is osc/pll /9 | |
#define SYSCTL_SYSDIV_10 0x04C00000 // Processor clock is osc/pll /10 | |
#define SYSCTL_SYSDIV_11 0x05400000 // Processor clock is osc/pll /11 | |
#define SYSCTL_SYSDIV_12 0x05C00000 // Processor clock is osc/pll /12 | |
#define SYSCTL_SYSDIV_13 0x06400000 // Processor clock is osc/pll /13 | |
#define SYSCTL_SYSDIV_14 0x06C00000 // Processor clock is osc/pll /14 | |
#define SYSCTL_SYSDIV_15 0x07400000 // Processor clock is osc/pll /15 | |
#define SYSCTL_SYSDIV_16 0x07C00000 // Processor clock is osc/pll /16 | |
#define SYSCTL_USE_PLL 0x00000000 // System clock is the PLL clock | |
#define SYSCTL_USE_OSC 0x00003800 // System clock is the osc clock | |
#define SYSCTL_XTAL_3_57MHZ 0x00000100 // External crystal is 3.579545MHz | |
#define SYSCTL_XTAL_3_68MHZ 0x00000140 // External crystal is 3.6864MHz | |
#define SYSCTL_XTAL_4MHZ 0x00000180 // External crystal is 4MHz | |
#define SYSCTL_XTAL_4_09MHZ 0x000001C0 // External crystal is 4.096MHz | |
#define SYSCTL_XTAL_4_91MHZ 0x00000200 // External crystal is 4.9152MHz | |
#define SYSCTL_XTAL_5MHZ 0x00000240 // External crystal is 5MHz | |
#define SYSCTL_XTAL_5_12MHZ 0x00000280 // External crystal is 5.12MHz | |
#define SYSCTL_XTAL_6MHZ 0x000002C0 // External crystal is 6MHz | |
#define SYSCTL_XTAL_6_14MHZ 0x00000300 // External crystal is 6.144MHz | |
#define SYSCTL_XTAL_7_37MHZ 0x00000340 // External crystal is 7.3728MHz | |
#define SYSCTL_XTAL_8MHZ 0x00000380 // External crystal is 8MHz | |
#define SYSCTL_XTAL_8_19MHZ 0x000003C0 // External crystal is 8.192MHz | |
#define SYSCTL_OSC_MAIN 0x00000000 // Oscillator source is main osc | |
#define SYSCTL_OSC_INT 0x00000010 // Oscillator source is int. osc | |
#define SYSCTL_OSC_INT4 0x00000020 // Oscillator source is int. osc /4 | |
#define SYSCTL_INT_OSC_DIS 0x00000002 // Disable internal oscillator | |
#define SYSCTL_MAIN_OSC_DIS 0x00000001 // Disable main oscillator | |
//***************************************************************************** | |
// | |
// Prototypes for the APIs. | |
// | |
//***************************************************************************** | |
extern unsigned long SysCtlSRAMSizeGet(void); | |
extern unsigned long SysCtlFlashSizeGet(void); | |
extern tBoolean SysCtlPinPresent(unsigned long ulPin); | |
extern tBoolean SysCtlPeripheralPresent(unsigned long ulPeripheral); | |
extern void SysCtlPeripheralReset(unsigned long ulPeripheral); | |
extern void SysCtlPeripheralEnable(unsigned long ulPeripheral); | |
extern void SysCtlPeripheralDisable(unsigned long ulPeripheral); | |
extern void SysCtlPeripheralSleepEnable(unsigned long ulPeripheral); | |
extern void SysCtlPeripheralSleepDisable(unsigned long ulPeripheral); | |
extern void SysCtlPeripheralDeepSleepEnable(unsigned long ulPeripheral); | |
extern void SysCtlPeripheralDeepSleepDisable(unsigned long ulPeripheral); | |
extern void SysCtlPeripheralClockGating(tBoolean bEnable); | |
extern void SysCtlIntRegister(void (*pfnHandler)(void)); | |
extern void SysCtlIntUnregister(void); | |
extern void SysCtlIntEnable(unsigned long ulInts); | |
extern void SysCtlIntDisable(unsigned long ulInts); | |
extern void SysCtlIntClear(unsigned long ulInts); | |
extern unsigned long SysCtlIntStatus(tBoolean bMasked); | |
extern void SysCtlLDOSet(unsigned long ulVoltage); | |
extern unsigned long SysCtlLDOGet(void); | |
extern void SysCtlLDOConfigSet(unsigned long ulConfig); | |
extern void SysCtlReset(void); | |
extern void SysCtlSleep(void); | |
extern void SysCtlDeepSleep(void); | |
extern unsigned long SysCtlResetCauseGet(void); | |
extern void SysCtlResetCauseClear(unsigned long ulCauses); | |
extern void SysCtlBrownOutConfigSet(unsigned long ulConfig, | |
unsigned long ulDelay); | |
extern void SysCtlClockSet(unsigned long ulConfig); | |
extern unsigned long SysCtlClockGet(void); | |
extern void SysCtlPWMClockSet(unsigned long ulConfig); | |
extern unsigned long SysCtlPWMClockGet(void); | |
extern void SysCtlADCSpeedSet(unsigned long ulSpeed); | |
extern unsigned long SysCtlADCSpeedGet(void); | |
extern void SysCtlIOSCVerificationSet(tBoolean bEnable); | |
extern void SysCtlMOSCVerificationSet(tBoolean bEnable); | |
extern void SysCtlPLLVerificationSet(tBoolean bEnable); | |
extern void SysCtlClkVerificationClear(void); | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif // __SYSCTL_H__ |