diff --git a/bootloader/atmel_start_prj/AtmelStart.env_conf b/bootloader/atmel_start_prj/AtmelStart.env_conf index 97ecfff95eeeb97c7611b570d232a42f3190e18d..70eb8deaf14334318ed480efcbb6ac7fee63a1e5 100644 --- a/bootloader/atmel_start_prj/AtmelStart.env_conf +++ b/bootloader/atmel_start_prj/AtmelStart.env_conf @@ -1,6 +1,6 @@ <environment> <configurations/> <device-packs> - <device-pack device="ATSAMD21G18A" name="SAMD21_DFP" vendor="Atmel" version="1.3.395"/> + <device-pack device="ATSAMD21G18A" name="SAMD21_DFP" vendor="Atmel" version="1.3.331"/> </device-packs> </environment> diff --git a/bootloader/atmel_start_prj/atmel_start_config.atstart b/bootloader/atmel_start_prj/atmel_start_config.atstart index 9171e7bfd9f79f9d03f9d2391fb58230b85ab077..c320ebc6a48cd14d7feb1f6b9bd6369aacd309fe 100644 --- a/bootloader/atmel_start_prj/atmel_start_config.atstart +++ b/bootloader/atmel_start_prj/atmel_start_config.atstart @@ -2,17 +2,12 @@ format_version: '2' name: My Project versions: api: '1.0' - backend: 1.8.580 - commit: f3d8d96e294de8dee688333bbbe8d8458a4f6b4c - content: unknown - content_pack_name: unknown + backend: 1.6.148 + commit: 605f106ab95776472e3febf2fac2471441fb1816 + content: 1.0.1600 + content_pack_name: acme-packs-all format: '2' - frontend: 1.8.580 - packs_version_avr8: 1.0.1463 - packs_version_qtouch: unknown - packs_version_sam: 1.0.1726 - version_backend: 1.8.580 - version_frontend: '' + frontend: 1.6.1881 board: identifier: CustomBoard device: SAMD21G18A-MF @@ -26,34 +21,14 @@ drivers: functionality: System api: HAL:HPL:GCLK configuration: - $input: 48000000 - $input_id: Digital Frequency Locked Loop (DFLL48M) - RESERVED_InputFreq: 48000000 - RESERVED_InputFreq_id: Digital Frequency Locked Loop (DFLL48M) - _$freq_output_Generic clock generator 0: 24000000 - _$freq_output_Generic clock generator 1: 31250 - _$freq_output_Generic clock generator 2: 48000000 - _$freq_output_Generic clock generator 3: 400000 - _$freq_output_Generic clock generator 4: 400000 - _$freq_output_Generic clock generator 5: 400000 - _$freq_output_Generic clock generator 6: 400000 - _$freq_output_Generic clock generator 7: 400000 enable_gclk_gen_0: true - enable_gclk_gen_0__externalclock: 1000000 enable_gclk_gen_1: true - enable_gclk_gen_1__externalclock: 1000000 - enable_gclk_gen_2: false - enable_gclk_gen_2__externalclock: 1000000 + enable_gclk_gen_2: true enable_gclk_gen_3: true - enable_gclk_gen_3__externalclock: 1000000 enable_gclk_gen_4: false - enable_gclk_gen_4__externalclock: 1000000 enable_gclk_gen_5: false - enable_gclk_gen_5__externalclock: 1000000 enable_gclk_gen_6: false - enable_gclk_gen_6__externalclock: 1000000 enable_gclk_gen_7: false - enable_gclk_gen_7__externalclock: 1000000 gclk_arch_gen_0_RUNSTDBY: false gclk_arch_gen_0_enable: true gclk_arch_gen_0_idc: false @@ -65,7 +40,7 @@ drivers: gclk_arch_gen_1_oe: false gclk_arch_gen_1_oov: false gclk_arch_gen_2_RUNSTDBY: false - gclk_arch_gen_2_enable: false + gclk_arch_gen_2_enable: true gclk_arch_gen_2_idc: false gclk_arch_gen_2_oe: false gclk_arch_gen_2_oov: false @@ -94,12 +69,12 @@ drivers: gclk_arch_gen_7_idc: false gclk_arch_gen_7_oe: false gclk_arch_gen_7_oov: false - gclk_gen_0_div: 2 + gclk_gen_0_div: 1 gclk_gen_0_div_sel: false gclk_gen_0_oscillator: Digital Frequency Locked Loop (DFLL48M) - gclk_gen_1_div: 32 + gclk_gen_1_div: 1 gclk_gen_1_div_sel: false - gclk_gen_1_oscillator: 8MHz Internal Oscillator (OSC8M) + gclk_gen_1_oscillator: 32kHz External Crystal Oscillator (XOSC32K) gclk_gen_2_div: 1 gclk_gen_2_div_sel: false gclk_gen_2_oscillator: Digital Frequency Locked Loop (DFLL48M) @@ -128,11 +103,6 @@ drivers: functionality: System api: HAL:HPL:PM configuration: - $input: 24000000 - $input_id: Generic clock generator 0 - RESERVED_InputFreq: 24000000 - RESERVED_InputFreq_id: Generic clock generator 0 - _$freq_output_CPU: 24000000 apba_div: '1' apbb_div: '1' apbc_div: '1' @@ -477,14 +447,6 @@ drivers: functionality: System api: HAL:HPL:SYSCTRL configuration: - $input: 31250 - $input_id: Generic clock generator 1 - RESERVED_InputFreq: 31250 - RESERVED_InputFreq_id: Generic clock generator 1 - _$freq_output_8MHz Internal Oscillator (OSC8M): 1000000 - _$freq_output_Digital Frequency Locked Loop (DFLL48M): 48000000 - _$freq_output_External Crystal Oscillator 0.4-32MHz (XOSC): 400000 - _$freq_output_Fractional Digital Phase Locked Loop (FDPLL96M): 45775390.625 dfll48m_arch_bplckc: false dfll48m_arch_calibration: false dfll48m_arch_ccdis: true @@ -506,10 +468,10 @@ drivers: enable_dfll48m: true enable_fdpll96m: false enable_osc32k: false - enable_osc8m: true + enable_osc8m: false enable_osculp32k: false enable_xosc: false - enable_xosc32k: false + enable_xosc32k: true fdpll96m_arch_enable: false fdpll96m_arch_lbypass: true fdpll96m_arch_ondemand: false @@ -528,7 +490,7 @@ drivers: osc32k_arch_startup: 3 Clock Cycles (92us) osc32k_arch_wrtlock: false osc8m_arch_calib: 0 - osc8m_arch_enable: true + osc8m_arch_enable: false osc8m_arch_ondemand: true osc8m_arch_overwrite_calibration: false osc8m_arch_runstdby: false @@ -539,7 +501,7 @@ drivers: xosc32k_arch_aampen: false xosc32k_arch_en1k: false xosc32k_arch_en32k: true - xosc32k_arch_enable: false + xosc32k_arch_enable: true xosc32k_arch_ondemand: false xosc32k_arch_runstdby: false xosc32k_arch_startup: 122 us @@ -589,4 +551,3 @@ pads: user_label: ADDR0 configuration: null toolchain_options: [] -static_files: [] diff --git a/bootloader/atmel_start_prj/config/hpl_gclk_config.h b/bootloader/atmel_start_prj/config/hpl_gclk_config.h index f883ba61f4581ef0a4602feb9a2ee0fd3008c065..a29dfd514ded64583991374fc4517911d8f86ddb 100644 --- a/bootloader/atmel_start_prj/config/hpl_gclk_config.h +++ b/bootloader/atmel_start_prj/config/hpl_gclk_config.h @@ -76,7 +76,7 @@ // <i> // <id> gclk_gen_0_div #ifndef CONF_GCLK_GEN_0_DIV -#define CONF_GCLK_GEN_0_DIV 2 +#define CONF_GCLK_GEN_0_DIV 1 #endif // </h> @@ -142,7 +142,7 @@ // <i> This defines the clock source for generic clock generator 1 // <id> gclk_gen_1_oscillator #ifndef CONF_GCLK_GEN_1_SRC -#define CONF_GCLK_GEN_1_SRC GCLK_GENCTRL_SRC_OSC8M +#define CONF_GCLK_GEN_1_SRC GCLK_GENCTRL_SRC_XOSC #endif // </h> @@ -151,7 +151,7 @@ // <i> // <id> gclk_gen_1_div #ifndef CONF_GCLK_GEN_1_DIV -#define CONF_GCLK_GEN_1_DIV 32 +#define CONF_GCLK_GEN_1_DIV 256 #endif // </h> @@ -159,7 +159,7 @@ // <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 0 +#define CONF_GCLK_GENERATOR_2_CONFIG 1 #endif // <h> Generic Clock Generator Control @@ -202,7 +202,7 @@ // <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 0 +#define CONF_GCLK_GEN_2_GENEN 1 #endif // <y> Generic clock generator 2 source diff --git a/bootloader/atmel_start_prj/config/hpl_sysctrl_config.h b/bootloader/atmel_start_prj/config/hpl_sysctrl_config.h index 9367417e686e60582e5ddb3fe87c58fd8a272a8d..f0da79069f442d0f133ba572423063505b82f515 100644 --- a/bootloader/atmel_start_prj/config/hpl_sysctrl_config.h +++ b/bootloader/atmel_start_prj/config/hpl_sysctrl_config.h @@ -46,7 +46,7 @@ // <i> Indicates whether configuration for OSC8M is enabled or not // <id> enable_osc8m #ifndef CONF_OSC8M_CONFIG -#define CONF_OSC8M_CONFIG 1 +#define CONF_OSC8M_CONFIG 0 #endif // <h> 8MHz Internal Oscillator (OSC8M) Control @@ -54,7 +54,7 @@ // <i> Indicates whether Internal 8 Mhz Oscillator is enabled or not // <id> osc8m_arch_enable #ifndef CONF_OSC8M_ENABLE -#define CONF_OSC8M_ENABLE 1 +#define CONF_OSC8M_ENABLE 0 #endif // <q> On Demand Control @@ -197,7 +197,7 @@ // <i> Indicates whether configuration for External 32K Osc is enabled or not // <id> enable_xosc32k #ifndef CONF_XOSC32K_CONFIG -#define CONF_XOSC32K_CONFIG 0 +#define CONF_XOSC32K_CONFIG 1 #endif // <h> 32kHz External Crystal Oscillator (XOSC32K) Control @@ -205,7 +205,7 @@ // <i> Indicates whether External 32K Oscillator is enabled or not // <id> xosc32k_arch_enable #ifndef CONF_XOSC32K_ENABLE -#define CONF_XOSC32K_ENABLE 0 +#define CONF_XOSC32K_ENABLE 1 #endif // <q> On Demand diff --git a/bootloader/atmel_start_prj/config/peripheral_clk_config.h b/bootloader/atmel_start_prj/config/peripheral_clk_config.h index c4265c35b821fac056c285bb3a1d30c5461ce5c2..6a5759a42313fb2e27e0585ec825cc261d980965 100644 --- a/bootloader/atmel_start_prj/config/peripheral_clk_config.h +++ b/bootloader/atmel_start_prj/config/peripheral_clk_config.h @@ -9,7 +9,7 @@ * \brief CPU's Clock frequency */ #ifndef CONF_CPU_FREQUENCY -#define CONF_CPU_FREQUENCY 24000000 +#define CONF_CPU_FREQUENCY 48000000 #endif // <y> Core Clock Source @@ -65,7 +65,7 @@ * \brief SERCOM2's Core Clock frequency */ #ifndef CONF_GCLK_SERCOM2_CORE_FREQUENCY -#define CONF_GCLK_SERCOM2_CORE_FREQUENCY 24000000 +#define CONF_GCLK_SERCOM2_CORE_FREQUENCY 48000000 #endif /** diff --git a/bootloader/atmel_start_prj/hpl/dmac/hpl_dmac.c b/bootloader/atmel_start_prj/hpl/dmac/hpl_dmac.c index e2e411a78b708793c23e654881d99969aa17a290..5c3cb8f7af83b403d70f017acf83cb38ee68fe20 100644 --- a/bootloader/atmel_start_prj/hpl/dmac/hpl_dmac.c +++ b/bootloader/atmel_start_prj/hpl/dmac/hpl_dmac.c @@ -216,6 +216,7 @@ static inline void _dmac_handler(void) hri_dmac_write_CHID_reg(DMAC, channel); flag_status = hri_dmac_get_CHINTFLAG_reg(DMAC, DMAC_CHINTFLAG_MASK); + hri_dmac_write_CHID_reg(DMAC, current_channel); if (flag_status & DMAC_CHINTFLAG_TERR) { hri_dmac_clear_CHINTFLAG_TERR_bit(DMAC); @@ -224,7 +225,6 @@ static inline void _dmac_handler(void) hri_dmac_clear_CHINTFLAG_TCMPL_bit(DMAC); tmp_resource->dma_cb.transfer_done(tmp_resource); } - hri_dmac_write_CHID_reg(DMAC, current_channel); } /** diff --git a/bootloader/atmel_start_prj/hpl/sercom/hpl_sercom.c b/bootloader/atmel_start_prj/hpl/sercom/hpl_sercom.c index a5e0e91bb076b0a9a7c30f214c3db9315f69f10b..8a9867665e7212f83a59f4425584cc7e35281516 100644 --- a/bootloader/atmel_start_prj/hpl/sercom/hpl_sercom.c +++ b/bootloader/atmel_start_prj/hpl/sercom/hpl_sercom.c @@ -1672,12 +1672,6 @@ static struct i2cs_configuration _i2css[] = { #if CONF_SERCOM_5_I2CS_ENABLE == 1 I2CS_CONFIGURATION(5), #endif -#if CONF_SERCOM_6_I2CS_ENABLE == 1 - I2CS_CONFIGURATION(6), -#endif -#if CONF_SERCOM_7_I2CS_ENABLE == 1 - I2CS_CONFIGURATION(7), -#endif }; #endif @@ -1719,10 +1713,6 @@ int32_t _i2c_s_async_init(struct _i2c_s_async_device *const device, void *const NVIC_ClearPendingIRQ((IRQn_Type)_sercom_get_irq_num(hw)); NVIC_EnableIRQ((IRQn_Type)_sercom_get_irq_num(hw)); - // Enable Address Match and PREC interrupt by default. - hri_sercomi2cs_set_INTEN_AMATCH_bit(hw); - hri_sercomi2cs_set_INTEN_PREC_bit(hw); - return ERR_NONE; } @@ -1920,19 +1910,12 @@ int32_t _i2c_s_async_set_irq_state(struct _i2c_s_async_device *const device, con static void _sercom_i2c_s_irq_handler(struct _i2c_s_async_device *device) { void * hw = device->hw; - uint32_t flags = hri_sercomi2cs_read_INTFLAG_reg(hw); + uint32_t flags = hri_sercomi2cm_read_INTFLAG_reg(hw); if (flags & SERCOM_I2CS_INTFLAG_ERROR) { ASSERT(device->cb.error); device->cb.error(device); - } - if (flags & SERCOM_I2CS_INTFLAG_AMATCH) { - hri_sercomi2cs_clear_INTFLAG_AMATCH_bit(hw); - } - if (flags & SERCOM_I2CS_INTFLAG_PREC) { - hri_sercomi2cs_clear_INTFLAG_PREC_bit(hw); - } - if (flags & SERCOM_I2CS_INTFLAG_DRDY) { + } else if (flags & SERCOM_I2CS_INTFLAG_DRDY) { if (!hri_sercomi2cs_get_STATUS_DIR_bit(hw)) { ASSERT(device->cb.rx_done); device->cb.rx_done(device, hri_sercomi2cs_read_DATA_reg(hw)); @@ -1940,7 +1923,6 @@ static void _sercom_i2c_s_irq_handler(struct _i2c_s_async_device *device) ASSERT(device->cb.tx); device->cb.tx(device); } - hri_sercomi2cs_clear_INTFLAG_DRDY_bit(hw); #if (CONF_MCLK_LPDIV) != (CONF_MCLK_CPUDIV) /* Adding grace time while waiting for SCL line to be released */ hri_sercomi2cs_clear_STATUS_reg(hw, 0); diff --git a/bootloader/atmel_start_prj/samd21a/include/component-version.h b/bootloader/atmel_start_prj/samd21a/include/component-version.h index 4decc8f5d9d92e4bb389e5f324afe04cf821d086..03e9aec13aac58ea311907b0ca511ccaf3a65266 100644 --- a/bootloader/atmel_start_prj/samd21a/include/component-version.h +++ b/bootloader/atmel_start_prj/samd21a/include/component-version.h @@ -3,7 +3,7 @@ * * \brief Component version header file * - * Copyright (c) 2019 Atmel Corporation, a wholly owned subsidiary of Microchip Technology Inc. + * Copyright (c) 2018 Atmel Corporation, a wholly owned subsidiary of Microchip Technology Inc. * * \license_start * @@ -43,7 +43,7 @@ // The build number does not refer to the component, but to the build number // of the device pack that provides the component. // -#define BUILD_NUMBER 395 +#define BUILD_NUMBER 331 // // The COMPONENT_VERSION_STRING is a string (enclosed in ") that can be used for logging or embedding. @@ -58,7 +58,7 @@ // "%Y-%m-%d %H:%M:%S" // // -#define COMPONENT_DATE_STRING "2019-09-19 13:04:38" +#define COMPONENT_DATE_STRING "2018-08-17 08:46:55" #endif/* #ifndef _COMPONENT_VERSION_H_INCLUDED */ diff --git a/bootloader/atmel_start_prj/samd21a/include/sam.h b/bootloader/atmel_start_prj/samd21a/include/sam.h index ec118051df39cb880d93ac9e40050f1936496c16..447328b562b25bffd349169ed79cfe93a2bd030e 100644 --- a/bootloader/atmel_start_prj/samd21a/include/sam.h +++ b/bootloader/atmel_start_prj/samd21a/include/sam.h @@ -3,7 +3,7 @@ * * \brief Top level header file * - * Copyright (c) 2019 Microchip Technology Inc. + * Copyright (c) 2018 Microchip Technology Inc. * * \license_start * @@ -30,34 +30,34 @@ #ifndef _SAM_ #define _SAM_ -#if defined(__SAMD21E16A__) || defined(__ATSAMD21E16A__) -#include "samd21e16a.h" -#elif defined(__SAMD21J16A__) || defined(__ATSAMD21J16A__) -#include "samd21j16a.h" -#elif defined(__SAMD21E15A__) || defined(__ATSAMD21E15A__) +#if defined(__SAMD21E15A__) || defined(__ATSAMD21E15A__) #include "samd21e15a.h" -#elif defined(__SAMD21J18A__) || defined(__ATSAMD21J18A__) -#include "samd21j18a.h" -#elif defined(__SAMD21G17A__) || defined(__ATSAMD21G17A__) -#include "samd21g17a.h" -#elif defined(__SAMD21J15A__) || defined(__ATSAMD21J15A__) -#include "samd21j15a.h" -#elif defined(__SAMD21G16A__) || defined(__ATSAMD21G16A__) -#include "samd21g16a.h" -#elif defined(__SAMD21G15A__) || defined(__ATSAMD21G15A__) -#include "samd21g15a.h" -#elif defined(__SAMD21J17A__) || defined(__ATSAMD21J17A__) -#include "samd21j17a.h" -#elif defined(__SAMD21G17AU__) || defined(__ATSAMD21G17AU__) -#include "samd21g17au.h" +#elif defined(__SAMD21E16A__) || defined(__ATSAMD21E16A__) +#include "samd21e16a.h" #elif defined(__SAMD21E17A__) || defined(__ATSAMD21E17A__) #include "samd21e17a.h" -#elif defined(__SAMD21G18AU__) || defined(__ATSAMD21G18AU__) -#include "samd21g18au.h" #elif defined(__SAMD21E18A__) || defined(__ATSAMD21E18A__) #include "samd21e18a.h" +#elif defined(__SAMD21G15A__) || defined(__ATSAMD21G15A__) +#include "samd21g15a.h" +#elif defined(__SAMD21G16A__) || defined(__ATSAMD21G16A__) +#include "samd21g16a.h" +#elif defined(__SAMD21G17A__) || defined(__ATSAMD21G17A__) +#include "samd21g17a.h" +#elif defined(__SAMD21G17AU__) || defined(__ATSAMD21G17AU__) +#include "samd21g17au.h" #elif defined(__SAMD21G18A__) || defined(__ATSAMD21G18A__) #include "samd21g18a.h" +#elif defined(__SAMD21G18AU__) || defined(__ATSAMD21G18AU__) +#include "samd21g18au.h" +#elif defined(__SAMD21J15A__) || defined(__ATSAMD21J15A__) +#include "samd21j15a.h" +#elif defined(__SAMD21J16A__) || defined(__ATSAMD21J16A__) +#include "samd21j16a.h" +#elif defined(__SAMD21J17A__) || defined(__ATSAMD21J17A__) +#include "samd21j17a.h" +#elif defined(__SAMD21J18A__) || defined(__ATSAMD21J18A__) +#include "samd21j18a.h" #else #error Library does not support the specified device #endif