mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
184 lines
3.7 KiB
C
184 lines
3.7 KiB
C
/*
|
|
* Copyright (C) 2014 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_msba2
|
|
* @{
|
|
*
|
|
* @file
|
|
* @brief MSB-A2 peripheral configuration
|
|
*
|
|
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
|
|
*/
|
|
|
|
#ifndef PERIPH_CONF_H
|
|
#define PERIPH_CONF_H
|
|
|
|
#include "periph_cpu.h"
|
|
#include "kernel_defines.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @name Clock configuration
|
|
* @{
|
|
*/
|
|
#define XTAL_HZ (16000000U) /* the board provides a 16 MHz XTAL */
|
|
|
|
#define CLOCK_CORECLOCK (72000000U) /* the msba2 runs with 72MHz */
|
|
|
|
#define CLOCK_PCLK (CLOCK_CORECLOCK)
|
|
/** @} */
|
|
|
|
/**
|
|
* @name Timer configuration, select a number from 1 to 4
|
|
* @{
|
|
*/
|
|
#define TIMER_NUMOF (1U)
|
|
/** @} */
|
|
|
|
/**
|
|
* @name PWM device and pinout configuration
|
|
*
|
|
* Currently, we only support a single device and 3 channels, the implementation
|
|
* is fixed on PWM1.
|
|
* @{
|
|
*/
|
|
#define PWM_NUMOF (1U)
|
|
|
|
/* PWM_0 device configuration */
|
|
#define PWM_CHANNELS (3)
|
|
#define PWM_CH0 (3)
|
|
#define PWM_CH0_MR PWM1MR3
|
|
#define PWM_CH1 (4)
|
|
#define PWM_CH1_MR PWM1MR4
|
|
#define PWM_CH2 (5)
|
|
#define PWM_CH2_MR PWM1MR5
|
|
/* PWM_0 pin configuration */
|
|
#define PWM_PORT PINSEL4
|
|
#define PWM_CH0_PIN (2)
|
|
#define PWM_CH1_PIN (3)
|
|
#define PWM_CH2_PIN (4)
|
|
#define PWM_FUNC (1)
|
|
/** @} */
|
|
|
|
/**
|
|
* @name UART configuration
|
|
* @{
|
|
*/
|
|
static const uart_conf_t uart_config[] = {
|
|
{
|
|
.dev = UART0,
|
|
.irq_prio_rx = 6,
|
|
.pinsel_rx = 0,
|
|
.pinsel_tx = 0,
|
|
.pinsel_msk_rx = BIT4,
|
|
.pinsel_msk_tx = BIT6,
|
|
},
|
|
{
|
|
.dev = UART1,
|
|
.irq_prio_rx = 6,
|
|
.pinsel_rx = 4,
|
|
.pinsel_tx = 4,
|
|
.pinsel_msk_rx = BIT3,
|
|
.pinsel_msk_tx = BIT1,
|
|
},
|
|
{
|
|
.dev = UART2,
|
|
.irq_prio_rx = 6,
|
|
.pinsel_rx = 0,
|
|
.pinsel_tx = 0,
|
|
.pinsel_msk_rx = BIT22,
|
|
.pinsel_msk_tx = BIT20,
|
|
},
|
|
{
|
|
.dev = UART3,
|
|
.irq_prio_rx = 6,
|
|
.pinsel_rx = 9,
|
|
.pinsel_tx = 9,
|
|
.pinsel_msk_rx = BIT26 | BIT27,
|
|
.pinsel_msk_tx = BIT24 | BIT25,
|
|
},
|
|
};
|
|
|
|
#define UART_NUMOF (4)
|
|
/** @} */
|
|
|
|
/**
|
|
* @name SPI configuration
|
|
* @{
|
|
*/
|
|
static const spi_conf_t spi_config[] = {
|
|
{
|
|
.dev = SPI0,
|
|
.pinsel_mosi = 3,
|
|
.pinsel_miso = 3,
|
|
.pinsel_clk = 3,
|
|
.pinsel_msk_mosi = (BIT16 | BIT17),
|
|
.pinsel_msk_miso = (BIT14 | BIT15),
|
|
.pinsel_msk_clk = (BIT8 | BIT9),
|
|
},
|
|
};
|
|
|
|
#define SPI_NUMOF (1)
|
|
/** @} */
|
|
|
|
/**
|
|
* @name ADC configuration
|
|
* @{
|
|
*/
|
|
static const adc_conf_t adc_config[] = {
|
|
{ /* P0.23 */
|
|
.chan = 0,
|
|
.pinsel = 1,
|
|
.pinsel_msk = BIT14,
|
|
},
|
|
{ /* P0.24 */
|
|
.chan = 1,
|
|
.pinsel = 1,
|
|
.pinsel_msk = BIT16,
|
|
},
|
|
{ /* P0.25 */
|
|
.chan = 2,
|
|
.pinsel = 1,
|
|
.pinsel_msk = BIT18,
|
|
},
|
|
};
|
|
|
|
#define ADC_NUMOF ARRAY_SIZE(adc_config)
|
|
/** @} */
|
|
|
|
/**
|
|
* @name I2C configuration
|
|
* @{
|
|
*/
|
|
static const i2c_conf_t i2c_config[] = {
|
|
{ /* JP3 */
|
|
.dev = I2C2,
|
|
.speed = I2C_SPEED_NORMAL,
|
|
.irq_prio = 5,
|
|
.pinsel_sda = 0,
|
|
.pinsel_scl = 0,
|
|
.pinsel_msk_sda = BIT21, /* P0.10 */
|
|
.pinsel_msk_scl = BIT23, /* P0.11 */
|
|
},
|
|
};
|
|
|
|
/* used in arithmetic preprocessor expression, so no ARRAY_SIZE() */
|
|
#define I2C_NUMOF (1)
|
|
/** @} */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* PERIPH_CONF_H */
|
|
/** @} */
|