periph_conf.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2018 Eistec AB
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser General
5  * Public License v2.1. See the file LICENSE in the top level directory for more
6  * details.
7  */
8 
9 #pragma once
10 
21 #include "periph_cpu.h"
22 #include "periph_conf_common.h"
23 
24 #ifdef __cplusplus
25 extern "C"
26 {
27 #endif
28 
33 static const spi_conf_t spi_config[] = {
34  {
35  .dev = SPI1,
36  .pin_miso = GPIO_PIN(PORT_A, 17),
37  .pin_mosi = GPIO_PIN(PORT_A, 16),
38  .pin_clk = GPIO_PIN(PORT_A, 18),
39  .pin_cs = {
40  GPIO_PIN(PORT_A, 19),
45  },
46  .pcr = GPIO_AF_2,
47  .simmask = SIM_SCGC6_SPI1_MASK
48  }
49 };
50 #define SPI_NUMOF ARRAY_SIZE(spi_config)
57 static const adc_conf_t adc_config[] = {
58  /* dev, pin, channel */
59  /* internal: temperature sensor */
60  /* The temperature sensor has a very high output impedance, it must not be
61  * sampled using hardware averaging, or the sampled values will be garbage */
62  [ 0] = { .dev = ADC0, .pin = GPIO_UNDEF, .chan = 26, .avg = ADC_AVG_NONE },
63  /* Note: the band gap buffer uses a bit of current and is turned off by default,
64  * Set PMC->REGSC |= PMC_REGSC_BGBE_MASK before reading or the input will be floating */
65  /* internal: band gap */
66  [ 1] = { .dev = ADC0, .pin = GPIO_UNDEF, .chan = 27, .avg = ADC_AVG_MAX },
67  /* internal: DCDC divided battery level */
68  [ 2] = { .dev = ADC0, .pin = GPIO_UNDEF, .chan = 23, .avg = ADC_AVG_MAX },
69 };
70 #define ADC_NUMOF ARRAY_SIZE(adc_config)
71 /*
72  * KW41Z ADC reference settings:
73  * 0: VREFH external pin or VREF_OUT 1.2 V signal (if VREF module is enabled)
74  * 1: VDDA (analog supply input voltage)
75  * 2-3: reserved
76  *
77  * VREF_OUT and VREFH shares the pin on KW41Z and is tied to VDDA on the
78  * USB-KW41Z board, so it does not matter which setting is chosen here for this
79  * board.
80  */
81 #define ADC_REF_SETTING 1
84 #ifdef __cplusplus
85 }
86 #endif
87 
@ PORT_A
port A
Definition: periph_cpu.h:46
#define GPIO_PIN(x, y)
Define a CPU specific GPIO pin generator macro.
Definition: periph_cpu.h:45
#define GPIO_UNDEF
Definition of a fitting UNDEF value.
static const spi_conf_t spi_config[]
SPI configuration.
Definition: periph_conf.h:96
static const adc_conf_t adc_config[]
ADC configuration.
Definition: periph_conf.h:250
#define SPI_CS_UNDEF
Define value for unused CS line.
Definition: periph_cpu.h:362
#define ADC_AVG_NONE
Disable hardware averaging.
Definition: periph_cpu.h:369
#define ADC_AVG_MAX
Maximum hardware averaging (32 samples)
Definition: periph_cpu.h:373
ADC device configuration.
Definition: periph_cpu.h:377
ADC_TypeDef * dev
ADC device used.
Definition: periph_cpu.h:378
SPI device configuration.
Definition: periph_cpu.h:336
SPI_t * dev
pointer to the used SPI device
Definition: periph_cpu.h:337