mirror of
https://github.com/oliverschmidt/contiki.git
synced 2024-09-11 06:54:32 +00:00
330 lines
9.4 KiB
C
330 lines
9.4 KiB
C
/*
|
|
* Copyright (c) 2015, Nordic Semiconductor
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
* 3. Neither the name of the Institute nor the names of its contributors
|
|
* may be used to endorse or promote products derived from this software
|
|
* without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
* SUCH DAMAGE.
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* \addtogroup nrf52dk
|
|
* @{
|
|
*
|
|
* \defgroup nrf52dk-config nRF52 SDK configuration
|
|
* @{
|
|
*/
|
|
|
|
#ifndef NRF_DRV_CONFIG_H
|
|
#define NRF_DRV_CONFIG_H
|
|
|
|
/* CLOCK */
|
|
#define CLOCK_CONFIG_XTAL_FREQ NRF_CLOCK_XTALFREQ_Default
|
|
#define CLOCK_CONFIG_LF_SRC NRF_CLOCK_LF_SRC_Xtal
|
|
#define CLOCK_CONFIG_LF_RC_CAL_INTERVAL RC_2000MS_CALIBRATION_INTERVAL
|
|
#define CLOCK_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
|
|
/* GPIOTE */
|
|
#define GPIOTE_ENABLED 1
|
|
|
|
#if (GPIOTE_ENABLED == 1)
|
|
#define GPIOTE_CONFIG_USE_SWI_EGU false
|
|
#define GPIOTE_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_HIGH
|
|
#define GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 4
|
|
#endif
|
|
|
|
/* TIMER */
|
|
#define TIMER0_ENABLED 0
|
|
|
|
#if (TIMER0_ENABLED == 1)
|
|
#define TIMER0_CONFIG_FREQUENCY NRF_TIMER_FREQ_16MHz
|
|
#define TIMER0_CONFIG_MODE TIMER_MODE_MODE_Timer
|
|
#define TIMER0_CONFIG_BIT_WIDTH TIMER_BITMODE_BITMODE_32Bit
|
|
#define TIMER0_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
|
|
#define TIMER0_INSTANCE_INDEX 0
|
|
#endif
|
|
|
|
#define TIMER1_ENABLED 1
|
|
|
|
#if (TIMER1_ENABLED == 1)
|
|
#define TIMER1_CONFIG_FREQUENCY NRF_TIMER_FREQ_62500Hz
|
|
#define TIMER1_CONFIG_MODE TIMER_MODE_MODE_Timer
|
|
#define TIMER1_CONFIG_BIT_WIDTH TIMER_BITMODE_BITMODE_32Bit
|
|
#define TIMER1_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
|
|
#define TIMER1_INSTANCE_INDEX (TIMER0_ENABLED)
|
|
#endif
|
|
|
|
#define TIMER2_ENABLED 0
|
|
|
|
#if (TIMER2_ENABLED == 1)
|
|
#define TIMER2_CONFIG_FREQUENCY NRF_TIMER_FREQ_16MHz
|
|
#define TIMER2_CONFIG_MODE TIMER_MODE_MODE_Timer
|
|
#define TIMER2_CONFIG_BIT_WIDTH TIMER_BITMODE_BITMODE_16Bit
|
|
#define TIMER2_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
|
|
#define TIMER2_INSTANCE_INDEX (TIMER1_ENABLED+TIMER0_ENABLED)
|
|
#endif
|
|
|
|
#define TIMER3_ENABLED 0
|
|
|
|
#if (TIMER3_ENABLED == 1)
|
|
#define TIMER3_CONFIG_FREQUENCY NRF_TIMER_FREQ_16MHz
|
|
#define TIMER3_CONFIG_MODE TIMER_MODE_MODE_Timer
|
|
#define TIMER3_CONFIG_BIT_WIDTH TIMER_BITMODE_BITMODE_16Bit
|
|
#define TIMER3_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
|
|
#define TIMER3_INSTANCE_INDEX (TIMER2_ENABLED+TIMER2_INSTANCE_INDEX)
|
|
#endif
|
|
|
|
#define TIMER4_ENABLED 0
|
|
|
|
#if (TIMER4_ENABLED == 1)
|
|
#define TIMER4_CONFIG_FREQUENCY NRF_TIMER_FREQ_16MHz
|
|
#define TIMER4_CONFIG_MODE TIMER_MODE_MODE_Timer
|
|
#define TIMER4_CONFIG_BIT_WIDTH TIMER_BITMODE_BITMODE_16Bit
|
|
#define TIMER4_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
|
|
#define TIMER4_INSTANCE_INDEX (TIMER3_ENABLED+TIMER3_INSTANCE_INDEX)
|
|
#endif
|
|
|
|
|
|
#define TIMER_COUNT (TIMER0_ENABLED + TIMER1_ENABLED + TIMER2_ENABLED + TIMER3_ENABLED + TIMER4_ENABLED)
|
|
|
|
/* RTC */
|
|
#define RTC0_ENABLED 0
|
|
|
|
#if (RTC0_ENABLED == 1)
|
|
#define RTC0_CONFIG_FREQUENCY 32678
|
|
#define RTC0_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
#define RTC0_CONFIG_RELIABLE false
|
|
|
|
#define RTC0_INSTANCE_INDEX 0
|
|
#endif
|
|
|
|
#define RTC1_ENABLED 1
|
|
|
|
#if (RTC1_ENABLED == 1)
|
|
#define RTC1_CONFIG_FREQUENCY 128
|
|
#define RTC1_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
#define RTC1_CONFIG_RELIABLE false
|
|
|
|
#define RTC1_INSTANCE_INDEX (RTC0_ENABLED)
|
|
#endif
|
|
|
|
#define RTC_COUNT (RTC0_ENABLED+RTC1_ENABLED)
|
|
|
|
#define NRF_MAXIMUM_LATENCY_US 2000
|
|
|
|
/* RNG */
|
|
#define RNG_ENABLED 1
|
|
|
|
#if (RNG_ENABLED == 1)
|
|
#define RNG_CONFIG_ERROR_CORRECTION true
|
|
#define RNG_CONFIG_POOL_SIZE 8
|
|
#define RNG_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
#endif
|
|
|
|
/* SPI */
|
|
#define SPI0_ENABLED 0
|
|
|
|
#if (SPI0_ENABLED == 1)
|
|
#define SPI0_USE_EASY_DMA 0
|
|
|
|
#define SPI0_CONFIG_SCK_PIN 2
|
|
#define SPI0_CONFIG_MOSI_PIN 3
|
|
#define SPI0_CONFIG_MISO_PIN 4
|
|
#define SPI0_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
|
|
#define SPI0_INSTANCE_INDEX 0
|
|
#endif
|
|
|
|
#define SPI1_ENABLED 0
|
|
|
|
#if (SPI1_ENABLED == 1)
|
|
#define SPI1_USE_EASY_DMA 0
|
|
|
|
#define SPI1_CONFIG_SCK_PIN 2
|
|
#define SPI1_CONFIG_MOSI_PIN 3
|
|
#define SPI1_CONFIG_MISO_PIN 4
|
|
#define SPI1_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
|
|
#define SPI1_INSTANCE_INDEX (SPI0_ENABLED)
|
|
#endif
|
|
|
|
#define SPI2_ENABLED 0
|
|
|
|
#if (SPI2_ENABLED == 1)
|
|
#define SPI2_USE_EASY_DMA 0
|
|
|
|
#define SPI2_CONFIG_SCK_PIN 2
|
|
#define SPI2_CONFIG_MOSI_PIN 3
|
|
#define SPI2_CONFIG_MISO_PIN 4
|
|
#define SPI2_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
|
|
#define SPI2_INSTANCE_INDEX (SPI0_ENABLED + SPI1_ENABLED)
|
|
#endif
|
|
|
|
#define SPI_COUNT (SPI0_ENABLED + SPI1_ENABLED + SPI2_ENABLED)
|
|
|
|
/* UART */
|
|
#define UART0_ENABLED 1
|
|
|
|
#if (UART0_ENABLED == 1)
|
|
#define UART0_CONFIG_HWFC NRF_UART_HWFC_DISABLED
|
|
#define UART0_CONFIG_PARITY NRF_UART_PARITY_EXCLUDED
|
|
#define UART0_CONFIG_BAUDRATE NRF_UART_BAUDRATE_38400
|
|
#define UART0_CONFIG_PSEL_TXD 6
|
|
#define UART0_CONFIG_PSEL_RXD 8
|
|
#define UART0_CONFIG_PSEL_CTS 7
|
|
#define UART0_CONFIG_PSEL_RTS 5
|
|
#define UART0_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
#ifdef NRF52
|
|
#define UART0_CONFIG_USE_EASY_DMA false
|
|
//Compile time flag
|
|
#define UART_EASY_DMA_SUPPORT 1
|
|
#define UART_LEGACY_SUPPORT 1
|
|
#endif //NRF52
|
|
#endif
|
|
|
|
#define TWI0_ENABLED 0
|
|
|
|
#if (TWI0_ENABLED == 1)
|
|
#define TWI0_CONFIG_FREQUENCY NRF_TWI_FREQ_100K
|
|
#define TWI0_CONFIG_SCL 0
|
|
#define TWI0_CONFIG_SDA 1
|
|
#define TWI0_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_HIGH
|
|
|
|
#define TWI0_INSTANCE_INDEX 0
|
|
#endif
|
|
|
|
#define TWI1_ENABLED 0
|
|
|
|
#if (TWI1_ENABLED == 1)
|
|
#define TWI1_CONFIG_FREQUENCY NRF_TWI_FREQ_100K
|
|
#define TWI1_CONFIG_SCL 0
|
|
#define TWI1_CONFIG_SDA 1
|
|
#define TWI1_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_HIGH
|
|
|
|
#define TWI1_INSTANCE_INDEX (TWI0_ENABLED)
|
|
#endif
|
|
|
|
#define TWI_COUNT (TWI0_ENABLED+TWI1_ENABLED)
|
|
|
|
/* TWIS */
|
|
#define TWIS0_ENABLED 0
|
|
|
|
#if (TWIS0_ENABLED == 1)
|
|
#define TWIS0_CONFIG_ADDR0 0
|
|
#define TWIS0_CONFIG_ADDR1 0 /* 0: Disabled */
|
|
#define TWIS0_CONFIG_SCL 0
|
|
#define TWIS0_CONFIG_SDA 1
|
|
#define TWIS0_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_HIGH
|
|
|
|
#define TWIS0_INSTANCE_INDEX 0
|
|
#endif
|
|
|
|
#define TWIS1_ENABLED 0
|
|
|
|
#if (TWIS1_ENABLED == 1)
|
|
#define TWIS1_CONFIG_ADDR0 0
|
|
#define TWIS1_CONFIG_ADDR1 0 /* 0: Disabled */
|
|
#define TWIS1_CONFIG_SCL 0
|
|
#define TWIS1_CONFIG_SDA 1
|
|
#define TWIS1_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_HIGH
|
|
|
|
#define TWIS1_INSTANCE_INDEX (TWIS0_ENABLED)
|
|
#endif
|
|
|
|
#define TWIS_COUNT (TWIS0_ENABLED + TWIS1_ENABLED)
|
|
/* For more documentation see nrf_drv_twis.h file */
|
|
#define TWIS_ASSUME_INIT_AFTER_RESET_ONLY 0
|
|
/* For more documentation see nrf_drv_twis.h file */
|
|
#define TWIS_NO_SYNC_MODE 0
|
|
/**
|
|
* \brief Definition for patching PAN problems
|
|
*
|
|
* Set this definition to nonzero value to patch anomalies
|
|
* from MPW3 - first lunch microcontroller.
|
|
*
|
|
* Concerns:
|
|
* - PAN-29: TWIS: incorrect bits in ERRORSRC
|
|
* - PAN-30: TWIS: STOP task does not work as expected
|
|
*/
|
|
#define NRF_TWIS_PATCH_FOR_MPW3 1
|
|
|
|
|
|
/* QDEC */
|
|
#define QDEC_ENABLED 0
|
|
|
|
#if (QDEC_ENABLED == 1)
|
|
#define QDEC_CONFIG_REPORTPER NRF_QDEC_REPORTPER_10
|
|
#define QDEC_CONFIG_SAMPLEPER NRF_QDEC_SAMPLEPER_16384us
|
|
#define QDEC_CONFIG_PIO_A 1
|
|
#define QDEC_CONFIG_PIO_B 2
|
|
#define QDEC_CONFIG_PIO_LED 3
|
|
#define QDEC_CONFIG_LEDPRE 511
|
|
#define QDEC_CONFIG_LEDPOL NRF_QDEC_LEPOL_ACTIVE_HIGH
|
|
#define QDEC_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
#define QDEC_CONFIG_DBFEN false
|
|
#define QDEC_CONFIG_SAMPLE_INTEN false
|
|
#endif
|
|
|
|
/* SAADC */
|
|
#define SAADC_ENABLED 0
|
|
|
|
#if (SAADC_ENABLED == 1)
|
|
#define SAADC_CONFIG_RESOLUTION NRF_SAADC_RESOLUTION_10BIT
|
|
#define SAADC_CONFIG_OVERSAMPLE NRF_SAADC_OVERSAMPLE_DISABLED
|
|
#define SAADC_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
#endif
|
|
|
|
/* LPCOMP */
|
|
#define LPCOMP_ENABLED 0
|
|
|
|
#if (LPCOMP_ENABLED == 1)
|
|
#define LPCOMP_CONFIG_REFERENCE NRF_LPCOMP_REF_SUPPLY_4_8
|
|
#define LPCOMP_CONFIG_DETECTION NRF_LPCOMP_DETECT_DOWN
|
|
#define LPCOMP_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
|
|
#define LPCOMP_CONFIG_INPUT NRF_LPCOMP_INPUT_0
|
|
#endif
|
|
|
|
/* WDT */
|
|
#define WDT_ENABLED 1
|
|
|
|
#if (WDT_ENABLED == 1)
|
|
#define WDT_CONFIG_BEHAVIOUR NRF_WDT_BEHAVIOUR_RUN_SLEEP
|
|
#define WDT_CONFIG_RELOAD_VALUE 2000
|
|
#define WDT_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_HIGH
|
|
#endif
|
|
|
|
#include "nrf_drv_config_validation.h"
|
|
#endif // NRF_DRV_CONFIG_H
|
|
|
|
/**
|
|
* @}
|
|
* @}
|
|
*/
|