atmel-samd: add same51, feather_m4_can
This is compile-tested, and requires updates in the related submodules: https://github.com/adafruit/samd-peripherals/pull/35 https://github.com/adafruit/asf4/pull/37 This should not be merged until those can also be merged.
This commit is contained in:
parent
540e6d4285
commit
e066448e36
|
@ -99,6 +99,13 @@ OPTIMIZATION_FLAGS ?= -O2
|
|||
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAMD51 -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=256 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=256 -DCFG_TUD_MSC_BUFSIZE=1024
|
||||
endif
|
||||
|
||||
ifeq ($(CHIP_FAMILY), same51)
|
||||
PERIPHERALS_CHIP_FAMILY=sam_d5x_e5x
|
||||
OPTIMIZATION_FLAGS ?= -O2
|
||||
# TinyUSB defines
|
||||
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_SAME5X -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_CDC_RX_BUFSIZE=256 -DCFG_TUD_MIDI_TX_BUFSIZE=128 -DCFG_TUD_CDC_TX_BUFSIZE=256 -DCFG_TUD_MSC_BUFSIZE=1024
|
||||
endif
|
||||
|
||||
ifeq ($(CHIP_FAMILY), same54)
|
||||
PERIPHERALS_CHIP_FAMILY=sam_d5x_e5x
|
||||
OPTIMIZATION_FLAGS ?= -O2
|
||||
|
@ -177,6 +184,15 @@ CFLAGS += \
|
|||
-mfpu=fpv4-sp-d16 \
|
||||
-DSAM_D5X_E5X -DSAME54
|
||||
endif
|
||||
ifeq ($(CHIP_FAMILY), same51)
|
||||
CFLAGS += \
|
||||
-mthumb \
|
||||
-mabi=aapcs-linux \
|
||||
-mcpu=cortex-m4 \
|
||||
-mfloat-abi=hard \
|
||||
-mfpu=fpv4-sp-d16 \
|
||||
-DSAM_D5X_E5X -DSAME51
|
||||
endif
|
||||
|
||||
|
||||
|
||||
|
@ -197,6 +213,9 @@ BOOTLOADER_SIZE := 0x4000
|
|||
else ifeq ($(CHIP_FAMILY), same54)
|
||||
LDFLAGS += -mthumb -mcpu=cortex-m4
|
||||
BOOTLOADER_SIZE := 0x4000
|
||||
else ifeq ($(CHIP_FAMILY), same51)
|
||||
LDFLAGS += -mthumb -mcpu=cortex-m4
|
||||
BOOTLOADER_SIZE := 0x4000
|
||||
endif
|
||||
|
||||
SRC_ASF := \
|
||||
|
@ -241,7 +260,16 @@ SRC_ASF += \
|
|||
|
||||
else ifeq ($(CHIP_FAMILY), same54)
|
||||
SRC_ASF += \
|
||||
hal/src/hal_rand_sync.c \
|
||||
hal/src/hal_rand_sync.c \
|
||||
hpl/core/hpl_core_m4.c \
|
||||
hpl/mclk/hpl_mclk.c \
|
||||
hpl/osc32kctrl/hpl_osc32kctrl.c \
|
||||
hpl/oscctrl/hpl_oscctrl.c \
|
||||
hpl/trng/hpl_trng.c \
|
||||
|
||||
else ifeq ($(CHIP_FAMILY), same51)
|
||||
SRC_ASF += \
|
||||
hal/src/hal_rand_sync.c \
|
||||
hpl/core/hpl_core_m4.c \
|
||||
hpl/mclk/hpl_mclk.c \
|
||||
hpl/osc32kctrl/hpl_osc32kctrl.c \
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 35a1525796c7ef8a3893d90befdad2f267fca20e
|
||||
Subproject commit f99e36fb008588bd9ff005099b3b89b7952fcfba
|
|
@ -0,0 +1,303 @@
|
|||
/* Auto-generated config file hpl_adc_config.h */
|
||||
#ifndef HPL_ADC_CONFIG_H
|
||||
#define HPL_ADC_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
#ifndef CONF_ADC_0_ENABLE
|
||||
#define CONF_ADC_0_ENABLE 1
|
||||
#endif
|
||||
|
||||
// <h> Basic Configuration
|
||||
|
||||
// <o> Conversion Result Resolution
|
||||
// <0x0=>12-bit
|
||||
// <0x1=>16-bit (averaging must be enabled)
|
||||
// <0x2=>10-bit
|
||||
// <0x3=>8-bit
|
||||
// <i> Defines the bit resolution for the ADC sample values (RESSEL)
|
||||
// <id> adc_resolution
|
||||
#ifndef CONF_ADC_0_RESSEL
|
||||
#define CONF_ADC_0_RESSEL 0x0
|
||||
#endif
|
||||
|
||||
// <o> Reference Selection
|
||||
// <0x0=>Internal bandgap reference
|
||||
// <0x2=>1/2 VDDANA (only for VDDANA > 2.0V)
|
||||
// <0x3=>VDDANA
|
||||
// <0x4=>External reference A
|
||||
// <0x5=>External reference B
|
||||
// <0x6=>External reference C
|
||||
// <i> Select the reference for the ADC (REFSEL)
|
||||
// <id> adc_reference
|
||||
#ifndef CONF_ADC_0_REFSEL
|
||||
#define CONF_ADC_0_REFSEL 0x0
|
||||
#endif
|
||||
|
||||
// <o> Prescaler configuration
|
||||
// <0x0=>Peripheral clock divided by 2
|
||||
// <0x1=>Peripheral clock divided by 4
|
||||
// <0x2=>Peripheral clock divided by 8
|
||||
// <0x3=>Peripheral clock divided by 16
|
||||
// <0x4=>Peripheral clock divided by 32
|
||||
// <0x5=>Peripheral clock divided by 64
|
||||
// <0x6=>Peripheral clock divided by 128
|
||||
// <0x7=>Peripheral clock divided by 256
|
||||
// <i> These bits define the ADC clock relative to the peripheral clock (PRESCALER)
|
||||
// <id> adc_prescaler
|
||||
#ifndef CONF_ADC_0_PRESCALER
|
||||
#define CONF_ADC_0_PRESCALER 0x3
|
||||
#endif
|
||||
|
||||
// <q> Free Running Mode
|
||||
// <i> When enabled, the ADC is in free running mode and a new conversion will be initiated when a previous conversion completes. (FREERUN)
|
||||
// <id> adc_freerunning_mode
|
||||
#ifndef CONF_ADC_0_FREERUN
|
||||
#define CONF_ADC_0_FREERUN 0
|
||||
#endif
|
||||
|
||||
// <q> Differential Mode
|
||||
// <i> In differential mode, the voltage difference between the MUXPOS and MUXNEG inputs will be converted by the ADC. (DIFFMODE)
|
||||
// <id> adc_differential_mode
|
||||
#ifndef CONF_ADC_0_DIFFMODE
|
||||
#define CONF_ADC_0_DIFFMODE 0
|
||||
#endif
|
||||
|
||||
// <o> Positive Mux Input Selection
|
||||
// <0x00=>ADC AIN0 pin
|
||||
// <0x01=>ADC AIN1 pin
|
||||
// <0x02=>ADC AIN2 pin
|
||||
// <0x03=>ADC AIN3 pin
|
||||
// <0x04=>ADC AIN4 pin
|
||||
// <0x05=>ADC AIN5 pin
|
||||
// <0x06=>ADC AIN6 pin
|
||||
// <0x07=>ADC AIN7 pin
|
||||
// <0x08=>ADC AIN8 pin
|
||||
// <0x09=>ADC AIN9 pin
|
||||
// <0x0A=>ADC AIN10 pin
|
||||
// <0x0B=>ADC AIN11 pin
|
||||
// <0x0C=>ADC AIN12 pin
|
||||
// <0x0D=>ADC AIN13 pin
|
||||
// <0x0E=>ADC AIN14 pin
|
||||
// <0x0F=>ADC AIN15 pin
|
||||
// <0x18=>1/4 scaled core supply
|
||||
// <0x19=>1/4 Scaled VBAT Supply
|
||||
// <0x1A=>1/4 scaled I/O supply
|
||||
// <0x1B=>Bandgap voltage
|
||||
// <0x1C=>Temperature reference (PTAT)
|
||||
// <0x1D=>Temperature reference (CTAT)
|
||||
// <0x1E=>DAC Output
|
||||
// <i> These bits define the Mux selection for the positive ADC input. (MUXPOS)
|
||||
// <id> adc_pinmux_positive
|
||||
#ifndef CONF_ADC_0_MUXPOS
|
||||
#define CONF_ADC_0_MUXPOS 0x0
|
||||
#endif
|
||||
|
||||
// <o> Negative Mux Input Selection
|
||||
// <0x00=>ADC AIN0 pin
|
||||
// <0x01=>ADC AIN1 pin
|
||||
// <0x02=>ADC AIN2 pin
|
||||
// <0x03=>ADC AIN3 pin
|
||||
// <0x04=>ADC AIN4 pin
|
||||
// <0x05=>ADC AIN5 pin
|
||||
// <0x06=>ADC AIN6 pin
|
||||
// <0x07=>ADC AIN7 pin
|
||||
// <0x18=>Internal ground
|
||||
// <0x19=>I/O ground
|
||||
// <i> These bits define the Mux selection for the negative ADC input. (MUXNEG)
|
||||
// <id> adc_pinmux_negative
|
||||
#ifndef CONF_ADC_0_MUXNEG
|
||||
#define CONF_ADC_0_MUXNEG 0x0
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
|
||||
// <e> Advanced Configuration
|
||||
// <id> adc_advanced_settings
|
||||
#ifndef CONF_ADC_0_ADVANCED
|
||||
#define CONF_ADC_0_ADVANCED 0
|
||||
#endif
|
||||
|
||||
// <q> Run in standby
|
||||
// <i> Indicates whether the ADC will continue running in standby sleep mode or not (RUNSTDBY)
|
||||
// <id> adc_arch_runstdby
|
||||
#ifndef CONF_ADC_0_RUNSTDBY
|
||||
#define CONF_ADC_0_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q>Debug Run
|
||||
// <i> If enabled, the ADC is running if the CPU is halted by an external debugger. (DBGRUN)
|
||||
// <id> adc_arch_dbgrun
|
||||
#ifndef CONF_ADC_0_DBGRUN
|
||||
#define CONF_ADC_0_DBGRUN 0
|
||||
#endif
|
||||
|
||||
// <q> On Demand Control
|
||||
// <i> Will keep the ADC peripheral running if requested by other peripherals (ONDEMAND)
|
||||
// <id> adc_arch_ondemand
|
||||
#ifndef CONF_ADC_0_ONDEMAND
|
||||
#define CONF_ADC_0_ONDEMAND 0
|
||||
#endif
|
||||
|
||||
// <q> Left-Adjusted Result
|
||||
// <i> When enabled, the ADC conversion result is left-adjusted in the RESULT register. The high byte of the 12-bit result will be present in the upper part of the result register. (LEFTADJ)
|
||||
// <id> adc_arch_leftadj
|
||||
#ifndef CONF_ADC_0_LEFTADJ
|
||||
#define CONF_ADC_0_LEFTADJ 0
|
||||
#endif
|
||||
|
||||
// <q> Reference Buffer Offset Compensation Enable
|
||||
// <i> The accuracy of the gain stage can be increased by enabling the reference buffer offset compensation. This will decrease the input impedance and thus increase the start-up time of the reference. (REFCOMP)
|
||||
// <id> adc_arch_refcomp
|
||||
#ifndef CONF_ADC_0_REFCOMP
|
||||
#define CONF_ADC_0_REFCOMP 0
|
||||
#endif
|
||||
|
||||
// <q>Comparator Offset Compensation Enable
|
||||
// <i> This bit indicates whether the Comparator Offset Compensation is enabled or not (OFFCOMP)
|
||||
// <id> adc_arch_offcomp
|
||||
#ifndef CONF_ADC_0_OFFCOMP
|
||||
#define CONF_ADC_0_OFFCOMP 0
|
||||
#endif
|
||||
|
||||
// <q> Digital Correction Logic Enabled
|
||||
// <i> When enabled, the ADC conversion result in the RESULT register is then corrected for gain and offset based on the values in the GAINCAL and OFFSETCAL registers. (CORREN)
|
||||
// <id> adc_arch_corren
|
||||
#ifndef CONF_ADC_0_CORREN
|
||||
#define CONF_ADC_0_CORREN 0
|
||||
#endif
|
||||
|
||||
// <o> Offset Correction Value <0-4095>
|
||||
// <i> If the digital correction logic is enabled (CTRLB.CORREN = 1), these bits define how the ADC conversion result is compensated for offset error before being written to the Result register. (OFFSETCORR)
|
||||
// <id> adc_arch_offsetcorr
|
||||
#ifndef CONF_ADC_0_OFFSETCORR
|
||||
#define CONF_ADC_0_OFFSETCORR 0
|
||||
#endif
|
||||
|
||||
// <o> Gain Correction Value <0-4095>
|
||||
// <i> If the digital correction logic is enabled (CTRLB.CORREN = 1), these bits define how the ADC conversion result is compensated for gain error before being written to the result register. (GAINCORR)
|
||||
// <id> adc_arch_gaincorr
|
||||
#ifndef CONF_ADC_0_GAINCORR
|
||||
#define CONF_ADC_0_GAINCORR 0
|
||||
#endif
|
||||
|
||||
// <o> Adjusting Result / Division Coefficient <0-7>
|
||||
// <i> These bits define the division coefficient in 2n steps. (ADJRES)
|
||||
// <id> adc_arch_adjres
|
||||
#ifndef CONF_ADC_0_ADJRES
|
||||
#define CONF_ADC_0_ADJRES 0x0
|
||||
#endif
|
||||
|
||||
// <o.0..10> Number of Samples to be Collected
|
||||
// <0x0=>1 sample
|
||||
// <0x1=>2 samples
|
||||
// <0x2=>4 samples
|
||||
// <0x3=>8 samples
|
||||
// <0x4=>16 samples
|
||||
// <0x5=>32 samples
|
||||
// <0x6=>64 samples
|
||||
// <0x7=>128 samples
|
||||
// <0x8=>256 samples
|
||||
// <0x9=>512 samples
|
||||
// <0xA=>1024 samples
|
||||
// <i> Define how many samples should be added together.The result will be available in the Result register (SAMPLENUM)
|
||||
// <id> adc_arch_samplenum
|
||||
#ifndef CONF_ADC_0_SAMPLENUM
|
||||
#define CONF_ADC_0_SAMPLENUM 0x0
|
||||
#endif
|
||||
|
||||
// <o> Sampling Time Length <0-63>
|
||||
// <i> These bits control the ADC sampling time in number of half CLK_ADC cycles, depending of the prescaler value, thus controlling the ADC input impedance. (SAMPLEN)
|
||||
// <id> adc_arch_samplen
|
||||
#ifndef CONF_ADC_0_SAMPLEN
|
||||
#define CONF_ADC_0_SAMPLEN 0
|
||||
#endif
|
||||
|
||||
// <o> Window Monitor Mode
|
||||
// <0x0=>No window mode
|
||||
// <0x1=>Mode 1: RESULT above lower threshold
|
||||
// <0x2=>Mode 2: RESULT beneath upper threshold
|
||||
// <0x3=>Mode 3: RESULT inside lower and upper threshold
|
||||
// <0x4=>Mode 4: RESULT outside lower and upper threshold
|
||||
// <i> These bits enable and define the window monitor mode. (WINMODE)
|
||||
// <id> adc_arch_winmode
|
||||
#ifndef CONF_ADC_0_WINMODE
|
||||
#define CONF_ADC_0_WINMODE 0x0
|
||||
#endif
|
||||
|
||||
// <o> Window Monitor Lower Threshold <0-65535>
|
||||
// <i> If the window monitor is enabled, these bits define the lower threshold value. (WINLT)
|
||||
// <id> adc_arch_winlt
|
||||
#ifndef CONF_ADC_0_WINLT
|
||||
#define CONF_ADC_0_WINLT 0
|
||||
#endif
|
||||
|
||||
// <o> Window Monitor Upper Threshold <0-65535>
|
||||
// <i> If the window monitor is enabled, these bits define the lower threshold value. (WINUT)
|
||||
// <id> adc_arch_winut
|
||||
#ifndef CONF_ADC_0_WINUT
|
||||
#define CONF_ADC_0_WINUT 0
|
||||
#endif
|
||||
|
||||
// <o> Bitmask for positive input sequence <0-4294967295>
|
||||
// <i> Use this parameter to input the bitmask for positive input sequence control (refer to datasheet for the device).
|
||||
// <id> adc_arch_seqen
|
||||
#ifndef CONF_ADC_0_SEQEN
|
||||
#define CONF_ADC_0_SEQEN 0x0
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <e> Event Control
|
||||
// <id> adc_arch_event_settings
|
||||
#ifndef CONF_ADC_0_EVENT_CONTROL
|
||||
#define CONF_ADC_0_EVENT_CONTROL 0
|
||||
#endif
|
||||
|
||||
// <q> Window Monitor Event Out
|
||||
// <i> Enables event output on window event (WINMONEO)
|
||||
// <id> adc_arch_winmoneo
|
||||
#ifndef CONF_ADC_0_WINMONEO
|
||||
#define CONF_ADC_0_WINMONEO 0
|
||||
#endif
|
||||
|
||||
// <q> Result Ready Event Out
|
||||
// <i> Enables event output on result ready event (RESRDEO)
|
||||
// <id> adc_arch_resrdyeo
|
||||
#ifndef CONF_ADC_0_RESRDYEO
|
||||
#define CONF_ADC_0_RESRDYEO 0
|
||||
#endif
|
||||
|
||||
// <q> Invert flush Event Signal
|
||||
// <i> Invert the flush event input signal (FLUSHINV)
|
||||
// <id> adc_arch_flushinv
|
||||
#ifndef CONF_ADC_0_FLUSHINV
|
||||
#define CONF_ADC_0_FLUSHINV 0
|
||||
#endif
|
||||
|
||||
// <q> Trigger Flush On Event
|
||||
// <i> Trigger an ADC pipeline flush on event (FLUSHEI)
|
||||
// <id> adc_arch_flushei
|
||||
#ifndef CONF_ADC_0_FLUSHEI
|
||||
#define CONF_ADC_0_FLUSHEI 0
|
||||
#endif
|
||||
|
||||
// <q> Invert Start Conversion Event Signal
|
||||
// <i> Invert the start conversion event input signal (STARTINV)
|
||||
// <id> adc_arch_startinv
|
||||
#ifndef CONF_ADC_0_STARTINV
|
||||
#define CONF_ADC_0_STARTINV 0
|
||||
#endif
|
||||
|
||||
// <q> Trigger Conversion On Event
|
||||
// <i> Trigger a conversion on event. (STARTEI)
|
||||
// <id> adc_arch_startei
|
||||
#ifndef CONF_ADC_0_STARTEI
|
||||
#define CONF_ADC_0_STARTEI 0
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_ADC_CONFIG_H
|
|
@ -0,0 +1,169 @@
|
|||
/* Auto-generated config file hpl_dac_config.h */
|
||||
#ifndef HPL_DAC_CONFIG_H
|
||||
#define HPL_DAC_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
// <h> Basic configuration
|
||||
// <o> Reference Selection
|
||||
// <0x00=> Unbuffered external voltage reference
|
||||
// <0x01=> Voltage supply
|
||||
// <0x02=> Buffered external voltage reference
|
||||
// <0x03=> Internal bandgap reference
|
||||
// <id> dac_arch_refsel
|
||||
#ifndef CONF_DAC_REFSEL
|
||||
#define CONF_DAC_REFSEL 0
|
||||
#endif
|
||||
|
||||
// <q> Differential mode
|
||||
// <i> Indicates whether the differential mode is enabled or not
|
||||
// <id> dac_arch_diff
|
||||
#ifndef CONF_DAC_DIFF
|
||||
#define CONF_DAC_DIFF 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <e> Advanced Configuration
|
||||
// <id> dac_advanced_settings
|
||||
#ifndef CONF_DAC_ADVANCED_CONFIG
|
||||
#define CONF_DAC_ADVANCED_CONFIG 0
|
||||
#endif
|
||||
|
||||
// <q> Debug Run
|
||||
// <i> Indicate whether running when CPU is halted
|
||||
// <id> adc_arch_dbgrun
|
||||
#ifndef CONF_DAC_DBGRUN
|
||||
#define CONF_DAC_DBGRUN 1
|
||||
#endif
|
||||
|
||||
// <h> Channel 0 configuration
|
||||
// <q> Left Adjusted Data
|
||||
// <i> Indicate how the data is adjusted in the Data and Data Buffer register
|
||||
// <id> dac0_arch_leftadj
|
||||
#ifndef CONF_DAC0_LEFTADJ
|
||||
#define CONF_DAC0_LEFTADJ 1
|
||||
#endif
|
||||
|
||||
// <o> Current control
|
||||
// <0=> GCLK_DAC <= 1.2MHz (100kSPS)
|
||||
// <1=> 1.2MHz < GCLK_DAC <= 6MHz (500kSPS)
|
||||
// <2=> 6MHz < GCLK_DAC <= 12MHz (1MSPS)
|
||||
// <i> This defines the current in output buffer according to conversion rate
|
||||
// <id> dac0_arch_cctrl
|
||||
#ifndef CONF_DAC0_CCTRL
|
||||
#define CONF_DAC0_CCTRL 0
|
||||
#endif
|
||||
|
||||
// <q> Run in standby
|
||||
// <i> Indicates whether the DAC channel will continue running in standby sleep mode or not
|
||||
// <id> dac0_arch_runstdby
|
||||
#ifndef CONF_DAC0_RUNSTDBY
|
||||
#define CONF_DAC0_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Dithering Mode
|
||||
// <i> Indicate whether dithering mode is enabled
|
||||
// <id> dac0_arch_ditrher
|
||||
#ifndef CONF_DAC0_DITHER
|
||||
#define CONF_DAC0_DITHER 0
|
||||
#endif
|
||||
|
||||
// <o> Refresh period <0x00-0xFF>
|
||||
// <i> This defines the refresh period. If it is 0, the refresh mode is disabled, else the refresh period is: value * 500us
|
||||
// <id> dac0_arch_refresh
|
||||
#ifndef CONF_DAC0_REFRESH
|
||||
#define CONF_DAC0_REFRESH 2
|
||||
#endif
|
||||
// </h>
|
||||
// <h> Channel 1 configuration
|
||||
// <q> Left Adjusted Data
|
||||
// <i> Indicate how the data is adjusted in the Data and Data Buffer register
|
||||
// <id> dac1_arch_leftadj
|
||||
#ifndef CONF_DAC1_LEFTADJ
|
||||
#define CONF_DAC1_LEFTADJ 1
|
||||
#endif
|
||||
|
||||
// <o> Current control
|
||||
// <0=> GCLK_DAC <= 1.2MHz (100kSPS)
|
||||
// <1=> 1.2MHz < GCLK_DAC <= 6MHz (500kSPS)
|
||||
// <2=> 6MHz < GCLK_DAC <= 12MHz (1MSPS)
|
||||
// <i> This defines the current in output buffer according to conversion rate
|
||||
// <id> dac1_arch_cctrl
|
||||
#ifndef CONF_DAC1_CCTRL
|
||||
#define CONF_DAC1_CCTRL 0
|
||||
#endif
|
||||
|
||||
// <q> Run in standby
|
||||
// <i> Indicates whether the DAC channel will continue running in standby sleep mode or not
|
||||
// <id> dac1_arch_runstdby
|
||||
#ifndef CONF_DAC1_RUNSTDBY
|
||||
#define CONF_DAC1_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Dithering Mode
|
||||
// <i> Indicate whether dithering mode is enabled
|
||||
// <id> dac1_arch_ditrher
|
||||
#ifndef CONF_DAC1_DITHER
|
||||
#define CONF_DAC1_DITHER 0
|
||||
#endif
|
||||
|
||||
// <o> Refresh period <0x00-0xFF>
|
||||
// <i> This defines the refresh period. If it is 0, the refresh mode is disabled, else the refresh period is: value * 500us
|
||||
// <id> dac1_arch_refresh
|
||||
#ifndef CONF_DAC1_REFRESH
|
||||
#define CONF_DAC1_REFRESH 2
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <h> Event configuration
|
||||
// <o> Inversion of DAC 0 event
|
||||
// <0=> Detection on rising edge pf the input event
|
||||
// <1=> Detection on falling edge pf the input event
|
||||
// <i> This defines the edge detection of the input event
|
||||
// <id> dac_arch_invei0
|
||||
#ifndef CONF_DAC_INVEI0
|
||||
#define CONF_DAC_INVEI0 0
|
||||
#endif
|
||||
|
||||
// <q> Data Buffer of DAC 0 Empty Event Output
|
||||
// <i> Indicate whether Data Buffer Empty Event is enabled and generated when the Data Buffer register is empty or not
|
||||
// <id> dac_arch_emptyeo_0
|
||||
#ifndef CONF_DAC_EMPTYEO0
|
||||
#define CONF_DAC_EMPTYEO0 0
|
||||
#endif
|
||||
|
||||
// <q> Start Conversion Event Input DAC 0
|
||||
// <i> Indicate whether Start input event is enabled
|
||||
// <id> dac_arch_startei_0
|
||||
#ifndef CONF_DAC_STARTEI0
|
||||
#define CONF_DAC_STARTEI0 0
|
||||
#endif
|
||||
// <o> Inversion of DAC 1 event
|
||||
// <0=> Detection on rising edge pf the input event
|
||||
// <1=> Detection on falling edge pf the input event
|
||||
// <i> This defines the edge detection of the input event
|
||||
// <id> dac_arch_invei1
|
||||
#ifndef CONF_DAC_INVEI1
|
||||
#define CONF_DAC_INVEI1 0
|
||||
#endif
|
||||
|
||||
// <q> Data Buffer of DAC 1 Empty Event Output
|
||||
// <i> Indicate whether Data Buffer Empty Event is enabled and generated when the Data Buffer register is empty or not
|
||||
// <id> dac_arch_emptyeo_1
|
||||
#ifndef CONF_DAC_EMPTYEO1
|
||||
#define CONF_DAC_EMPTYEO1 0
|
||||
#endif
|
||||
|
||||
// <q> Start Conversion Event Input DAC 1
|
||||
// <i> Indicate whether Start input event is enabled
|
||||
// <id> dac_arch_startei_1
|
||||
#ifndef CONF_DAC_STARTEI1
|
||||
#define CONF_DAC_STARTEI1 0
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_DAC_CONFIG_H
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,924 @@
|
|||
// Circuit Python SAMD51 clock tree:
|
||||
// DFLL48M (with USBCRM on to sync with external USB ref) -> GCLK1, GCLK5, GCLK6
|
||||
// GCLK1 (48MHz) -> 48 MHz peripherals
|
||||
// GCLK5 (48 MHz divided down to 2 MHz) -> DPLL0
|
||||
// DPLL0 (multiplied up to 120 MHz) -> GCLK0, GCLK4 (output for monitoring)
|
||||
// GCLK6 (48 MHz divided down to 12 MHz) -> DAC
|
||||
|
||||
// We'd like to use XOSC32K as a ref for DFLL48M on boards with a 32kHz crystal,
|
||||
// but haven't figured that out yet.
|
||||
|
||||
// Used in hpl/core/hpl_init.c to define which clocks should be initialized first.
|
||||
// Not clear why all these need to be specified, but it doesn't work properly otherwise.
|
||||
|
||||
//#define CIRCUITPY_GCLK_INIT_1ST (1 << 0 | 1 << 1 | 1 << 3 | 1 <<5)
|
||||
#define CIRCUITPY_GCLK_INIT_1ST 0xffff
|
||||
|
||||
/* Auto-generated config file hpl_gclk_config.h */
|
||||
#ifndef HPL_GCLK_CONFIG_H
|
||||
#define HPL_GCLK_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
// <e> Generic clock generator 0 configuration
|
||||
// <i> Indicates whether generic clock 0 configuration is enabled or not
|
||||
// <id> enable_gclk_gen_0
|
||||
#ifndef CONF_GCLK_GENERATOR_0_CONFIG
|
||||
#define CONF_GCLK_GENERATOR_0_CONFIG 1
|
||||
#endif
|
||||
|
||||
// <h> Generic Clock Generator Control
|
||||
// <y> Generic clock generator 0 source// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_GENCTRL_SRC_GCLKIN"> Generic clock generator input pad
|
||||
// <GCLK_GENCTRL_SRC_GCLKGEN1"> Generic clock generator 1
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_DFLL"> Digital Frequency Locked Loop (DFLL48M)
|
||||
// <GCLK_GENCTRL_SRC_DPLL0"> Digital Phase Locked Loop (DPLL0)
|
||||
// <GCLK_GENCTRL_SRC_DPLL1"> Digital Phase Locked Loop (DPLL1)
|
||||
// <i> This defines the clock source for generic clock generator 0
|
||||
// <id> gclk_gen_0_oscillator
|
||||
#ifndef CONF_GCLK_GEN_0_SOURCE
|
||||
#define CONF_GCLK_GEN_0_SOURCE GCLK_GENCTRL_SRC_DPLL0
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> gclk_arch_gen_0_runstdby
|
||||
#ifndef CONF_GCLK_GEN_0_RUNSTDBY
|
||||
#define CONF_GCLK_GEN_0_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Divide Selection
|
||||
// <i> Indicates whether Divide Selection is enabled or not
|
||||
//<id> gclk_gen_0_div_sel
|
||||
#ifndef CONF_GCLK_GEN_0_DIVSEL
|
||||
#define CONF_GCLK_GEN_0_DIVSEL 0
|
||||
#endif
|
||||
|
||||
// <q> Output Enable
|
||||
// <i> Indicates whether Output Enable is enabled or not
|
||||
// <id> gclk_arch_gen_0_oe
|
||||
#ifndef CONF_GCLK_GEN_0_OE
|
||||
#define CONF_GCLK_GEN_0_OE 1
|
||||
#endif
|
||||
|
||||
// <q> Output Off Value
|
||||
// <i> Indicates whether Output Off Value is enabled or not
|
||||
// <id> gclk_arch_gen_0_oov
|
||||
#ifndef CONF_GCLK_GEN_0_OOV
|
||||
#define CONF_GCLK_GEN_0_OOV 0
|
||||
#endif
|
||||
|
||||
// <q> Improve Duty Cycle
|
||||
// <i> Indicates whether Improve Duty Cycle is enabled or not
|
||||
// <id> gclk_arch_gen_0_idc
|
||||
#ifndef CONF_GCLK_GEN_0_IDC
|
||||
#define CONF_GCLK_GEN_0_IDC 0
|
||||
#endif
|
||||
|
||||
// <q> Generic Clock Generator Enable
|
||||
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
|
||||
// <id> gclk_arch_gen_0_enable
|
||||
#ifndef CONF_GCLK_GEN_0_GENEN
|
||||
#define CONF_GCLK_GEN_0_GENEN 1
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
//<h> Generic Clock Generator Division
|
||||
//<o> Generic clock generator 0 division <0x0000-0xFFFF>
|
||||
// <id> gclk_gen_0_div
|
||||
#ifndef CONF_GCLK_GEN_0_DIV
|
||||
#define CONF_GCLK_GEN_0_DIV 1
|
||||
#endif
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> Generic clock generator 1 configuration
|
||||
// <i> Indicates whether generic clock 1 configuration is enabled or not
|
||||
// <id> enable_gclk_gen_1
|
||||
#ifndef CONF_GCLK_GENERATOR_1_CONFIG
|
||||
#define CONF_GCLK_GENERATOR_1_CONFIG 1
|
||||
#endif
|
||||
|
||||
// <h> Generic Clock Generator Control
|
||||
// <y> Generic clock generator 1 source// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_GENCTRL_SRC_GCLKIN"> Generic clock generator input pad
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_DFLL"> Digital Frequency Locked Loop (DFLL48M)
|
||||
// <GCLK_GENCTRL_SRC_DPLL0"> Digital Phase Locked Loop (DPLL0)
|
||||
// <GCLK_GENCTRL_SRC_DPLL1"> Digital Phase Locked Loop (DPLL1)
|
||||
// <i> This defines the clock source for generic clock generator 1
|
||||
// <id> gclk_gen_1_oscillator
|
||||
#ifndef CONF_GCLK_GEN_1_SOURCE
|
||||
#define CONF_GCLK_GEN_1_SOURCE GCLK_GENCTRL_SRC_DFLL
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> gclk_arch_gen_1_runstdby
|
||||
#ifndef CONF_GCLK_GEN_1_RUNSTDBY
|
||||
#define CONF_GCLK_GEN_1_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Divide Selection
|
||||
// <i> Indicates whether Divide Selection is enabled or not
|
||||
//<id> gclk_gen_1_div_sel
|
||||
#ifndef CONF_GCLK_GEN_1_DIVSEL
|
||||
#define CONF_GCLK_GEN_1_DIVSEL 0
|
||||
#endif
|
||||
|
||||
// <q> Output Enable
|
||||
// <i> Indicates whether Output Enable is enabled or not
|
||||
// <id> gclk_arch_gen_1_oe
|
||||
#ifndef CONF_GCLK_GEN_1_OE
|
||||
#define CONF_GCLK_GEN_1_OE 1
|
||||
#endif
|
||||
|
||||
// <q> Output Off Value
|
||||
// <i> Indicates whether Output Off Value is enabled or not
|
||||
// <id> gclk_arch_gen_1_oov
|
||||
#ifndef CONF_GCLK_GEN_1_OOV
|
||||
#define CONF_GCLK_GEN_1_OOV 0
|
||||
#endif
|
||||
|
||||
// <q> Improve Duty Cycle
|
||||
// <i> Indicates whether Improve Duty Cycle is enabled or not
|
||||
// <id> gclk_arch_gen_1_idc
|
||||
#ifndef CONF_GCLK_GEN_1_IDC
|
||||
#define CONF_GCLK_GEN_1_IDC 0
|
||||
#endif
|
||||
|
||||
// <q> Generic Clock Generator Enable
|
||||
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
|
||||
// <id> gclk_arch_gen_1_enable
|
||||
#ifndef CONF_GCLK_GEN_1_GENEN
|
||||
#define CONF_GCLK_GEN_1_GENEN 1
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
//<h> Generic Clock Generator Division
|
||||
//<o> Generic clock generator 1 division <0x0000-0xFFFF>
|
||||
// <id> gclk_gen_1_div
|
||||
#ifndef CONF_GCLK_GEN_1_DIV
|
||||
#define CONF_GCLK_GEN_1_DIV 1
|
||||
#endif
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> Generic clock generator 2 configuration
|
||||
// <i> Indicates whether generic clock 2 configuration is enabled or not
|
||||
// <id> enable_gclk_gen_2
|
||||
#ifndef CONF_GCLK_GENERATOR_2_CONFIG
|
||||
#define CONF_GCLK_GENERATOR_2_CONFIG 1
|
||||
#endif
|
||||
|
||||
// <h> Generic Clock Generator Control
|
||||
// <y> Generic clock generator 2 source// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_GENCTRL_SRC_GCLKIN"> Generic clock generator input pad
|
||||
// <GCLK_GENCTRL_SRC_GCLKGEN1"> Generic clock generator 1
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_DFLL"> Digital Frequency Locked Loop (DFLL48M)
|
||||
// <GCLK_GENCTRL_SRC_DPLL0"> Digital Phase Locked Loop (DPLL0)
|
||||
// <GCLK_GENCTRL_SRC_DPLL1"> Digital Phase Locked Loop (DPLL1)
|
||||
// <i> This defines the clock source for generic clock generator 2
|
||||
// <id> gclk_gen_2_oscillator
|
||||
#ifndef CONF_GCLK_GEN_2_SOURCE
|
||||
#define CONF_GCLK_GEN_2_SOURCE GCLK_GENCTRL_SRC_OSCULP32K
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> gclk_arch_gen_2_runstdby
|
||||
#ifndef CONF_GCLK_GEN_2_RUNSTDBY
|
||||
#define CONF_GCLK_GEN_2_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Divide Selection
|
||||
// <i> Indicates whether Divide Selection is enabled or not
|
||||
//<id> gclk_gen_2_div_sel
|
||||
#ifndef CONF_GCLK_GEN_2_DIVSEL
|
||||
#define CONF_GCLK_GEN_2_DIVSEL 1
|
||||
#endif
|
||||
|
||||
// <q> Output Enable
|
||||
// <i> Indicates whether Output Enable is enabled or not
|
||||
// <id> gclk_arch_gen_2_oe
|
||||
#ifndef CONF_GCLK_GEN_2_OE
|
||||
#define CONF_GCLK_GEN_2_OE 0
|
||||
#endif
|
||||
|
||||
// <q> Output Off Value
|
||||
// <i> Indicates whether Output Off Value is enabled or not
|
||||
// <id> gclk_arch_gen_2_oov
|
||||
#ifndef CONF_GCLK_GEN_2_OOV
|
||||
#define CONF_GCLK_GEN_2_OOV 0
|
||||
#endif
|
||||
|
||||
// <q> Improve Duty Cycle
|
||||
// <i> Indicates whether Improve Duty Cycle is enabled or not
|
||||
// <id> gclk_arch_gen_2_idc
|
||||
#ifndef CONF_GCLK_GEN_2_IDC
|
||||
#define CONF_GCLK_GEN_2_IDC 0
|
||||
#endif
|
||||
|
||||
// <q> Generic Clock Generator Enable
|
||||
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
|
||||
// <id> gclk_arch_gen_2_enable
|
||||
#ifndef CONF_GCLK_GEN_2_GENEN
|
||||
#define CONF_GCLK_GEN_2_GENEN 1
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
//<h> Generic Clock Generator Division
|
||||
//<o> Generic clock generator 2 division <0x0000-0xFFFF>
|
||||
// <id> gclk_gen_2_div
|
||||
#ifndef CONF_GCLK_GEN_2_DIV
|
||||
#define CONF_GCLK_GEN_2_DIV 4
|
||||
#endif
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> Generic clock generator 3 configuration
|
||||
// <i> Indicates whether generic clock 3 configuration is enabled or not
|
||||
// <id> enable_gclk_gen_3
|
||||
#ifndef CONF_GCLK_GENERATOR_3_CONFIG
|
||||
#define CONF_GCLK_GENERATOR_3_CONFIG 0
|
||||
#endif
|
||||
|
||||
// <h> Generic Clock Generator Control
|
||||
// <y> Generic clock generator 3 source// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_GENCTRL_SRC_GCLKIN"> Generic clock generator input pad
|
||||
// <GCLK_GENCTRL_SRC_GCLKGEN1"> Generic clock generator 1
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_DFLL"> Digital Frequency Locked Loop (DFLL48M)
|
||||
// <GCLK_GENCTRL_SRC_DPLL0"> Digital Phase Locked Loop (DPLL0)
|
||||
// <GCLK_GENCTRL_SRC_DPLL1"> Digital Phase Locked Loop (DPLL1)
|
||||
// <i> This defines the clock source for generic clock generator 3
|
||||
// <id> gclk_gen_3_oscillator
|
||||
#ifndef CONF_GCLK_GEN_3_SOURCE
|
||||
#define CONF_GCLK_GEN_3_SOURCE GCLK_GENCTRL_SRC_XOSC32K
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> gclk_arch_gen_3_runstdby
|
||||
#ifndef CONF_GCLK_GEN_3_RUNSTDBY
|
||||
#define CONF_GCLK_GEN_3_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Divide Selection
|
||||
// <i> Indicates whether Divide Selection is enabled or not
|
||||
//<id> gclk_gen_3_div_sel
|
||||
#ifndef CONF_GCLK_GEN_3_DIVSEL
|
||||
#define CONF_GCLK_GEN_3_DIVSEL 0
|
||||
#endif
|
||||
|
||||
// <q> Output Enable
|
||||
// <i> Indicates whether Output Enable is enabled or not
|
||||
// <id> gclk_arch_gen_3_oe
|
||||
#ifndef CONF_GCLK_GEN_3_OE
|
||||
#define CONF_GCLK_GEN_3_OE 0
|
||||
#endif
|
||||
|
||||
// <q> Output Off Value
|
||||
// <i> Indicates whether Output Off Value is enabled or not
|
||||
// <id> gclk_arch_gen_3_oov
|
||||
#ifndef CONF_GCLK_GEN_3_OOV
|
||||
#define CONF_GCLK_GEN_3_OOV 0
|
||||
#endif
|
||||
|
||||
// <q> Improve Duty Cycle
|
||||
// <i> Indicates whether Improve Duty Cycle is enabled or not
|
||||
// <id> gclk_arch_gen_3_idc
|
||||
#ifndef CONF_GCLK_GEN_3_IDC
|
||||
#define CONF_GCLK_GEN_3_IDC 0
|
||||
#endif
|
||||
|
||||
// <q> Generic Clock Generator Enable
|
||||
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
|
||||
// <id> gclk_arch_gen_3_enable
|
||||
#ifndef CONF_GCLK_GEN_3_GENEN
|
||||
#define CONF_GCLK_GEN_3_GENEN 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
//<h> Generic Clock Generator Division
|
||||
//<o> Generic clock generator 3 division <0x0000-0xFFFF>
|
||||
// <id> gclk_gen_3_div
|
||||
#ifndef CONF_GCLK_GEN_3_DIV
|
||||
#define CONF_GCLK_GEN_3_DIV 1
|
||||
#endif
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> Generic clock generator 4 configuration
|
||||
// <i> Indicates whether generic clock 4 configuration is enabled or not
|
||||
// <id> enable_gclk_gen_4
|
||||
#ifndef CONF_GCLK_GENERATOR_4_CONFIG
|
||||
#define CONF_GCLK_GENERATOR_4_CONFIG 1
|
||||
#endif
|
||||
|
||||
// <h> Generic Clock Generator Control
|
||||
// <y> Generic clock generator 4 source// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_GENCTRL_SRC_GCLKIN"> Generic clock generator input pad
|
||||
// <GCLK_GENCTRL_SRC_GCLKGEN1"> Generic clock generator 1
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_DFLL"> Digital Frequency Locked Loop (DFLL48M)
|
||||
// <GCLK_GENCTRL_SRC_DPLL0"> Digital Phase Locked Loop (DPLL0)
|
||||
// <GCLK_GENCTRL_SRC_DPLL1"> Digital Phase Locked Loop (DPLL1)
|
||||
// <i> This defines the clock source for generic clock generator 4
|
||||
// <id> gclk_gen_4_oscillator
|
||||
#ifndef CONF_GCLK_GEN_4_SOURCE
|
||||
#define CONF_GCLK_GEN_4_SOURCE GCLK_GENCTRL_SRC_DPLL0
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> gclk_arch_gen_4_runstdby
|
||||
#ifndef CONF_GCLK_GEN_4_RUNSTDBY
|
||||
#define CONF_GCLK_GEN_4_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Divide Selection
|
||||
// <i> Indicates whether Divide Selection is enabled or not
|
||||
//<id> gclk_gen_4_div_sel
|
||||
#ifndef CONF_GCLK_GEN_4_DIVSEL
|
||||
#define CONF_GCLK_GEN_4_DIVSEL 0
|
||||
#endif
|
||||
|
||||
// <q> Output Enable
|
||||
// <i> Indicates whether Output Enable is enabled or not
|
||||
// <id> gclk_arch_gen_4_oe
|
||||
#ifndef CONF_GCLK_GEN_4_OE
|
||||
#define CONF_GCLK_GEN_4_OE 1
|
||||
#endif
|
||||
|
||||
// <q> Output Off Value
|
||||
// <i> Indicates whether Output Off Value is enabled or not
|
||||
// <id> gclk_arch_gen_4_oov
|
||||
#ifndef CONF_GCLK_GEN_4_OOV
|
||||
#define CONF_GCLK_GEN_4_OOV 0
|
||||
#endif
|
||||
|
||||
// <q> Improve Duty Cycle
|
||||
// <i> Indicates whether Improve Duty Cycle is enabled or not
|
||||
// <id> gclk_arch_gen_4_idc
|
||||
#ifndef CONF_GCLK_GEN_4_IDC
|
||||
#define CONF_GCLK_GEN_4_IDC 0
|
||||
#endif
|
||||
|
||||
// <q> Generic Clock Generator Enable
|
||||
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
|
||||
// <id> gclk_arch_gen_4_enable
|
||||
#ifndef CONF_GCLK_GEN_4_GENEN
|
||||
#define CONF_GCLK_GEN_4_GENEN 1
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
//<h> Generic Clock Generator Division
|
||||
//<o> Generic clock generator 4 division <0x0000-0xFFFF>
|
||||
// <id> gclk_gen_4_div
|
||||
#ifndef CONF_GCLK_GEN_4_DIV
|
||||
#define CONF_GCLK_GEN_4_DIV 1
|
||||
#endif
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> Generic clock generator 5 configuration
|
||||
// <i> Indicates whether generic clock 5 configuration is enabled or not
|
||||
// <id> enable_gclk_gen_5
|
||||
#ifndef CONF_GCLK_GENERATOR_5_CONFIG
|
||||
#define CONF_GCLK_GENERATOR_5_CONFIG 1
|
||||
#endif
|
||||
|
||||
// <h> Generic Clock Generator Control
|
||||
// <y> Generic clock generator 5 source// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_GENCTRL_SRC_GCLKIN"> Generic clock generator input pad
|
||||
// <GCLK_GENCTRL_SRC_GCLKGEN1"> Generic clock generator 1
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_DFLL"> Digital Frequency Locked Loop (DFLL48M)
|
||||
// <GCLK_GENCTRL_SRC_DPLL0"> Digital Phase Locked Loop (DPLL0)
|
||||
// <GCLK_GENCTRL_SRC_DPLL1"> Digital Phase Locked Loop (DPLL1)
|
||||
// <i> This defines the clock source for generic clock generator 5
|
||||
// <id> gclk_gen_5_oscillator
|
||||
#ifndef CONF_GCLK_GEN_5_SOURCE
|
||||
#define CONF_GCLK_GEN_5_SOURCE GCLK_GENCTRL_SRC_DFLL
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> gclk_arch_gen_5_runstdby
|
||||
#ifndef CONF_GCLK_GEN_5_RUNSTDBY
|
||||
#define CONF_GCLK_GEN_5_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Divide Selection
|
||||
// <i> Indicates whether Divide Selection is enabled or not
|
||||
//<id> gclk_gen_5_div_sel
|
||||
#ifndef CONF_GCLK_GEN_5_DIVSEL
|
||||
#define CONF_GCLK_GEN_5_DIVSEL 0
|
||||
#endif
|
||||
|
||||
// <q> Output Enable
|
||||
// <i> Indicates whether Output Enable is enabled or not
|
||||
// <id> gclk_arch_gen_5_oe
|
||||
#ifndef CONF_GCLK_GEN_5_OE
|
||||
#define CONF_GCLK_GEN_5_OE 1
|
||||
#endif
|
||||
|
||||
// <q> Output Off Value
|
||||
// <i> Indicates whether Output Off Value is enabled or not
|
||||
// <id> gclk_arch_gen_5_oov
|
||||
#ifndef CONF_GCLK_GEN_5_OOV
|
||||
#define CONF_GCLK_GEN_5_OOV 0
|
||||
#endif
|
||||
|
||||
// <q> Improve Duty Cycle
|
||||
// <i> Indicates whether Improve Duty Cycle is enabled or not
|
||||
// <id> gclk_arch_gen_5_idc
|
||||
#ifndef CONF_GCLK_GEN_5_IDC
|
||||
#define CONF_GCLK_GEN_5_IDC 0
|
||||
#endif
|
||||
|
||||
// <q> Generic Clock Generator Enable
|
||||
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
|
||||
// <id> gclk_arch_gen_5_enable
|
||||
#ifndef CONF_GCLK_GEN_5_GENEN
|
||||
#define CONF_GCLK_GEN_5_GENEN 1
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
//<h> Generic Clock Generator Division
|
||||
//<o> Generic clock generator 5 division <0x0000-0xFFFF>
|
||||
// <id> gclk_gen_5_div
|
||||
#ifndef CONF_GCLK_GEN_5_DIV
|
||||
#define CONF_GCLK_GEN_5_DIV 24
|
||||
#endif
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> Generic clock generator 6 configuration
|
||||
// <i> Indicates whether generic clock 6 configuration is enabled or not
|
||||
// <id> enable_gclk_gen_6
|
||||
#ifndef CONF_GCLK_GENERATOR_6_CONFIG
|
||||
#define CONF_GCLK_GENERATOR_6_CONFIG 1
|
||||
#endif
|
||||
|
||||
// <h> Generic Clock Generator Control
|
||||
// <y> Generic clock generator 6 source// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_GENCTRL_SRC_GCLKIN"> Generic clock generator input pad
|
||||
// <GCLK_GENCTRL_SRC_GCLKGEN1"> Generic clock generator 1
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_DFLL"> Digital Frequency Locked Loop (DFLL48M)
|
||||
// <GCLK_GENCTRL_SRC_DPLL0"> Digital Phase Locked Loop (DPLL0)
|
||||
// <GCLK_GENCTRL_SRC_DPLL1"> Digital Phase Locked Loop (DPLL1)
|
||||
// <i> This defines the clock source for generic clock generator 6
|
||||
// <id> gclk_gen_6_oscillator
|
||||
#ifndef CONF_GCLK_GEN_6_SOURCE
|
||||
#define CONF_GCLK_GEN_6_SOURCE GCLK_GENCTRL_SRC_DFLL
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> gclk_arch_gen_6_runstdby
|
||||
#ifndef CONF_GCLK_GEN_6_RUNSTDBY
|
||||
#define CONF_GCLK_GEN_6_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Divide Selection
|
||||
// <i> Indicates whether Divide Selection is enabled or not
|
||||
//<id> gclk_gen_6_div_sel
|
||||
#ifndef CONF_GCLK_GEN_6_DIVSEL
|
||||
#define CONF_GCLK_GEN_6_DIVSEL 0
|
||||
#endif
|
||||
|
||||
// <q> Output Enable
|
||||
// <i> Indicates whether Output Enable is enabled or not
|
||||
// <id> gclk_arch_gen_6_oe
|
||||
#ifndef CONF_GCLK_GEN_6_OE
|
||||
#define CONF_GCLK_GEN_6_OE 0
|
||||
#endif
|
||||
|
||||
// <q> Output Off Value
|
||||
// <i> Indicates whether Output Off Value is enabled or not
|
||||
// <id> gclk_arch_gen_6_oov
|
||||
#ifndef CONF_GCLK_GEN_6_OOV
|
||||
#define CONF_GCLK_GEN_6_OOV 0
|
||||
#endif
|
||||
|
||||
// <q> Improve Duty Cycle
|
||||
// <i> Indicates whether Improve Duty Cycle is enabled or not
|
||||
// <id> gclk_arch_gen_6_idc
|
||||
#ifndef CONF_GCLK_GEN_6_IDC
|
||||
#define CONF_GCLK_GEN_6_IDC 1
|
||||
#endif
|
||||
|
||||
// <q> Generic Clock Generator Enable
|
||||
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
|
||||
// <id> gclk_arch_gen_6_enable
|
||||
#ifndef CONF_GCLK_GEN_6_GENEN
|
||||
#define CONF_GCLK_GEN_6_GENEN 1
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
//<h> Generic Clock Generator Division
|
||||
//<o> Generic clock generator 6 division <0x0000-0xFFFF>
|
||||
// <id> gclk_gen_6_div
|
||||
#ifndef CONF_GCLK_GEN_6_DIV
|
||||
#define CONF_GCLK_GEN_6_DIV 4
|
||||
#endif
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> Generic clock generator 7 configuration
|
||||
// <i> Indicates whether generic clock 7 configuration is enabled or not
|
||||
// <id> enable_gclk_gen_7
|
||||
#ifndef CONF_GCLK_GENERATOR_7_CONFIG
|
||||
#define CONF_GCLK_GENERATOR_7_CONFIG 0
|
||||
#endif
|
||||
|
||||
// <h> Generic Clock Generator Control
|
||||
// <y> Generic clock generator 7 source// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_GENCTRL_SRC_GCLKIN"> Generic clock generator input pad
|
||||
// <GCLK_GENCTRL_SRC_GCLKGEN1"> Generic clock generator 1
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_DFLL"> Digital Frequency Locked Loop (DFLL48M)
|
||||
// <GCLK_GENCTRL_SRC_DPLL0"> Digital Phase Locked Loop (DPLL0)
|
||||
// <GCLK_GENCTRL_SRC_DPLL1"> Digital Phase Locked Loop (DPLL1)
|
||||
// <i> This defines the clock source for generic clock generator 7
|
||||
// <id> gclk_gen_7_oscillator
|
||||
#ifndef CONF_GCLK_GEN_7_SOURCE
|
||||
#define CONF_GCLK_GEN_7_SOURCE GCLK_GENCTRL_SRC_XOSC1
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> gclk_arch_gen_7_runstdby
|
||||
#ifndef CONF_GCLK_GEN_7_RUNSTDBY
|
||||
#define CONF_GCLK_GEN_7_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Divide Selection
|
||||
// <i> Indicates whether Divide Selection is enabled or not
|
||||
//<id> gclk_gen_7_div_sel
|
||||
#ifndef CONF_GCLK_GEN_7_DIVSEL
|
||||
#define CONF_GCLK_GEN_7_DIVSEL 0
|
||||
#endif
|
||||
|
||||
// <q> Output Enable
|
||||
// <i> Indicates whether Output Enable is enabled or not
|
||||
// <id> gclk_arch_gen_7_oe
|
||||
#ifndef CONF_GCLK_GEN_7_OE
|
||||
#define CONF_GCLK_GEN_7_OE 0
|
||||
#endif
|
||||
|
||||
// <q> Output Off Value
|
||||
// <i> Indicates whether Output Off Value is enabled or not
|
||||
// <id> gclk_arch_gen_7_oov
|
||||
#ifndef CONF_GCLK_GEN_7_OOV
|
||||
#define CONF_GCLK_GEN_7_OOV 0
|
||||
#endif
|
||||
|
||||
// <q> Improve Duty Cycle
|
||||
// <i> Indicates whether Improve Duty Cycle is enabled or not
|
||||
// <id> gclk_arch_gen_7_idc
|
||||
#ifndef CONF_GCLK_GEN_7_IDC
|
||||
#define CONF_GCLK_GEN_7_IDC 0
|
||||
#endif
|
||||
|
||||
// <q> Generic Clock Generator Enable
|
||||
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
|
||||
// <id> gclk_arch_gen_7_enable
|
||||
#ifndef CONF_GCLK_GEN_7_GENEN
|
||||
#define CONF_GCLK_GEN_7_GENEN 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
//<h> Generic Clock Generator Division
|
||||
//<o> Generic clock generator 7 division <0x0000-0xFFFF>
|
||||
// <id> gclk_gen_7_div
|
||||
#ifndef CONF_GCLK_GEN_7_DIV
|
||||
#define CONF_GCLK_GEN_7_DIV 1
|
||||
#endif
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> Generic clock generator 8 configuration
|
||||
// <i> Indicates whether generic clock 8 configuration is enabled or not
|
||||
// <id> enable_gclk_gen_8
|
||||
#ifndef CONF_GCLK_GENERATOR_8_CONFIG
|
||||
#define CONF_GCLK_GENERATOR_8_CONFIG 0
|
||||
#endif
|
||||
|
||||
// <h> Generic Clock Generator Control
|
||||
// <y> Generic clock generator 8 source// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_GENCTRL_SRC_GCLKIN"> Generic clock generator input pad
|
||||
// <GCLK_GENCTRL_SRC_GCLKGEN1"> Generic clock generator 1
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_DFLL"> Digital Frequency Locked Loop (DFLL48M)
|
||||
// <GCLK_GENCTRL_SRC_DPLL0"> Digital Phase Locked Loop (DPLL0)
|
||||
// <GCLK_GENCTRL_SRC_DPLL1"> Digital Phase Locked Loop (DPLL1)
|
||||
// <i> This defines the clock source for generic clock generator 8
|
||||
// <id> gclk_gen_8_oscillator
|
||||
#ifndef CONF_GCLK_GEN_8_SOURCE
|
||||
#define CONF_GCLK_GEN_8_SOURCE GCLK_GENCTRL_SRC_XOSC1
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> gclk_arch_gen_8_runstdby
|
||||
#ifndef CONF_GCLK_GEN_8_RUNSTDBY
|
||||
#define CONF_GCLK_GEN_8_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Divide Selection
|
||||
// <i> Indicates whether Divide Selection is enabled or not
|
||||
//<id> gclk_gen_8_div_sel
|
||||
#ifndef CONF_GCLK_GEN_8_DIVSEL
|
||||
#define CONF_GCLK_GEN_8_DIVSEL 0
|
||||
#endif
|
||||
|
||||
// <q> Output Enable
|
||||
// <i> Indicates whether Output Enable is enabled or not
|
||||
// <id> gclk_arch_gen_8_oe
|
||||
#ifndef CONF_GCLK_GEN_8_OE
|
||||
#define CONF_GCLK_GEN_8_OE 0
|
||||
#endif
|
||||
|
||||
// <q> Output Off Value
|
||||
// <i> Indicates whether Output Off Value is enabled or not
|
||||
// <id> gclk_arch_gen_8_oov
|
||||
#ifndef CONF_GCLK_GEN_8_OOV
|
||||
#define CONF_GCLK_GEN_8_OOV 0
|
||||
#endif
|
||||
|
||||
// <q> Improve Duty Cycle
|
||||
// <i> Indicates whether Improve Duty Cycle is enabled or not
|
||||
// <id> gclk_arch_gen_8_idc
|
||||
#ifndef CONF_GCLK_GEN_8_IDC
|
||||
#define CONF_GCLK_GEN_8_IDC 0
|
||||
#endif
|
||||
|
||||
// <q> Generic Clock Generator Enable
|
||||
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
|
||||
// <id> gclk_arch_gen_8_enable
|
||||
#ifndef CONF_GCLK_GEN_8_GENEN
|
||||
#define CONF_GCLK_GEN_8_GENEN 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
//<h> Generic Clock Generator Division
|
||||
//<o> Generic clock generator 8 division <0x0000-0xFFFF>
|
||||
// <id> gclk_gen_8_div
|
||||
#ifndef CONF_GCLK_GEN_8_DIV
|
||||
#define CONF_GCLK_GEN_8_DIV 1
|
||||
#endif
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> Generic clock generator 9 configuration
|
||||
// <i> Indicates whether generic clock 9 configuration is enabled or not
|
||||
// <id> enable_gclk_gen_9
|
||||
#ifndef CONF_GCLK_GENERATOR_9_CONFIG
|
||||
#define CONF_GCLK_GENERATOR_9_CONFIG 0
|
||||
#endif
|
||||
|
||||
// <h> Generic Clock Generator Control
|
||||
// <y> Generic clock generator 9 source// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_GENCTRL_SRC_GCLKIN"> Generic clock generator input pad
|
||||
// <GCLK_GENCTRL_SRC_GCLKGEN1"> Generic clock generator 1
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_DFLL"> Digital Frequency Locked Loop (DFLL48M)
|
||||
// <GCLK_GENCTRL_SRC_DPLL0"> Digital Phase Locked Loop (DPLL0)
|
||||
// <GCLK_GENCTRL_SRC_DPLL1"> Digital Phase Locked Loop (DPLL1)
|
||||
// <i> This defines the clock source for generic clock generator 9
|
||||
// <id> gclk_gen_9_oscillator
|
||||
#ifndef CONF_GCLK_GEN_9_SOURCE
|
||||
#define CONF_GCLK_GEN_9_SOURCE GCLK_GENCTRL_SRC_XOSC1
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> gclk_arch_gen_9_runstdby
|
||||
#ifndef CONF_GCLK_GEN_9_RUNSTDBY
|
||||
#define CONF_GCLK_GEN_9_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Divide Selection
|
||||
// <i> Indicates whether Divide Selection is enabled or not
|
||||
//<id> gclk_gen_9_div_sel
|
||||
#ifndef CONF_GCLK_GEN_9_DIVSEL
|
||||
#define CONF_GCLK_GEN_9_DIVSEL 0
|
||||
#endif
|
||||
|
||||
// <q> Output Enable
|
||||
// <i> Indicates whether Output Enable is enabled or not
|
||||
// <id> gclk_arch_gen_9_oe
|
||||
#ifndef CONF_GCLK_GEN_9_OE
|
||||
#define CONF_GCLK_GEN_9_OE 0
|
||||
#endif
|
||||
|
||||
// <q> Output Off Value
|
||||
// <i> Indicates whether Output Off Value is enabled or not
|
||||
// <id> gclk_arch_gen_9_oov
|
||||
#ifndef CONF_GCLK_GEN_9_OOV
|
||||
#define CONF_GCLK_GEN_9_OOV 0
|
||||
#endif
|
||||
|
||||
// <q> Improve Duty Cycle
|
||||
// <i> Indicates whether Improve Duty Cycle is enabled or not
|
||||
// <id> gclk_arch_gen_9_idc
|
||||
#ifndef CONF_GCLK_GEN_9_IDC
|
||||
#define CONF_GCLK_GEN_9_IDC 0
|
||||
#endif
|
||||
|
||||
// <q> Generic Clock Generator Enable
|
||||
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
|
||||
// <id> gclk_arch_gen_9_enable
|
||||
#ifndef CONF_GCLK_GEN_9_GENEN
|
||||
#define CONF_GCLK_GEN_9_GENEN 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
//<h> Generic Clock Generator Division
|
||||
//<o> Generic clock generator 9 division <0x0000-0xFFFF>
|
||||
// <id> gclk_gen_9_div
|
||||
#ifndef CONF_GCLK_GEN_9_DIV
|
||||
#define CONF_GCLK_GEN_9_DIV 1
|
||||
#endif
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> Generic clock generator 10 configuration
|
||||
// <i> Indicates whether generic clock 10 configuration is enabled or not
|
||||
// <id> enable_gclk_gen_10
|
||||
#ifndef CONF_GCLK_GENERATOR_10_CONFIG
|
||||
#define CONF_GCLK_GENERATOR_10_CONFIG 0
|
||||
#endif
|
||||
|
||||
// <h> Generic Clock Generator Control
|
||||
// <y> Generic clock generator 10 source// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_GENCTRL_SRC_GCLKIN"> Generic clock generator input pad
|
||||
// <GCLK_GENCTRL_SRC_GCLKGEN1"> Generic clock generator 1
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_DFLL"> Digital Frequency Locked Loop (DFLL48M)
|
||||
// <GCLK_GENCTRL_SRC_DPLL0"> Digital Phase Locked Loop (DPLL0)
|
||||
// <GCLK_GENCTRL_SRC_DPLL1"> Digital Phase Locked Loop (DPLL1)
|
||||
// <i> This defines the clock source for generic clock generator 10
|
||||
// <id> gclk_gen_10_oscillator
|
||||
#ifndef CONF_GCLK_GEN_10_SOURCE
|
||||
#define CONF_GCLK_GEN_10_SOURCE GCLK_GENCTRL_SRC_XOSC1
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> gclk_arch_gen_10_runstdby
|
||||
#ifndef CONF_GCLK_GEN_10_RUNSTDBY
|
||||
#define CONF_GCLK_GEN_10_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Divide Selection
|
||||
// <i> Indicates whether Divide Selection is enabled or not
|
||||
//<id> gclk_gen_10_div_sel
|
||||
#ifndef CONF_GCLK_GEN_10_DIVSEL
|
||||
#define CONF_GCLK_GEN_10_DIVSEL 0
|
||||
#endif
|
||||
|
||||
// <q> Output Enable
|
||||
// <i> Indicates whether Output Enable is enabled or not
|
||||
// <id> gclk_arch_gen_10_oe
|
||||
#ifndef CONF_GCLK_GEN_10_OE
|
||||
#define CONF_GCLK_GEN_10_OE 0
|
||||
#endif
|
||||
|
||||
// <q> Output Off Value
|
||||
// <i> Indicates whether Output Off Value is enabled or not
|
||||
// <id> gclk_arch_gen_10_oov
|
||||
#ifndef CONF_GCLK_GEN_10_OOV
|
||||
#define CONF_GCLK_GEN_10_OOV 0
|
||||
#endif
|
||||
|
||||
// <q> Improve Duty Cycle
|
||||
// <i> Indicates whether Improve Duty Cycle is enabled or not
|
||||
// <id> gclk_arch_gen_10_idc
|
||||
#ifndef CONF_GCLK_GEN_10_IDC
|
||||
#define CONF_GCLK_GEN_10_IDC 0
|
||||
#endif
|
||||
|
||||
// <q> Generic Clock Generator Enable
|
||||
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
|
||||
// <id> gclk_arch_gen_10_enable
|
||||
#ifndef CONF_GCLK_GEN_10_GENEN
|
||||
#define CONF_GCLK_GEN_10_GENEN 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
//<h> Generic Clock Generator Division
|
||||
//<o> Generic clock generator 10 division <0x0000-0xFFFF>
|
||||
// <id> gclk_gen_10_div
|
||||
#ifndef CONF_GCLK_GEN_10_DIV
|
||||
#define CONF_GCLK_GEN_10_DIV 1
|
||||
#endif
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> Generic clock generator 11 configuration
|
||||
// <i> Indicates whether generic clock 11 configuration is enabled or not
|
||||
// <id> enable_gclk_gen_11
|
||||
#ifndef CONF_GCLK_GENERATOR_11_CONFIG
|
||||
#define CONF_GCLK_GENERATOR_11_CONFIG 0
|
||||
#endif
|
||||
|
||||
// <h> Generic Clock Generator Control
|
||||
// <y> Generic clock generator 11 source// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_GENCTRL_SRC_GCLKIN"> Generic clock generator input pad
|
||||
// <GCLK_GENCTRL_SRC_GCLKGEN1"> Generic clock generator 1
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_DFLL"> Digital Frequency Locked Loop (DFLL48M)
|
||||
// <GCLK_GENCTRL_SRC_DPLL0"> Digital Phase Locked Loop (DPLL0)
|
||||
// <GCLK_GENCTRL_SRC_DPLL1"> Digital Phase Locked Loop (DPLL1)
|
||||
// <i> This defines the clock source for generic clock generator 11
|
||||
// <id> gclk_gen_11_oscillator
|
||||
#ifndef CONF_GCLK_GEN_11_SOURCE
|
||||
#define CONF_GCLK_GEN_11_SOURCE GCLK_GENCTRL_SRC_XOSC1
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> gclk_arch_gen_11_runstdby
|
||||
#ifndef CONF_GCLK_GEN_11_RUNSTDBY
|
||||
#define CONF_GCLK_GEN_11_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Divide Selection
|
||||
// <i> Indicates whether Divide Selection is enabled or not
|
||||
//<id> gclk_gen_11_div_sel
|
||||
#ifndef CONF_GCLK_GEN_11_DIVSEL
|
||||
#define CONF_GCLK_GEN_11_DIVSEL 0
|
||||
#endif
|
||||
|
||||
// <q> Output Enable
|
||||
// <i> Indicates whether Output Enable is enabled or not
|
||||
// <id> gclk_arch_gen_11_oe
|
||||
#ifndef CONF_GCLK_GEN_11_OE
|
||||
#define CONF_GCLK_GEN_11_OE 0
|
||||
#endif
|
||||
|
||||
// <q> Output Off Value
|
||||
// <i> Indicates whether Output Off Value is enabled or not
|
||||
// <id> gclk_arch_gen_11_oov
|
||||
#ifndef CONF_GCLK_GEN_11_OOV
|
||||
#define CONF_GCLK_GEN_11_OOV 0
|
||||
#endif
|
||||
|
||||
// <q> Improve Duty Cycle
|
||||
// <i> Indicates whether Improve Duty Cycle is enabled or not
|
||||
// <id> gclk_arch_gen_11_idc
|
||||
#ifndef CONF_GCLK_GEN_11_IDC
|
||||
#define CONF_GCLK_GEN_11_IDC 0
|
||||
#endif
|
||||
|
||||
// <q> Generic Clock Generator Enable
|
||||
// <i> Indicates whether Generic Clock Generator Enable is enabled or not
|
||||
// <id> gclk_arch_gen_11_enable
|
||||
#ifndef CONF_GCLK_GEN_11_GENEN
|
||||
#define CONF_GCLK_GEN_11_GENEN 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
//<h> Generic Clock Generator Division
|
||||
//<o> Generic clock generator 11 division <0x0000-0xFFFF>
|
||||
// <id> gclk_gen_11_div
|
||||
#ifndef CONF_GCLK_GEN_11_DIV
|
||||
#define CONF_GCLK_GEN_11_DIV 1
|
||||
#endif
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_GCLK_CONFIG_H
|
|
@ -0,0 +1,104 @@
|
|||
/* Auto-generated config file hpl_mclk_config.h */
|
||||
#ifndef HPL_MCLK_CONFIG_H
|
||||
#define HPL_MCLK_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
#include <peripheral_clk_config.h>
|
||||
|
||||
// <e> System Configuration
|
||||
// <i> Indicates whether configuration for system is enabled or not
|
||||
// <id> enable_cpu_clock
|
||||
#ifndef CONF_SYSTEM_CONFIG
|
||||
#define CONF_SYSTEM_CONFIG 1
|
||||
#endif
|
||||
|
||||
// <h> Basic settings
|
||||
// <y> CPU Clock source
|
||||
// <GCLK_PCHCTRL_GEN_GCLK0_Val"> Generic clock generator 0
|
||||
// <i> This defines the clock source for the CPU
|
||||
// <id> cpu_clock_source
|
||||
#ifndef CONF_CPU_SRC
|
||||
#define CONF_CPU_SRC GCLK_PCHCTRL_GEN_GCLK0_Val
|
||||
#endif
|
||||
|
||||
// <y> CPU Clock Division Factor
|
||||
// <MCLK_CPUDIV_DIV_DIV1_Val"> 1
|
||||
// <MCLK_CPUDIV_DIV_DIV2_Val"> 2
|
||||
// <MCLK_CPUDIV_DIV_DIV4_Val"> 4
|
||||
// <MCLK_CPUDIV_DIV_DIV8_Val"> 8
|
||||
// <MCLK_CPUDIV_DIV_DIV16_Val"> 16
|
||||
// <MCLK_CPUDIV_DIV_DIV32_Val"> 32
|
||||
// <MCLK_CPUDIV_DIV_DIV64_Val"> 64
|
||||
// <MCLK_CPUDIV_DIV_DIV128_Val"> 128
|
||||
// <i> Prescalar for CPU clock
|
||||
// <id> cpu_div
|
||||
#ifndef CONF_MCLK_CPUDIV
|
||||
#define CONF_MCLK_CPUDIV MCLK_CPUDIV_DIV_DIV1_Val
|
||||
#endif
|
||||
// <y> Low Power Clock Division
|
||||
// <MCLK_LPDIV_LPDIV_DIV1_Val"> Divide by 1
|
||||
// <MCLK_LPDIV_LPDIV_DIV2_Val"> Divide by 2
|
||||
// <MCLK_LPDIV_LPDIV_DIV4_Val"> Divide by 4
|
||||
// <MCLK_LPDIV_LPDIV_DIV8_Val"> Divide by 8
|
||||
// <MCLK_LPDIV_LPDIV_DIV16_Val"> Divide by 16
|
||||
// <MCLK_LPDIV_LPDIV_DIV32_Val"> Divide by 32
|
||||
// <MCLK_LPDIV_LPDIV_DIV64_Val"> Divide by 64
|
||||
// <MCLK_LPDIV_LPDIV_DIV128_Val"> Divide by 128
|
||||
// <id> mclk_arch_lpdiv
|
||||
#ifndef CONF_MCLK_LPDIV
|
||||
#define CONF_MCLK_LPDIV MCLK_LPDIV_LPDIV_DIV4_Val
|
||||
#endif
|
||||
|
||||
// <y> Backup Clock Division
|
||||
// <MCLK_BUPDIV_BUPDIV_DIV1_Val"> Divide by 1
|
||||
// <MCLK_BUPDIV_BUPDIV_DIV2_Val"> Divide by 2
|
||||
// <MCLK_BUPDIV_BUPDIV_DIV4_Val"> Divide by 4
|
||||
// <MCLK_BUPDIV_BUPDIV_DIV8_Val"> Divide by 8
|
||||
// <MCLK_BUPDIV_BUPDIV_DIV16_Val"> Divide by 16
|
||||
// <MCLK_BUPDIV_BUPDIV_DIV32_Val"> Divide by 32
|
||||
// <MCLK_BUPDIV_BUPDIV_DIV64_Val"> Divide by 64
|
||||
// <MCLK_BUPDIV_BUPDIV_DIV128_Val"> Divide by 128
|
||||
// <id> mclk_arch_bupdiv
|
||||
#ifndef CONF_MCLK_BUPDIV
|
||||
#define CONF_MCLK_BUPDIV MCLK_BUPDIV_BUPDIV_DIV8_Val
|
||||
#endif
|
||||
// <y> High-Speed Clock Division
|
||||
// <MCLK_HSDIV_DIV_DIV1_Val"> Divide by 1
|
||||
// <id> mclk_arch_hsdiv
|
||||
#ifndef CONF_MCLK_HSDIV
|
||||
#define CONF_MCLK_HSDIV MCLK_HSDIV_DIV_DIV1_Val
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <h> NVM Settings
|
||||
// <o> NVM Wait States
|
||||
// <i> These bits select the number of wait states for a read operation.
|
||||
// <0=> 0
|
||||
// <1=> 1
|
||||
// <2=> 2
|
||||
// <3=> 3
|
||||
// <4=> 4
|
||||
// <5=> 5
|
||||
// <6=> 6
|
||||
// <7=> 7
|
||||
// <8=> 8
|
||||
// <9=> 9
|
||||
// <10=> 10
|
||||
// <11=> 11
|
||||
// <12=> 12
|
||||
// <13=> 13
|
||||
// <14=> 14
|
||||
// <15=> 15
|
||||
// <id> nvm_wait_states
|
||||
#ifndef CONF_NVM_WAIT_STATE
|
||||
#define CONF_NVM_WAIT_STATE 0
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
|
||||
// </e>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_MCLK_CONFIG_H
|
|
@ -0,0 +1,36 @@
|
|||
/* Auto-generated config file hpl_nvmctrl_config.h */
|
||||
#ifndef HPL_NVMCTRL_CONFIG_H
|
||||
#define HPL_NVMCTRL_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
// <h> Basic Settings
|
||||
|
||||
// <o> Power Reduction Mode During Sleep
|
||||
// <0x00=> Wake On Access
|
||||
// <0x01=> Wake Up Instant
|
||||
// <0x03=> Disabled
|
||||
// <id> nvm_arch_sleepprm
|
||||
#ifndef CONF_NVM_SLEEPPRM
|
||||
#define CONF_NVM_SLEEPPRM 0
|
||||
#endif
|
||||
|
||||
// <q> AHB0 Cache Disable
|
||||
// <i> Indicate whether AHB0 cache is disable or not
|
||||
// <id> nvm_arch_cache0
|
||||
#ifndef CONF_NVM_CACHE0
|
||||
#define CONF_NVM_CACHE0 1
|
||||
#endif
|
||||
|
||||
// <q> AHB1 Cache Disable
|
||||
// <i> Indicate whether AHB1 cache is disable or not
|
||||
// <id> nvm_arch_cache1
|
||||
#ifndef CONF_NVM_CACHE1
|
||||
#define CONF_NVM_CACHE1 1
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_NVMCTRL_CONFIG_H
|
|
@ -0,0 +1,163 @@
|
|||
/* Auto-generated config file hpl_osc32kctrl_config.h */
|
||||
#ifndef HPL_OSC32KCTRL_CONFIG_H
|
||||
#define HPL_OSC32KCTRL_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
// <e> RTC Source configuration
|
||||
// <id> enable_rtc_source
|
||||
#ifndef CONF_RTCCTRL_CONFIG
|
||||
#define CONF_RTCCTRL_CONFIG 0
|
||||
#endif
|
||||
|
||||
// <h> RTC source control
|
||||
// <y> RTC Clock Source Selection
|
||||
// <GCLK_GENCTRL_SRC_OSCULP32K"> 32kHz Ultra Low Power Internal Oscillator (OSCULP32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <i> This defines the clock source for RTC
|
||||
// <id> rtc_source_oscillator
|
||||
#ifndef CONF_RTCCTRL_SRC
|
||||
#define CONF_RTCCTRL_SRC GCLK_GENCTRL_SRC_OSCULP32K
|
||||
#endif
|
||||
|
||||
// <q> Use 1 kHz output
|
||||
// <id> rtc_1khz_selection
|
||||
#ifndef CONF_RTCCTRL_1KHZ
|
||||
#define CONF_RTCCTRL_1KHZ 1
|
||||
#endif
|
||||
|
||||
#if CONF_RTCCTRL_SRC == GCLK_GENCTRL_SRC_OSCULP32K
|
||||
#define CONF_RTCCTRL (CONF_RTCCTRL_1KHZ ? OSC32KCTRL_RTCCTRL_RTCSEL_ULP1K_Val : OSC32KCTRL_RTCCTRL_RTCSEL_ULP32K_Val)
|
||||
#elif CONF_RTCCTRL_SRC == GCLK_GENCTRL_SRC_XOSC32K
|
||||
#define CONF_RTCCTRL (CONF_RTCCTRL_1KHZ ? OSC32KCTRL_RTCCTRL_RTCSEL_XOSC1K_Val : OSC32KCTRL_RTCCTRL_RTCSEL_XOSC32K_Val)
|
||||
#else
|
||||
#error unexpected CONF_RTCCTRL_SRC
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> 32kHz External Crystal Oscillator Configuration
|
||||
// <i> Indicates whether configuration for External 32K Osc is enabled or not
|
||||
// <id> enable_xosc32k
|
||||
#ifndef CONF_XOSC32K_CONFIG
|
||||
#define CONF_XOSC32K_CONFIG 1
|
||||
#endif
|
||||
|
||||
// <h> 32kHz External Crystal Oscillator Control
|
||||
// <q> Oscillator enable
|
||||
// <i> Indicates whether 32kHz External Crystal Oscillator is enabled or not
|
||||
// <id> xosc32k_arch_enable
|
||||
#ifndef CONF_XOSC32K_ENABLE
|
||||
#define CONF_XOSC32K_ENABLE 1
|
||||
#endif
|
||||
|
||||
// <o> Start-Up Time
|
||||
// <0x0=>62592us
|
||||
// <0x1=>125092us
|
||||
// <0x2=>500092us
|
||||
// <0x3=>1000092us
|
||||
// <0x4=>2000092us
|
||||
// <0x5=>4000092us
|
||||
// <0x6=>8000092us
|
||||
// <id> xosc32k_arch_startup
|
||||
#ifndef CONF_XOSC32K_STARTUP
|
||||
#define CONF_XOSC32K_STARTUP 0x0
|
||||
#endif
|
||||
|
||||
// <q> On Demand Control
|
||||
// <i> Indicates whether On Demand Control is enabled or not
|
||||
// <id> xosc32k_arch_ondemand
|
||||
#ifndef CONF_XOSC32K_ONDEMAND
|
||||
#define CONF_XOSC32K_ONDEMAND 1
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> xosc32k_arch_runstdby
|
||||
#ifndef CONF_XOSC32K_RUNSTDBY
|
||||
#define CONF_XOSC32K_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> 1kHz Output Enable
|
||||
// <i> Indicates whether 1kHz Output is enabled or not
|
||||
// <id> xosc32k_arch_en1k
|
||||
#ifndef CONF_XOSC32K_EN1K
|
||||
#define CONF_XOSC32K_EN1K 0
|
||||
#endif
|
||||
|
||||
// <q> 32kHz Output Enable
|
||||
// <i> Indicates whether 32kHz Output is enabled or not
|
||||
// <id> xosc32k_arch_en32k
|
||||
#ifndef CONF_XOSC32K_EN32K
|
||||
#define CONF_XOSC32K_EN32K 0
|
||||
#endif
|
||||
|
||||
// <q> Clock Switch Back
|
||||
// <i> Indicates whether Clock Switch Back is enabled or not
|
||||
// <id> xosc32k_arch_swben
|
||||
#ifndef CONF_XOSC32K_SWBEN
|
||||
#define CONF_XOSC32K_SWBEN 0
|
||||
#endif
|
||||
|
||||
// <q> Clock Failure Detector
|
||||
// <i> Indicates whether Clock Failure Detector is enabled or not
|
||||
// <id> xosc32k_arch_cfden
|
||||
#ifndef CONF_XOSC32K_CFDEN
|
||||
#define CONF_XOSC32K_CFDEN 0
|
||||
#endif
|
||||
|
||||
// <q> Clock Failure Detector Event Out
|
||||
// <i> Indicates whether Clock Failure Detector Event Out is enabled or not
|
||||
// <id> xosc32k_arch_cfdeo
|
||||
#ifndef CONF_XOSC32K_CFDEO
|
||||
#define CONF_XOSC32K_CFDEO 0
|
||||
#endif
|
||||
|
||||
// <q> Crystal connected to XIN32/XOUT32 Enable
|
||||
// <i> Indicates whether the connections between the I/O pads and the external clock or crystal oscillator is enabled or not
|
||||
// <id> xosc32k_arch_xtalen
|
||||
#ifndef CONF_XOSC32K_XTALEN
|
||||
#define CONF_XOSC32K_XTALEN 0
|
||||
#endif
|
||||
|
||||
// <o> Control Gain Mode
|
||||
// <0x0=>Low Power mode
|
||||
// <0x1=>Standard mode
|
||||
// <0x2=>High Speed mode
|
||||
// <id> xosc32k_arch_cgm
|
||||
#ifndef CONF_XOSC32K_CGM
|
||||
#define CONF_XOSC32K_CGM 0x1
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <e> 32kHz Ultra Low Power Internal Oscillator Configuration
|
||||
// <i> Indicates whether configuration for OSCULP32K is enabled or not
|
||||
// <id> enable_osculp32k
|
||||
#ifndef CONF_OSCULP32K_CONFIG
|
||||
#define CONF_OSCULP32K_CONFIG 1
|
||||
#endif
|
||||
|
||||
// <h> 32kHz Ultra Low Power Internal Oscillator Control
|
||||
|
||||
// <q> Oscillator Calibration Control
|
||||
// <i> Indicates whether Oscillator Calibration is enabled or not
|
||||
// <id> osculp32k_calib_enable
|
||||
#ifndef CONF_OSCULP32K_CALIB_ENABLE
|
||||
#define CONF_OSCULP32K_CALIB_ENABLE 0
|
||||
#endif
|
||||
|
||||
// <o> Oscillator Calibration <0x0-0x3F>
|
||||
// <id> osculp32k_calib
|
||||
#ifndef CONF_OSCULP32K_CALIB
|
||||
#define CONF_OSCULP32K_CALIB 0x0
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
// </e>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_OSC32KCTRL_CONFIG_H
|
|
@ -0,0 +1,634 @@
|
|||
/* Auto-generated config file hpl_oscctrl_config.h */
|
||||
#ifndef HPL_OSCCTRL_CONFIG_H
|
||||
#define HPL_OSCCTRL_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
// <e> External Multipurpose Crystal Oscillator Configuration
|
||||
// <i> Indicates whether configuration for XOSC0 is enabled or not
|
||||
// <id> enable_xosc0
|
||||
#ifndef CONF_XOSC0_CONFIG
|
||||
#define CONF_XOSC0_CONFIG 0
|
||||
#endif
|
||||
|
||||
// <o> Frequency <8000000-48000000>
|
||||
// <i> Oscillation frequency of the resonator connected to the External Multipurpose Crystal Oscillator.
|
||||
// <id> xosc0_frequency
|
||||
#ifndef CONF_XOSC_FREQUENCY
|
||||
#define CONF_XOSC0_FREQUENCY 12000000
|
||||
#endif
|
||||
|
||||
// <h> External Multipurpose Crystal Oscillator Control
|
||||
// <q> Oscillator enable
|
||||
// <i> Indicates whether External Multipurpose Crystal Oscillator is enabled or not
|
||||
// <id> xosc0_arch_enable
|
||||
#ifndef CONF_XOSC0_ENABLE
|
||||
#define CONF_XOSC0_ENABLE 0
|
||||
#endif
|
||||
|
||||
// <o> Start-Up Time
|
||||
// <0x0=>31us
|
||||
// <0x1=>61us
|
||||
// <0x2=>122us
|
||||
// <0x3=>244us
|
||||
// <0x4=>488us
|
||||
// <0x5=>977us
|
||||
// <0x6=>1953us
|
||||
// <0x7=>3906us
|
||||
// <0x8=>7813us
|
||||
// <0x9=>15625us
|
||||
// <0xA=>31250us
|
||||
// <0xB=>62500us
|
||||
// <0xC=>125000us
|
||||
// <0xD=>250000us
|
||||
// <0xE=>500000us
|
||||
// <0xF=>1000000us
|
||||
// <id> xosc0_arch_startup
|
||||
#ifndef CONF_XOSC0_STARTUP
|
||||
#define CONF_XOSC0_STARTUP 0
|
||||
#endif
|
||||
|
||||
// <q> Clock Switch Back
|
||||
// <i> Indicates whether Clock Switch Back is enabled or not
|
||||
// <id> xosc0_arch_swben
|
||||
#ifndef CONF_XOSC0_SWBEN
|
||||
#define CONF_XOSC0_SWBEN 0
|
||||
#endif
|
||||
|
||||
// <q> Clock Failure Detector
|
||||
// <i> Indicates whether Clock Failure Detector is enabled or not
|
||||
// <id> xosc0_arch_cfden
|
||||
#ifndef CONF_XOSC0_CFDEN
|
||||
#define CONF_XOSC0_CFDEN 0
|
||||
#endif
|
||||
|
||||
// <q> Automatic Loop Control Enable
|
||||
// <i> Indicates whether Automatic Loop Control is enabled or not
|
||||
// <id> xosc0_arch_enalc
|
||||
#ifndef CONF_XOSC0_ENALC
|
||||
#define CONF_XOSC0_ENALC 0
|
||||
#endif
|
||||
|
||||
// <q> Low Buffer Gain Enable
|
||||
// <i> Indicates whether Low Buffer Gain is enabled or not
|
||||
// <id> xosc0_arch_lowbufgain
|
||||
#ifndef CONF_XOSC0_LOWBUFGAIN
|
||||
#define CONF_XOSC0_LOWBUFGAIN 0
|
||||
#endif
|
||||
|
||||
// <q> On Demand Control
|
||||
// <i> Indicates whether On Demand Control is enabled or not
|
||||
// <id> xosc0_arch_ondemand
|
||||
#ifndef CONF_XOSC0_ONDEMAND
|
||||
#define CONF_XOSC0_ONDEMAND 0
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> xosc0_arch_runstdby
|
||||
#ifndef CONF_XOSC0_RUNSTDBY
|
||||
#define CONF_XOSC0_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Crystal connected to XIN/XOUT Enable
|
||||
// <i> Indicates whether the connections between the I/O pads and the external clock or crystal oscillator is enabled or not
|
||||
// <id> xosc0_arch_xtalen
|
||||
#ifndef CONF_XOSC0_XTALEN
|
||||
#define CONF_XOSC0_XTALEN 0
|
||||
#endif
|
||||
//</h>
|
||||
//</e>
|
||||
|
||||
#if CONF_XOSC0_FREQUENCY >= 32000000
|
||||
#define CONF_XOSC0_CFDPRESC 0x0
|
||||
#define CONF_XOSC0_IMULT 0x7
|
||||
#define CONF_XOSC0_IPTAT 0x3
|
||||
#elif CONF_XOSC0_FREQUENCY >= 24000000
|
||||
#define CONF_XOSC0_CFDPRESC 0x1
|
||||
#define CONF_XOSC0_IMULT 0x6
|
||||
#define CONF_XOSC0_IPTAT 0x3
|
||||
#elif CONF_XOSC0_FREQUENCY >= 16000000
|
||||
#define CONF_XOSC0_CFDPRESC 0x2
|
||||
#define CONF_XOSC0_IMULT 0x5
|
||||
#define CONF_XOSC0_IPTAT 0x3
|
||||
#elif CONF_XOSC0_FREQUENCY >= 8000000
|
||||
#define CONF_XOSC0_CFDPRESC 0x3
|
||||
#define CONF_XOSC0_IMULT 0x4
|
||||
#define CONF_XOSC0_IPTAT 0x3
|
||||
#endif
|
||||
|
||||
// <e> External Multipurpose Crystal Oscillator Configuration
|
||||
// <i> Indicates whether configuration for XOSC1 is enabled or not
|
||||
// <id> enable_xosc1
|
||||
#ifndef CONF_XOSC1_CONFIG
|
||||
#define CONF_XOSC1_CONFIG 0
|
||||
#endif
|
||||
|
||||
// <o> Frequency <8000000-48000000>
|
||||
// <i> Oscillation frequency of the resonator connected to the External Multipurpose Crystal Oscillator.
|
||||
// <id> xosc1_frequency
|
||||
#ifndef CONF_XOSC_FREQUENCY
|
||||
#define CONF_XOSC1_FREQUENCY 12000000
|
||||
#endif
|
||||
|
||||
// <h> External Multipurpose Crystal Oscillator Control
|
||||
// <q> Oscillator enable
|
||||
// <i> Indicates whether External Multipurpose Crystal Oscillator is enabled or not
|
||||
// <id> xosc1_arch_enable
|
||||
#ifndef CONF_XOSC1_ENABLE
|
||||
#define CONF_XOSC1_ENABLE 0
|
||||
#endif
|
||||
|
||||
// <o> Start-Up Time
|
||||
// <0x0=>31us
|
||||
// <0x1=>61us
|
||||
// <0x2=>122us
|
||||
// <0x3=>244us
|
||||
// <0x4=>488us
|
||||
// <0x5=>977us
|
||||
// <0x6=>1953us
|
||||
// <0x7=>3906us
|
||||
// <0x8=>7813us
|
||||
// <0x9=>15625us
|
||||
// <0xA=>31250us
|
||||
// <0xB=>62500us
|
||||
// <0xC=>125000us
|
||||
// <0xD=>250000us
|
||||
// <0xE=>500000us
|
||||
// <0xF=>1000000us
|
||||
// <id> xosc1_arch_startup
|
||||
#ifndef CONF_XOSC1_STARTUP
|
||||
#define CONF_XOSC1_STARTUP 0
|
||||
#endif
|
||||
|
||||
// <q> Clock Switch Back
|
||||
// <i> Indicates whether Clock Switch Back is enabled or not
|
||||
// <id> xosc1_arch_swben
|
||||
#ifndef CONF_XOSC1_SWBEN
|
||||
#define CONF_XOSC1_SWBEN 0
|
||||
#endif
|
||||
|
||||
// <q> Clock Failure Detector
|
||||
// <i> Indicates whether Clock Failure Detector is enabled or not
|
||||
// <id> xosc1_arch_cfden
|
||||
#ifndef CONF_XOSC1_CFDEN
|
||||
#define CONF_XOSC1_CFDEN 0
|
||||
#endif
|
||||
|
||||
// <q> Automatic Loop Control Enable
|
||||
// <i> Indicates whether Automatic Loop Control is enabled or not
|
||||
// <id> xosc1_arch_enalc
|
||||
#ifndef CONF_XOSC1_ENALC
|
||||
#define CONF_XOSC1_ENALC 0
|
||||
#endif
|
||||
|
||||
// <q> Low Buffer Gain Enable
|
||||
// <i> Indicates whether Low Buffer Gain is enabled or not
|
||||
// <id> xosc1_arch_lowbufgain
|
||||
#ifndef CONF_XOSC1_LOWBUFGAIN
|
||||
#define CONF_XOSC1_LOWBUFGAIN 0
|
||||
#endif
|
||||
|
||||
// <q> On Demand Control
|
||||
// <i> Indicates whether On Demand Control is enabled or not
|
||||
// <id> xosc1_arch_ondemand
|
||||
#ifndef CONF_XOSC1_ONDEMAND
|
||||
#define CONF_XOSC1_ONDEMAND 0
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> xosc1_arch_runstdby
|
||||
#ifndef CONF_XOSC1_RUNSTDBY
|
||||
#define CONF_XOSC1_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Crystal connected to XIN/XOUT Enable
|
||||
// <i> Indicates whether the connections between the I/O pads and the external clock or crystal oscillator is enabled or not
|
||||
// <id> xosc1_arch_xtalen
|
||||
#ifndef CONF_XOSC1_XTALEN
|
||||
#define CONF_XOSC1_XTALEN 0
|
||||
#endif
|
||||
//</h>
|
||||
//</e>
|
||||
|
||||
#if CONF_XOSC1_FREQUENCY >= 32000000
|
||||
#define CONF_XOSC1_CFDPRESC 0x0
|
||||
#define CONF_XOSC1_IMULT 0x7
|
||||
#define CONF_XOSC1_IPTAT 0x3
|
||||
#elif CONF_XOSC1_FREQUENCY >= 24000000
|
||||
#define CONF_XOSC1_CFDPRESC 0x1
|
||||
#define CONF_XOSC1_IMULT 0x6
|
||||
#define CONF_XOSC1_IPTAT 0x3
|
||||
#elif CONF_XOSC1_FREQUENCY >= 16000000
|
||||
#define CONF_XOSC1_CFDPRESC 0x2
|
||||
#define CONF_XOSC1_IMULT 0x5
|
||||
#define CONF_XOSC1_IPTAT 0x3
|
||||
#elif CONF_XOSC1_FREQUENCY >= 8000000
|
||||
#define CONF_XOSC1_CFDPRESC 0x3
|
||||
#define CONF_XOSC1_IMULT 0x4
|
||||
#define CONF_XOSC1_IPTAT 0x3
|
||||
#endif
|
||||
|
||||
// <e> DFLL Configuration
|
||||
// <i> Indicates whether configuration for DFLL is enabled or not
|
||||
// <id> enable_dfll
|
||||
#ifndef CONF_DFLL_CONFIG
|
||||
#define CONF_DFLL_CONFIG 0
|
||||
#endif
|
||||
|
||||
// <y> Reference Clock Source
|
||||
// <GCLK_PCHCTRL_GEN_GCLK0_Val"> Generic clock generator 0
|
||||
// <GCLK_PCHCTRL_GEN_GCLK1_Val"> Generic clock generator 1
|
||||
// <GCLK_PCHCTRL_GEN_GCLK2_Val"> Generic clock generator 2
|
||||
// <GCLK_PCHCTRL_GEN_GCLK3_Val"> Generic clock generator 3
|
||||
// <GCLK_PCHCTRL_GEN_GCLK4_Val"> Generic clock generator 4
|
||||
// <GCLK_PCHCTRL_GEN_GCLK5_Val"> Generic clock generator 5
|
||||
// <GCLK_PCHCTRL_GEN_GCLK6_Val"> Generic clock generator 6
|
||||
// <GCLK_PCHCTRL_GEN_GCLK7_Val"> Generic clock generator 7
|
||||
// <GCLK_PCHCTRL_GEN_GCLK8_Val"> Generic clock generator 8
|
||||
// <GCLK_PCHCTRL_GEN_GCLK9_Val"> Generic clock generator 9
|
||||
// <GCLK_PCHCTRL_GEN_GCLK10_Val"> Generic clock generator 10
|
||||
// <GCLK_PCHCTRL_GEN_GCLK11_Val"> Generic clock generator 11
|
||||
// <i> Select the clock source
|
||||
// <id> dfll_ref_clock
|
||||
#ifndef CONF_DFLL_GCLK
|
||||
#define CONF_DFLL_GCLK GCLK_PCHCTRL_GEN_GCLK3_Val
|
||||
#endif
|
||||
|
||||
// <h> Digital Frequency Locked Loop Control
|
||||
// <q> DFLL Enable
|
||||
// <i> Indicates whether DFLL is enabled or not
|
||||
// <id> dfll_arch_enable
|
||||
#ifndef CONF_DFLL_ENABLE
|
||||
#define CONF_DFLL_ENABLE 1
|
||||
#endif
|
||||
|
||||
// <q> On Demand Control
|
||||
// <i> Indicates whether On Demand Control is enabled or not
|
||||
// <id> dfll_arch_ondemand
|
||||
#ifndef CONF_DFLL_ONDEMAND
|
||||
#define CONF_DFLL_ONDEMAND 0
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> dfll_arch_runstdby
|
||||
#ifndef CONF_DFLL_RUNSTDBY
|
||||
#define CONF_DFLL_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> USB Clock Recovery Mode
|
||||
// <i> Indicates whether USB Clock Recovery Mode is enabled or not
|
||||
// <id> dfll_arch_usbcrm
|
||||
#ifndef CONF_DFLL_USBCRM
|
||||
#define CONF_DFLL_USBCRM 1
|
||||
#endif
|
||||
|
||||
// <q> Wait Lock
|
||||
// <i> Indicates whether Wait Lock is enabled or not
|
||||
// <id> dfll_arch_waitlock
|
||||
#ifndef CONF_DFLL_WAITLOCK
|
||||
#define CONF_DFLL_WAITLOCK 1
|
||||
#endif
|
||||
|
||||
// <q> Bypass Coarse Lock
|
||||
// <i> Indicates whether Bypass Coarse Lock is enabled or not
|
||||
// <id> dfll_arch_bplckc
|
||||
#ifndef CONF_DFLL_BPLCKC
|
||||
#define CONF_DFLL_BPLCKC 0
|
||||
#endif
|
||||
|
||||
// <q> Quick Lock Disable
|
||||
// <i> Indicates whether Quick Lock Disable is enabled or not
|
||||
// <id> dfll_arch_qldis
|
||||
#ifndef CONF_DFLL_QLDIS
|
||||
#define CONF_DFLL_QLDIS 0
|
||||
#endif
|
||||
|
||||
// <q> Chill Cycle Disable
|
||||
// <i> Indicates whether Chill Cycle Disable is enabled or not
|
||||
// <id> dfll_arch_ccdis
|
||||
#ifndef CONF_DFLL_CCDIS
|
||||
#define CONF_DFLL_CCDIS 1
|
||||
#endif
|
||||
|
||||
// <q> Lose Lock After Wake
|
||||
// <i> Indicates whether Lose Lock After Wake is enabled or not
|
||||
// <id> dfll_arch_llaw
|
||||
#ifndef CONF_DFLL_LLAW
|
||||
#define CONF_DFLL_LLAW 0
|
||||
#endif
|
||||
|
||||
// <q> Stable DFLL Frequency
|
||||
// <i> Indicates whether Stable DFLL Frequency is enabled or not
|
||||
// <id> dfll_arch_stable
|
||||
#ifndef CONF_DFLL_STABLE
|
||||
#define CONF_DFLL_STABLE 0
|
||||
#endif
|
||||
|
||||
// <o> Operating Mode Selection
|
||||
// <0=>Open Loop Mode
|
||||
// <1=>Closed Loop Mode
|
||||
// <id> dfll_mode
|
||||
#ifndef CONF_DFLL_MODE
|
||||
#define CONF_DFLL_MODE 0x0
|
||||
#endif
|
||||
|
||||
// <o> Coarse Maximum Step <0x0-0x1F>
|
||||
// <id> dfll_arch_cstep
|
||||
#ifndef CONF_DFLL_CSTEP
|
||||
#define CONF_DFLL_CSTEP 0x1
|
||||
#endif
|
||||
|
||||
// <o> Fine Maximum Step <0x0-0xFF>
|
||||
// <id> dfll_arch_fstep
|
||||
#ifndef CONF_DFLL_FSTEP
|
||||
#define CONF_DFLL_FSTEP 0x1
|
||||
#endif
|
||||
|
||||
// <o> DFLL Multiply Factor <0x0-0xFFFF>
|
||||
// <id> dfll_mul
|
||||
#ifndef CONF_DFLL_MUL
|
||||
#define CONF_DFLL_MUL 0x0
|
||||
#endif
|
||||
|
||||
// <e> DFLL Calibration Overwrite
|
||||
// <i> Indicates whether Overwrite Calibration value of DFLL
|
||||
// <id> dfll_arch_calibration
|
||||
#ifndef CONF_DFLL_OVERWRITE_CALIBRATION
|
||||
#define CONF_DFLL_OVERWRITE_CALIBRATION 0
|
||||
#endif
|
||||
|
||||
// <o> Coarse Value <0x0-0x3F>
|
||||
// <id> dfll_arch_coarse
|
||||
#ifndef CONF_DFLL_COARSE
|
||||
#define CONF_DFLL_COARSE (0x1f / 4)
|
||||
#endif
|
||||
|
||||
// <o> Fine Value <0x0-0xFF>
|
||||
// <id> dfll_arch_fine
|
||||
#ifndef CONF_DFLL_FINE
|
||||
#define CONF_DFLL_FINE (0x80)
|
||||
#endif
|
||||
|
||||
//</e>
|
||||
|
||||
//</h>
|
||||
|
||||
//</e>
|
||||
|
||||
// <e> FDPLL0 Configuration
|
||||
// <i> Indicates whether configuration for FDPLL0 is enabled or not
|
||||
// <id> enable_fdpll0
|
||||
#ifndef CONF_FDPLL0_CONFIG
|
||||
#define CONF_FDPLL0_CONFIG 1
|
||||
#endif
|
||||
|
||||
// <y> Reference Clock Source
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_PCHCTRL_GEN_GCLK0_Val"> Generic clock generator 0
|
||||
// <GCLK_PCHCTRL_GEN_GCLK1_Val"> Generic clock generator 1
|
||||
// <GCLK_PCHCTRL_GEN_GCLK2_Val"> Generic clock generator 2
|
||||
// <GCLK_PCHCTRL_GEN_GCLK3_Val"> Generic clock generator 3
|
||||
// <GCLK_PCHCTRL_GEN_GCLK4_Val"> Generic clock generator 4
|
||||
// <GCLK_PCHCTRL_GEN_GCLK5_Val"> Generic clock generator 5
|
||||
// <GCLK_PCHCTRL_GEN_GCLK6_Val"> Generic clock generator 6
|
||||
// <GCLK_PCHCTRL_GEN_GCLK7_Val"> Generic clock generator 7
|
||||
// <GCLK_PCHCTRL_GEN_GCLK8_Val"> Generic clock generator 8
|
||||
// <GCLK_PCHCTRL_GEN_GCLK9_Val"> Generic clock generator 9
|
||||
// <GCLK_PCHCTRL_GEN_GCLK10_Val"> Generic clock generator 10
|
||||
// <GCLK_PCHCTRL_GEN_GCLK11_Val"> Generic clock generator 11
|
||||
// <i> Select the clock source.
|
||||
// <id> fdpll0_ref_clock
|
||||
#ifndef CONF_FDPLL0_GCLK
|
||||
#define CONF_FDPLL0_GCLK GCLK_PCHCTRL_GEN_GCLK5_Val
|
||||
#endif
|
||||
|
||||
// <h> Digital Phase Locked Loop Control
|
||||
// <q> Enable
|
||||
// <i> Indicates whether Digital Phase Locked Loop is enabled or not
|
||||
// <id> fdpll0_arch_enable
|
||||
#ifndef CONF_FDPLL0_ENABLE
|
||||
#define CONF_FDPLL0_ENABLE 1
|
||||
#endif
|
||||
|
||||
// <q> On Demand Control
|
||||
// <i> Indicates whether On Demand Control is enabled or not
|
||||
// <id> fdpll0_arch_ondemand
|
||||
#ifndef CONF_FDPLL0_ONDEMAND
|
||||
#define CONF_FDPLL0_ONDEMAND 0
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> fdpll0_arch_runstdby
|
||||
#ifndef CONF_FDPLL0_RUNSTDBY
|
||||
#define CONF_FDPLL0_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <o> Loop Divider Ratio Fractional Part <0x0-0x1F>
|
||||
// <id> fdpll0_ldrfrac
|
||||
#ifndef CONF_FDPLL0_LDRFRAC
|
||||
#define CONF_FDPLL0_LDRFRAC 0x0
|
||||
#endif
|
||||
|
||||
// <o> Loop Divider Ratio Integer Part <0x0-0x1FFF>
|
||||
// <id> fdpll0_ldr
|
||||
#ifndef CONF_FDPLL0_LDR
|
||||
#define CONF_FDPLL0_LDR 59
|
||||
#endif
|
||||
|
||||
// <o> Clock Divider <0x0-0x7FF>
|
||||
// <id> fdpll0_clock_div
|
||||
#ifndef CONF_FDPLL0_DIV
|
||||
#define CONF_FDPLL0_DIV 0x0
|
||||
#endif
|
||||
|
||||
// <q> DCO Filter Enable
|
||||
// <i> Indicates whether DCO Filter Enable is enabled or not
|
||||
// <id> fdpll0_arch_dcoen
|
||||
#ifndef CONF_FDPLL0_DCOEN
|
||||
#define CONF_FDPLL0_DCOEN 0
|
||||
#endif
|
||||
|
||||
// <o> Sigma-Delta DCO Filter Selection <0x0-0x7>
|
||||
// <id> fdpll0_clock_dcofilter
|
||||
#ifndef CONF_FDPLL0_DCOFILTER
|
||||
#define CONF_FDPLL0_DCOFILTER 0x0
|
||||
#endif
|
||||
|
||||
// <q> Lock Bypass
|
||||
// <i> Indicates whether Lock Bypass is enabled or not
|
||||
// <id> fdpll0_arch_lbypass
|
||||
#ifndef CONF_FDPLL0_LBYPASS
|
||||
#define CONF_FDPLL0_LBYPASS 0
|
||||
#endif
|
||||
|
||||
// <o> Lock Time
|
||||
// <0x0=>No time-out, automatic lock
|
||||
// <0x4=>The Time-out if no lock within 800 us
|
||||
// <0x5=>The Time-out if no lock within 900 us
|
||||
// <0x6=>The Time-out if no lock within 1 ms
|
||||
// <0x7=>The Time-out if no lock within 11 ms
|
||||
// <id> fdpll0_arch_ltime
|
||||
#ifndef CONF_FDPLL0_LTIME
|
||||
#define CONF_FDPLL0_LTIME 0x0
|
||||
#endif
|
||||
|
||||
// <o> Reference Clock Selection
|
||||
// <0x0=>GCLK clock reference
|
||||
// <0x1=>XOSC32K clock reference
|
||||
// <0x2=>XOSC0 clock reference
|
||||
// <0x3=>XOSC1 clock reference
|
||||
// <id> fdpll0_arch_refclk
|
||||
#ifndef CONF_FDPLL0_REFCLK
|
||||
#define CONF_FDPLL0_REFCLK 0x0
|
||||
#endif
|
||||
|
||||
// <q> Wake Up Fast
|
||||
// <i> Indicates whether Wake Up Fast is enabled or not
|
||||
// <id> fdpll0_arch_wuf
|
||||
#ifndef CONF_FDPLL0_WUF
|
||||
#define CONF_FDPLL0_WUF 0
|
||||
#endif
|
||||
|
||||
// <o> Proportional Integral Filter Selection <0x0-0xF>
|
||||
// <id> fdpll0_arch_filter
|
||||
#ifndef CONF_FDPLL0_FILTER
|
||||
#define CONF_FDPLL0_FILTER 0x0
|
||||
#endif
|
||||
|
||||
//</h>
|
||||
//</e>
|
||||
// <e> FDPLL1 Configuration
|
||||
// <i> Indicates whether configuration for FDPLL1 is enabled or not
|
||||
// <id> enable_fdpll1
|
||||
#ifndef CONF_FDPLL1_CONFIG
|
||||
#define CONF_FDPLL1_CONFIG 0
|
||||
#endif
|
||||
|
||||
// <y> Reference Clock Source
|
||||
// <GCLK_GENCTRL_SRC_XOSC32K"> 32kHz External Crystal Oscillator (XOSC32K)
|
||||
// <GCLK_GENCTRL_SRC_XOSC0"> External Crystal Oscillator 8-48MHz (XOSC0)
|
||||
// <GCLK_GENCTRL_SRC_XOSC1"> External Crystal Oscillator 8-48MHz (XOSC1)
|
||||
// <GCLK_PCHCTRL_GEN_GCLK0_Val"> Generic clock generator 0
|
||||
// <GCLK_PCHCTRL_GEN_GCLK1_Val"> Generic clock generator 1
|
||||
// <GCLK_PCHCTRL_GEN_GCLK2_Val"> Generic clock generator 2
|
||||
// <GCLK_PCHCTRL_GEN_GCLK3_Val"> Generic clock generator 3
|
||||
// <GCLK_PCHCTRL_GEN_GCLK4_Val"> Generic clock generator 4
|
||||
// <GCLK_PCHCTRL_GEN_GCLK5_Val"> Generic clock generator 5
|
||||
// <GCLK_PCHCTRL_GEN_GCLK6_Val"> Generic clock generator 6
|
||||
// <GCLK_PCHCTRL_GEN_GCLK7_Val"> Generic clock generator 7
|
||||
// <GCLK_PCHCTRL_GEN_GCLK8_Val"> Generic clock generator 8
|
||||
// <GCLK_PCHCTRL_GEN_GCLK9_Val"> Generic clock generator 9
|
||||
// <GCLK_PCHCTRL_GEN_GCLK10_Val"> Generic clock generator 10
|
||||
// <GCLK_PCHCTRL_GEN_GCLK11_Val"> Generic clock generator 11
|
||||
// <i> Select the clock source.
|
||||
// <id> fdpll1_ref_clock
|
||||
#ifndef CONF_FDPLL1_GCLK
|
||||
#define CONF_FDPLL1_GCLK GCLK_GENCTRL_SRC_XOSC32K
|
||||
#endif
|
||||
|
||||
// <h> Digital Phase Locked Loop Control
|
||||
// <q> Enable
|
||||
// <i> Indicates whether Digital Phase Locked Loop is enabled or not
|
||||
// <id> fdpll1_arch_enable
|
||||
#ifndef CONF_FDPLL1_ENABLE
|
||||
#define CONF_FDPLL1_ENABLE 0
|
||||
#endif
|
||||
|
||||
// <q> On Demand Control
|
||||
// <i> Indicates whether On Demand Control is enabled or not
|
||||
// <id> fdpll1_arch_ondemand
|
||||
#ifndef CONF_FDPLL1_ONDEMAND
|
||||
#define CONF_FDPLL1_ONDEMAND 0
|
||||
#endif
|
||||
|
||||
// <q> Run in Standby
|
||||
// <i> Indicates whether Run in Standby is enabled or not
|
||||
// <id> fdpll1_arch_runstdby
|
||||
#ifndef CONF_FDPLL1_RUNSTDBY
|
||||
#define CONF_FDPLL1_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <o> Loop Divider Ratio Fractional Part <0x0-0x1F>
|
||||
// <id> fdpll1_ldrfrac
|
||||
#ifndef CONF_FDPLL1_LDRFRAC
|
||||
#define CONF_FDPLL1_LDRFRAC 0xd
|
||||
#endif
|
||||
|
||||
// <o> Loop Divider Ratio Integer Part <0x0-0x1FFF>
|
||||
// <id> fdpll1_ldr
|
||||
#ifndef CONF_FDPLL1_LDR
|
||||
#define CONF_FDPLL1_LDR 0x5b7
|
||||
#endif
|
||||
|
||||
// <o> Clock Divider <0x0-0x7FF>
|
||||
// <id> fdpll1_clock_div
|
||||
#ifndef CONF_FDPLL1_DIV
|
||||
#define CONF_FDPLL1_DIV 0x0
|
||||
#endif
|
||||
|
||||
// <q> DCO Filter Enable
|
||||
// <i> Indicates whether DCO Filter Enable is enabled or not
|
||||
// <id> fdpll1_arch_dcoen
|
||||
#ifndef CONF_FDPLL1_DCOEN
|
||||
#define CONF_FDPLL1_DCOEN 0
|
||||
#endif
|
||||
|
||||
// <o> Sigma-Delta DCO Filter Selection <0x0-0x7>
|
||||
// <id> fdpll1_clock_dcofilter
|
||||
#ifndef CONF_FDPLL1_DCOFILTER
|
||||
#define CONF_FDPLL1_DCOFILTER 0x0
|
||||
#endif
|
||||
|
||||
// <q> Lock Bypass
|
||||
// <i> Indicates whether Lock Bypass is enabled or not
|
||||
// <id> fdpll1_arch_lbypass
|
||||
#ifndef CONF_FDPLL1_LBYPASS
|
||||
#define CONF_FDPLL1_LBYPASS 0
|
||||
#endif
|
||||
|
||||
// <o> Lock Time
|
||||
// <0x0=>No time-out, automatic lock
|
||||
// <0x4=>The Time-out if no lock within 800 us
|
||||
// <0x5=>The Time-out if no lock within 900 us
|
||||
// <0x6=>The Time-out if no lock within 1 ms
|
||||
// <0x7=>The Time-out if no lock within 11 ms
|
||||
// <id> fdpll1_arch_ltime
|
||||
#ifndef CONF_FDPLL1_LTIME
|
||||
#define CONF_FDPLL1_LTIME 0x0
|
||||
#endif
|
||||
|
||||
// <o> Reference Clock Selection
|
||||
// <0x0=>GCLK clock reference
|
||||
// <0x1=>XOSC32K clock reference
|
||||
// <0x2=>XOSC0 clock reference
|
||||
// <0x3=>XOSC1 clock reference
|
||||
// <id> fdpll1_arch_refclk
|
||||
#ifndef CONF_FDPLL1_REFCLK
|
||||
#define CONF_FDPLL1_REFCLK 0x1
|
||||
#endif
|
||||
|
||||
// <q> Wake Up Fast
|
||||
// <i> Indicates whether Wake Up Fast is enabled or not
|
||||
// <id> fdpll1_arch_wuf
|
||||
#ifndef CONF_FDPLL1_WUF
|
||||
#define CONF_FDPLL1_WUF 0
|
||||
#endif
|
||||
|
||||
// <o> Proportional Integral Filter Selection <0x0-0xF>
|
||||
// <id> fdpll1_arch_filter
|
||||
#ifndef CONF_FDPLL1_FILTER
|
||||
#define CONF_FDPLL1_FILTER 0x0
|
||||
#endif
|
||||
|
||||
//</h>
|
||||
//</e>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_OSCCTRL_CONFIG_H
|
|
@ -0,0 +1,145 @@
|
|||
/* Auto-generated config file hpl_rtc_config.h */
|
||||
#ifndef HPL_RTC_CONFIG_H
|
||||
#define HPL_RTC_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
// <h> Basic settings
|
||||
|
||||
#ifndef CONF_RTC_ENABLE
|
||||
#define CONF_RTC_ENABLE 1
|
||||
#endif
|
||||
|
||||
// <q> Force reset RTC on initialization
|
||||
// <i> Force RTC to reset on initialization.
|
||||
// <i> Note that the previous power down data in RTC is lost if it's enabled.
|
||||
// <id> rtc_arch_init_reset
|
||||
#ifndef CONF_RTC_INIT_RESET
|
||||
#define CONF_RTC_INIT_RESET 0
|
||||
#endif
|
||||
|
||||
// <o> Prescaler configuration
|
||||
// <0x0=>OFF(Peripheral clock divided by 1)
|
||||
// <0x1=>Peripheral clock divided by 1
|
||||
// <0x2=>Peripheral clock divided by 2
|
||||
// <0x3=>Peripheral clock divided by 4
|
||||
// <0x4=>Peripheral clock divided by 8
|
||||
// <0x5=>Peripheral clock divided by 16
|
||||
// <0x6=>Peripheral clock divided by 32
|
||||
// <0x7=>Peripheral clock divided by 64
|
||||
// <0x8=>Peripheral clock divided by 128
|
||||
// <0x9=>Peripheral clock divided by 256
|
||||
// <0xA=>Peripheral clock divided by 512
|
||||
// <0xB=>Peripheral clock divided by 1024
|
||||
// <i> These bits define the RTC clock relative to the peripheral clock
|
||||
// <id> rtc_arch_prescaler
|
||||
#ifndef CONF_RTC_PRESCALER
|
||||
#define CONF_RTC_PRESCALER 0xb
|
||||
|
||||
#endif
|
||||
|
||||
// <o> Compare Value <1-4294967295>
|
||||
// <i> These bits define the RTC Compare value, the ticks period is equal to reciprocal of (rtc clock/prescaler/compare value),
|
||||
// <i> by default 1K clock input, 1 prescaler, 1 compare value, the ticks period equals to 1ms.
|
||||
// <id> rtc_arch_comp_val
|
||||
|
||||
#ifndef CONF_RTC_COMP_VAL
|
||||
#define CONF_RTC_COMP_VAL 1
|
||||
|
||||
#endif
|
||||
|
||||
// <e> Event control
|
||||
// <id> rtc_event_control
|
||||
#ifndef CONF_RTC_EVENT_CONTROL_ENABLE
|
||||
#define CONF_RTC_EVENT_CONTROL_ENABLE 0
|
||||
#endif
|
||||
|
||||
// <q> Periodic Interval 0 Event Output
|
||||
// <i> This bit indicates whether Periodic interval 0 event is enabled and will be generated
|
||||
// <id> rtc_pereo0
|
||||
#ifndef CONF_RTC_PEREO0
|
||||
#define CONF_RTC_PEREO0 0
|
||||
#endif
|
||||
// <q> Periodic Interval 1 Event Output
|
||||
// <i> This bit indicates whether Periodic interval 1 event is enabled and will be generated
|
||||
// <id> rtc_pereo1
|
||||
#ifndef CONF_RTC_PEREO1
|
||||
#define CONF_RTC_PEREO1 0
|
||||
#endif
|
||||
// <q> Periodic Interval 2 Event Output
|
||||
// <i> This bit indicates whether Periodic interval 2 event is enabled and will be generated
|
||||
// <id> rtc_pereo2
|
||||
#ifndef CONF_RTC_PEREO2
|
||||
#define CONF_RTC_PEREO2 0
|
||||
#endif
|
||||
// <q> Periodic Interval 3 Event Output
|
||||
// <i> This bit indicates whether Periodic interval 3 event is enabled and will be generated
|
||||
// <id> rtc_pereo3
|
||||
#ifndef CONF_RTC_PEREO3
|
||||
#define CONF_RTC_PEREO3 0
|
||||
#endif
|
||||
// <q> Periodic Interval 4 Event Output
|
||||
// <i> This bit indicates whether Periodic interval 4 event is enabled and will be generated
|
||||
// <id> rtc_pereo4
|
||||
#ifndef CONF_RTC_PEREO4
|
||||
#define CONF_RTC_PEREO4 0
|
||||
#endif
|
||||
// <q> Periodic Interval 5 Event Output
|
||||
// <i> This bit indicates whether Periodic interval 5 event is enabled and will be generated
|
||||
// <id> rtc_pereo5
|
||||
#ifndef CONF_RTC_PEREO5
|
||||
#define CONF_RTC_PEREO5 0
|
||||
#endif
|
||||
// <q> Periodic Interval 6 Event Output
|
||||
// <i> This bit indicates whether Periodic interval 6 event is enabled and will be generated
|
||||
// <id> rtc_pereo6
|
||||
#ifndef CONF_RTC_PEREO6
|
||||
#define CONF_RTC_PEREO6 0
|
||||
#endif
|
||||
// <q> Periodic Interval 7 Event Output
|
||||
// <i> This bit indicates whether Periodic interval 7 event is enabled and will be generated
|
||||
// <id> rtc_pereo7
|
||||
#ifndef CONF_RTC_PEREO7
|
||||
#define CONF_RTC_PEREO7 0
|
||||
#endif
|
||||
|
||||
// <q> Compare 0 Event Output
|
||||
// <i> This bit indicates whether Compare O event is enabled and will be generated
|
||||
// <id> rtc_cmpeo0
|
||||
#ifndef CONF_RTC_COMPE0
|
||||
#define CONF_RTC_COMPE0 0
|
||||
#endif
|
||||
|
||||
// <q> Compare 1 Event Output
|
||||
// <i> This bit indicates whether Compare 1 event is enabled and will be generated
|
||||
// <id> rtc_cmpeo1
|
||||
#ifndef CONF_RTC_COMPE1
|
||||
#define CONF_RTC_COMPE1 0
|
||||
#endif
|
||||
// <q> Overflow Event Output
|
||||
// <i> This bit indicates whether Overflow event is enabled and will be generated
|
||||
// <id> rtc_ovfeo
|
||||
#ifndef CONF_RTC_OVFEO
|
||||
#define CONF_RTC_OVFEO 0
|
||||
#endif
|
||||
|
||||
// <q> Tamper Event Output
|
||||
// <i> This bit indicates whether Tamper event output is enabled and will be generated
|
||||
// <id> rtc_tampereo
|
||||
#ifndef CONF_RTC_TAMPEREO
|
||||
#define CONF_RTC_TAMPEREO 0
|
||||
#endif
|
||||
|
||||
// <q> Tamper Event Input
|
||||
// <i> This bit indicates whether Tamper event input is enabled and will be generated
|
||||
// <id> rtc_tampevei
|
||||
#ifndef CONF_RTC_TAMPEVEI
|
||||
#define CONF_RTC_TAMPEVEI 0
|
||||
#endif
|
||||
// </e>
|
||||
|
||||
// </h>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_RTC_CONFIG_H
|
|
@ -0,0 +1,24 @@
|
|||
/* Auto-generated config file hpl_sdhc_config.h */
|
||||
#ifndef HPL_SDHC_CONFIG_H
|
||||
#define HPL_SDHC_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
#include "peripheral_clk_config.h"
|
||||
|
||||
#ifndef CONF_BASE_FREQUENCY
|
||||
#define CONF_BASE_FREQUENCY CONF_SDHC0_FREQUENCY
|
||||
#endif
|
||||
|
||||
// <o> Clock Generator Select
|
||||
// <0=> Divided Clock mode
|
||||
// <1=> Programmable Clock mode
|
||||
// <i> This defines the clock generator mode in the SDCLK Frequency Select field
|
||||
// <id> sdhc_clk_gsel
|
||||
#ifndef CONF_SDHC0_CLK_GEN_SEL
|
||||
#define CONF_SDHC0_CLK_GEN_SEL 0
|
||||
#endif
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_SDHC_CONFIG_H
|
|
@ -0,0 +1,751 @@
|
|||
// For CircuitPython, use SERCOM settings as prototypes to set
|
||||
// the default settings. This file defines these SERCOMs
|
||||
//
|
||||
// SERCOM0: SPI with hal_spi_m_sync.c driver: spi master synchronous
|
||||
// SERCOM1: I2C with hal_i2c_m_sync.c driver: i2c master synchronous
|
||||
// SERCOM2: USART with hal_usart_async.c driver: usart asynchronous
|
||||
// SERCOM3: SPI with hal_spi_m_dma.c: spi master DMA
|
||||
|
||||
#define PROTOTYPE_SERCOM_SPI_M_SYNC SERCOM0
|
||||
#define PROTOTYPE_SERCOM_SPI_M_SYNC_CLOCK_FREQUENCY CONF_GCLK_SERCOM0_CORE_FREQUENCY
|
||||
|
||||
#define PROTOTYPE_SERCOM_I2CM_SYNC SERCOM1
|
||||
|
||||
#define PROTOTYPE_SERCOM_USART_ASYNC SERCOM2
|
||||
#define PROTOTYPE_SERCOM_USART_ASYNC_CLOCK_FREQUENCY CONF_GCLK_SERCOM2_CORE_FREQUENCY
|
||||
|
||||
/* Auto-generated config file hpl_sercom_config.h */
|
||||
#ifndef HPL_SERCOM_CONFIG_H
|
||||
#define HPL_SERCOM_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
#include <peripheral_clk_config.h>
|
||||
|
||||
// Enable configuration of module
|
||||
#ifndef CONF_SERCOM_0_SPI_ENABLE
|
||||
#define CONF_SERCOM_0_SPI_ENABLE 1
|
||||
#endif
|
||||
|
||||
// Set module in SPI Master mode
|
||||
#ifndef CONF_SERCOM_0_SPI_MODE
|
||||
#define CONF_SERCOM_0_SPI_MODE 0x03
|
||||
#endif
|
||||
|
||||
// <h> Basic Configuration
|
||||
|
||||
// <q> Receive buffer enable
|
||||
// <i> Enable receive buffer to receive data from slave (RXEN)
|
||||
// <id> spi_master_rx_enable
|
||||
#ifndef CONF_SERCOM_0_SPI_RXEN
|
||||
#define CONF_SERCOM_0_SPI_RXEN 0x1
|
||||
#endif
|
||||
|
||||
// <o> Character Size
|
||||
// <i> Bit size for all characters sent over the SPI bus (CHSIZE)
|
||||
// <0x0=>8 bits
|
||||
// <0x1=>9 bits
|
||||
// <id> spi_master_character_size
|
||||
#ifndef CONF_SERCOM_0_SPI_CHSIZE
|
||||
#define CONF_SERCOM_0_SPI_CHSIZE 0x0
|
||||
#endif
|
||||
|
||||
// <o> Baud rate <1-12000000>
|
||||
// <i> The SPI data transfer rate
|
||||
// <id> spi_master_baud_rate
|
||||
#ifndef CONF_SERCOM_0_SPI_BAUD
|
||||
#define CONF_SERCOM_0_SPI_BAUD 50000
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
|
||||
// <e> Advanced Configuration
|
||||
// <id> spi_master_advanced
|
||||
#ifndef CONF_SERCOM_0_SPI_ADVANCED
|
||||
#define CONF_SERCOM_0_SPI_ADVANCED 1
|
||||
#endif
|
||||
|
||||
// <o> Dummy byte <0x00-0x1ff>
|
||||
// <id> spi_master_dummybyte
|
||||
// <i> Dummy byte used when reading data from the slave without sending any data
|
||||
#ifndef CONF_SERCOM_0_SPI_DUMMYBYTE
|
||||
#define CONF_SERCOM_0_SPI_DUMMYBYTE 0x1ff
|
||||
#endif
|
||||
|
||||
// <o> Data Order
|
||||
// <0=>MSB first
|
||||
// <1=>LSB first
|
||||
// <i> I least significant or most significant bit is shifted out first (DORD)
|
||||
// <id> spi_master_arch_dord
|
||||
#ifndef CONF_SERCOM_0_SPI_DORD
|
||||
#define CONF_SERCOM_0_SPI_DORD 0x0
|
||||
#endif
|
||||
|
||||
// <o> Clock Polarity
|
||||
// <0=>SCK is low when idle
|
||||
// <1=>SCK is high when idle
|
||||
// <i> Determines if the leading edge is rising or falling with a corresponding opposite edge at the trailing edge. (CPOL)
|
||||
// <id> spi_master_arch_cpol
|
||||
#ifndef CONF_SERCOM_0_SPI_CPOL
|
||||
#define CONF_SERCOM_0_SPI_CPOL 0x0
|
||||
#endif
|
||||
|
||||
// <o> Clock Phase
|
||||
// <0x0=>Sample input on leading edge
|
||||
// <0x1=>Sample input on trailing edge
|
||||
// <i> Determines if input data is sampled on leading or trailing SCK edge. (CPHA)
|
||||
// <id> spi_master_arch_cpha
|
||||
#ifndef CONF_SERCOM_0_SPI_CPHA
|
||||
#define CONF_SERCOM_0_SPI_CPHA 0x0
|
||||
#endif
|
||||
|
||||
// <o> Immediate Buffer Overflow Notification
|
||||
// <i> Controls when OVF is asserted (IBON)
|
||||
// <0x0=>In data stream
|
||||
// <0x1=>On buffer overflow
|
||||
// <id> spi_master_arch_ibon
|
||||
#ifndef CONF_SERCOM_0_SPI_IBON
|
||||
#define CONF_SERCOM_0_SPI_IBON 0x0
|
||||
#endif
|
||||
|
||||
// <q> Run in stand-by
|
||||
// <i> Module stays active in stand-by sleep mode. (RUNSTDBY)
|
||||
// <id> spi_master_arch_runstdby
|
||||
#ifndef CONF_SERCOM_0_SPI_RUNSTDBY
|
||||
#define CONF_SERCOM_0_SPI_RUNSTDBY 0x0
|
||||
#endif
|
||||
|
||||
// <o> Debug Stop Mode
|
||||
// <i> Behavior of the baud-rate generator when CPU is halted by external debugger. (DBGSTOP)
|
||||
// <0=>Keep running
|
||||
// <1=>Halt
|
||||
// <id> spi_master_arch_dbgstop
|
||||
#ifndef CONF_SERCOM_0_SPI_DBGSTOP
|
||||
#define CONF_SERCOM_0_SPI_DBGSTOP 0
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// Address mode disabled in master mode
|
||||
#ifndef CONF_SERCOM_0_SPI_AMODE_EN
|
||||
#define CONF_SERCOM_0_SPI_AMODE_EN 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_0_SPI_AMODE
|
||||
#define CONF_SERCOM_0_SPI_AMODE 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_0_SPI_ADDR
|
||||
#define CONF_SERCOM_0_SPI_ADDR 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_0_SPI_ADDRMASK
|
||||
#define CONF_SERCOM_0_SPI_ADDRMASK 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_0_SPI_SSDE
|
||||
#define CONF_SERCOM_0_SPI_SSDE 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_0_SPI_MSSEN
|
||||
#define CONF_SERCOM_0_SPI_MSSEN 0x0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_0_SPI_PLOADEN
|
||||
#define CONF_SERCOM_0_SPI_PLOADEN 0
|
||||
#endif
|
||||
|
||||
// <o> Receive Data Pinout
|
||||
// <0x0=>PAD[0]
|
||||
// <0x1=>PAD[1]
|
||||
// <0x2=>PAD[2]
|
||||
// <0x3=>PAD[3]
|
||||
// <id> spi_master_rxpo
|
||||
#ifndef CONF_SERCOM_0_SPI_RXPO
|
||||
#define CONF_SERCOM_0_SPI_RXPO 2
|
||||
#endif
|
||||
|
||||
// <o> Transmit Data Pinout
|
||||
// <0x0=>PAD[0,1]_DO_SCK
|
||||
// <0x1=>PAD[2,3]_DO_SCK
|
||||
// <0x2=>PAD[3,1]_DO_SCK
|
||||
// <0x3=>PAD[0,3]_DO_SCK
|
||||
// <id> spi_master_txpo
|
||||
#ifndef CONF_SERCOM_0_SPI_TXPO
|
||||
#define CONF_SERCOM_0_SPI_TXPO 0
|
||||
#endif
|
||||
|
||||
// Calculate baud register value from requested baudrate value
|
||||
#ifndef CONF_SERCOM_0_SPI_BAUD_RATE
|
||||
#define CONF_SERCOM_0_SPI_BAUD_RATE ((float)CONF_GCLK_SERCOM0_CORE_FREQUENCY / (float)(2 * CONF_SERCOM_0_SPI_BAUD)) - 1
|
||||
#endif
|
||||
|
||||
#include <peripheral_clk_config.h>
|
||||
|
||||
#ifndef SERCOM_I2CM_CTRLA_MODE_I2C_MASTER
|
||||
#define SERCOM_I2CM_CTRLA_MODE_I2C_MASTER (5 << 2)
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_1_I2CM_ENABLE
|
||||
#define CONF_SERCOM_1_I2CM_ENABLE 1
|
||||
#endif
|
||||
|
||||
// <h> Basic
|
||||
|
||||
// <o> I2C Bus clock speed (Hz) <1-400000>
|
||||
// <i> I2C Bus clock (SCL) speed measured in Hz
|
||||
// <id> i2c_master_baud_rate
|
||||
#ifndef CONF_SERCOM_1_I2CM_BAUD
|
||||
#define CONF_SERCOM_1_I2CM_BAUD 100000
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
|
||||
// <e> Advanced
|
||||
// <id> i2c_master_advanced
|
||||
#ifndef CONF_SERCOM_1_I2CM_ADVANCED_CONFIG
|
||||
#define CONF_SERCOM_1_I2CM_ADVANCED_CONFIG 1
|
||||
#endif
|
||||
|
||||
// <o> TRise (ns) <0-300>
|
||||
// <i> Determined by the bus impedance, check electric characteristics in the datasheet
|
||||
// <i> Standard Fast Mode: typical 215ns, max 300ns
|
||||
// <i> Fast Mode +: typical 60ns, max 100ns
|
||||
// <i> High Speed Mode: typical 20ns, max 40ns
|
||||
// <id> i2c_master_arch_trise
|
||||
|
||||
#ifndef CONF_SERCOM_1_I2CM_TRISE
|
||||
#define CONF_SERCOM_1_I2CM_TRISE 215
|
||||
#endif
|
||||
|
||||
// <q> Master SCL Low Extended Time-Out (MEXTTOEN)
|
||||
// <i> This enables the master SCL low extend time-out
|
||||
// <id> i2c_master_arch_mexttoen
|
||||
#ifndef CONF_SERCOM_1_I2CM_MEXTTOEN
|
||||
#define CONF_SERCOM_1_I2CM_MEXTTOEN 0
|
||||
#endif
|
||||
|
||||
// <q> Slave SCL Low Extend Time-Out (SEXTTOEN)
|
||||
// <i> Enables the slave SCL low extend time-out. If SCL is cumulatively held low for greater than 25ms from the initial START to a STOP, the slave will release its clock hold if enabled and reset the internal state machine
|
||||
// <id> i2c_master_arch_sexttoen
|
||||
#ifndef CONF_SERCOM_1_I2CM_SEXTTOEN
|
||||
#define CONF_SERCOM_1_I2CM_SEXTTOEN 0
|
||||
#endif
|
||||
|
||||
// <q> SCL Low Time-Out (LOWTOUT)
|
||||
// <i> Enables SCL low time-out. If SCL is held low for 25ms-35ms, the master will release it's clock hold
|
||||
// <id> i2c_master_arch_lowtout
|
||||
#ifndef CONF_SERCOM_1_I2CM_LOWTOUT
|
||||
#define CONF_SERCOM_1_I2CM_LOWTOUT 0
|
||||
#endif
|
||||
|
||||
// <o> Inactive Time-Out (INACTOUT)
|
||||
// <0x0=>Disabled
|
||||
// <0x1=>5-6 SCL cycle time-out(50-60us)
|
||||
// <0x2=>10-11 SCL cycle time-out(100-110us)
|
||||
// <0x3=>20-21 SCL cycle time-out(200-210us)
|
||||
// <i> Defines if inactivity time-out should be enabled, and how long the time-out should be
|
||||
// <id> i2c_master_arch_inactout
|
||||
#ifndef CONF_SERCOM_1_I2CM_INACTOUT
|
||||
#define CONF_SERCOM_1_I2CM_INACTOUT 0x0
|
||||
#endif
|
||||
|
||||
// <o> SDA Hold Time (SDAHOLD)
|
||||
// <0=>Disabled
|
||||
// <1=>50-100ns hold time
|
||||
// <2=>300-600ns hold time
|
||||
// <3=>400-800ns hold time
|
||||
// <i> Defines the SDA hold time with respect to the negative edge of SCL
|
||||
// <id> i2c_master_arch_sdahold
|
||||
#ifndef CONF_SERCOM_1_I2CM_SDAHOLD
|
||||
#define CONF_SERCOM_1_I2CM_SDAHOLD 0x2
|
||||
#endif
|
||||
|
||||
// <q> Run in stand-by
|
||||
// <i> Determine if the module shall run in standby sleep mode
|
||||
// <id> i2c_master_arch_runstdby
|
||||
#ifndef CONF_SERCOM_1_I2CM_RUNSTDBY
|
||||
#define CONF_SERCOM_1_I2CM_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <o> Debug Stop Mode
|
||||
// <i> Behavior of the baud-rate generator when CPU is halted by external debugger.
|
||||
// <0=>Keep running
|
||||
// <1=>Halt
|
||||
// <id> i2c_master_arch_dbgstop
|
||||
#ifndef CONF_SERCOM_1_I2CM_DEBUG_STOP_MODE
|
||||
#define CONF_SERCOM_1_I2CM_DEBUG_STOP_MODE 0
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
#ifndef CONF_SERCOM_1_I2CM_SPEED
|
||||
#define CONF_SERCOM_1_I2CM_SPEED 0x00 // Speed: Standard/Fast mode
|
||||
#endif
|
||||
#if CONF_SERCOM_1_I2CM_TRISE < 215 || CONF_SERCOM_1_I2CM_TRISE > 300
|
||||
#warning Bad I2C Rise time for Standard/Fast mode, reset to 215ns
|
||||
#undef CONF_SERCOM_1_I2CM_TRISE
|
||||
#define CONF_SERCOM_1_I2CM_TRISE 215
|
||||
#endif
|
||||
|
||||
// gclk_freq - (i2c_scl_freq * 10) - (gclk_freq * i2c_scl_freq * Trise)
|
||||
// BAUD + BAUDLOW = --------------------------------------------------------------------
|
||||
// i2c_scl_freq
|
||||
// BAUD: register value low [7:0]
|
||||
// BAUDLOW: register value high [15:8], only used for odd BAUD + BAUDLOW
|
||||
#define CONF_SERCOM_1_I2CM_BAUD_BAUDLOW \
|
||||
(((CONF_GCLK_SERCOM1_CORE_FREQUENCY - (CONF_SERCOM_1_I2CM_BAUD * 10) \
|
||||
- (CONF_SERCOM_1_I2CM_TRISE * (CONF_SERCOM_1_I2CM_BAUD / 100) * (CONF_GCLK_SERCOM1_CORE_FREQUENCY / 10000) \
|
||||
/ 1000)) \
|
||||
* 10 \
|
||||
+ 5) \
|
||||
/ (CONF_SERCOM_1_I2CM_BAUD * 10))
|
||||
#ifndef CONF_SERCOM_1_I2CM_BAUD_RATE
|
||||
#if CONF_SERCOM_1_I2CM_BAUD_BAUDLOW > (0xFF * 2)
|
||||
#warning Requested I2C baudrate too low, please check
|
||||
#define CONF_SERCOM_1_I2CM_BAUD_RATE 0xFF
|
||||
#elif CONF_SERCOM_1_I2CM_BAUD_BAUDLOW <= 1
|
||||
#warning Requested I2C baudrate too high, please check
|
||||
#define CONF_SERCOM_1_I2CM_BAUD_RATE 1
|
||||
#else
|
||||
#define CONF_SERCOM_1_I2CM_BAUD_RATE \
|
||||
((CONF_SERCOM_1_I2CM_BAUD_BAUDLOW & 0x1) \
|
||||
? (CONF_SERCOM_1_I2CM_BAUD_BAUDLOW / 2) + ((CONF_SERCOM_1_I2CM_BAUD_BAUDLOW / 2 + 1) << 8) \
|
||||
: (CONF_SERCOM_1_I2CM_BAUD_BAUDLOW / 2))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <peripheral_clk_config.h>
|
||||
|
||||
#ifndef CONF_SERCOM_2_USART_ENABLE
|
||||
#define CONF_SERCOM_2_USART_ENABLE 1
|
||||
#endif
|
||||
|
||||
// <h> Basic Configuration
|
||||
|
||||
// <q> Receive buffer enable
|
||||
// <i> Enable input buffer in SERCOM module
|
||||
// <id> usart_rx_enable
|
||||
#ifndef CONF_SERCOM_2_USART_RXEN
|
||||
#define CONF_SERCOM_2_USART_RXEN 1
|
||||
#endif
|
||||
|
||||
// <q> Transmitt buffer enable
|
||||
// <i> Enable output buffer in SERCOM module
|
||||
// <id> usart_tx_enable
|
||||
#ifndef CONF_SERCOM_2_USART_TXEN
|
||||
#define CONF_SERCOM_2_USART_TXEN 1
|
||||
#endif
|
||||
|
||||
// <o> Frame parity
|
||||
// <0x0=>No parity
|
||||
// <0x1=>Even parity
|
||||
// <0x2=>Odd parity
|
||||
// <i> Parity bit mode for USART frame
|
||||
// <id> usart_parity
|
||||
#ifndef CONF_SERCOM_2_USART_PARITY
|
||||
#define CONF_SERCOM_2_USART_PARITY 0x0
|
||||
#endif
|
||||
|
||||
// <o> Character Size
|
||||
// <0x0=>8 bits
|
||||
// <0x1=>9 bits
|
||||
// <0x5=>5 bits
|
||||
// <0x6=>6 bits
|
||||
// <0x7=>7 bits
|
||||
// <i> Data character size in USART frame
|
||||
// <id> usart_character_size
|
||||
#ifndef CONF_SERCOM_2_USART_CHSIZE
|
||||
#define CONF_SERCOM_2_USART_CHSIZE 0x0
|
||||
#endif
|
||||
|
||||
// <o> Stop Bit
|
||||
// <0=>One stop bit
|
||||
// <1=>Two stop bits
|
||||
// <i> Number of stop bits in USART frame
|
||||
// <id> usart_stop_bit
|
||||
#ifndef CONF_SERCOM_2_USART_SBMODE
|
||||
#define CONF_SERCOM_2_USART_SBMODE 0
|
||||
#endif
|
||||
|
||||
// <o> Baud rate <1-3000000>
|
||||
// <i> USART baud rate setting
|
||||
// <id> usart_baud_rate
|
||||
#ifndef CONF_SERCOM_2_USART_BAUD
|
||||
#define CONF_SERCOM_2_USART_BAUD 9600
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
|
||||
// <e> Advanced configuration
|
||||
// <id> usart_advanced
|
||||
#ifndef CONF_SERCOM_2_USART_ADVANCED_CONFIG
|
||||
#define CONF_SERCOM_2_USART_ADVANCED_CONFIG 1
|
||||
#endif
|
||||
|
||||
// <q> Run in stand-by
|
||||
// <i> Keep the module running in standby sleep mode
|
||||
// <id> usart_arch_runstdby
|
||||
#ifndef CONF_SERCOM_2_USART_RUNSTDBY
|
||||
#define CONF_SERCOM_2_USART_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Immediate Buffer Overflow Notification
|
||||
// <i> Controls when the BUFOVF status bit is asserted
|
||||
// <id> usart_arch_ibon
|
||||
#ifndef CONF_SERCOM_2_USART_IBON
|
||||
#define CONF_SERCOM_2_USART_IBON 0
|
||||
#endif
|
||||
|
||||
// <q> Start of Frame Detection Enable
|
||||
// <i> Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled)
|
||||
// <id> usart_arch_sfde
|
||||
#ifndef CONF_SERCOM_2_USART_SFDE
|
||||
#define CONF_SERCOM_2_USART_SFDE 0
|
||||
#endif
|
||||
|
||||
// <q> Collision Detection Enable
|
||||
// <i> Collision detection enable
|
||||
// <id> usart_arch_cloden
|
||||
#ifndef CONF_SERCOM_2_USART_CLODEN
|
||||
#define CONF_SERCOM_2_USART_CLODEN 0
|
||||
#endif
|
||||
|
||||
// <o> Operating Mode
|
||||
// <0x0=>USART with external clock
|
||||
// <0x1=>USART with internal clock
|
||||
// <i> Drive the shift register by an internal clock generated by the baud rate generator or an external clock supplied on the XCK pin.
|
||||
// <id> usart_arch_clock_mode
|
||||
#ifndef CONF_SERCOM_2_USART_MODE
|
||||
#define CONF_SERCOM_2_USART_MODE 0x1
|
||||
#endif
|
||||
|
||||
// <o> Sample Rate
|
||||
// <0x0=>16x arithmetic
|
||||
// <0x1=>16x fractional
|
||||
// <0x2=>8x arithmetic
|
||||
// <0x3=>8x fractional
|
||||
// <0x3=>3x
|
||||
// <i> How many over-sampling bits used when samling data state
|
||||
// <id> usart_arch_sampr
|
||||
#ifndef CONF_SERCOM_2_USART_SAMPR
|
||||
#define CONF_SERCOM_2_USART_SAMPR 0x0
|
||||
#endif
|
||||
|
||||
// <o> Sample Adjustment
|
||||
// <0x0=>7-8-9 (3-4-5 8-bit over-sampling)
|
||||
// <0x1=>9-10-11 (4-5-6 8-bit over-sampling)
|
||||
// <0x2=>11-12-13 (5-6-7 8-bit over-sampling)
|
||||
// <0x3=>13-14-15 (6-7-8 8-bit over-sampling)
|
||||
// <i> Adjust which samples to use for data sampling in asynchronous mode
|
||||
// <id> usart_arch_sampa
|
||||
#ifndef CONF_SERCOM_2_USART_SAMPA
|
||||
#define CONF_SERCOM_2_USART_SAMPA 0x0
|
||||
#endif
|
||||
|
||||
// <o> Fractional Part <0-7>
|
||||
// <i> Fractional part of the baud rate if baud rate generator is in fractional mode
|
||||
// <id> usart_arch_fractional
|
||||
#ifndef CONF_SERCOM_2_USART_FRACTIONAL
|
||||
#define CONF_SERCOM_2_USART_FRACTIONAL 0x0
|
||||
#endif
|
||||
|
||||
// <o> Data Order
|
||||
// <0=>MSB is transmitted first
|
||||
// <1=>LSB is transmitted first
|
||||
// <i> Data order of the data bits in the frame
|
||||
// <id> usart_arch_dord
|
||||
#ifndef CONF_SERCOM_2_USART_DORD
|
||||
#define CONF_SERCOM_2_USART_DORD 1
|
||||
#endif
|
||||
|
||||
// Does not do anything in UART mode
|
||||
#define CONF_SERCOM_2_USART_CPOL 0
|
||||
|
||||
// <o> Encoding Format
|
||||
// <0=>No encoding
|
||||
// <1=>IrDA encoded
|
||||
// <id> usart_arch_enc
|
||||
#ifndef CONF_SERCOM_2_USART_ENC
|
||||
#define CONF_SERCOM_2_USART_ENC 0
|
||||
#endif
|
||||
|
||||
// <o> Debug Stop Mode
|
||||
// <i> Behavior of the baud-rate generator when CPU is halted by external debugger.
|
||||
// <0=>Keep running
|
||||
// <1=>Halt
|
||||
// <id> usart_arch_dbgstop
|
||||
#ifndef CONF_SERCOM_2_USART_DEBUG_STOP_MODE
|
||||
#define CONF_SERCOM_2_USART_DEBUG_STOP_MODE 0
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
#ifndef CONF_SERCOM_2_USART_INACK
|
||||
#define CONF_SERCOM_2_USART_INACK 0x0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_2_USART_DSNACK
|
||||
#define CONF_SERCOM_2_USART_DSNACK 0x0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_2_USART_MAXITER
|
||||
#define CONF_SERCOM_2_USART_MAXITER 0x7
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_2_USART_GTIME
|
||||
#define CONF_SERCOM_2_USART_GTIME 0x2
|
||||
#endif
|
||||
|
||||
#define CONF_SERCOM_2_USART_RXINV 0x0
|
||||
#define CONF_SERCOM_2_USART_TXINV 0x0
|
||||
|
||||
#ifndef CONF_SERCOM_2_USART_CMODE
|
||||
#define CONF_SERCOM_2_USART_CMODE 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_2_USART_RXPO
|
||||
#define CONF_SERCOM_2_USART_RXPO 1 /* RX is on PIN_PA08 */
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_2_USART_TXPO
|
||||
#define CONF_SERCOM_2_USART_TXPO 0 /* TX is on PIN_PA09 */
|
||||
#endif
|
||||
|
||||
/* Set correct parity settings in register interface based on PARITY setting */
|
||||
#if CONF_SERCOM_2_USART_PARITY == 0
|
||||
#define CONF_SERCOM_2_USART_PMODE 0
|
||||
#define CONF_SERCOM_2_USART_FORM 0
|
||||
#else
|
||||
#define CONF_SERCOM_2_USART_PMODE CONF_SERCOM_2_USART_PARITY - 1
|
||||
#define CONF_SERCOM_2_USART_FORM 1
|
||||
#endif
|
||||
|
||||
// Calculate BAUD register value in UART mode
|
||||
#if CONF_SERCOM_2_USART_SAMPR == 0
|
||||
#ifndef CONF_SERCOM_2_USART_BAUD_RATE
|
||||
#define CONF_SERCOM_2_USART_BAUD_RATE \
|
||||
65536 - ((65536 * 16.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY)
|
||||
#endif
|
||||
#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH
|
||||
#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0
|
||||
#endif
|
||||
#elif CONF_SERCOM_2_USART_SAMPR == 1
|
||||
#ifndef CONF_SERCOM_2_USART_BAUD_RATE
|
||||
#define CONF_SERCOM_2_USART_BAUD_RATE \
|
||||
((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 16)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8)
|
||||
#endif
|
||||
#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH
|
||||
#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0
|
||||
#endif
|
||||
#elif CONF_SERCOM_2_USART_SAMPR == 2
|
||||
#ifndef CONF_SERCOM_2_USART_BAUD_RATE
|
||||
#define CONF_SERCOM_2_USART_BAUD_RATE \
|
||||
65536 - ((65536 * 8.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY)
|
||||
#endif
|
||||
#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH
|
||||
#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0
|
||||
#endif
|
||||
#elif CONF_SERCOM_2_USART_SAMPR == 3
|
||||
#ifndef CONF_SERCOM_2_USART_BAUD_RATE
|
||||
#define CONF_SERCOM_2_USART_BAUD_RATE \
|
||||
((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 8)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8)
|
||||
#endif
|
||||
#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH
|
||||
#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0
|
||||
#endif
|
||||
#elif CONF_SERCOM_2_USART_SAMPR == 4
|
||||
#ifndef CONF_SERCOM_2_USART_BAUD_RATE
|
||||
#define CONF_SERCOM_2_USART_BAUD_RATE \
|
||||
65536 - ((65536 * 3.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY)
|
||||
#endif
|
||||
#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH
|
||||
#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <peripheral_clk_config.h>
|
||||
|
||||
// Enable configuration of module
|
||||
#ifndef CONF_SERCOM_3_SPI_ENABLE
|
||||
#define CONF_SERCOM_3_SPI_ENABLE 1
|
||||
#endif
|
||||
|
||||
//<o> SPI DMA TX Channel <0-32>
|
||||
//<i> This defines DMA channel to be used
|
||||
//<id> spi_master_dma_tx_channel
|
||||
#ifndef CONF_SERCOM_3_SPI_M_DMA_TX_CHANNEL
|
||||
#define CONF_SERCOM_3_SPI_M_DMA_TX_CHANNEL 0
|
||||
#endif
|
||||
|
||||
// <e> SPI RX Channel Enable
|
||||
// <id> spi_master_rx_channel
|
||||
#ifndef CONF_SERCOM_3_SPI_RX_CHANNEL
|
||||
#define CONF_SERCOM_3_SPI_RX_CHANNEL 1
|
||||
#endif
|
||||
|
||||
//<o> DMA Channel <0-32>
|
||||
//<i> This defines DMA channel to be used
|
||||
//<id> spi_master_dma_rx_channel
|
||||
#ifndef CONF_SERCOM_3_SPI_M_DMA_RX_CHANNEL
|
||||
#define CONF_SERCOM_3_SPI_M_DMA_RX_CHANNEL 1
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// Set module in SPI Master mode
|
||||
#ifndef CONF_SERCOM_3_SPI_MODE
|
||||
#define CONF_SERCOM_3_SPI_MODE 0x03
|
||||
#endif
|
||||
|
||||
// <h> Basic Configuration
|
||||
|
||||
// <q> Receive buffer enable
|
||||
// <i> Enable receive buffer to receive data from slave (RXEN)
|
||||
// <id> spi_master_rx_enable
|
||||
#ifndef CONF_SERCOM_3_SPI_RXEN
|
||||
#define CONF_SERCOM_3_SPI_RXEN 0x1
|
||||
#endif
|
||||
|
||||
// <o> Character Size
|
||||
// <i> Bit size for all characters sent over the SPI bus (CHSIZE)
|
||||
// <0x0=>8 bits
|
||||
// <0x1=>9 bits
|
||||
// <id> spi_master_character_size
|
||||
#ifndef CONF_SERCOM_3_SPI_CHSIZE
|
||||
#define CONF_SERCOM_3_SPI_CHSIZE 0x0
|
||||
#endif
|
||||
|
||||
// <o> Baud rate <1-12000000>
|
||||
// <i> The SPI data transfer rate
|
||||
// <id> spi_master_baud_rate
|
||||
#ifndef CONF_SERCOM_3_SPI_BAUD
|
||||
#define CONF_SERCOM_3_SPI_BAUD 50000
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
|
||||
// <e> Advanced Configuration
|
||||
// <id> spi_master_advanced
|
||||
#ifndef CONF_SERCOM_3_SPI_ADVANCED
|
||||
#define CONF_SERCOM_3_SPI_ADVANCED 0
|
||||
#endif
|
||||
|
||||
// <o> Dummy byte <0x00-0x1ff>
|
||||
// <id> spi_master_dummybyte
|
||||
// <i> Dummy byte used when reading data from the slave without sending any data
|
||||
#ifndef CONF_SERCOM_3_SPI_DUMMYBYTE
|
||||
#define CONF_SERCOM_3_SPI_DUMMYBYTE 0x1ff
|
||||
#endif
|
||||
|
||||
// <o> Data Order
|
||||
// <0=>MSB first
|
||||
// <1=>LSB first
|
||||
// <i> I least significant or most significant bit is shifted out first (DORD)
|
||||
// <id> spi_master_arch_dord
|
||||
#ifndef CONF_SERCOM_3_SPI_DORD
|
||||
#define CONF_SERCOM_3_SPI_DORD 0x0
|
||||
#endif
|
||||
|
||||
// <o> Clock Polarity
|
||||
// <0=>SCK is low when idle
|
||||
// <1=>SCK is high when idle
|
||||
// <i> Determines if the leading edge is rising or falling with a corresponding opposite edge at the trailing edge. (CPOL)
|
||||
// <id> spi_master_arch_cpol
|
||||
#ifndef CONF_SERCOM_3_SPI_CPOL
|
||||
#define CONF_SERCOM_3_SPI_CPOL 0x0
|
||||
#endif
|
||||
|
||||
// <o> Clock Phase
|
||||
// <0x0=>Sample input on leading edge
|
||||
// <0x1=>Sample input on trailing edge
|
||||
// <i> Determines if input data is sampled on leading or trailing SCK edge. (CPHA)
|
||||
// <id> spi_master_arch_cpha
|
||||
#ifndef CONF_SERCOM_3_SPI_CPHA
|
||||
#define CONF_SERCOM_3_SPI_CPHA 0x0
|
||||
#endif
|
||||
|
||||
// <o> Immediate Buffer Overflow Notification
|
||||
// <i> Controls when OVF is asserted (IBON)
|
||||
// <0x0=>In data stream
|
||||
// <0x1=>On buffer overflow
|
||||
// <id> spi_master_arch_ibon
|
||||
#ifndef CONF_SERCOM_3_SPI_IBON
|
||||
#define CONF_SERCOM_3_SPI_IBON 0x0
|
||||
#endif
|
||||
|
||||
// <q> Run in stand-by
|
||||
// <i> Module stays active in stand-by sleep mode. (RUNSTDBY)
|
||||
// <id> spi_master_arch_runstdby
|
||||
#ifndef CONF_SERCOM_3_SPI_RUNSTDBY
|
||||
#define CONF_SERCOM_3_SPI_RUNSTDBY 0x0
|
||||
#endif
|
||||
|
||||
// <o> Debug Stop Mode
|
||||
// <i> Behavior of the baud-rate generator when CPU is halted by external debugger. (DBGSTOP)
|
||||
// <0=>Keep running
|
||||
// <1=>Halt
|
||||
// <id> spi_master_arch_dbgstop
|
||||
#ifndef CONF_SERCOM_3_SPI_DBGSTOP
|
||||
#define CONF_SERCOM_3_SPI_DBGSTOP 0
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// Address mode disabled in master mode
|
||||
#ifndef CONF_SERCOM_3_SPI_AMODE_EN
|
||||
#define CONF_SERCOM_3_SPI_AMODE_EN 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_3_SPI_AMODE
|
||||
#define CONF_SERCOM_3_SPI_AMODE 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_3_SPI_ADDR
|
||||
#define CONF_SERCOM_3_SPI_ADDR 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_3_SPI_ADDRMASK
|
||||
#define CONF_SERCOM_3_SPI_ADDRMASK 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_3_SPI_SSDE
|
||||
#define CONF_SERCOM_3_SPI_SSDE 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_3_SPI_MSSEN
|
||||
#define CONF_SERCOM_3_SPI_MSSEN 0x0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_SERCOM_3_SPI_PLOADEN
|
||||
#define CONF_SERCOM_3_SPI_PLOADEN 0
|
||||
#endif
|
||||
|
||||
// <o> Receive Data Pinout
|
||||
// <0x0=>PAD[0]
|
||||
// <0x1=>PAD[1]
|
||||
// <0x2=>PAD[2]
|
||||
// <0x3=>PAD[3]
|
||||
// <id> spi_master_rxpo
|
||||
#ifndef CONF_SERCOM_3_SPI_RXPO
|
||||
#define CONF_SERCOM_3_SPI_RXPO 2
|
||||
#endif
|
||||
|
||||
// <o> Transmit Data Pinout
|
||||
// <0x0=>PAD[0,1]_DO_SCK
|
||||
// <0x1=>PAD[2,3]_DO_SCK
|
||||
// <0x2=>PAD[3,1]_DO_SCK
|
||||
// <0x3=>PAD[0,3]_DO_SCK
|
||||
// <id> spi_master_txpo
|
||||
#ifndef CONF_SERCOM_3_SPI_TXPO
|
||||
#define CONF_SERCOM_3_SPI_TXPO 0
|
||||
#endif
|
||||
|
||||
// Calculate baud register value from requested baudrate value
|
||||
#ifndef CONF_SERCOM_3_SPI_BAUD_RATE
|
||||
#define CONF_SERCOM_3_SPI_BAUD_RATE ((float)CONF_GCLK_SERCOM3_CORE_FREQUENCY / (float)(2 * CONF_SERCOM_3_SPI_BAUD)) - 1
|
||||
#endif
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_SERCOM_CONFIG_H
|
|
@ -0,0 +1,18 @@
|
|||
/* Auto-generated config file hpl_systick_config.h */
|
||||
#ifndef HPL_SYSTICK_CONFIG_H
|
||||
#define HPL_SYSTICK_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
// <h> Advanced settings
|
||||
// <q> SysTick exception request
|
||||
// <i> Indicates whether the generation of SysTick exception is enabled or not
|
||||
// <id> systick_arch_tickint
|
||||
#ifndef CONF_SYSTICK_TICKINT
|
||||
#define CONF_SYSTICK_TICKINT 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_SYSTICK_CONFIG_H
|
|
@ -0,0 +1,209 @@
|
|||
/* Auto-generated config file hpl_tc_config.h */
|
||||
#ifndef HPL_TC_CONFIG_H
|
||||
#define HPL_TC_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
#include <peripheral_clk_config.h>
|
||||
|
||||
#ifndef CONF_TC0_ENABLE
|
||||
#define CONF_TC0_ENABLE 1
|
||||
#endif
|
||||
|
||||
// <h> Basic settings
|
||||
// <o> Prescaler
|
||||
// <0=> No division
|
||||
// <1=> Divide by 2
|
||||
// <2=> Divide by 4
|
||||
// <3=> Divide by 8
|
||||
// <4=> Divide by 16
|
||||
// <5=> Divide by 64
|
||||
// <6=> Divide by 256
|
||||
// <7=> Divide by 1024
|
||||
// <i> This defines the prescaler value
|
||||
// <id> tc_prescaler
|
||||
#ifndef CONF_TC0_PRESCALER
|
||||
#define CONF_TC0_PRESCALER 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <h> PWM Waveform Output settings
|
||||
// <o> Waveform Period Value (uS) <0x00-0xFFFFFFFF>
|
||||
// <i> The unit of this value is us.
|
||||
// <id> tc_arch_wave_per_val
|
||||
#ifndef CONF_TC0_WAVE_PER_VAL
|
||||
#define CONF_TC0_WAVE_PER_VAL 0x3e8
|
||||
#endif
|
||||
|
||||
// <o> Waveform Duty Value (0.1%) <0x00-0x03E8>
|
||||
// <i> The unit of this value is 1/1000.
|
||||
// <id> tc_arch_wave_duty_val
|
||||
#ifndef CONF_TC0_WAVE_DUTY_VAL
|
||||
#define CONF_TC0_WAVE_DUTY_VAL 0x1f4
|
||||
#endif
|
||||
|
||||
/* Caculate pwm ccx register value based on WAVE_PER_VAL and Waveform Duty Value */
|
||||
#if CONF_TC0_PRESCALER < TC_CTRLA_PRESCALER_DIV64_Val
|
||||
#define CONF_TC0_CC0 \
|
||||
((uint32_t)(((double)CONF_TC0_WAVE_PER_VAL * CONF_GCLK_TC0_FREQUENCY) / 1000000 / (1 << CONF_TC0_PRESCALER) - 1))
|
||||
#define CONF_TC0_CC1 ((CONF_TC0_CC0 * CONF_TC0_WAVE_DUTY_VAL) / 1000)
|
||||
|
||||
#elif CONF_TC0_PRESCALER == TC_CTRLA_PRESCALER_DIV64_Val
|
||||
#define CONF_TC0_CC0 ((uint32_t)(((double)CONF_TC0_WAVE_PER_VAL * CONF_GCLK_TC0_FREQUENCY) / 64000000 - 1))
|
||||
#define CONF_TC0_CC1 ((CONF_TC0_CC0 * CONF_TC0_WAVE_DUTY_VAL) / 1000)
|
||||
|
||||
#elif CONF_TC0_PRESCALER == TC_CTRLA_PRESCALER_DIV256_Val
|
||||
#define CONF_TC0_CC0 ((uint32_t)(((double)CONF_TC0_WAVE_PER_VAL * CONF_GCLK_TC0_FREQUENCY) / 256000000 - 1))
|
||||
#define CONF_TC0_CC1 ((CONF_TC0_CC0 * CONF_TC0_WAVE_DUTY_VAL) / 1000)
|
||||
|
||||
#elif CONF_TC0_PRESCALER == TC_CTRLA_PRESCALER_DIV1024_Val
|
||||
#define CONF_TC0_CC0 ((uint32_t)(((double)CONF_TC0_WAVE_PER_VAL * CONF_GCLK_TC0_FREQUENCY) / 1024000000 - 1))
|
||||
#define CONF_TC0_CC1 ((CONF_TC0_CC0 * CONF_TC0_WAVE_DUTY_VAL) / 1000)
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
|
||||
// <h> Advanced settings
|
||||
// <y> Mode
|
||||
// <TC_CTRLA_MODE_COUNT16_Val"> Counter in 16-bit mode
|
||||
// <TC_CTRLA_MODE_COUNT32_Val"> Counter in 32-bit mode
|
||||
// <i> These bits mode
|
||||
// <id> tc_mode
|
||||
#ifndef CONF_TC0_MODE
|
||||
#define CONF_TC0_MODE TC_CTRLA_MODE_COUNT16_Val
|
||||
#endif
|
||||
|
||||
// <o> Period Value <0x00000000-0xFFFFFFFF>
|
||||
// <id> tc_per
|
||||
#ifndef CONF_TC0_PER
|
||||
#define CONF_TC0_PER 0x32
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <h> Advanced settings
|
||||
// <y> Prescaler and Counter Synchronization Selection
|
||||
// <TC_CTRLA_PRESCSYNC_GCLK_Val"> Reload or reset counter on next GCLK
|
||||
// <TC_CTRLA_PRESCSYNC_PRESC_Val"> Reload or reset counter on next prescaler clock
|
||||
// <TC_CTRLA_PRESCSYNC_RESYNC_Val"> Reload or reset counter on next GCLK and reset prescaler counter
|
||||
// <i> These bits select if on retrigger event, the Counter should be cleared or reloaded on the next GCLK_TCx clock or on the next prescaled GCLK_TCx clock.
|
||||
// <id> tc_arch_presync
|
||||
#ifndef CONF_TC0_PRESCSYNC
|
||||
#define CONF_TC0_PRESCSYNC TC_CTRLA_PRESCSYNC_GCLK_Val
|
||||
#endif
|
||||
|
||||
// <q> Run in standby
|
||||
// <i> Indicates whether the will continue running in standby sleep mode or not
|
||||
// <id> tc_arch_runstdby
|
||||
#ifndef CONF_TC0_RUNSTDBY
|
||||
#define CONF_TC0_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> On-Demand
|
||||
// <i> Indicates whether the TC0's on-demand mode is on or not
|
||||
// <id> tc_arch_ondemand
|
||||
#ifndef CONF_TC0_ONDEMAND
|
||||
#define CONF_TC0_ONDEMAND 0
|
||||
#endif
|
||||
|
||||
// <o> Auto Lock
|
||||
// <0x0=>The Lock Update bit is not affected on overflow/underflow and re-trigger event
|
||||
// <0x1=>The Lock Update bit is set on each overflow/underflow or re-trigger event
|
||||
// <id> tc_arch_alock
|
||||
#ifndef CONF_TC0_ALOCK
|
||||
#define CONF_TC0_ALOCK 0
|
||||
#endif
|
||||
|
||||
/* Commented intentionally. Timer uses fixed value. May be used by other abstractions based on TC. */
|
||||
//#define CONF_TC0_CAPTEN0 0
|
||||
//#define CONF_TC0_CAPTEN1 0
|
||||
//#define CONF_TC0_COPEN0 0
|
||||
//#define CONF_TC0_COPEN1 0
|
||||
|
||||
/* Commented intentionally. Timer uses fixed value. May be used by other abstractions based on TC. */
|
||||
//#define CONF_TC0_DIR 0
|
||||
//#define CONF_TC0_ONESHOT 0
|
||||
//#define CONF_TC0_LUPD 0
|
||||
|
||||
// <q> Debug Running Mode
|
||||
// <i> Indicates whether the Debug Running Mode is enabled or not
|
||||
// <id> tc_arch_dbgrun
|
||||
#ifndef CONF_TC0_DBGRUN
|
||||
#define CONF_TC0_DBGRUN 0
|
||||
#endif
|
||||
|
||||
// <e> Event control
|
||||
// <id> timer_event_control
|
||||
#ifndef CONF_TC0_EVENT_CONTROL_ENABLE
|
||||
#define CONF_TC0_EVENT_CONTROL_ENABLE 0
|
||||
#endif
|
||||
|
||||
// <q> Output Event On Match or Capture on Channel 0
|
||||
// <i> Enable output of event on timer tick
|
||||
// <id> tc_arch_mceo0
|
||||
#ifndef CONF_TC0_MCEO0
|
||||
#define CONF_TC0_MCEO0 0
|
||||
#endif
|
||||
|
||||
// <q> Output Event On Match or Capture on Channel 1
|
||||
// <i> Enable output of event on timer tick
|
||||
// <id> tc_arch_mceo1
|
||||
#ifndef CONF_TC0_MCEO1
|
||||
#define CONF_TC0_MCEO1 0
|
||||
#endif
|
||||
|
||||
// <q> Output Event On Timer Tick
|
||||
// <i> Enable output of event on timer tick
|
||||
// <id> tc_arch_ovfeo
|
||||
#ifndef CONF_TC0_OVFEO
|
||||
#define CONF_TC0_OVFEO 0
|
||||
#endif
|
||||
|
||||
// <q> Event Input
|
||||
// <i> Enable asynchronous input events
|
||||
// <id> tc_arch_tcei
|
||||
#ifndef CONF_TC0_TCEI
|
||||
#define CONF_TC0_TCEI 0
|
||||
#endif
|
||||
|
||||
// <q> Inverted Event Input
|
||||
// <i> Invert the asynchronous input events
|
||||
// <id> tc_arch_tcinv
|
||||
#ifndef CONF_TC0_TCINV
|
||||
#define CONF_TC0_TCINV 0
|
||||
#endif
|
||||
|
||||
// <o> Event action
|
||||
// <0=> Event action disabled
|
||||
// <1=> Start, restart or re-trigger TC on event
|
||||
// <2=> Count on event
|
||||
// <3=> Start on event
|
||||
// <4=> Time stamp capture
|
||||
// <5=> Period captured in CC0, pulse width in CC1
|
||||
// <6=> Period captured in CC1, pulse width in CC0
|
||||
// <7=> Pulse width capture
|
||||
// <i> Event which will be performed on an event
|
||||
//<id> tc_arch_evact
|
||||
#ifndef CONF_TC0_EVACT
|
||||
#define CONF_TC0_EVACT 0
|
||||
#endif
|
||||
// </e>
|
||||
|
||||
/* Commented intentionally. Timer uses fixed value. May be used by other abstractions based on TC. */
|
||||
//#define CONF_TC0_WAVEGEN TC_CTRLA_WAVEGEN_MFRQ_Val
|
||||
|
||||
/* Commented intentionally. Timer uses fixed value. May be used by other abstractions based on TC. */
|
||||
//#define CONF_TC0_INVEN0 0
|
||||
//#define CONF_TC0_INVEN1 0
|
||||
|
||||
/* Commented intentionally. Timer uses fixed value. May be used by other abstractions based on TC. */
|
||||
//#define CONF_TC0_PERBUF 0
|
||||
|
||||
/* Commented intentionally. Timer uses fixed value. May be used by other abstractions based on TC. */
|
||||
//#define CONF_TC0_CCBUF0 0
|
||||
//#define CONF_TC0_CCBUF1 0
|
||||
|
||||
// </h>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_TC_CONFIG_H
|
|
@ -0,0 +1,27 @@
|
|||
/* Auto-generated config file hpl_trng_config.h */
|
||||
#ifndef HPL_TRNG_CONFIG_H
|
||||
#define HPL_TRNG_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
// <h> Advanced configurations
|
||||
|
||||
// <q> Run In Standby
|
||||
// <i> Indicates whether the TRNG works in standby mode
|
||||
// <id> trng_runstdby
|
||||
#ifndef CONF_TRNG_RUNSTDBY
|
||||
#define CONF_TRNG_RUNSTDBY 0
|
||||
#endif
|
||||
|
||||
// <q> Data Ready Event Output Enable
|
||||
// <i> Indicates whether the TRNG generates event on Data Ready
|
||||
// <id> trng_datardyeo
|
||||
#ifndef CONF_TRNG_DATARDYEO
|
||||
#define CONF_TRNG_DATARDYEO 0
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_TRNG_CONFIG_H
|
|
@ -0,0 +1,413 @@
|
|||
/* Auto-generated config file hpl_usb_config.h */
|
||||
#ifndef HPL_USB_CONFIG_H
|
||||
#define HPL_USB_CONFIG_H
|
||||
|
||||
// CIRCUITPY:
|
||||
|
||||
// Use 64-byte USB buffers for endpoint directions that are in use. They're set to 0 below otherwise.
|
||||
|
||||
#include "genhdr/autogen_usb_descriptor.h"
|
||||
|
||||
#if defined(USB_ENDPOINT_1_OUT_USED) && USB_ENDPOINT_1_OUT_USED
|
||||
#define CONF_USB_EP1_CACHE 64
|
||||
#endif
|
||||
#if defined(USB_ENDPOINT_1_IN_USED) && USB_ENDPOINT_1_IN_USED
|
||||
#define CONF_USB_EP1_I_CACHE 64
|
||||
#endif
|
||||
|
||||
#if defined(USB_ENDPOINT_2_OUT_USED) && USB_ENDPOINT_2_OUT_USED
|
||||
#define CONF_USB_EP2_CACHE 64
|
||||
#endif
|
||||
#if defined(USB_ENDPOINT_2_IN_USED) && USB_ENDPOINT_2_IN_USED
|
||||
#define CONF_USB_EP2_I_CACHE 64
|
||||
#endif
|
||||
|
||||
#if defined(USB_ENDPOINT_3_OUT_USED) && USB_ENDPOINT_3_OUT_USED
|
||||
#define CONF_USB_EP3_CACHE 64
|
||||
#endif
|
||||
#if defined(USB_ENDPOINT_3_IN_USED) && USB_ENDPOINT_3_IN_USED
|
||||
#define CONF_USB_EP3_I_CACHE 64
|
||||
#endif
|
||||
|
||||
#if defined(USB_ENDPOINT_4_OUT_USED) && USB_ENDPOINT_4_OUT_USED
|
||||
#define CONF_USB_EP4_CACHE 64
|
||||
#endif
|
||||
#if defined(USB_ENDPOINT_4_IN_USED) && USB_ENDPOINT_4_IN_USED
|
||||
#define CONF_USB_EP4_I_CACHE 64
|
||||
#endif
|
||||
|
||||
#if defined(USB_ENDPOINT_5_OUT_USED) && USB_ENDPOINT_5_OUT_USED
|
||||
#define CONF_USB_EP5_CACHE 64
|
||||
#endif
|
||||
#if defined(USB_ENDPOINT_5_IN_USED) && USB_ENDPOINT_5_IN_USED
|
||||
#define CONF_USB_EP5_I_CACHE 64
|
||||
#endif
|
||||
|
||||
#if defined(USB_ENDPOINT_6_OUT_USED) && USB_ENDPOINT_6_OUT_USED
|
||||
#define CONF_USB_EP6_CACHE 64
|
||||
#endif
|
||||
#if defined(USB_ENDPOINT_6_IN_USED) && USB_ENDPOINT_6_IN_USED
|
||||
#define CONF_USB_EP6_I_CACHE 64
|
||||
#endif
|
||||
|
||||
#if defined(USB_ENDPOINT_7_OUT_USED) && USB_ENDPOINT_7_OUT_USED
|
||||
#define CONF_USB_EP7_CACHE 64
|
||||
#endif
|
||||
#if defined(USB_ENDPOINT_7_IN_USED) && USB_ENDPOINT_7_IN_USED
|
||||
#define CONF_USB_EP7_I_CACHE 64
|
||||
#endif
|
||||
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
#define CONF_USB_N_0 0
|
||||
#define CONF_USB_N_1 1
|
||||
#define CONF_USB_N_2 2
|
||||
#define CONF_USB_N_3 3
|
||||
#define CONF_USB_N_4 4
|
||||
#define CONF_USB_N_5 5
|
||||
#define CONF_USB_N_6 6
|
||||
#define CONF_USB_N_7 7
|
||||
#define CONF_USB_N_8 8
|
||||
#define CONF_USB_N_9 9
|
||||
#define CONF_USB_N_10 10
|
||||
#define CONF_USB_N_11 11
|
||||
#define CONF_USB_N_12 12
|
||||
#define CONF_USB_N_13 13
|
||||
#define CONF_USB_N_14 14
|
||||
#define CONF_USB_N_15 15
|
||||
|
||||
#define CONF_USB_D_EP_N_MAX (USB_EPT_NUM - 1)
|
||||
#define CONF_USB_D_N_EP_MAX (CONF_USB_D_EP_N_MAX * 2 - 1)
|
||||
|
||||
// <h> USB Device HAL Configuration
|
||||
|
||||
// <y> Max number of endpoints supported
|
||||
// <i> Limits the number of endpoints (described by EP address) can be used in app.
|
||||
// NOTE(tannewt): This not only limits the number of endpoints but also the
|
||||
// addresses. In other words, even if you use endpoint 6 you need to set this to 11.
|
||||
// <CONF_USB_N_1"> 1 (EP0 only)
|
||||
// <CONF_USB_N_2"> 2 (EP0 + 1 endpoint)
|
||||
// <CONF_USB_N_3"> 3 (EP0 + 2 endpoints)
|
||||
// <CONF_USB_N_4"> 4 (EP0 + 3 endpoints)
|
||||
// <CONF_USB_N_5"> 5 (EP0 + 4 endpoints)
|
||||
// <CONF_USB_N_6"> 6 (EP0 + 5 endpoints)
|
||||
// <CONF_USB_N_7"> 7 (EP0 + 6 endpoints)
|
||||
// <CONF_USB_N_8"> 8 (EP0 + 7 endpoints)
|
||||
// <CONF_USB_D_N_EP_MAX"> Max possible (by "Max Endpoint Number" config)
|
||||
// <id> usbd_num_ep_sp
|
||||
#ifndef CONF_USB_D_NUM_EP_SP
|
||||
#define CONF_USB_D_NUM_EP_SP CONF_USB_D_N_EP_MAX
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
|
||||
// <y> Max Endpoint Number supported
|
||||
// <i> Limits the max endpoint number.
|
||||
// <i> USB endpoint address is constructed by direction and endpoint number. Bit 8 of address set indicates the direction is IN. E.g., EP0x81 and EP0x01 have the same endpoint number, 1.
|
||||
// <i> Reduce the value according to specific device design, to cut-off memory usage.
|
||||
// <CONF_USB_N_0"> 0 (only EP0)
|
||||
// <CONF_USB_N_1"> 1 (EP 0x81 or 0x01)
|
||||
// <CONF_USB_N_2"> 2 (EP 0x82 or 0x02)
|
||||
// <CONF_USB_N_3"> 3 (EP 0x83 or 0x03)
|
||||
// <CONF_USB_N_4"> 4 (EP 0x84 or 0x04)
|
||||
// <CONF_USB_N_5"> 5 (EP 0x85 or 0x05)
|
||||
// <CONF_USB_N_6"> 6 (EP 0x86 or 0x06)
|
||||
// <CONF_USB_N_7"> 7 (EP 0x87 or 0x07)
|
||||
// <CONF_USB_EP_N_MAX"> Max possible (by HW)
|
||||
// <i> The number of physical endpoints - 1
|
||||
// <id> usbd_arch_max_ep_n
|
||||
#ifndef CONF_USB_D_MAX_EP_N
|
||||
#define CONF_USB_D_MAX_EP_N CONF_USB_D_EP_N_MAX
|
||||
#endif
|
||||
|
||||
// <y> USB Speed Limit
|
||||
// <i> Limits the working speed of the device.
|
||||
// <USB_SPEED_FS"> Full speed
|
||||
// <USB_SPEED_LS"> Low Speed
|
||||
// <id> usbd_arch_speed
|
||||
#ifndef CONF_USB_D_SPEED
|
||||
#define CONF_USB_D_SPEED USB_SPEED_FS
|
||||
#endif
|
||||
|
||||
// <o> Cache buffer size for EP0
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> EP0 is default control endpoint, so cache must be used to be able to receive SETUP packet at any time.
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <id> usb_arch_ep0_cache
|
||||
#ifndef CONF_USB_EP0_CACHE
|
||||
#define CONF_USB_EP0_CACHE 64
|
||||
#endif
|
||||
|
||||
// <h> Cache configuration EP1
|
||||
// <o> Cache buffer size for EP1 OUT
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_arch_ep1_cache
|
||||
#ifndef CONF_USB_EP1_CACHE
|
||||
#define CONF_USB_EP1_CACHE 0
|
||||
#endif
|
||||
|
||||
// <o> Cache buffer size for EP1 IN
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must not be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_ep1_I_CACHE
|
||||
#ifndef CONF_USB_EP1_I_CACHE
|
||||
#define CONF_USB_EP1_I_CACHE 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <h> Cache configuration EP2
|
||||
// <o> Cache buffer size for EP2 OUT
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_arch_ep2_cache
|
||||
#ifndef CONF_USB_EP2_CACHE
|
||||
#define CONF_USB_EP2_CACHE 0
|
||||
#endif
|
||||
|
||||
// <o> Cache buffer size for EP2 IN
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must not be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_ep2_I_CACHE
|
||||
#ifndef CONF_USB_EP2_I_CACHE
|
||||
#define CONF_USB_EP2_I_CACHE 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <h> Cache configuration EP3
|
||||
// <o> Cache buffer size for EP3 OUT
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_arch_ep3_cache
|
||||
#ifndef CONF_USB_EP3_CACHE
|
||||
#define CONF_USB_EP3_CACHE 0
|
||||
#endif
|
||||
|
||||
// <o> Cache buffer size for EP3 IN
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must not be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_ep3_I_CACHE
|
||||
#ifndef CONF_USB_EP3_I_CACHE
|
||||
#define CONF_USB_EP3_I_CACHE 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <h> Cache configuration EP4
|
||||
// <o> Cache buffer size for EP4 OUT
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_arch_ep4_cache
|
||||
#ifndef CONF_USB_EP4_CACHE
|
||||
#define CONF_USB_EP4_CACHE 0
|
||||
#endif
|
||||
|
||||
// <o> Cache buffer size for EP4 IN
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must not be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_ep4_I_CACHE
|
||||
#ifndef CONF_USB_EP4_I_CACHE
|
||||
#define CONF_USB_EP4_I_CACHE 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <h> Cache configuration EP5
|
||||
// <o> Cache buffer size for EP5 OUT
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_arch_ep5_cache
|
||||
#ifndef CONF_USB_EP5_CACHE
|
||||
#define CONF_USB_EP5_CACHE 0
|
||||
#endif
|
||||
|
||||
// <o> Cache buffer size for EP5 IN
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must not be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_ep5_I_CACHE
|
||||
#ifndef CONF_USB_EP5_I_CACHE
|
||||
#define CONF_USB_EP5_I_CACHE 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <h> Cache configuration EP6
|
||||
// <o> Cache buffer size for EP6 OUT
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_arch_ep6_cache
|
||||
#ifndef CONF_USB_EP6_CACHE
|
||||
#define CONF_USB_EP6_CACHE 0
|
||||
#endif
|
||||
|
||||
// <o> Cache buffer size for EP6 IN
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must not be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_ep6_I_CACHE
|
||||
#ifndef CONF_USB_EP6_I_CACHE
|
||||
#define CONF_USB_EP6_I_CACHE 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <h> Cache configuration EP7
|
||||
// <o> Cache buffer size for EP7 OUT
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_arch_ep7_cache
|
||||
#ifndef CONF_USB_EP7_CACHE
|
||||
#define CONF_USB_EP7_CACHE 0
|
||||
#endif
|
||||
|
||||
// <o> Cache buffer size for EP7 IN
|
||||
// <i> Cache is used because the USB hardware always uses DMA which requires specific memory feature.
|
||||
// <i> This cache must not be allocated if you plan to use the endpoint as control endpoint.
|
||||
// <i> No cache means IN transaction not support data buffer outside of RAM, OUT transaction not support unaligned buffer and buffer size less than endpoint max packet size
|
||||
// <0=> No cache
|
||||
// <8=> Cached by 8 bytes buffer
|
||||
// <16=> Cached by 16 bytes buffer
|
||||
// <32=> Cached by 32 bytes buffer
|
||||
// <64=> Cached by 64 bytes buffer
|
||||
// <128=> Cached by 128 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <256=> Cached by 256 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <512=> Cached by 512 bytes buffer (HS Bulk or interrupt or isochronous EP)
|
||||
// <1024=> Cached by 1024 bytes buffer (interrupt or isochronous EP)
|
||||
// <id> usb_ep7_I_CACHE
|
||||
#ifndef CONF_USB_EP7_I_CACHE
|
||||
#define CONF_USB_EP7_I_CACHE 0
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // HPL_USB_CONFIG_H
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,850 @@
|
|||
/* Auto-generated config file usbd_config.h */
|
||||
#ifndef USBD_CONFIG_H
|
||||
#define USBD_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
// ---- USB Device Stack Core Options ----
|
||||
|
||||
// <q> High Speed Support
|
||||
// <i> Enable high speed specific descriptors support, e.g., DeviceQualifierDescriptor and OtherSpeedConfiguration Descriptor.
|
||||
// <i> High speed support require descriptors description array on start, for LS/FS and HS support in first and second place.
|
||||
// <id> usbd_hs_sp
|
||||
#ifndef CONF_USBD_HS_SP
|
||||
#define CONF_USBD_HS_SP 0
|
||||
#endif
|
||||
|
||||
// ---- USB Device Stack Composite Options ----
|
||||
|
||||
// <e> Enable String Descriptors
|
||||
// <id> usb_composite_str_en
|
||||
#ifndef CONF_USB_COMPOSITE_STR_EN
|
||||
#define CONF_USB_COMPOSITE_STR_EN 0
|
||||
#endif
|
||||
// <s> Language IDs
|
||||
// <i> Language IDs in c format, split by comma (E.g., 0x0409 ...)
|
||||
// <id> usb_composite_langid
|
||||
#ifndef CONF_USB_COMPOSITE_LANGID
|
||||
#define CONF_USB_COMPOSITE_LANGID "0x0409"
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_COMPOSITE_LANGID_DESC
|
||||
#define CONF_USB_COMPOSITE_LANGID_DESC
|
||||
#endif
|
||||
// </e>
|
||||
|
||||
// <h> Composite Device Descriptor
|
||||
|
||||
// <o> bcdUSB
|
||||
// <0x0200=> USB 2.0 version
|
||||
// <0x0210=> USB 2.1 version
|
||||
// <id> usb_composite_bcdusb
|
||||
#ifndef CONF_USB_COMPOSITE_BCDUSB
|
||||
#define CONF_USB_COMPOSITE_BCDUSB 0x200
|
||||
#endif
|
||||
|
||||
// <o> bMaxPackeSize0
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
// <id> usb_composite_bmaxpksz0
|
||||
#ifndef CONF_USB_COMPOSITE_BMAXPKSZ0
|
||||
#define CONF_USB_COMPOSITE_BMAXPKSZ0 0x40
|
||||
#endif
|
||||
|
||||
// <o> idVender <0x0000-0xFFFF>
|
||||
// <id> usb_composite_idvender
|
||||
#ifndef CONF_USB_COMPOSITE_IDVENDER
|
||||
#define CONF_USB_COMPOSITE_IDVENDER 0x3eb
|
||||
#endif
|
||||
|
||||
// <o> idProduct <0x0000-0xFFFF>
|
||||
// <id> usb_composite_idproduct
|
||||
#ifndef CONF_USB_COMPOSITE_IDPRODUCT
|
||||
#define CONF_USB_COMPOSITE_IDPRODUCT 0x2421
|
||||
#endif
|
||||
|
||||
// <o> bcdDevice <0x0000-0xFFFF>
|
||||
// <id> usb_composite_bcddevice
|
||||
#ifndef CONF_USB_COMPOSITE_BCDDEVICE
|
||||
#define CONF_USB_COMPOSITE_BCDDEVICE 0x100
|
||||
#endif
|
||||
|
||||
// <e> Enable string descriptor of iManufact
|
||||
// <id> usb_composite_imanufact_en
|
||||
#ifndef CONF_USB_COMPOSITE_IMANUFACT_EN
|
||||
#define CONF_USB_COMPOSITE_IMANUFACT_EN 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_COMPOSITE_IMANUFACT
|
||||
#define CONF_USB_COMPOSITE_IMANUFACT (CONF_USB_COMPOSITE_IMANUFACT_EN * (CONF_USB_COMPOSITE_IMANUFACT_EN))
|
||||
#endif
|
||||
|
||||
// <s> Unicode string of iManufact
|
||||
// <id> usb_composite_imanufact_str
|
||||
#ifndef CONF_USB_COMPOSITE_IMANUFACT_STR
|
||||
#define CONF_USB_COMPOSITE_IMANUFACT_STR "Atmel"
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_COMPOSITE_IMANUFACT_STR_DESC
|
||||
#define CONF_USB_COMPOSITE_IMANUFACT_STR_DESC
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <e> Enable string descriptor of iProduct
|
||||
// <id> usb_composite_iproduct_en
|
||||
#ifndef CONF_USB_COMPOSITE_IPRODUCT_EN
|
||||
#define CONF_USB_COMPOSITE_IPRODUCT_EN 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_COMPOSITE_IPRODUCT
|
||||
#define CONF_USB_COMPOSITE_IPRODUCT \
|
||||
(CONF_USB_COMPOSITE_IPRODUCT_EN * (CONF_USB_COMPOSITE_IMANUFACT_EN + CONF_USB_COMPOSITE_IPRODUCT_EN))
|
||||
#endif
|
||||
|
||||
// <s> Unicode string of iProduct
|
||||
// <id> usb_composite_iproduct_str
|
||||
#ifndef CONF_USB_COMPOSITE_IPRODUCT_STR
|
||||
#define CONF_USB_COMPOSITE_IPRODUCT_STR "Composite Demo"
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_COMPOSITE_IPRODUCT_STR_DESC
|
||||
#define CONF_USB_COMPOSITE_IPRODUCT_STR_DESC
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <e> Enable string descriptor of iSerialNum
|
||||
// <id> usb_composite_iserialnum_en
|
||||
#ifndef CONF_USB_COMPOSITE_ISERIALNUM_EN
|
||||
#define CONF_USB_COMPOSITE_ISERIALNUM_EN 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_COMPOSITE_ISERIALNUM
|
||||
#define CONF_USB_COMPOSITE_ISERIALNUM \
|
||||
(CONF_USB_COMPOSITE_ISERIALNUM_EN \
|
||||
* (CONF_USB_COMPOSITE_IMANUFACT_EN + CONF_USB_COMPOSITE_IPRODUCT_EN + CONF_USB_COMPOSITE_ISERIALNUM_EN))
|
||||
#endif
|
||||
|
||||
// <s> Unicode string of iSerialNum
|
||||
// <id> usb_composite_iserialnum_str
|
||||
#ifndef CONF_USB_COMPOSITE_ISERIALNUM_STR
|
||||
#define CONF_USB_COMPOSITE_ISERIALNUM_STR "123456789ABCDEF"
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_COMPOSITE_ISERIALNUM_STR_DESC
|
||||
#define CONF_USB_COMPOSITE_ISERIALNUM_STR_DESC
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <o> bNumConfigurations <0x01-0xFF>
|
||||
// <id> usb_composite_bnumconfig
|
||||
#ifndef CONF_USB_COMPOSITE_BNUMCONFIG
|
||||
#define CONF_USB_COMPOSITE_BNUMCONFIG 0x1
|
||||
#endif
|
||||
|
||||
// </h>
|
||||
|
||||
// <h> Composite Configuration Descriptor
|
||||
// <o> bConfigurationValue <0x01-0xFF>
|
||||
// <id> usb_composite_bconfigval
|
||||
#ifndef CONF_USB_COMPOSITE_BCONFIGVAL
|
||||
#define CONF_USB_COMPOSITE_BCONFIGVAL 0x1
|
||||
#endif
|
||||
// <e> Enable string descriptor of iConfig
|
||||
// <id> usb_composite_iconfig_en
|
||||
#ifndef CONF_USB_COMPOSITE_ICONFIG_EN
|
||||
#define CONF_USB_COMPOSITE_ICONFIG_EN 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_COMPOSITE_ICONFIG
|
||||
#define CONF_USB_COMPOSITE_ICONFIG \
|
||||
(CONF_USB_COMPOSITE_ICONFIG_EN \
|
||||
* (CONF_USB_COMPOSITE_IMANUFACT_EN + CONF_USB_COMPOSITE_IPRODUCT_EN + CONF_USB_COMPOSITE_ISERIALNUM_EN \
|
||||
+ CONF_USB_COMPOSITE_ICONFIG_EN))
|
||||
#endif
|
||||
|
||||
// <s> Unicode string of iConfig
|
||||
// <id> usb_composite_iconfig_str
|
||||
#ifndef CONF_USB_COMPOSITE_ICONFIG_STR
|
||||
#define CONF_USB_COMPOSITE_ICONFIG_STR ""
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_COMPOSITE_ICONFIG_STR_DESC
|
||||
#define CONF_USB_COMPOSITE_ICONFIG_STR_DESC
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <o> bmAttributes
|
||||
// <0x80=> Bus power supply, not support for remote wakeup
|
||||
// <0xA0=> Bus power supply, support for remote wakeup
|
||||
// <0xC0=> Self powered, not support for remote wakeup
|
||||
// <0xE0=> Self powered, support for remote wakeup
|
||||
// <id> usb_composite_bmattri
|
||||
#ifndef CONF_USB_COMPOSITE_BMATTRI
|
||||
#define CONF_USB_COMPOSITE_BMATTRI 0x80
|
||||
#endif
|
||||
|
||||
// <o> bMaxPower <0x00-0xFF>
|
||||
// <id> usb_composite_bmaxpower
|
||||
#ifndef CONF_USB_COMPOSITE_BMAXPOWER
|
||||
#define CONF_USB_COMPOSITE_BMAXPOWER 0x32
|
||||
#endif
|
||||
// </h>
|
||||
|
||||
// <e> CDC ACM Support
|
||||
// <id> usb_composite_cdc_acm_support
|
||||
#ifndef CONF_USB_COMPOSITE_CDC_ACM_EN
|
||||
#define CONF_USB_COMPOSITE_CDC_ACM_EN 0
|
||||
#endif
|
||||
|
||||
// <o> CDC ACM Comm Interrupt IN Endpoint Address
|
||||
// <0x81=> EndpointAddress = 0x81
|
||||
// <0x82=> EndpointAddress = 0x82
|
||||
// <0x83=> EndpointAddress = 0x83
|
||||
// <0x84=> EndpointAddress = 0x84
|
||||
// <0x85=> EndpointAddress = 0x85
|
||||
// <0x86=> EndpointAddress = 0x86
|
||||
// <0x87=> EndpointAddress = 0x87
|
||||
// <0x88=> EndpointAddress = 0x88
|
||||
// <0x89=> EndpointAddress = 0x89
|
||||
|
||||
// <id> usb_composite_cdc_acm_epaddr
|
||||
#ifndef CONF_USB_COMPOSITE_CDC_ACM_COMM_INT_EPADDR
|
||||
#define CONF_USB_COMPOSITE_CDC_ACM_COMM_INT_EPADDR 0x82
|
||||
#endif
|
||||
|
||||
// <o> CDC ACM Comm Interrupt IN Endpoint wMaxPacketSize
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
|
||||
// <id> usb_composite_cdc_acm_comm_int_maxpksz
|
||||
#ifndef CONF_USB_COMPOSITE_CDC_ACM_COMM_INT_MAXPKSZ
|
||||
#define CONF_USB_COMPOSITE_CDC_ACM_COMM_INT_MAXPKSZ 0x40
|
||||
#endif
|
||||
|
||||
// <o> CDC ACM Data BULK IN Endpoint Address
|
||||
// <0x81=> EndpointAddress = 0x81
|
||||
// <0x82=> EndpointAddress = 0x82
|
||||
// <0x83=> EndpointAddress = 0x83
|
||||
// <0x84=> EndpointAddress = 0x84
|
||||
// <0x85=> EndpointAddress = 0x85
|
||||
// <0x86=> EndpointAddress = 0x86
|
||||
// <0x87=> EndpointAddress = 0x87
|
||||
// <0x88=> EndpointAddress = 0x88
|
||||
// <0x89=> EndpointAddress = 0x89
|
||||
|
||||
// <id> usb_composite_cdc_acm_data_bulkin_epaddr
|
||||
#ifndef CONF_USB_COMPOSITE_CDC_ACM_DATA_BULKIN_EPADDR
|
||||
#define CONF_USB_COMPOSITE_CDC_ACM_DATA_BULKIN_EPADDR 0x81
|
||||
#endif
|
||||
|
||||
// <o> CDC ACM Data BULK IN Endpoint wMaxPacketSize
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
|
||||
// <id> usb_composite_cdc_acm_data_builin_maxpksz
|
||||
#ifndef CONF_USB_COMPOSITE_CDC_ACM_DATA_BULKIN_MAXPKSZ
|
||||
#define CONF_USB_COMPOSITE_CDC_ACM_DATA_BULKIN_MAXPKSZ 0x40
|
||||
#endif
|
||||
|
||||
// <o> CDC ACM Data BULK IN Endpoint wMaxPacketSize for High Speed
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
// <0x0080=> 128 bytes
|
||||
// <0x0100=> 256 bytes
|
||||
// <0x0200=> 512 bytes
|
||||
|
||||
// <id> usb_composite_cdc_acm_data_builin_maxpksz_hs
|
||||
#ifndef CONF_USB_COMPOSITE_CDC_ACM_DATA_BULKIN_MAXPKSZ_HS
|
||||
#define CONF_USB_COMPOSITE_CDC_ACM_DATA_BULKIN_MAXPKSZ_HS 0x200
|
||||
#endif
|
||||
|
||||
// <o> CDC ACM Data BULK OUT Endpoint Address
|
||||
// <0x01=> EndpointAddress = 0x01
|
||||
// <0x02=> EndpointAddress = 0x02
|
||||
// <0x03=> EndpointAddress = 0x03
|
||||
// <0x04=> EndpointAddress = 0x04
|
||||
// <0x05=> EndpointAddress = 0x05
|
||||
// <0x06=> EndpointAddress = 0x06
|
||||
// <0x07=> EndpointAddress = 0x07
|
||||
// <0x08=> EndpointAddress = 0x08
|
||||
// <0x09=> EndpointAddress = 0x09
|
||||
|
||||
// <id> usb_composite_cdc_acm_data_bulkout_epaddr
|
||||
#ifndef CONF_USB_COMPOSITE_CDC_ACM_DATA_BULKOUT_EPADDR
|
||||
#define CONF_USB_COMPOSITE_CDC_ACM_DATA_BULKOUT_EPADDR 0x1
|
||||
#endif
|
||||
|
||||
// <o> CDC ACM Data BULK OUT Endpoint wMaxPacketSize
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
|
||||
// <id> usb_composite_cdc_acm_data_buckout_maxpksz
|
||||
#ifndef CONF_USB_COMPOSITE_CDC_ACM_DATA_BULKOUT_MAXPKSZ
|
||||
#define CONF_USB_COMPOSITE_CDC_ACM_DATA_BULKOUT_MAXPKSZ 0x40
|
||||
#endif
|
||||
|
||||
// <o> CDC ACM Data BULK OUT Endpoint wMaxPacketSize for High Speed
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
// <0x0080=> 128 bytes
|
||||
// <0x0100=> 256 bytes
|
||||
// <0x0200=> 512 bytes
|
||||
|
||||
// <id> usb_composite_cdc_acm_data_buckout_maxpksz_hs
|
||||
#ifndef CONF_USB_COMPOSITE_CDC_ACM_DATA_BULKOUT_MAXPKSZ_HS
|
||||
#define CONF_USB_COMPOSITE_CDC_ACM_DATA_BULKOUT_MAXPKSZ_HS 0x200
|
||||
#endif
|
||||
|
||||
// <q> CDC ACM Echo Demo generation
|
||||
// <id> conf_usb_composite_cdc_echo_demo
|
||||
// <i> Invoke cdcdf_acm_demo_init(buf[wMaxPacketSize]) to enable the echo demo.
|
||||
// <i> Buf is packet buffer for data receive and echo back.
|
||||
// <i> The buffer is 4 byte aligned to support DMA.
|
||||
#ifndef CONF_USB_COMPOSITE_CDC_ECHO_DEMO
|
||||
#define CONF_USB_COMPOSITE_CDC_ECHO_DEMO 0
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <e> HID Mouse Support
|
||||
// <id> usb_composite_hid_mouse_support
|
||||
#ifndef CONF_USB_COMPOSITE_HID_MOUSE_EN
|
||||
#define CONF_USB_COMPOSITE_HID_MOUSE_EN 0
|
||||
#endif
|
||||
|
||||
// <o> HID Mouse INTERRUPT IN Endpoint Address
|
||||
// <0x81=> EndpointAddress = 0x81
|
||||
// <0x82=> EndpointAddress = 0x82
|
||||
// <0x83=> EndpointAddress = 0x83
|
||||
// <0x84=> EndpointAddress = 0x84
|
||||
// <0x85=> EndpointAddress = 0x85
|
||||
// <0x86=> EndpointAddress = 0x86
|
||||
// <0x87=> EndpointAddress = 0x87
|
||||
// <0x88=> EndpointAddress = 0x88
|
||||
// <0x89=> EndpointAddress = 0x89
|
||||
|
||||
// <id> usb_composite_hid_mouse_intin_epaddr
|
||||
// <i> Please make sure that the setting here is coincide with the endpoint setting in USB device driver.
|
||||
#ifndef CONF_USB_COMPOSITE_HID_MOUSE_INTIN_EPADDR
|
||||
#define CONF_USB_COMPOSITE_HID_MOUSE_INTIN_EPADDR 0x83
|
||||
#endif
|
||||
|
||||
// <o> HID Mouse INTERRUPT IN Endpoint wMaxPacketSize
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
|
||||
// <id> usb_composite_hid_mouse_intin_maxpksz
|
||||
// <i> Please make sure that the setting here is coincide with the endpoint setting in USB device driver.
|
||||
#ifndef CONF_USB_COMPOSITE_HID_MOUSE_INTIN_MAXPKSZ
|
||||
#define CONF_USB_COMPOSITE_HID_MOUSE_INTIN_MAXPKSZ 0x8
|
||||
#endif
|
||||
|
||||
// <q> HID Mouse Move Demo generation
|
||||
// <id> conf_usb_composite_hid_mouse_demo
|
||||
// <i> Invoke hiddf_demo_init(button1, button2, button3) to enabled the move demo.
|
||||
// <i> Button1 and button3 are the pins used for mouse moving left and right.
|
||||
#ifndef CONF_USB_COMPOSITE_HID_MOUSE_DEMO
|
||||
#define CONF_USB_COMPOSITE_HID_MOUSE_DEMO 0
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <e> HID Keyboard Support
|
||||
// <id> usb_composite_hid_keyboard_support
|
||||
#ifndef CONF_USB_COMPOSITE_HID_KEYBOARD_EN
|
||||
#define CONF_USB_COMPOSITE_HID_KEYBOARD_EN 0
|
||||
#endif
|
||||
|
||||
// <o> HID Keyboard INTERRUPT IN Endpoint Address
|
||||
// <0x81=> EndpointAddress = 0x81
|
||||
// <0x82=> EndpointAddress = 0x82
|
||||
// <0x83=> EndpointAddress = 0x83
|
||||
// <0x84=> EndpointAddress = 0x84
|
||||
// <0x85=> EndpointAddress = 0x85
|
||||
// <0x86=> EndpointAddress = 0x86
|
||||
// <0x87=> EndpointAddress = 0x87
|
||||
// <0x88=> EndpointAddress = 0x88
|
||||
// <0x89=> EndpointAddress = 0x89
|
||||
|
||||
// <id> usb_composite_hid_keyboard_intin_epaddr
|
||||
// <i> Please make sure that the setting here is coincide with the endpoint setting in USB device driver.
|
||||
#ifndef CONF_USB_COMPOSITE_HID_KEYBOARD_INTIN_EPADDR
|
||||
#define CONF_USB_COMPOSITE_HID_KEYBOARD_INTIN_EPADDR 0x84
|
||||
#endif
|
||||
|
||||
// <o> HID Keyboard INTERRUPT IN Endpoint wMaxPacketSize
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
|
||||
// <id> usb_composite_hid_keyboard_intin_maxpksz
|
||||
// <i> Please make sure that the setting here is coincide with the endpoint setting in USB device driver.
|
||||
#ifndef CONF_USB_COMPOSITE_HID_KEYBOARD_INTIN_MAXPKSZ
|
||||
#define CONF_USB_COMPOSITE_HID_KEYBOARD_INTIN_MAXPKSZ 0x8
|
||||
#endif
|
||||
|
||||
// <o> HID Keyboard INTERRUPT OUT Endpoint Address
|
||||
// <0x01=> EndpointAddress = 0x01
|
||||
// <0x02=> EndpointAddress = 0x02
|
||||
// <0x03=> EndpointAddress = 0x03
|
||||
// <0x04=> EndpointAddress = 0x04
|
||||
// <0x05=> EndpointAddress = 0x05
|
||||
// <0x06=> EndpointAddress = 0x06
|
||||
// <0x07=> EndpointAddress = 0x07
|
||||
// <0x08=> EndpointAddress = 0x08
|
||||
// <0x09=> EndpointAddress = 0x09
|
||||
|
||||
// <id> usb_composite_hid_keyboard_intout_epaddr
|
||||
// <i> Please make sure that the setting here is coincide with the endpoint setting in USB device driver.
|
||||
#ifndef CONF_USB_COMPOSITE_HID_KEYBOARD_INTOUT_EPADDR
|
||||
#define CONF_USB_COMPOSITE_HID_KEYBOARD_INTOUT_EPADDR 0x2
|
||||
#endif
|
||||
|
||||
// <o> HID Keyboard INTERRUPT OUT Endpoint wMaxPacketSize
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
|
||||
// <id> usb_composite_hid_keyboard_intout_maxpksz
|
||||
// <i> Please make sure that the setting here is coincide with the endpoint setting in USB device driver.
|
||||
#ifndef CONF_USB_COMPOSITE_HID_KEYBOARD_INTOUT_MAXPKSZ
|
||||
#define CONF_USB_COMPOSITE_HID_KEYBOARD_INTOUT_MAXPKSZ 0x8
|
||||
#endif
|
||||
|
||||
// <q> HID Keyboard Caps Lock Demo generation
|
||||
// <id> conf_usb_composite_hid_keyboard_demo
|
||||
// <i> Invoke hiddf_demo_init(button1, button2, button3) to enabled the move demo.
|
||||
// <i> Buffon2 is the pin used for keyboard CAPS LOCK simulation.
|
||||
#ifndef CONF_USB_COMPOSITE_HID_KEYBOARD_DEMO
|
||||
#define CONF_USB_COMPOSITE_HID_KEYBOARD_DEMO 0
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <e> HID Generic Support
|
||||
// <id> usb_composite_hid_generic_support
|
||||
#ifndef CONF_USB_COMPOSITE_HID_GENERIC_EN
|
||||
#define CONF_USB_COMPOSITE_HID_GENERIC_EN 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_COMPOSITE_HID_GENERIC_REPORT_LEN
|
||||
#define CONF_USB_COMPOSITE_HID_GENERIC_REPORT_LEN 53
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_COMPOSITE_HID_GENERIC_REPORT
|
||||
#define CONF_USB_COMPOSITE_HID_GENERIC_REPORT \
|
||||
0x06, 0xFF, 0xFF, 0x09, 0x01, 0xA1, 0x01, 0x09, 0x02, 0x09, 0x03, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, \
|
||||
0x40, 0x81, 0x02, 0x09, 0x04, 0x09, 0x05, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x40, 0x91, 0x02, \
|
||||
0x09, 0x06, 0x09, 0x07, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x04, 0xB1, 0x02, 0xC0
|
||||
#endif
|
||||
|
||||
// <o> HID Generic INTERRUPT IN Endpoint Address
|
||||
// <0x81=> EndpointAddress = 0x81
|
||||
// <0x82=> EndpointAddress = 0x82
|
||||
// <0x83=> EndpointAddress = 0x83
|
||||
// <0x84=> EndpointAddress = 0x84
|
||||
// <0x85=> EndpointAddress = 0x85
|
||||
// <0x86=> EndpointAddress = 0x86
|
||||
// <0x87=> EndpointAddress = 0x87
|
||||
// <0x88=> EndpointAddress = 0x88
|
||||
// <0x89=> EndpointAddress = 0x89
|
||||
|
||||
// <id> usb_composite_hid_generic_intin_epaddr
|
||||
// <i> Please make sure that the setting here is coincide with the endpoint setting in USB device driver.
|
||||
#ifndef CONF_USB_COMPOSITE_HID_GENERIC_INTIN_EPADDR
|
||||
#define CONF_USB_COMPOSITE_HID_GENERIC_INTIN_EPADDR 0x85
|
||||
#endif
|
||||
|
||||
// <o> HID Generic INTERRUPT IN Endpoint wMaxPacketSize
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
|
||||
// <id> usb_composite_hid_generic_intin_maxpksz
|
||||
// <i> Please make sure that the setting here is coincide with the endpoint setting in USB device driver.
|
||||
#ifndef CONF_USB_COMPOSITE_HID_GENERIC_INTIN_MAXPKSZ
|
||||
#define CONF_USB_COMPOSITE_HID_GENERIC_INTIN_MAXPKSZ 0x40
|
||||
#endif
|
||||
|
||||
// <o> HID Generic INTERRUPT OUT Endpoint Address
|
||||
// <0x01=> EndpointAddress = 0x01
|
||||
// <0x02=> EndpointAddress = 0x02
|
||||
// <0x03=> EndpointAddress = 0x03
|
||||
// <0x04=> EndpointAddress = 0x04
|
||||
// <0x05=> EndpointAddress = 0x05
|
||||
// <0x06=> EndpointAddress = 0x06
|
||||
// <0x07=> EndpointAddress = 0x07
|
||||
// <0x08=> EndpointAddress = 0x08
|
||||
// <0x09=> EndpointAddress = 0x09
|
||||
|
||||
// <id> usb_composite_hid_generic_intout_epaddr
|
||||
// <i> Please make sure that the setting here is coincide with the endpoint setting in USB device driver.
|
||||
#ifndef CONF_USB_COMPOSITE_HID_GENERIC_INTOUT_EPADDR
|
||||
#define CONF_USB_COMPOSITE_HID_GENERIC_INTOUT_EPADDR 0x3
|
||||
#endif
|
||||
|
||||
// <o> HID Generic INTERRUPT OUT Endpoint wMaxPacketSize
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
// <id> usb_composite_hid_generic_intout_maxpksz
|
||||
// <i> Please make sure that the setting here is coincide with the endpoint setting in USB device driver.
|
||||
#ifndef CONF_USB_COMPOSITE_HID_GENERIC_INTOUT_MAXPKSZ
|
||||
#define CONF_USB_COMPOSITE_HID_GENERIC_INTOUT_MAXPKSZ 0x40
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <e> MSC Support
|
||||
// <id> usb_composite_msc_support
|
||||
#ifndef CONF_USB_COMPOSITE_MSC_EN
|
||||
#define CONF_USB_COMPOSITE_MSC_EN 0
|
||||
#endif
|
||||
|
||||
// <o> MSC BULK Endpoints wMaxPacketSize
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
|
||||
// <id> usb_composite_msc_bulk_maxpksz
|
||||
#ifndef CONF_USB_COMPOSITE_MSC_BULK_MAXPKSZ
|
||||
#define CONF_USB_COMPOSITE_MSC_BULK_MAXPKSZ 0x40
|
||||
#endif
|
||||
|
||||
// <o> MSC BULK Endpoints wMaxPacketSize for High Speed
|
||||
// <0x0008=> 8 bytes
|
||||
// <0x0010=> 16 bytes
|
||||
// <0x0020=> 32 bytes
|
||||
// <0x0040=> 64 bytes
|
||||
// <0x0080=> 128 bytes
|
||||
// <0x0100=> 256 bytes
|
||||
// <0x0200=> 512 bytes
|
||||
|
||||
// <id> usb_composite_msc_bulk_maxpksz_hs
|
||||
#ifndef CONF_USB_COMPOSITE_MSC_BULK_MAXPKSZ_HS
|
||||
#define CONF_USB_COMPOSITE_MSC_BULK_MAXPKSZ_HS 0x200
|
||||
#endif
|
||||
|
||||
// <o> MSC BULK IN Endpoint Address
|
||||
// <0x81=> EndpointAddress = 0x81
|
||||
// <0x82=> EndpointAddress = 0x82
|
||||
// <0x83=> EndpointAddress = 0x83
|
||||
// <0x84=> EndpointAddress = 0x84
|
||||
// <0x85=> EndpointAddress = 0x85
|
||||
// <0x86=> EndpointAddress = 0x86
|
||||
// <0x87=> EndpointAddress = 0x87
|
||||
// <0x88=> EndpointAddress = 0x88
|
||||
// <0x89=> EndpointAddress = 0x89
|
||||
|
||||
// <id> usb_composite_msc_bulkin_epaddr
|
||||
#ifndef CONF_USB_COMPOSITE_MSC_BULKIN_EPADDR
|
||||
#define CONF_USB_COMPOSITE_MSC_BULKIN_EPADDR 0x86
|
||||
#endif
|
||||
|
||||
// <o> MSC BULK OUT Endpoint Address
|
||||
// <0x01=> EndpointAddress = 0x01
|
||||
// <0x02=> EndpointAddress = 0x02
|
||||
// <0x03=> EndpointAddress = 0x03
|
||||
// <0x04=> EndpointAddress = 0x04
|
||||
// <0x05=> EndpointAddress = 0x05
|
||||
// <0x06=> EndpointAddress = 0x06
|
||||
// <0x07=> EndpointAddress = 0x07
|
||||
// <0x08=> EndpointAddress = 0x08
|
||||
// <0x09=> EndpointAddress = 0x09
|
||||
|
||||
// <id> usb_composite_msc_bulkout_epaddr
|
||||
#ifndef CONF_USB_COMPOSITE_MSC_BULKOUT_EPADDR
|
||||
#define CONF_USB_COMPOSITE_MSC_BULKOUT_EPADDR 0x4
|
||||
#endif
|
||||
|
||||
// <e> Enable Demo code for Disk LUN handling
|
||||
// <id> usb_composite_msc_demo_en
|
||||
#ifndef CONF_USB_COMPOSITE_MSC_LUN_DEMO
|
||||
#define CONF_USB_COMPOSITE_MSC_LUN_DEMO 1
|
||||
#endif
|
||||
|
||||
// <o> Disk access cache/buffer of sectors if non-RAM disk (e.g., SD/MMC) enabled <1-64>
|
||||
// <id> conf_usb_msc_lun_buf_sectors
|
||||
#ifndef CONF_USB_MSC_LUN_BUF_SECTORS
|
||||
#define CONF_USB_MSC_LUN_BUF_SECTORS 4
|
||||
#endif
|
||||
|
||||
// <e> Enable Demo for RAM Disk
|
||||
// <id> conf_usb_msc_lun0_enable
|
||||
#ifndef CONF_USB_MSC_LUN0_ENABLE
|
||||
#define CONF_USB_MSC_LUN0_ENABLE 1
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN0_TYPE
|
||||
#define CONF_USB_MSC_LUN0_TYPE 0x00
|
||||
#endif
|
||||
|
||||
// <q> The disk is removable
|
||||
// <id> conf_usb_msc_lun0_rmb
|
||||
#ifndef CONF_USB_MSC_LUN0_RMB
|
||||
#define CONF_USB_MSC_LUN0_RMB 0x1
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN0_ISO
|
||||
#define CONF_USB_MSC_LUN0_ISO 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN0_ECMA
|
||||
#define CONF_USB_MSC_LUN0_ECMA 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN0_ANSI
|
||||
#define CONF_USB_MSC_LUN0_ANSI 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN0_REPO
|
||||
#define CONF_USB_MSC_LUN0_REPO 0x01
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN0_FACTORY
|
||||
#define CONF_USB_MSC_LUN0_FACTORY 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN0_PRODUCT
|
||||
#define CONF_USB_MSC_LUN0_PRODUCT 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN0_PRODUCT_VERSION
|
||||
#define CONF_USB_MSC_LUN0_PRODUCT_VERSION 0x00, 0x00, 0x00, 0x00
|
||||
#endif
|
||||
|
||||
// <o> Disk Size (in KB) <0x1-0xFFFFFFFF>
|
||||
// <i> Windows will not show disk less than 20K, so 22K is used to reserve more RAM for APP
|
||||
// <id> conf_usb_msc_lun0_capacity
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN0_CAPACITY
|
||||
#define CONF_USB_MSC_LUN0_CAPACITY 22
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN0_BLOCK_SIZE
|
||||
#define CONF_USB_MSC_LUN0_BLOCK_SIZE 512
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN0_LAST_BLOCK_ADDR
|
||||
#define CONF_USB_MSC_LUN0_LAST_BLOCK_ADDR \
|
||||
((uint32_t)CONF_USB_MSC_LUN0_CAPACITY * 1024 / CONF_USB_MSC_LUN0_BLOCK_SIZE - 1)
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <e> Enable Demo for SD/MMC Disk
|
||||
// <i> SD/MMC stack must be added before enable SD/MMC demo
|
||||
// <i> SD/MMC insert/eject not supported by this simple demo
|
||||
// <id> conf_usb_msc_lun1_enable
|
||||
#ifndef CONF_USB_MSC_LUN1_ENABLE
|
||||
#define CONF_USB_MSC_LUN1_ENABLE 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN1_TYPE
|
||||
#define CONF_USB_MSC_LUN1_TYPE 0x00
|
||||
#endif
|
||||
|
||||
// <q> The disk is removable
|
||||
// <i> SD/MMC stack must be added before enable SD/MMC demo
|
||||
// <i> SD/MMC insert/eject not supported by this simple demo
|
||||
// <id> conf_usb_msc_lun1_rmb
|
||||
#ifndef CONF_USB_MSC_LUN1_RMB
|
||||
#define CONF_USB_MSC_LUN1_RMB 0x1
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN1_ISO
|
||||
#define CONF_USB_MSC_LUN1_ISO 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN1_ECMA
|
||||
#define CONF_USB_MSC_LUN1_ECMA 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN1_ANSI
|
||||
#define CONF_USB_MSC_LUN1_ANSI 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN1_REPO
|
||||
#define CONF_USB_MSC_LUN1_REPO 0x01
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN1_FACTORY
|
||||
#define CONF_USB_MSC_LUN1_FACTORY 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN1_PRODUCT
|
||||
#define CONF_USB_MSC_LUN1_PRODUCT 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN1_PRODUCT_VERSION
|
||||
#define CONF_USB_MSC_LUN1_PRODUCT_VERSION 0x00, 0x00, 0x00, 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN1_CAPACITY
|
||||
#define CONF_USB_MSC_LUN1_CAPACITY 22
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN1_BLOCK_SIZE
|
||||
#define CONF_USB_MSC_LUN1_BLOCK_SIZE 512
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN1_LAST_BLOCK_ADDR
|
||||
#define CONF_USB_MSC_LUN1_LAST_BLOCK_ADDR \
|
||||
((uint32_t)CONF_USB_MSC_LUN1_CAPACITY * 1024 / CONF_USB_MSC_LUN1_BLOCK_SIZE - 1)
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <e> Enable Demo for LUN 2
|
||||
// <id> conf_usb_msc_lun2_enable
|
||||
#ifndef CONF_USB_MSC_LUN2_ENABLE
|
||||
#define CONF_USB_MSC_LUN2_ENABLE 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN2_TYPE
|
||||
#define CONF_USB_MSC_LUN2_TYPE 0x00
|
||||
#endif
|
||||
|
||||
// <q> The disk is removable
|
||||
// <id> conf_usb_msc_lun2_rmb
|
||||
#ifndef CONF_USB_MSC_LUN2_RMB
|
||||
#define CONF_USB_MSC_LUN2_RMB 0x1
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN2_ISO
|
||||
#define CONF_USB_MSC_LUN2_ISO 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN2_ECMA
|
||||
#define CONF_USB_MSC_LUN2_ECMA 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN2_ANSI
|
||||
#define CONF_USB_MSC_LUN2_ANSI 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN2_REPO
|
||||
#define CONF_USB_MSC_LUN2_REPO 0x01
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN2_FACTORY
|
||||
#define CONF_USB_MSC_LUN2_FACTORY 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN2_PRODUCT
|
||||
#define CONF_USB_MSC_LUN2_PRODUCT 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN2_PRODUCT_VERSION
|
||||
#define CONF_USB_MSC_LUN2_PRODUCT_VERSION 0x00, 0x00, 0x00, 0x00
|
||||
#endif
|
||||
|
||||
// <o> Disk Size (in KB) <0x1-0xFFFFFFFF>
|
||||
// <id> conf_usb_msc_lun2_capacity
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN2_CAPACITY
|
||||
#define CONF_USB_MSC_LUN2_CAPACITY 22
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN2_BLOCK_SIZE
|
||||
#define CONF_USB_MSC_LUN2_BLOCK_SIZE 512
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN2_LAST_BLOCK_ADDR
|
||||
#define CONF_USB_MSC_LUN2_LAST_BLOCK_ADDR \
|
||||
((uint32_t)CONF_USB_MSC_LUN2_CAPACITY * 1024 / CONF_USB_MSC_LUN2_BLOCK_SIZE - 1)
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// <e> Enable Demo for LUN 3
|
||||
// <id> conf_usb_msc_lun3_enable
|
||||
#ifndef CONF_USB_MSC_LUN3_ENABLE
|
||||
#define CONF_USB_MSC_LUN3_ENABLE 0
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN3_TYPE
|
||||
#define CONF_USB_MSC_LUN3_TYPE 0x00
|
||||
#endif
|
||||
|
||||
// <q> The disk is removable
|
||||
// <id> conf_usb_msc_lun3_rmb
|
||||
#ifndef CONF_USB_MSC_LUN3_RMB
|
||||
#define CONF_USB_MSC_LUN3_RMB 0x1
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN3_ISO
|
||||
#define CONF_USB_MSC_LUN3_ISO 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN3_ECMA
|
||||
#define CONF_USB_MSC_LUN3_ECMA 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN3_ANSI
|
||||
#define CONF_USB_MSC_LUN3_ANSI 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN3_REPO
|
||||
#define CONF_USB_MSC_LUN3_REPO 0x01
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN3_FACTORY
|
||||
#define CONF_USB_MSC_LUN3_FACTORY 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN3_PRODUCT
|
||||
#define CONF_USB_MSC_LUN3_PRODUCT 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN3_PRODUCT_VERSION
|
||||
#define CONF_USB_MSC_LUN3_PRODUCT_VERSION 0x00, 0x00, 0x00, 0x00
|
||||
#endif
|
||||
|
||||
// <o> Disk Size (in KB) <0x1-0xFFFFFFFF>
|
||||
// <id> conf_usb_msc_lun3_capacity
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN3_CAPACITY
|
||||
#define CONF_USB_MSC_LUN3_CAPACITY 22
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN3_BLOCK_SIZE
|
||||
#define CONF_USB_MSC_LUN3_BLOCK_SIZE 512
|
||||
#endif
|
||||
|
||||
#ifndef CONF_USB_MSC_LUN3_LAST_BLOCK_ADDR
|
||||
#define CONF_USB_MSC_LUN3_LAST_BLOCK_ADDR \
|
||||
((uint32_t)CONF_USB_MSC_LUN3_CAPACITY * 1024 / CONF_USB_MSC_LUN3_BLOCK_SIZE - 1)
|
||||
#endif
|
||||
|
||||
// </e>
|
||||
|
||||
// </e>
|
||||
// </e>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // USBD_CONFIG_H
|
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* This file is part of the MicroPython project, http://micropython.org/
|
||||
*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "boards/board.h"
|
||||
#include "mpconfigboard.h"
|
||||
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void reset_board(void) {
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
#define MICROPY_HW_BOARD_NAME "Adafruit Feather M4 CAN"
|
||||
#define MICROPY_HW_MCU_NAME "same51j19a"
|
||||
|
||||
#define CIRCUITPY_MCU_FAMILY samd51
|
||||
|
||||
// Rev E
|
||||
|
||||
#define MICROPY_HW_LED_STATUS (&pin_PA23)
|
||||
#define MICROPY_HW_NEOPIXEL (&pin_PB03)
|
||||
|
||||
// These are pins not to reset.
|
||||
// QSPI Data pins
|
||||
#define MICROPY_PORT_A (PORT_PA08 | PORT_PA09 | PORT_PA10 | PORT_PA11)
|
||||
// QSPI CS, QSPI SCK and NeoPixel pin
|
||||
#define MICROPY_PORT_B (PORT_PB03 | PORT_PB10 | PORT_PB11)
|
||||
#define MICROPY_PORT_C (0)
|
||||
#define MICROPY_PORT_D (0)
|
||||
|
||||
#define EXTERNAL_FLASH_QSPI_DUAL
|
||||
|
||||
#define BOARD_HAS_CRYSTAL 1
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_PA13)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_PA12)
|
||||
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_PA17)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_PB23)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_PB22)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_PB17)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_PB16)
|
||||
|
||||
// USB is always used internally so skip the pin objects for it.
|
||||
#define IGNORE_PIN_PA24 1
|
||||
#define IGNORE_PIN_PA25 1
|
|
@ -0,0 +1,14 @@
|
|||
USB_VID = 0x239A
|
||||
USB_PID = 0x80CE
|
||||
USB_PRODUCT = "Feather M4 CAN"
|
||||
USB_MANUFACTURER = "Adafruit Industries LLC"
|
||||
|
||||
CHIP_VARIANT = SAME51J19A
|
||||
CHIP_FAMILY = same51
|
||||
|
||||
QSPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_VECTORIO = 1
|
|
@ -0,0 +1,61 @@
|
|||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA02) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_PA05) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_PB08) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PB09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D17), MP_ROM_PTR(&pin_PB09) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_PA04) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D19), MP_ROM_PTR(&pin_PA06) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_PA17) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D24), MP_ROM_PTR(&pin_PB23) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D23), MP_ROM_PTR(&pin_PB22) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PB17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB17) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PB16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB16) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PA20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA23) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PB03) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_PB01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PB01) },
|
||||
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_RX), MP_ROM_PTR(&pin_PB15) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_TX), MP_ROM_PTR(&pin_PB14) },
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_CAN_STANDBY), MP_ROM_PTR(&pin_PB13) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
|
@ -34,6 +34,9 @@
|
|||
#if defined(SAME54)
|
||||
#include "hri/hri_cmcc_e54.h"
|
||||
#include "hri/hri_nvmctrl_e54.h"
|
||||
#elif defined(SAME51)
|
||||
#include "hri/hri_cmcc_e51.h"
|
||||
#include "hri/hri_nvmctrl_e51.h"
|
||||
#elif defined(SAMD51)
|
||||
#include "hri/hri_cmcc_d51.h"
|
||||
#include "hri/hri_nvmctrl_d51.h"
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 0f5f1522d09c8fa7d858edec484a994c21c59668
|
||||
Subproject commit 15fd96f4d8c38d5490767ea09469b82a231a768d
|
|
@ -39,6 +39,9 @@
|
|||
#ifdef SAMD21
|
||||
#include "hpl/pm/hpl_pm_base.h"
|
||||
#endif
|
||||
#ifdef SAME51
|
||||
#include "hri/hri_mclk_e51.h"
|
||||
#endif
|
||||
#ifdef SAME54
|
||||
#include "hri/hri_mclk_e54.h"
|
||||
#endif
|
||||
|
|
|
@ -44,6 +44,9 @@
|
|||
#include "hri/hri_pm_d21.h"
|
||||
#elif defined(SAME54)
|
||||
#include "hri/hri_rstc_e54.h"
|
||||
#elif defined(SAME51)
|
||||
#include "sam.h"
|
||||
#include "hri/hri_rstc_e51.h"
|
||||
#elif defined(SAMD51)
|
||||
#include "hri/hri_rstc_d51.h"
|
||||
#else
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
.syntax unified
|
||||
.cpu cortex-m4
|
||||
.thumb
|
||||
.text
|
||||
.align 2
|
||||
|
||||
@ uint cpu_get_regs_and_sp(r0=uint regs[10])
|
||||
.global cpu_get_regs_and_sp
|
||||
.thumb
|
||||
.thumb_func
|
||||
.type cpu_get_regs_and_sp, %function
|
||||
cpu_get_regs_and_sp:
|
||||
@ store registers into given array
|
||||
str r4, [r0], #4
|
||||
str r5, [r0], #4
|
||||
str r6, [r0], #4
|
||||
str r7, [r0], #4
|
||||
str r8, [r0], #4
|
||||
str r9, [r0], #4
|
||||
str r10, [r0], #4
|
||||
str r11, [r0], #4
|
||||
str r12, [r0], #4
|
||||
str r13, [r0], #4
|
||||
|
||||
@ return the sp
|
||||
mov r0, sp
|
||||
bx lr
|
Loading…
Reference in New Issue