Skip to content

Commit cee150d

Browse files
committed
boards/common/seeedstudio-xiao-nrf52840: add macro docs
1 parent 64ecd32 commit cee150d

4 files changed

Lines changed: 91 additions & 89 deletions

File tree

boards/common/seeedstudio-xiao-nrf52840/include/arduino_iomap.h

Lines changed: 36 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
* directory for more details.
77
*/
88

9+
#ifndef ARDUINO_IOMAP_H
10+
#define ARDUINO_IOMAP_H
911
/**
1012
* @ingroup boards_seeedstudio-xiao-nrf52840
1113
* @ingroup boards_seeedstudio-xiao-nrf52840-sense
@@ -20,9 +22,6 @@
2022
* @author Mikolai Gütschow <mikolai.guetschow@tu-dresden.de>
2123
*/
2224

23-
#ifndef ARDUINO_IOMAP_H
24-
#define ARDUINO_IOMAP_H
25-
2625
#include "periph/gpio.h"
2726
#include "periph/adc.h"
2827

@@ -35,67 +34,67 @@ extern "C" {
3534
* @{
3635
* @brief Arduino's Serial uses USB-CDC-ACM stdio by default
3736
*/
38-
#define ARDUINO_UART_DEV UART_UNDEF
37+
#define ARDUINO_UART_DEV UART_UNDEF /**< The Xiao nRF52840 uses USB-CDC-ACM by default */
3938
/** @} */
4039

4140
/**
4241
* @name XIAO's SPI buses
4342
* @{
4443
*/
45-
#define ARDUINO_SPI_DEV SPI_DEV(0)
44+
#define ARDUINO_SPI_DEV SPI_DEV(0) /**< Standard SPI bus for general purpose use */
4645
/** @} */
4746

4847
/**
4948
* @name XIAO's I2C buses
5049
* @{
5150
*/
52-
#define ARDUINO_I2C_DEV I2C_DEV(0)
51+
#define ARDUINO_I2C_DEV I2C_DEV(0) /**< Standard I2C bus for general purpose use */
5352
/** @} */
5453

5554
/**
5655
* @name XIAO's on-board LED (LED_BUILTIN)
5756
* @{
5857
*/
59-
#define ARDUINO_LED (11)
58+
#define ARDUINO_LED (11) /**< Use the Red LED */
6059
/** @} */
6160

6261
/**
6362
* @name Mapping of MCU pins to Arduino pins
6463
* @{
6564
*/
6665
/* Left pins */
67-
#define ARDUINO_PIN_0 GPIO_PIN(0, 2)
68-
#define ARDUINO_PIN_1 GPIO_PIN(0, 3)
69-
#define ARDUINO_PIN_2 GPIO_PIN(0, 28)
70-
#define ARDUINO_PIN_3 GPIO_PIN(0, 29)
71-
#define ARDUINO_PIN_4 GPIO_PIN(0, 4)
72-
#define ARDUINO_PIN_5 GPIO_PIN(0, 5)
73-
#define ARDUINO_PIN_6 GPIO_PIN(1, 11)
66+
#define ARDUINO_PIN_0 GPIO_PIN(0, 2) /**< Pin Definition for D0 */
67+
#define ARDUINO_PIN_1 GPIO_PIN(0, 3) /**< Pin Definition for D1 */
68+
#define ARDUINO_PIN_2 GPIO_PIN(0, 28) /**< Pin Definition for D2 */
69+
#define ARDUINO_PIN_3 GPIO_PIN(0, 29) /**< Pin Definition for D3 */
70+
#define ARDUINO_PIN_4 GPIO_PIN(0, 4) /**< Pin Definition for D4 */
71+
#define ARDUINO_PIN_5 GPIO_PIN(0, 5) /**< Pin Definition for D5 */
72+
#define ARDUINO_PIN_6 GPIO_PIN(1, 11) /**< Pin Definition for D6 */
7473

7574
/* Right side */
76-
#define ARDUINO_PIN_7 GPIO_PIN(1, 12)
77-
#define ARDUINO_PIN_8 GPIO_PIN(1, 13)
78-
#define ARDUINO_PIN_9 GPIO_PIN(1, 14)
79-
#define ARDUINO_PIN_10 GPIO_PIN(1, 15)
75+
#define ARDUINO_PIN_7 GPIO_PIN(1, 12) /**< Pin Definition for D7 */
76+
#define ARDUINO_PIN_8 GPIO_PIN(1, 13) /**< Pin Definition for D8 */
77+
#define ARDUINO_PIN_9 GPIO_PIN(1, 14) /**< Pin Definition for D9 */
78+
#define ARDUINO_PIN_10 GPIO_PIN(1, 15) /**< Pin Definition for D10 */
8079

8180
/* Internal (LEDs) */
82-
#define ARDUINO_PIN_11 GPIO_PIN(0, 26)
83-
#define ARDUINO_PIN_12 GPIO_PIN(0, 6)
84-
#define ARDUINO_PIN_13 GPIO_PIN(0, 30)
81+
#define ARDUINO_PIN_11 GPIO_PIN(0, 26) /**< Pin Definition for Red LED */
82+
#define ARDUINO_PIN_12 GPIO_PIN(0, 6) /**< Pin Definition for Blue LED */
83+
#define ARDUINO_PIN_13 GPIO_PIN(0, 30) /**< Pin Definition for Green LED */
8584

86-
#define ARDUINO_PIN_LAST 13
85+
#define ARDUINO_PIN_LAST 13 /**< Last Arduino Pin */
8786
/** @} */
8887

8988
/**
9089
* @name Aliases for analog pins
9190
* @{
9291
*/
93-
#define ARDUINO_PIN_A0 ARDUINO_PIN_0
94-
#define ARDUINO_PIN_A1 ARDUINO_PIN_1
95-
#define ARDUINO_PIN_A2 ARDUINO_PIN_2
96-
#define ARDUINO_PIN_A3 ARDUINO_PIN_3
97-
#define ARDUINO_PIN_A4 ARDUINO_PIN_4
98-
#define ARDUINO_PIN_A5 ARDUINO_PIN_5
92+
#define ARDUINO_PIN_A0 ARDUINO_PIN_0 /**< Pin Definition for A0 */
93+
#define ARDUINO_PIN_A1 ARDUINO_PIN_1 /**< Pin Definition for A1 */
94+
#define ARDUINO_PIN_A2 ARDUINO_PIN_2 /**< Pin Definition for A2 */
95+
#define ARDUINO_PIN_A3 ARDUINO_PIN_3 /**< Pin Definition for A3 */
96+
#define ARDUINO_PIN_A4 ARDUINO_PIN_4 /**< Pin Definition for A4 */
97+
#define ARDUINO_PIN_A5 ARDUINO_PIN_5 /**< Pin Definition for A5 */
9998
/** @} */
10099

101100
/**
@@ -115,19 +114,19 @@ extern "C" {
115114
* AIN6 | P0.30 | - (D13)
116115
* AIN7 | P0.31 | - (-)
117116
*/
118-
#define ARDUINO_A0 ADC_LINE(0)
119-
#define ARDUINO_A1 ADC_LINE(1)
120-
#define ARDUINO_A2 ADC_LINE(4)
121-
#define ARDUINO_A3 ADC_LINE(5)
122-
#define ARDUINO_A4 ADC_LINE(2)
123-
#define ARDUINO_A5 ADC_LINE(3)
124-
125-
#define ARDUINO_ANALOG_PIN_LAST 5
117+
#define ARDUINO_A0 ADC_LINE(0) /**< ADC Channel 0 for A0 */
118+
#define ARDUINO_A1 ADC_LINE(1) /**< ADC Channel 1 for A1 */
119+
#define ARDUINO_A2 ADC_LINE(4) /**< ADC Channel 4 for A2 */
120+
#define ARDUINO_A3 ADC_LINE(5) /**< ADC Channel 5 for A3 */
121+
#define ARDUINO_A4 ADC_LINE(2) /**< ADC Channel 2 for A4 */
122+
#define ARDUINO_A5 ADC_LINE(3) /**< ADC Channel 3 for A5 */
123+
124+
#define ARDUINO_ANALOG_PIN_LAST 5 /**< Last Analog Input Pin */
126125
/** @} */
127126

128127
#ifdef __cplusplus
129128
}
130129
#endif
131130

132-
#endif /* ARDUINO_IOMAP_H */
133131
/** @} */
132+
#endif /* ARDUINO_IOMAP_H */

boards/common/seeedstudio-xiao-nrf52840/include/board.h

Lines changed: 41 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
* directory for more details.
77
*/
88

9+
#ifndef BOARD_H
10+
#define BOARD_H
911
/**
1012
* @ingroup boards_seeedstudio-xiao-nrf52840
1113
* @ingroup boards_seeedstudio-xiao-nrf52840-sense
@@ -18,9 +20,6 @@
1820
* @author Mikolai Gütschow <mikolai.guetschow@tu-dresden.de>
1921
*/
2022

21-
#ifndef BOARD_H
22-
#define BOARD_H
23-
2423
#include "cpu.h"
2524
#include "board_common.h"
2625
#include "periph/gpio.h"
@@ -31,29 +30,32 @@ extern "C" {
3130

3231
/**
3332
* @name LED pin configuration
33+
* @brief The Seeedstudio Xiao nRF52840 boards have an RGB LED next to the
34+
* USB-C connector.
3435
* @{
3536
*/
36-
#define LED0_PIN GPIO_PIN(0, 26)
37-
#define LED1_PIN GPIO_PIN(0, 30)
38-
#define LED2_PIN GPIO_PIN(0, 6)
39-
40-
#define LED_PORT (NRF_P0)
41-
#define LED0_MASK (1 << 26)
42-
#define LED1_MASK (1 << 30)
43-
#define LED2_MASK (1 << 6)
44-
#define LED_MASK (LED0_MASK | LED1_MASK | LED2_MASK)
45-
46-
#define LED0_ON (LED_PORT->OUTCLR = LED0_MASK)
47-
#define LED0_OFF (LED_PORT->OUTSET = LED0_MASK)
48-
#define LED0_TOGGLE (LED_PORT->OUT ^= LED0_MASK)
49-
50-
#define LED1_ON (LED_PORT->OUTCLR = LED1_MASK)
51-
#define LED1_OFF (LED_PORT->OUTSET = LED1_MASK)
52-
#define LED1_TOGGLE (LED_PORT->OUT ^= LED1_MASK)
53-
54-
#define LED2_ON (LED_PORT->OUTCLR = LED2_MASK)
55-
#define LED2_OFF (LED_PORT->OUTSET = LED2_MASK)
56-
#define LED2_TOGGLE (LED_PORT->OUT ^= LED2_MASK)
37+
#define LED0_PIN GPIO_PIN(0, 26) /**< Pin Definition for the Red LED */
38+
#define LED1_PIN GPIO_PIN(0, 30) /**< Pin Definition for the Green LED */
39+
#define LED2_PIN GPIO_PIN(0, 6) /**< Pin Definition for the Blue LED */
40+
41+
#define LED_PORT (NRF_P0) /**< GPIO Port of the LED GPIOs */
42+
#define LED0_MASK (1 << 26) /**< Bit position of the Red LED GPIO Output Bit */
43+
#define LED1_MASK (1 << 30) /**< Bit position of the Green LED GPIO Output Bit */
44+
#define LED2_MASK (1 << 6) /**< Bit position of the Blue LED GPIO Output Bit */
45+
#define LED_MASK (LED0_MASK | LED1_MASK | LED2_MASK) /**< Bit position of all LED
46+
GPIO Output Bits */
47+
48+
#define LED0_ON (LED_PORT->OUTCLR = LED0_MASK) /**< Turn the Red LED on */
49+
#define LED0_OFF (LED_PORT->OUTSET = LED0_MASK) /**< Turn the Red LED off */
50+
#define LED0_TOGGLE (LED_PORT->OUT ^= LED0_MASK) /**< Toggle the Red LED */
51+
52+
#define LED1_ON (LED_PORT->OUTCLR = LED1_MASK) /**< Turn the Green LED on */
53+
#define LED1_OFF (LED_PORT->OUTSET = LED1_MASK) /**< Turn the Green LED off */
54+
#define LED1_TOGGLE (LED_PORT->OUT ^= LED1_MASK) /**< Toggle the Green LED */
55+
56+
#define LED2_ON (LED_PORT->OUTCLR = LED2_MASK) /**< Turn the Blue LED on */
57+
#define LED2_OFF (LED_PORT->OUTSET = LED2_MASK) /**< Turn the Blue LED off */
58+
#define LED2_TOGGLE (LED_PORT->OUT ^= LED2_MASK) /**< Toggle the Blue LED */
5759
/** @} */
5860

5961
/**
@@ -65,17 +67,19 @@ extern "C" {
6567
*
6668
* @{
6769
*/
68-
#define XIAO_NRF52840_NOR_PAGE_SIZE (256)
69-
#define XIAO_NRF52840_NOR_PAGES_PER_SECTOR (16)
70-
#define XIAO_NRF52840_NOR_SECTOR_COUNT (512)
70+
#define XIAO_NRF52840_NOR_PAGE_SIZE (256) /**< Page Size of the P25Q16H flash */
71+
#define XIAO_NRF52840_NOR_PAGES_PER_SECTOR (16) /**< Page Count per Sector of the P25Q16H flash */
72+
#define XIAO_NRF52840_NOR_SECTOR_COUNT (512) /**< Sector Count of the P25Q16H flash */
7173
#define XIAO_NRF52840_NOR_FLAGS \
72-
(SPI_NOR_F_SECT_4K | SPI_NOR_F_SECT_32K | SPI_NOR_F_SECT_64K)
73-
#define XIAO_NRF52840_NOR_SPI_DEV SPI_DEV(1)
74-
#define XIAO_NRF52840_NOR_SPI_CLK SPI_CLK_10MHZ
75-
#define XIAO_NRF52840_NOR_SPI_CS GPIO_PIN(0, 25)
76-
#define XIAO_NRF52840_NOR_SPI_WP GPIO_PIN(0, 22)
77-
#define XIAO_NRF52840_NOR_SPI_HOLD GPIO_PIN(0, 23)
78-
#define XIAO_NRF52840_NOR_SPI_MODE SPI_MODE_0
74+
(SPI_NOR_F_SECT_4K | \
75+
SPI_NOR_F_SECT_32K | \
76+
SPI_NOR_F_SECT_64K) /**< Supported Modes of the P25Q16H flash */
77+
#define XIAO_NRF52840_NOR_SPI_DEV SPI_DEV(1) /**< SPI Bus of the P25Q16H flash */
78+
#define XIAO_NRF52840_NOR_SPI_CLK SPI_CLK_10MHZ /**< SPI Clock Frequency */
79+
#define XIAO_NRF52840_NOR_SPI_CS GPIO_PIN(0, 25) /**< Chip Select Pin of the P25Q16H flash */
80+
#define XIAO_NRF52840_NOR_SPI_WP GPIO_PIN(0, 22) /**< Write Protect Pin of the P25Q16H flash */
81+
#define XIAO_NRF52840_NOR_SPI_HOLD GPIO_PIN(0, 23) /**< Hold Pin of the P25Q16H flash */
82+
#define XIAO_NRF52840_NOR_SPI_MODE SPI_MODE_0 /**< SPI Clock Mode of the P25Q16H flash */
7983
/** @} */
8084

8185
/** Default MTD device */
@@ -99,13 +103,13 @@ extern "C" {
99103
* @name ztimer configuration values
100104
* @{
101105
*/
102-
#define CONFIG_ZTIMER_USEC_ADJUST_SET 7
103-
#define CONFIG_ZTIMER_USEC_ADJUST_SLEEP 22
106+
#define CONFIG_ZTIMER_USEC_ADJUST_SET 7 /**< overhead for the ztimer_set function in us */
107+
#define CONFIG_ZTIMER_USEC_ADJUST_SLEEP 22 /**< overhead for the ztimer_sleep function in us */
104108
/** @} */
105109

106110
#ifdef __cplusplus
107111
}
108112
#endif
109113

110-
#endif /* BOARD_H */
111114
/** @} */
115+
#endif /* BOARD_H */

boards/common/seeedstudio-xiao-nrf52840/include/gpio_params.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
* directory for more details.
77
*/
88

9+
#ifndef GPIO_PARAMS_H
10+
#define GPIO_PARAMS_H
911
/**
1012
* @ingroup boards_seeedstudio-xiao-nrf52840
1113
* @ingroup boards_seeedstudio-xiao-nrf52840-sense
@@ -17,9 +19,6 @@
1719
* @author Mikolai Gütschow <mikolai.guetschow@tu-dresden.de>
1820
*/
1921

20-
#ifndef GPIO_PARAMS_H
21-
#define GPIO_PARAMS_H
22-
2322
#include "board.h"
2423
#include "saul/periph.h"
2524

@@ -56,5 +55,5 @@ static const saul_gpio_params_t saul_gpio_params[] =
5655
}
5756
#endif
5857

59-
#endif /* GPIO_PARAMS_H */
6058
/** @} */
59+
#endif /* GPIO_PARAMS_H */

boards/common/seeedstudio-xiao-nrf52840/include/periph_conf.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
* directory for more details.
77
*/
88

9+
#ifndef PERIPH_CONF_H
10+
#define PERIPH_CONF_H
911
/**
1012
* @ingroup boards_seeedstudio-xiao-nrf52840
1113
* @ingroup boards_seeedstudio-xiao-nrf52840-sense
@@ -19,9 +21,6 @@
1921
*
2022
*/
2123

22-
#ifndef PERIPH_CONF_H
23-
#define PERIPH_CONF_H
24-
2524
#include "periph_cpu.h"
2625
#include "cfg_clock_32_1.h"
2726
#include "cfg_rtt_default.h"
@@ -46,11 +45,11 @@ static const uart_conf_t uart_config[] = {
4645
#endif
4746
.irqn = UARTE0_UART0_IRQn,
4847
},
49-
};
48+
}; /**< UART Peripheral Configuration Structure */
5049

