From 6b14a91cd88971a396a87058baef463cc097e9fe Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 18 Oct 2010 21:57:10 +0000 Subject: Finish clocking logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3040 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/configs/avr32dev1/include/board.h | 96 ++++++++++++++++++++++++++------- 1 file changed, 76 insertions(+), 20 deletions(-) (limited to 'nuttx/configs/avr32dev1') diff --git a/nuttx/configs/avr32dev1/include/board.h b/nuttx/configs/avr32dev1/include/board.h index 7c6371e1d..ec61c5c1b 100755 --- a/nuttx/configs/avr32dev1/include/board.h +++ b/nuttx/configs/avr32dev1/include/board.h @@ -51,44 +51,100 @@ ************************************************************************************/ /* Clocking *************************************************************************/ -/* #define AVR32_FRCOSC 15200 RCOsc frequency in Hz */ +/* Oscillator setup: RCOSC, OSC32, OSC0, OSC1. Only RCOSC, OSC0, or PLL0 can drive + * the main clock. + */ + +/* #define AVR32_FRCOSC 15200 RCOSC frequency in Hz */ #define AVR32_FOSC32 32768 /* OSC32 frequency in Hz */ -#define AVR32_OSC32STARTUP 3 /* OSC32 startup time in RCOsc periods */ +#define AVR32_OSC32STARTUP 3 /* OSC32 startup time in RCOSC periods */ #define AVR32_FOSC0 12000000 /* OSC0 frequency in Hz */ -#define AVR32_OSC0STARTUP 3 /* OSC0 startup time in RCOsc periods. +#define AVR32_OSC0STARTUP 3 /* OSC0 startup time in RCOSC periods. /* #define AVR32_FOSC1 12000000 OSC1 frequency: Hz. - * #define AVR32_OSC1STARTUP 3 OSC1 startup time in RCOsc periods. + * #define AVR32_OSC1STARTUP 3 OSC1 startup time in RCOSC periods. + */ + +/* PLL setup + * + * FOSC0 MUL DIV PLL DIV2_EN CPU_CLOCK PBA_CLOCK COMMENT + * (MHz) (MHz) (MHz) (MHz) + * 12 15 1 192 1 12 12 + * 12 9 3 40 1 20 20 PLL out of spec + * 12 15 1 192 1 24 12 + * 12 9 1 120 1 30 15 + * 12 9 3 40 0 40 20 PLL out of spec + * 12 15 1 192 1 48 12 + * 12 15 1 192 1 48 24 + * 12 8 1 108 1 54 27 + * 12 9 1 120 1 60 15 + * 12 9 1 120 1 60 30 + * 12 10 1 132 1 66 16.5 */ -/* Select OSC0 as the main clock */ +#define AVR32_CLOCK_PLL0_OSC0 1 +#undef AVR32_CLOCK_PLL0_OSC1 +#define AVR32_PLL0_MUL 15 +#define AVR32_PLL0_DIV 1 +#define AVR32_PLL0_DIV2 1 +#define AVR32_PLL0_WBWM 0 +#define AVR32_PLL0_FREQ 192000000 + +/* Set PLL1 @ 96 MHz from OSC0: 12MHz*(7+1)/1 = 96MHz */ + +#define AVR32_CLOCK_PLL1_OSC0 1 +#undef AVR32_CLOCK_PLL1_OSC1 +#define AVR32_PLL1_MUL 7 +#define AVR32_PLL1_DIV 1 +#define AVR32_PLL1_DIV2 1 +#define AVR32_PLL1_WBWM 0 +#define AVR32_PLL1_FREQ 96000000 + +/* Clock divider setup */ + +#define AVR32_CKSEL_CPUDIV 0 +#define AVR32_CKSEL_HSBDIV 0 +#define AVR32_CKSEL_PBADIV 0 +#define AVR32_CKSEL_PBBDIV 0 + +/* GCLK_USBB */ + +#undef AVR32_CLOCK_USB_PLL0 +#define AVR32_CLOCK_USB_PLL1 1 +#undef AVR32_CLOCK_USB_OSC0 +#undef AVR32_CLOCK_USB_OSC1 +#define AVR32_CLOCK_USB_DIV 0 + +/* Main Clock settup: Select OSC0 as the main clock */ -#define AVR32_CLOCK_OSC0 1 +#define AVR32_CLOCK_OSC0 1 +#undef AVR32_CLOCK_OSC1 #undef AVR32_CLOCK_PLL0 +#undef AVR32_CLOCK_PLL1 -#define AVR32_CPU_CLOCK AVR32_FOSC0 -#define AVR32_PBA_CLOCK AVR32_FOSC0 +#define AVR32_CPU_CLOCK AVR32_FOSC0 +#define AVR32_PBA_CLOCK AVR32_FOSC0 /* Pin muliplexing selecion *********************************************************/ -#define PINMUX_USART1_RXD PINMUX_USART1_RXD_1 -#define PINMUX_USART1_TXD PINMUX_USART1_TXD_1 +#define PINMUX_USART1_RXD PINMUX_USART1_RXD_1 +#define PINMUX_USART1_TXD PINMUX_USART1_TXD_1 /* LED definitions ******************************************************************/ /* The AVR32DEV1 board has 3 LEDs, two of which can be controlled through GPIO pins */ - /* ON OFF */ - /* LED1 LED2 LED1 LED2 */ -#define LED_STARTED 0 /* OFF OFF OFF OFF */ -#define LED_HEAPALLOCATE 0 /* OFF OFF OFF OFF */ -#define LED_IRQSENABLED 0 /* OFF OFF OFF OFF */ -#define LED_STACKCREATED 1 /* ON OFF OFF OFF */ -#define LED_INIRQ 2 /* ON ON ON OFF */ -#define LED_SIGNAL 2 /* ON ON ON OFF */ -#define LED_ASSERTION 2 /* ON ON ON OFF */ -#define LED_PANIC 2 /* ON ON ON OFF */ + /* ON OFF */ + /* LED1 LED2 LED1 LED2 */ +#define LED_STARTED 0 /* OFF OFF OFF OFF */ +#define LED_HEAPALLOCATE 0 /* OFF OFF OFF OFF */ +#define LED_IRQSENABLED 0 /* OFF OFF OFF OFF */ +#define LED_STACKCREATED 1 /* ON OFF OFF OFF */ +#define LED_INIRQ 2 /* ON ON ON OFF */ +#define LED_SIGNAL 2 /* ON ON ON OFF */ +#define LED_ASSERTION 2 /* ON ON ON OFF */ +#define LED_PANIC 2 /* ON ON ON OFF */ /* Button definitions ***************************************************************/ /* The AVR32DEV1 board has 3 BUTTONs, two of which can be sensed through GPIO pins. */ -- cgit v1.2.3