board.h
3.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/*
* Copyright (C) 2014 Freie Universität Berlin
* Copyright (C) 2015 Zolertia SL
*
* 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_remote-revb RE-Mote Revision B
* @ingroup boards
* @brief Support for the RE-Mote board Revision B
* @{
*
* @file
* @brief Board specific definitions for the RE-Mote board Revision B
*
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
* @author Antonio Lignan <alinan@zolertia.com>
* @author Sebastian Meiling <s@mlng.net>
*/
#ifndef BOARD_H
#define BOARD_H
#include "cpu.h"
#include "board_common.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @name LED pin definitions
* @{
*/
#define LED0_PIN GPIO_PIN(3, 4)
#define LED1_PIN GPIO_PIN(1, 7)
#define LED2_PIN GPIO_PIN(1, 6)
#define LED0_MASK (1 << 4)
#define LED1_MASK (1 << 7)
#define LED2_MASK (1 << 6)
#define LED0_ON (GPIO_D->DATA |= LED0_MASK)
#define LED0_OFF (GPIO_D->DATA &= ~LED0_MASK)
#define LED0_TOGGLE (GPIO_D->DATA ^= LED0_MASK)
#define LED1_ON (GPIO_B->DATA |= LED1_MASK)
#define LED1_OFF (GPIO_B->DATA &= ~LED1_MASK)
#define LED1_TOGGLE (GPIO_B->DATA ^= LED1_MASK)
#define LED2_ON (GPIO_B->DATA |= LED2_MASK)
#define LED2_OFF (GPIO_B->DATA &= ~LED2_MASK)
#define LED2_TOGGLE (GPIO_B->DATA ^= LED2_MASK)
/** @} */
/**
* @name User button pin definition
* @{
*/
#define BTN0_PIN GPIO_PIN(0, 3)
#define BTN0_MODE GPIO_IN_PU
/** @} */
/**
* @name RF switch controlled by SW
* @brief Controls which RF interface goes to the RP-SMA external antenna
*
* These values configure the required pin to drive the RF antenna switch, to
* either enable the sub-1Ghz RF interface (power-up the CC1200) or the 2.4GHz
* RF interface of the CC2538, both alternatively routed to a RP-SMA connector
* to allow using an external antenna for both cases.
*
* Note it is also possible to enable both RF interfaces at the same time, by
* switching On the sub-1GHz RF interface, and placing an 0Ohm resistor (R19),
* to select between using a ceramic chip antenna (not mounted), or to connect
* and external antenna over a pigtail to the U.Fl connector (not mounted).
*
* RF switch state:
* - LOW: 2.4GHz RF interface on RP-SMA connector, CC1200 powered-off.
* - HIGH: Sub-1GHz RF interface on RP-SMA connector.
*
* @{
*/
#define RF_SWITCH_GPIO GPIO_PD2
#define RF_SWITCH_SUB_GHZ gpio_set(RF_SWITCH_GPIO)
#define RF_SWITCH_2_4_GHZ gpio_clear(RF_SWITCH_GPIO)
#define RF_SWITCH_TOGGLE gpio_toggle(RF_SWITCH_GPIO)
/** @} */
/**
* @name Power management enable pin
* @{
*/
#define SHUTDOWN_EN_GPIO GPIO_PD1
/** @} */
/**
* @name CC1200 SPI and pins definitions
* @{
*/
#define CC1200_SPI_DEV SSI0
#define CC1200_MOSI_GPIO GPIO_PB1
#define CC1200_MISO_GPIO GPIO_PB3
#define CC1200_SCLK_GPIO GPIO_PB2
#define CC1200_CSN_GPIO GPIO_PB5
#define CC1200_RESET_GPIO GPIO_PC7
#define CC1200_GPD0_GPIO GPIO_PB4
#define CC1200_GPD2_GPIO GPIO_PB0
/** @} */
/**
* @name Onboard micro-sd slot pin definitions
* @{
*/
#define SDCARD_SPI_PARAM_SPI SPI_DEV(1)
#define SDCARD_SPI_PARAM_CS GPIO_PIN(0,7)
#define SDCARD_SPI_PARAM_CLK GPIO_PIN(2,4)
#define SDCARD_SPI_PARAM_MOSI GPIO_PIN(2,5)
#define SDCARD_SPI_PARAM_MISO GPIO_PIN(2,6)
#define SDCARD_SPI_PARAM_POWER GPIO_PIN(0,6)
#define SDCARD_SPI_PARAM_POWER_AH false
/** @} */
/**
* @brief Initialize board specific hardware, including clock, LEDs and std-IO
*/
void board_init(void);
#ifdef __cplusplus
} /* end extern "C" */
#endif
#endif /* BOARD_H */
/** @} */