board.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 Freie Universität Berlin
3  * Copyright (C) 2018 HAW Hamburg
4  *
5  * This file is subject to the terms and conditions of the GNU Lesser General
6  * Public License v2.1. See the file LICENSE in the top level directory for more
7  * details.
8  */
9 
10 #pragma once
11 
23 #include "cpu.h"
24 #include "periph/gpio.h"
25 #include "cc2538_eui_primary.h"
26 
27 #ifdef __cplusplus
28  extern "C" {
29 #endif
30 
35 #define LED0_PIN GPIO_PIN(2, 4)
36 #define LED1_PIN GPIO_PIN(2, 7)
37 #define LED2_PIN GPIO_PIN(2, 6)
38 #define LED3_PIN GPIO_PIN(2, 5)
39 #define BTN0_PIN GPIO_PIN(3, 5)
40 #define BTN0_MODE GPIO_IN
41 #define RF24_SWITCH_CC2538_PIN GPIO_PIN(3, 4)
42 #define RF24_SWITCH_AT86RF215_PIN GPIO_PIN(3, 3)
44 #define LED_PORT GPIO_C
45 #define LED0_MASK (1 << 4)
46 #define LED1_MASK (1 << 7)
47 #define LED2_MASK (1 << 6)
48 #define LED3_MASK (1 << 5)
49 
50 #define RF_SWITCH_PORT GPIO_D
51 #define RF24_SWITCH_CC2538_MASK (1 << 4)
52 #define RF24_SWITCH_AT86RF215_MASK (1 << 3)
53 
54 #define LED0_ON (LED_PORT->DATA &= ~LED0_MASK)
55 #define LED0_OFF (LED_PORT->DATA |= LED0_MASK)
56 #define LED0_TOGGLE (LED_PORT->DATA ^= LED0_MASK)
57 
58 #define LED1_ON (LED_PORT->DATA &= ~LED1_MASK)
59 #define LED1_OFF (LED_PORT->DATA |= LED1_MASK)
60 #define LED1_TOGGLE (LED_PORT->DATA ^= LED1_MASK)
61 
62 #define LED2_ON (LED_PORT->DATA &= ~LED2_MASK)
63 #define LED2_OFF (LED_PORT->DATA |= LED2_MASK)
64 #define LED2_TOGGLE (LED_PORT->DATA ^= LED2_MASK)
65 
66 #define LED3_ON (LED_PORT->DATA &= ~LED3_MASK)
67 #define LED3_OFF (LED_PORT->DATA |= LED3_MASK)
68 #define LED3_TOGGLE (LED_PORT->DATA ^= LED3_MASK)
69 
70 #define RF24_SWITCH_CC2538_ON (RF_SWITCH_PORT->DATA &= ~RF24_SWITCH_CC2538_MASK)
71 #define RF24_SWITCH_CC2538_OFF (RF_SWITCH_PORT->DATA |= RF24_SWITCH_CC2538_MASK)
72 #define RF24_SWITCH_CC2538_TOGGLE (RF_SWITCH_PORT->DATA ^= RF24_SWITCH_CC2538_MASK)
73 
74 #define RF24_SWITCH_AT86RF215_ON (RF_SWITCH_PORT->DATA &= ~RF24_SWITCH_AT86RF215_MASK)
75 #define RF24_SWITCH_AT86RF215_OFF (RF_SWITCH_PORT->DATA |= RF24_SWITCH_AT86RF215_MASK)
76 #define RF24_SWITCH_AT86RF215_TOGGLE (RF_SWITCH_PORT->DATA ^= RF24_SWITCH_AT86RF215_MASK)
83 #define CONFIG_CC2538_RF_OBS_SIG_0_PCX 5 /* PC5 */
84 #define CONFIG_CC2538_RF_OBS_SIG_1_PCX 6 /* PC6 */
85 #define CONFIG_CC2538_RF_OBS_SIG_2_PCX 7 /* PC7 */
95 #define OPENWSN_LEDPIN_ERROR LED0_PIN
96 #define OPENWSN_LEDPIN_SYNC LED1_PIN
97 #define OPENWSN_LEDPIN_RADIO LED3_PIN
98 #define OPENWSN_LEDPIN_DEBUG LED2_PIN
108 #define OPENWSN_DEBUGPIN_FRAME GPIO_PIN(0, 7) /* A7 */
109 #define OPENWSN_DEBUGPIN_ISR GPIO_PIN(2, 3) /* C3 */
110 #define OPENWSN_DEBUGPIN_SLOT GPIO_PIN(1, 3) /* B3 */
111 #define OPENWSN_DEBUGPIN_FSM GPIO_PIN(1, 2) /* B2 */
112 #define OPENWSN_DEBUGPIN_TASK GPIO_PIN(1, 1) /* B1 */
113 #define OPENWSN_DEBUGPIN_RADIO GPIO_PIN(1, 0) /* B0 */
120 #define AT86RF215_PARAM_SPI SPI_DEV(0)
121 #define AT86RF215_PARAM_CS GPIO_PIN(0, 3) /* A3 */
122 #define AT86RF215_PARAM_INT GPIO_PIN(3, 0) /* D0 */
123 #define AT86RF215_PARAM_RESET GPIO_PIN(3, 1) /* D1 */
124 
127 #ifndef CONFIG_AT86RF215_RESET_PULSE_WIDTH_US
128 #define CONFIG_AT86RF215_RESET_PULSE_WIDTH_US (50000u)
129 #endif
136 #define XTIMER_WIDTH (16)
137 #define XTIMER_BACKOFF (50)
138 #define XTIMER_ISR_BACKOFF (40)
145 #ifndef UPDATE_CCA
146 #define UPDATE_CCA (1)
147 #endif
148 
149 #define CCA_BACKDOOR_ENABLE (1)
150 #define CCA_BACKDOOR_PORT_A_PIN (6)
151 #define CCA_BACKDOOR_ACTIVE_LEVEL (0)
153 #define BOOT_PIN GPIO_PIN(0, CCA_BACKDOOR_PORT_A_PIN)
156 #ifdef __cplusplus
157 } /* end extern "C" */
158 #endif
159 
CC2538 EUI-64 provider.
Low-level GPIO peripheral driver interface definitions.