periph_conf.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2021 Inria
3  * SPDX-License-Identifier: LGPL-2.1-only
4  */
5 
6 #pragma once
7 
18 #include "board.h"
19 #include "periph_cpu.h"
20 #include "cfg_clock_32_0.h"
21 #include "cfg_timer_default.h"
22 #include "cfg_rtt_default.h"
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
32 static const uart_conf_t uart_config[] = {
33  { /* Mapped to USB virtual COM port */
34  .dev = NRF_UARTE0,
35  .rx_pin = GPIO_PIN(1, 8),
36  .tx_pin = GPIO_PIN(0, 6),
37 #ifdef MODULE_PERIPH_UART_HW_FC
38  .rts_pin = GPIO_UNDEF,
39  .cts_pin = GPIO_UNDEF,
40 #endif
41  .irqn = UARTE0_UART0_IRQn,
42  },
43 };
44 
45 #define UART_0_ISR (isr_uart0)
46 
47 #define UART_NUMOF ARRAY_SIZE(uart_config)
54 static const pwm_conf_t pwm_config[] = {
55  {
56  NRF_PWM0,
57  {
58  SPEAKER_PIN, /* configure Speaker pin as PWM */
59  GPIO_UNDEF,
60  GPIO_UNDEF,
61  GPIO_UNDEF,
62  }
63  },
64 };
65 #define PWM_NUMOF ARRAY_SIZE(pwm_config)
72 static const i2c_conf_t i2c_config[] = {
73  { /* Internal I2C */
74  .dev = NRF_TWIM1,
75  .scl = GPIO_PIN(0, 8),
76  .sda = GPIO_PIN(0, 16),
77  .speed = I2C_SPEED_NORMAL
78  },
79  { /* External I2C */
80  .dev = NRF_TWIM0,
81  .scl = GPIO_PIN(0, 26), /* P19 */
82  .sda = GPIO_PIN(1, 0), /* P20 */
83  .speed = I2C_SPEED_NORMAL
84  },
85 };
86 #define I2C_NUMOF ARRAY_SIZE(i2c_config)
93 static const spi_conf_t spi_config[] = {
94  {
95  .dev = NRF_SPIM0,
96  .sclk = GPIO_PIN(0, 17), /* P13 */
97  .mosi = GPIO_PIN(0, 13), /* P15 */
98  .miso = GPIO_PIN(0, 1), /* P14 */
99 #ifdef ERRATA_SPI_SINGLE_BYTE_WORKAROUND
100  .ppi = 0,
101 #endif
102  }
103 };
104 
105 #define SPI_NUMOF ARRAY_SIZE(spi_config)
108 #ifdef __cplusplus
109 }
110 #endif
111 
#define SPEAKER_PIN
Speaker pin (A0)
Definition: board.h:92
#define GPIO_PIN(x, y)
Define a CPU specific GPIO pin generator macro.
Definition: periph_cpu.h:42
#define GPIO_UNDEF
Definition of a fitting UNDEF value.
static const uart_conf_t uart_config[]
UART configuration.
Definition: periph_conf.h:35
static const spi_conf_t spi_config[]
SPI configuration.
Definition: periph_conf.h:93
static const i2c_conf_t i2c_config[]
I2C configuration.
Definition: periph_conf.h:65
static const pwm_conf_t pwm_config[]
Actual PWM configuration.
Definition: periph_conf.h:218
Common clock configuration for the nRF52 based boards.
@ I2C_SPEED_NORMAL
normal mode: ~100 kbit/s
Definition: periph_cpu.h:274
I2C configuration structure.
Definition: periph_cpu.h:295
TWI_t * dev
Pointer to hardware module registers.
Definition: periph_cpu.h:296
PWM device configuration.
SPI device configuration.
Definition: periph_cpu.h:333
SPI_t * dev
pointer to the used SPI device
Definition: periph_cpu.h:334
UART device configuration.
Definition: periph_cpu.h:214
USART_t * dev
pointer to the used UART device
Definition: periph_cpu.h:215
Board specific definitions for the Zigduino board.