mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
boards: added support for SiLabs SLWSTK6220A
This commit is contained in:
parent
e17ab3df4a
commit
20a5571640
4
boards/slwstk6220a/Makefile
Normal file
4
boards/slwstk6220a/Makefile
Normal file
@ -0,0 +1,4 @@
|
||||
# tell the Makefile.base which module to build
|
||||
MODULE = $(BOARD)_base
|
||||
|
||||
include $(RIOTBASE)/Makefile.base
|
0
boards/slwstk6220a/Makefile.dep
Normal file
0
boards/slwstk6220a/Makefile.dep
Normal file
8
boards/slwstk6220a/Makefile.features
Normal file
8
boards/slwstk6220a/Makefile.features
Normal file
@ -0,0 +1,8 @@
|
||||
FEATURES_PROVIDED += cpp
|
||||
|
||||
FEATURES_PROVIDED += periph_cpuid
|
||||
FEATURES_PROVIDED += periph_gpio
|
||||
FEATURES_PROVIDED += periph_timer
|
||||
FEATURES_PROVIDED += periph_uart
|
||||
|
||||
FEATURES_MCU_GROUP = cortex_m4
|
20
boards/slwstk6220a/Makefile.include
Normal file
20
boards/slwstk6220a/Makefile.include
Normal file
@ -0,0 +1,20 @@
|
||||
# define the cpu used by WSTK6220
|
||||
export CPU = ezr32wg
|
||||
export CPU_MODEL = ezr32wg330f256r60
|
||||
|
||||
# set default port depending on operating system
|
||||
PORT_LINUX ?= /dev/ttyACM0
|
||||
PORT_DARWIN ?= $(shell ls -1 /dev/tty.usbmodem* | head -n 1)
|
||||
|
||||
# setup the boards dependencies
|
||||
include $(RIOTBOARD)/$(BOARD)/Makefile.dep
|
||||
|
||||
# setup JLink for flashing
|
||||
export JLINK_DEVICE := ezr32wg330f256
|
||||
include $(RIOTBOARD)/Makefile.include.jlink
|
||||
|
||||
# setup serial terminal
|
||||
include $(RIOTBOARD)/Makefile.include.serial
|
||||
|
||||
# include cortex defaults
|
||||
include $(RIOTBOARD)/Makefile.include.cortexm_common
|
36
boards/slwstk6220a/board.c
Normal file
36
boards/slwstk6220a/board.c
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* 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_wstk6220
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Board specific implementations WSTK6220 board
|
||||
*
|
||||
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
|
||||
*
|
||||
* @}
|
||||
*/
|
||||
|
||||
#include "board.h"
|
||||
#include "cpu.h"
|
||||
#include "periph/gpio.h"
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
/* enable access to the evaluation board controller chip. Without this, the
|
||||
* board controller does not forward the UART output to the USB port */
|
||||
gpio_init(BC_PIN, GPIO_DIR_OUT, GPIO_NOPULL);
|
||||
gpio_set(BC_PIN);
|
||||
/* initialize the boards LEDs */
|
||||
gpio_init(LED0_PIN, GPIO_DIR_OUT, GPIO_NOPULL);
|
||||
gpio_init(LED1_PIN, GPIO_DIR_OUT, GPIO_NOPULL);
|
||||
/* initialize the CPU */
|
||||
cpu_init();
|
||||
}
|
115
boards/slwstk6220a/include/board.h
Normal file
115
boards/slwstk6220a/include/board.h
Normal file
@ -0,0 +1,115 @@
|
||||
/*
|
||||
* 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_wstk6220 Silicon Labs WSTK6220 Eval Kit
|
||||
* @ingroup boards
|
||||
* @brief Support for the Silicon Labs WSTK6220 evaluation kit
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Board specific definitions for the WSTK6220 evaluation kit
|
||||
*
|
||||
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H
|
||||
#define BOARD_H
|
||||
|
||||
#include "cpu.h"
|
||||
#include "periph_conf.h"
|
||||
#include "periph_cpu.h"
|
||||
#include "periph/gpio.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Define the nominal CPU core clock in this board
|
||||
*/
|
||||
#define F_CPU (CLOCK_CORECLOCK)
|
||||
|
||||
/**
|
||||
* @brief Assign the hardware timer
|
||||
*/
|
||||
#define HW_TIMER TIMER_DEV(0)
|
||||
|
||||
/**
|
||||
* @brief Define UART device and baudrate for STDIO
|
||||
* @{
|
||||
*/
|
||||
#define STDIO UART_DEV(0)
|
||||
#define STDIO_BAUDRATE (115200U)
|
||||
#define STDIO_RX_BUFSIZE (64U)
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @brief Connection to the on-board temperature/humidity sensor (Si7021)
|
||||
* @{
|
||||
*/
|
||||
#define SI7021_I2C (I2C_0)
|
||||
#define SI7021_ADDR (0) /* TODO */
|
||||
#define SI7021_EN_PIN GPIO_PIN(PF,8)
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @brief GPIO pin for enabling communication through the board controller
|
||||
*/
|
||||
#define BC_PIN GPIO_PIN(PA,12)
|
||||
|
||||
/**
|
||||
* @brief User button pin definitions
|
||||
* @{
|
||||
*/
|
||||
#define PB0_PIN GPIO_PIN(PE,3)
|
||||
#define PB1_PIN GPIO_PIN(PE,2)
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @brief LED pin definitions
|
||||
* @{
|
||||
*/
|
||||
#define LED0_PIN GPIO_PIN(PF,6)
|
||||
#define LED1_PIN GPIO_PIN(PF,7)
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @brief Macros for controlling the on-board LEDs.
|
||||
* @{
|
||||
*/
|
||||
#define LED0_ON gpio_set(LED0_PIN)
|
||||
#define LED0_OFF gpio_clear(LED0_PIN)
|
||||
#define LED0_TOGGLE gpio_toggle(LED0_PIN)
|
||||
#define LED1_ON gpio_set(LED1_PIN)
|
||||
#define LED1_OFF gpio_clear(LED1_PIN)
|
||||
#define LED1_TOGGLE gpio_toggle(LED1_PIN)
|
||||
|
||||
/* for compatability to other boards */
|
||||
#define LED_GREEN_ON LED1_ON
|
||||
#define LED_GREEN_OFF LED1_OFF
|
||||
#define LED_GREEN_TOGGLE LED1_TOGGLE
|
||||
#define LED_ORANGE_ON /* not available */
|
||||
#define LED_ORANGE_OFF /* not available */
|
||||
#define LED_ORANGE_TOGGLE /* not available */
|
||||
#define LED_RED_ON LED0_ON
|
||||
#define LED_RED_OFF LED0_OFF
|
||||
#define LED_RED_TOGGLE LED0_TOGGLE
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @brief Initialize board specific hardware, including clock, LEDs and std-IO
|
||||
*/
|
||||
void board_init(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* BOARD_H */
|
||||
/** @} */
|
93
boards/slwstk6220a/include/periph_conf.h
Normal file
93
boards/slwstk6220a/include/periph_conf.h
Normal file
@ -0,0 +1,93 @@
|
||||
/*
|
||||
* 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_wstk6220
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Configuration of CPU peripherals for the WSTK6220 board
|
||||
*
|
||||
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
|
||||
*/
|
||||
|
||||
#ifndef PERIPH_CONF_H
|
||||
#define PERIPH_CONF_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "cpu.h"
|
||||
#include "periph_cpu.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Clock configuration
|
||||
* @{
|
||||
*/
|
||||
#define CLOCK_RCOSC (14000000) /* internal RC oscillator speed */
|
||||
/* external oscillator speed, comment out if you want to use the internal RC
|
||||
* oscillator circuit as a clock source */
|
||||
#define CLOCK_HFXO (48000000U)
|
||||
/* define clock dividers */
|
||||
#define CLOCK_HFCORECLKDIV (1U) /* core clock divider */
|
||||
#define CLOCK_HFPERCLKDIV (1U) /* peripheral clock divider */
|
||||
|
||||
/* generate the actual clock values */
|
||||
#ifdef CLOCK_HFXO
|
||||
#define CLOCK_CORECLOCK (CLOCK_HFXO / CLOCK_HFCORECLKDIV)
|
||||
#else
|
||||
#define CLOCK_CORECLOCK (CLOCK_RCOSC / CLOCK_HFCORECLKDIV)
|
||||
#endif
|
||||
#define CLOCK_HFPERCLK (CLOCK_CORECLOCK / CLOCK_HFPERCLKDIV)
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @brief Timer configuration
|
||||
* @{
|
||||
*/
|
||||
static const timer_conf_t timer_config[] = {
|
||||
{
|
||||
TIMER0, /* lower numbered timer, used as pre-scaler */
|
||||
TIMER1, /* higher numbered timer, this is the one */
|
||||
5, /* pre-scaler bit in the CMU register */
|
||||
TIMER1_IRQn, /* IRQn of the higher numbered driver */
|
||||
}
|
||||
};
|
||||
|
||||
#define TIMER_0_ISR isr_timer1
|
||||
#define TIMER_0_MAX_VALUE (0xffff) /* 16-bit timer */
|
||||
#define TIMER_NUMOF (sizeof(timer_config) / sizeof(timer_config[0]))
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @brief UART configuration
|
||||
* @{
|
||||
*/
|
||||
static const uart_conf_t uart_config[] = {
|
||||
{
|
||||
USART2, /* device */
|
||||
GPIO_PIN(PB,4), /* RX pin */
|
||||
GPIO_PIN(PB,3), /* TX pin */
|
||||
1, /* AF location */
|
||||
2, /* bit in CMU enable register */
|
||||
USART2_RX_IRQn /* IRQ base channel */
|
||||
},
|
||||
};
|
||||
|
||||
#define UART_0_ISR_RX isr_usart2_rx
|
||||
#define UART_NUMOF (sizeof(uart_config) / sizeof(uart_config[0]))
|
||||
/** @} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* PERIPH_CONF_H */
|
||||
/** @} */
|
Loading…
Reference in New Issue
Block a user