arduino_board.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2019 Kees Bakker
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
19 #ifndef ARDUINO_BOARD_H
20 #define ARDUINO_BOARD_H
21 
22 #include "periph/gpio.h"
23 #include "periph/adc.h"
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
32 #define ARDUINO_LED (15)
33 
37 #ifndef ARDUINO_UART_DEV
38 #define ARDUINO_UART_DEV UART_UNDEF
39 #endif
40 
44 static const gpio_t arduino_pinmap[] = {
45  /* 0..3 Main IO Pins (D0-D3) Digital Properties */
46  GPIO_PIN(PA, 2),
47  GPIO_PIN(PA, 3),
48  GPIO_PIN(PB, 8),
49  GPIO_PIN(PB, 9),
50 
51  /* 4..5 Other Digital Pins */
52  GPIO_PIN(PA, 21),
53  GPIO_PIN(PA, 20),
54 
55  /* 6..13 Main IO Pins (D6-D13) Digital Properties */
56  GPIO_PIN(PA, 6),
57  GPIO_PIN(PA, 7),
58  GPIO_PIN(PA, 8),
59  GPIO_PIN(PA, 9),
60  GPIO_PIN(PA, 10),
61  GPIO_PIN(PA, 11),
62  GPIO_PIN(PB, 2),
63  GPIO_PIN(PB, 3),
64 
65  /* 14..21 Other Digital Pins */
66  GPIO_PIN(PA, 15),
67  GPIO_PIN(PB, 10),
68  GPIO_PIN(PB, 11),
69  GPIO_PIN(PA, 14),
70  GPIO_PIN(PA, 18),
71  GPIO_PIN(PA, 16),
72  GPIO_PIN(PB, 22),
73  GPIO_PIN(PA, 17),
74 
75  /* 22..33 Main IO Pins Analog Properties */
76  GPIO_PIN(PA, 2),
77  GPIO_PIN(PA, 3),
78  GPIO_PIN(PB, 8),
79  GPIO_PIN(PB, 9),
80  GPIO_PIN(PA, 6),
81  GPIO_PIN(PA, 7),
82  GPIO_PIN(PA, 8),
83  GPIO_PIN(PA, 9),
84  GPIO_PIN(PA, 10),
85  GPIO_PIN(PA, 11),
86  GPIO_PIN(PB, 2),
87  GPIO_PIN(PB, 3),
88 
89  /* 34..36 Other Analog Pins */
90  GPIO_PIN(PA, 2),
91  GPIO_PIN(PA, 3),
92  GPIO_PIN(PA, 5),
93 
94  /* 37..38 USB Pins */
95  GPIO_PIN(PA, 24),
96  GPIO_PIN(PA, 25),
97 
98  /* 39..40 Serial */
99  GPIO_PIN(PB, 3),
100  GPIO_PIN(PB, 2),
101 
102  /* 41..42 Serial1 */
103  GPIO_PIN(PA, 13),
104  GPIO_PIN(PA, 12),
105 
106  /* 43..46 SPI */
107  GPIO_PIN(PA, 8),
108  GPIO_PIN(PA, 9),
109  GPIO_PIN(PA, 10),
110  GPIO_PIN(PA, 11),
111 
112  /* 47..48 I2C */
113  GPIO_PIN(PA, 22),
114  GPIO_PIN(PA, 23),
115 
116  /* 49 LoRa RESET */
117  GPIO_PIN(PA, 4),
118 
119  /* 50 MAG_INT */
120  GPIO_PIN(PA, 19),
121 };
122 
126 static const adc_t arduino_analog_map[] = {
127  ADC_LINE(0),
128  ADC_LINE(1),
129  ADC_LINE(2),
130  ADC_LINE(3),
131  ADC_LINE(4),
132  ADC_LINE(5),
133  ADC_LINE(6),
134  ADC_LINE(7),
135  ADC_LINE(8),
136  ADC_LINE(9),
137  ADC_LINE(10),
138 };
139 
140 #ifdef __cplusplus
141 }
142 #endif
143 
144 #endif /* ARDUINO_BOARD_H */
#define GPIO_PIN(x, y)
Define a CPU specific GPIO pin generator macro.
Definition: periph_cpu.h:35
Low-level ADC peripheral driver interface definitions.
Low-level GPIO peripheral driver interface definitions.
uint_fast8_t adc_t
Define default ADC type identifier.
Definition: adc.h:72
#define ADC_LINE(x)
Default ADC line access macro.
Definition: adc.h:86
@ PB
port B
@ PA
port A
static const adc_t arduino_analog_map[]
Look-up table for the Arduino's analog pins.
static const gpio_t arduino_pinmap[]
Look-up table for the Arduino's digital pins.
Definition: arduino_board.h:44