forked from RIOT-OS/RIOT
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request RIOT-OS#4949 from jia200x/nucleo-f072
board: added support for nucleo f072
- Loading branch information
Showing
17 changed files
with
6,276 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
MODULE = board | ||
|
||
include $(RIOTBASE)/Makefile.base |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# Put defined MCU peripherals here (in alphabetical order) | ||
FEATURES_PROVIDED += periph_cpuid | ||
FEATURES_PROVIDED += periph_gpio | ||
FEATURES_PROVIDED += periph_rtc | ||
FEATURES_PROVIDED += periph_timer | ||
FEATURES_PROVIDED += periph_uart | ||
|
||
# Various other features (if any) | ||
FEATURES_PROVIDED += cpp | ||
|
||
# The board MPU family (used for grouping by the CI system) | ||
FEATURES_MCU_GROUP = cortex_m0_1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
## the cpu to build for | ||
export CPU = stm32f0 | ||
export CPU_MODEL = stm32f072rb | ||
|
||
#define the default port depending on the host OS | ||
PORT_LINUX ?= /dev/ttyACM0 | ||
PORT_DARWIN ?= $(shell ls -1 /dev/tty.usbmodem* | head -n 1) | ||
|
||
# setup serial terminal | ||
include $(RIOTBOARD)/Makefile.include.serial | ||
|
||
# this board uses openocd | ||
include $(RIOTBOARD)/Makefile.include.openocd | ||
|
||
include $(RIOTBOARD)/nucleo-common/Makefile.include |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
/* | ||
* Copyright (C) 2015 Freie Universität Berlin | ||
* | ||
* This file is subject to the terms and conditions of the GNU Lesser | ||
* General Public License v2.1. See the file LICENSE in the top level | ||
* directory for more details. | ||
*/ | ||
|
||
/** | ||
* @ingroup boards_nucleo-f072 | ||
* @{ | ||
* | ||
* @file | ||
* @brief Board specific implementations for the nucleo-f072 board | ||
* | ||
* @author Hauke Petersen <[email protected]> | ||
* @author José Alamos <[email protected]> | ||
* | ||
* @} | ||
*/ | ||
|
||
#include "board.h" | ||
#include "periph/gpio.h" | ||
|
||
|
||
void board_init(void) | ||
{ | ||
/* initialize the boards LED */ | ||
gpio_init(LED0_PIN, GPIO_OUT); | ||
|
||
/* initialize the CPU */ | ||
cpu_init(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
source [find board/st_nucleo_f0.cfg] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
/* | ||
* Copyright (C) 2015 Freie Universität Berlin | ||
* | ||
* This file is subject to the terms and conditions of the GNU Lesser | ||
* General Public License v2.1. See the file LICENSE in the top level | ||
* directory for more details. | ||
*/ | ||
|
||
/** | ||
* @defgroup boards_nucleo-f072 Nucleo-F072 | ||
* @ingroup boards | ||
* @brief Board specific files for the nucleo-f072 board | ||
* @{ | ||
* | ||
* @file | ||
* @brief Board specific definitions for the nucleo-f072 board | ||
* | ||
* @author Hauke Petersen <[email protected]> | ||
* @author Mohmmad Ayman <[email protected]> | ||
* @author José Alamos <[email protected]> | ||
*/ | ||
|
||
#ifndef BOARD_H_ | ||
#define BOARD_H_ | ||
|
||
#include <stdint.h> | ||
#include "board_common.h" | ||
|
||
#include "cpu.h" | ||
#include "periph_conf.h" | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
|
||
/** | ||
* @brief Initialize board specific hardware, including clock, LEDs and std-IO | ||
*/ | ||
void board_init(void); | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif /* BOARD_H_ */ | ||
/** @} */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
/* | ||
* Copyright (C) 2015 Freie Universität Berlin | ||
* | ||
* This file is subject to the terms and conditions of the GNU Lesser | ||
* General Public License v2.1. See the file LICENSE in the top level | ||
* directory for more details. | ||
*/ | ||
|
||
/** | ||
* @ingroup boards_nucleo-f072 | ||
* @{ | ||
* | ||
* @file | ||
* @brief Peripheral MCU configuration for the nucleo-f072 board | ||
* | ||
* @author Hauke Petersen <[email protected]> | ||
* @author José Ignacio Alamos <[email protected]> | ||
*/ | ||
|
||
#ifndef PERIPH_CONF_H_ | ||
#define PERIPH_CONF_H_ | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/** | ||
* @name Clock system configuration | ||
* @{ | ||
*/ | ||
#define CLOCK_HSE (8000000U) /* external oscillator */ | ||
#define CLOCK_CORECLOCK (48000000U) /* desired core clock frequency */ | ||
|
||
/* the actual PLL values are automatically generated */ | ||
#define CLOCK_PLL_MUL (CLOCK_CORECLOCK / CLOCK_HSE) | ||
/** @} */ | ||
|
||
/** | ||
* @brief Timer configuration | ||
* @{ | ||
*/ | ||
#define TIMER_NUMOF (1U) | ||
#define TIMER_0_EN 1 | ||
#define TIMER_IRQ_PRIO 1 | ||
|
||
/* Timer 0 configuration */ | ||
#define TIMER_0_DEV TIM2 | ||
#define TIMER_0_CHANNELS 4 | ||
#define TIMER_0_FREQ (CLOCK_CORECLOCK) | ||
#define TIMER_0_MAX_VALUE (0xffffffff) | ||
#define TIMER_0_CLKEN() (RCC->APB1ENR |= RCC_APB1ENR_TIM2EN) | ||
#define TIMER_0_IRQ_CHAN TIM2_IRQn | ||
#define TIMER_0_ISR isr_tim2 | ||
/** @} */ | ||
|
||
/** | ||
* @brief UART configuration | ||
* @} | ||
*/ | ||
#define UART_NUMOF (2U) | ||
#define UART_0_EN 1 | ||
#define UART_1_EN 1 | ||
#define UART_IRQ_PRIO 1 | ||
|
||
/* UART 0 device configuration */ | ||
#define UART_0_DEV USART2 | ||
#define UART_0_CLKEN() (RCC->APB1ENR |= RCC_APB1ENR_USART2EN) | ||
#define UART_0_CLKDIS() (RCC->APB1ENR &= (~RCC_APB1ENR_USART2EN)) | ||
#define UART_0_IRQ USART2_IRQn | ||
#define UART_0_ISR isr_usart2 | ||
/* UART 0 pin configuration */ | ||
#define UART_0_PORT GPIOA | ||
#define UART_0_PORT_CLKEN() (RCC->AHBENR |= RCC_AHBENR_GPIOAEN) | ||
#define UART_0_RX_PIN 3 | ||
#define UART_0_TX_PIN 2 | ||
#define UART_0_AF 1 | ||
|
||
/* UART 1 device configuration */ | ||
#define UART_1_DEV USART1 | ||
#define UART_1_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_USART1EN) | ||
#define UART_1_CLKDIS() (RCC->APB2ENR &= (~RCC_APB2ENR_USART1EN)) | ||
#define UART_1_IRQ USART1_IRQn | ||
#define UART_1_ISR isr_usart1 | ||
/* UART 1 pin configuration */ | ||
#define UART_1_PORT GPIOB | ||
#define UART_1_PORT_CLKEN() (RCC->AHBENR |= RCC_AHBENR_GPIOBEN) | ||
#define UART_1_RX_PIN 7 | ||
#define UART_1_TX_PIN 6 | ||
#define UART_1_AF 0 | ||
/** @} */ | ||
|
||
|
||
/** | ||
* @brief ADC configuration | ||
* @{ | ||
*/ | ||
#define ADC_CONFIG { \ | ||
{ GPIO_PIN(PORT_A, 0), 0 },\ | ||
{ GPIO_PIN(PORT_A, 1), 1 },\ | ||
{ GPIO_PIN(PORT_A, 4), 4 },\ | ||
{ GPIO_PIN(PORT_B, 0), 8 },\ | ||
{ GPIO_PIN(PORT_C, 1), 11 },\ | ||
{ GPIO_PIN(PORT_C, 0), 10 } \ | ||
} | ||
|
||
#define ADC_NUMOF (6) | ||
|
||
/** @} */ | ||
|
||
|
||
/** | ||
* @brief DAC configuration | ||
* @{ | ||
*/ | ||
#define DAC_NUMOF (0) | ||
/** @} */ | ||
|
||
/** | ||
* @name RTC configuration | ||
* @{ | ||
*/ | ||
/** | ||
* Nucleos with MB1136 C-02 or MB1136 C-03 -sticker on it have the required LSE | ||
* oscillator provided on the X2 slot. | ||
* See Nucleo User Manual UM1724 section 5.6.2. | ||
*/ | ||
#define RTC_NUMOF (1U) | ||
/** @} */ | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif /* PERIPH_CONF_H_ */ | ||
/** @} */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.