51-
#define UART_0_ISR (isr_uart0)
50+
#define UART_0_ISR (isr_uart0) /**< Interrupt Service Routing for UART 0 */
5251

53-
#define UART_NUMOF ARRAY_SIZE(uart_config)
52+
#define UART_NUMOF ARRAY_SIZE(uart_config) /**< Number of (preconfigured) UARTs */
5453
/** @} */
5554

5655
/**
@@ -70,9 +69,9 @@ static const spi_conf_t spi_config[] = {
7069
.mosi = GPIO_PIN(0, 20),
7170
.miso = GPIO_PIN(0, 24),
7271
}
73-
};
72+
}; /**< SPI Peripheral Configuration Structure */
7473

75-
#define SPI_NUMOF ARRAY_SIZE(spi_config)
74+
#define SPI_NUMOF ARRAY_SIZE(spi_config) /**< Number of (preconfigured) SPI Buses */
7675
/** @} */
7776

7877
/**
@@ -94,13 +93,14 @@ static const i2c_conf_t i2c_config[] = {
9493
.speed = I2C_SPEED_NORMAL
9594
}
9695
#endif
97-
};
98-
#define I2C_NUMOF ARRAY_SIZE(i2c_config)
96+
}; /**< I2C Peripheral Configuration Structure */
97+
98+
#define I2C_NUMOF ARRAY_SIZE(i2c_config) /**< Number of (preconfigured) I2C Buses */
9999
/** @} */
100100

101101
#ifdef __cplusplus
102102
}
103103
#endif
104104

105-
#endif /* PERIPH_CONF_H */
106105
/** @} */
106+
#endif /* PERIPH_CONF_H */

0 commit comments

Comments
 (0)