diff --git a/firmware/iot-risk-data-logger-nfc-samd21.X/iot-risk-data-logger-nfc-samd21.mc3 b/firmware/iot-risk-data-logger-nfc-samd21.X/iot-risk-data-logger-nfc-samd21.mc3 index 3494825..a6a3147 100644 --- a/firmware/iot-risk-data-logger-nfc-samd21.X/iot-risk-data-logger-nfc-samd21.mc3 +++ b/firmware/iot-risk-data-logger-nfc-samd21.X/iot-risk-data-logger-nfc-samd21.mc3 @@ -135,7 +135,9 @@ <?xml version="1.0" encoding="UTF-8"?><FreeRTOS> <FreeRTOS dnOrder="0" id="FREERTOS_CPU_CLOCK_HZ"> - <Values dnOrder="0"/> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="FreeRTOS" value="47972352"/> + </Values> </FreeRTOS> </FreeRTOS> @@ -3625,30 +3627,30 @@ <?xml version="1.0" encoding="UTF-8"?><UserData> <UserData dnOrder="0"> - <GraphSettings canvasHeight="592" canvasWidth="765" dnOrder="0"/> + <GraphSettings canvasHeight="695" canvasWidth="826" dnOrder="0"/> <ComponentGraph dnOrder="1" id="__ROOTVIEW"> <ElementPositions dnOrder="0"> - <ElementPosition dnOrder="0" id="FreeRTOS" x="160" y="20"/> - <ElementPosition dnOrder="1" id="HarmonyCore" x="320" y="20"/> - <ElementPosition dnOrder="2" id="cmsis" x="30" y="240"/> - <ElementPosition dnOrder="3" id="core" x="30" y="200"/> - <ElementPosition dnOrder="4" id="cryptoauthlib" x="577" y="226"/> - <ElementPosition dnOrder="5" id="dfp" x="30" y="160"/> - <ElementPosition dnOrder="6" id="drv_at25df" x="174" y="434"/> - <ElementPosition dnOrder="7" id="drv_i2c" x="176" y="241"/> - <ElementPosition dnOrder="8" id="drv_memory" x="330" y="420"/> - <ElementPosition dnOrder="9" id="drv_usbfs_v1" x="635" y="101"/> - <ElementPosition dnOrder="10" id="eic" x="166" y="94"/> - <ElementPosition dnOrder="11" id="evsys" x="30" y="100"/> + <ElementPosition dnOrder="0" id="FreeRTOS" x="688" y="8"/> + <ElementPosition dnOrder="1" id="HarmonyCore" x="359" y="581"/> + <ElementPosition dnOrder="2" id="cmsis" x="307" y="82"/> + <ElementPosition dnOrder="3" id="core" x="306" y="48"/> + <ElementPosition dnOrder="4" id="cryptoauthlib" x="519" y="564"/> + <ElementPosition dnOrder="5" id="dfp" x="305" y="15"/> + <ElementPosition dnOrder="6" id="drv_at25df" x="151" y="325"/> + <ElementPosition dnOrder="7" id="drv_i2c" x="157" y="132"/> + <ElementPosition dnOrder="8" id="drv_memory" x="292" y="325"/> + <ElementPosition dnOrder="9" id="drv_usbfs_v1" x="186" y="580"/> + <ElementPosition dnOrder="10" id="eic" x="166" y="18"/> + <ElementPosition dnOrder="11" id="evsys" x="163" y="70"/> <ElementPosition dnOrder="12" id="nvmctrl" x="20" y="20"/> - <ElementPosition dnOrder="13" id="pm" x="477" y="101"/> - <ElementPosition dnOrder="14" id="rtc" x="466" y="20"/> - <ElementPosition dnOrder="15" id="sercom0" x="27" y="279"/> - <ElementPosition dnOrder="16" id="sercom1" x="28" y="450"/> - <ElementPosition dnOrder="17" id="sys_time" x="333" y="119"/> - <ElementPosition dnOrder="18" id="tc3" x="205" y="161"/> - <ElementPosition dnOrder="19" id="usb_device" x="634" y="16"/> - <ElementPosition dnOrder="20" id="usb_device_msd" x="590" y="360"/> + <ElementPosition dnOrder="13" id="pm" x="549" y="6"/> + <ElementPosition dnOrder="14" id="rtc" x="550" y="79"/> + <ElementPosition dnOrder="15" id="sercom0" x="22" y="133"/> + <ElementPosition dnOrder="16" id="sercom1" x="17" y="324"/> + <ElementPosition dnOrder="17" id="sys_time" x="684" y="107"/> + <ElementPosition dnOrder="18" id="tc3" x="548" y="153"/> + <ElementPosition dnOrder="19" id="usb_device" x="30" y="579"/> + <ElementPosition dnOrder="20" id="usb_device_msd" x="439" y="324"/> </ElementPositions> </ComponentGraph> </UserData> @@ -3659,6 +3661,161 @@ __ROOTVIEW + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="CONFIG_CLOCK_DFLL_ENABLE"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="true"/> + <User dnOrder="1" value="true"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="CONFIG_CLOCK_DFLL_MUL"> + <Values dnOrder="0"> + <User dnOrder="0" value="1464"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="CONFIG_CLOCK_DFLL_OPMODE"> + <Values dnOrder="0"> + <User dnOrder="0" value="1"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="CONFIG_CLOCK_DPLL_DIVIDER"> + <Values dnOrder="0"> + <User dnOrder="0" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="CONFIG_CLOCK_DPLL_DIVIDER_VALUE"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="2"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="CONFIG_CLOCK_DPLL_ENABLE"> + <Values dnOrder="0"> + <User dnOrder="0" value="false"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="CONFIG_CLOCK_DPLL_LDRFRAC_FRACTION"> + <Values dnOrder="0"> + <User dnOrder="0" value="11"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="CONFIG_CLOCK_DPLL_LDR_INTEGER"> + <Values dnOrder="0"> + <User dnOrder="0" value="2928"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="CONFIG_CLOCK_DPLL_MULTIPLIER_VALUE"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="2929.6875"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="CONFIG_CLOCK_DPLL_REF_CLOCK"> + <Values dnOrder="0"> + <User dnOrder="0" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="CONF_CLOCK_XOSC32K_ENABLE"> + <Values dnOrder="0"> + <User dnOrder="0" value="true"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="CPU_CLOCK_FREQUENCY"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="47972352"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="DFLL_CLOCK_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="47972352"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="DPLL_CLOCK_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + <?xml version="1.0" encoding="UTF-8"?><core> @@ -3675,7 +3832,261 @@ <?xml version="1.0" encoding="UTF-8"?><core> <core dnOrder="0" id="EIC_CLOCK_FREQUENCY"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="core" value="48000000"/> + <Dynamic dnOrder="0" id="core" value="47972352"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_0_DIV"> + <Values dnOrder="0"> + <User dnOrder="0" value="1"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_0_DIVIDER_VALUE"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="1"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_0_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="47972352"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_0_SRC"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="7"/> + <User dnOrder="1" value="7"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_1_DIV"> + <Values dnOrder="0"> + <User dnOrder="0" value="32"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_1_DIVIDER_VALUE"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="32"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_1_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="1024"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_1_RUNSTDBY"> + <Values dnOrder="0"> + <User dnOrder="0" value="true"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_1_SRC"> + <Values dnOrder="0"> + <User dnOrder="0" value="4"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_2_DIV"> + <Values dnOrder="0"> + <User dnOrder="0" value="1"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_2_DIVIDER_VALUE"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="1"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_2_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="32768"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_2_SRC"> + <Values dnOrder="0"> + <User dnOrder="0" value="5"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_3_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_4_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_5_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_6_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_7_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_8_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_CYCLE_FORMED"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="false"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_ID_0_CHEN"> + <Values dnOrder="0"> + <User dnOrder="0" value="true"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_ID_0_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="32768"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_ID_0_GENSEL"> + <Values dnOrder="0"> + <User dnOrder="0" value="2"/> </Values> </core> </core> @@ -3697,7 +4108,7 @@ <?xml version="1.0" encoding="UTF-8"?><core> <core dnOrder="0" id="GCLK_ID_20_FREQ"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="core" value="48000000"/> + <Dynamic dnOrder="0" id="core" value="47972352"/> </Values> </core> </core> @@ -3719,7 +4130,7 @@ <?xml version="1.0" encoding="UTF-8"?><core> <core dnOrder="0" id="GCLK_ID_21_FREQ"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="core" value="48000000"/> + <Dynamic dnOrder="0" id="core" value="47972352"/> </Values> </core> </core> @@ -3741,7 +4152,7 @@ <?xml version="1.0" encoding="UTF-8"?><core> <core dnOrder="0" id="GCLK_ID_27_FREQ"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="core" value="48000000"/> + <Dynamic dnOrder="0" id="core" value="47972352"/> </Values> </core> </core> @@ -3763,7 +4174,18 @@ <?xml version="1.0" encoding="UTF-8"?><core> <core dnOrder="0" id="GCLK_ID_4_FREQ"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="core" value="48000000"/> + <Dynamic dnOrder="0" id="core" value="1024"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_ID_4_GENSEL"> + <Values dnOrder="0"> + <User dnOrder="0" value="1"/> </Values> </core> </core> @@ -3785,7 +4207,7 @@ <?xml version="1.0" encoding="UTF-8"?><core> <core dnOrder="0" id="GCLK_ID_5_FREQ"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="core" value="48000000"/> + <Dynamic dnOrder="0" id="core" value="47972352"/> </Values> </core> </core> @@ -3807,7 +4229,117 @@ <?xml version="1.0" encoding="UTF-8"?><core> <core dnOrder="0" id="GCLK_ID_6_FREQ"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="core" value="48000000"/> + <Dynamic dnOrder="0" id="core" value="47972352"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_INST_NUM1"> + <Values dnOrder="0"> + <User dnOrder="0" value="true"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_INST_NUM2"> + <Values dnOrder="0"> + <User dnOrder="0" value="true"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_IO_0_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_IO_1_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_IO_2_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_IO_3_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_IO_4_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_IO_5_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_IO_6_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="GCLK_IO_7_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0"/> </Values> </core> </core> @@ -4335,7 +4867,7 @@ <?xml version="1.0" encoding="UTF-8"?><core> <core dnOrder="0" id="RTC_CLOCK_FREQUENCY"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="core" value="48000000"/> + <Dynamic dnOrder="0" id="core" value="1024"/> </Values> </core> </core> @@ -4401,7 +4933,7 @@ <?xml version="1.0" encoding="UTF-8"?><core> <core dnOrder="0" id="SERCOM0_CORE_CLOCK_FREQUENCY"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="core" value="48000000"/> + <Dynamic dnOrder="0" id="core" value="47972352"/> </Values> </core> </core> @@ -4467,7 +4999,7 @@ <?xml version="1.0" encoding="UTF-8"?><core> <core dnOrder="0" id="SERCOM1_CORE_CLOCK_FREQUENCY"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="core" value="48000000"/> + <Dynamic dnOrder="0" id="core" value="47972352"/> </Values> </core> </core> @@ -4559,6 +5091,42 @@ </Values> </core> </core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="SYSTICK_PERIOD"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="0xBB64"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="SYSTICK_PERIOD_MS"> + <Attributes dnOrder="0"> + <Float dnOrder="0" id="max"> + <Value dnOrder="0">349.72675</Value> + </Float> + </Attributes> + <Values dnOrder="1"/> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="SYSTICK_PERIOD_US"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="1000"/> + </Values> + </core> +</core> @@ -4621,7 +5189,7 @@ <?xml version="1.0" encoding="UTF-8"?><core> <core dnOrder="0" id="TC3_CLOCK_FREQUENCY"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="core" value="48000000"/> + <Dynamic dnOrder="0" id="core" value="47972352"/> </Values> </core> </core> @@ -4687,7 +5255,7 @@ <?xml version="1.0" encoding="UTF-8"?><core> <core dnOrder="0" id="USB_CLOCK_FREQUENCY"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="core" value="48000000"/> + <Dynamic dnOrder="0" id="core" value="47972352"/> </Values> </core> </core> @@ -4735,6 +5303,39 @@ </Values> </core> </core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="XOSC32K_EN32K"> + <Values dnOrder="0"> + <User dnOrder="0" value="true"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="XOSC32K_FREQ"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="core" value="32768"/> + </Values> + </core> +</core> + + + + + <?xml version="1.0" encoding="UTF-8"?><core> + <core dnOrder="0" id="XOSC32K_RUNSTDBY"> + <Values dnOrder="0"> + <User dnOrder="0" value="true"/> + </Values> + </core> +</core> @@ -7656,6 +8257,17 @@ __ROOTVIEW + + + <?xml version="1.0" encoding="UTF-8"?><nvmctrl> + <nvmctrl dnOrder="0" id="NVM_RWS"> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="nvmctrl" value="1"/> + </Values> + </nvmctrl> +</nvmctrl> + + __ROOTVIEW @@ -8968,7 +9580,7 @@ <?xml version="1.0" encoding="UTF-8"?><sercom0> <sercom0 dnOrder="0" id="SPI_BAUD_REG_VALUE"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="sercom0" value="23"/> + <Dynamic dnOrder="0" id="sercom0" value="22"/> </Values> </sercom0> </sercom0> @@ -9170,7 +9782,7 @@ <?xml version="1.0" encoding="UTF-8"?><sercom0> <sercom0 dnOrder="0" id="USART_BAUD_VALUE"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="sercom0" value="63019"/> + <Dynamic dnOrder="0" id="sercom0" value="63017"/> </Values> </sercom0> </sercom0> @@ -10088,7 +10700,7 @@ <?xml version="1.0" encoding="UTF-8"?><sercom1> <sercom1 dnOrder="0" id="SPI_BAUD_REG_VALUE"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="sercom1" value="23"/> + <Dynamic dnOrder="0" id="sercom1" value="22"/> </Values> </sercom1> </sercom1> @@ -10310,7 +10922,7 @@ <?xml version="1.0" encoding="UTF-8"?><sercom1> <sercom1 dnOrder="0" id="USART_BAUD_VALUE"> <Values dnOrder="0"> - <Dynamic dnOrder="0" id="sercom1" value="63019"/> + <Dynamic dnOrder="0" id="sercom1" value="63017"/> </Values> </sercom1> </sercom1> @@ -11138,7 +11750,9 @@ <?xml version="1.0" encoding="UTF-8"?><tc3> <tc3 dnOrder="0" id="TC_FREQUENCY"> - <Values dnOrder="0"/> + <Values dnOrder="0"> + <Dynamic dnOrder="0" id="tc3" value="47972352"/> + </Values> </tc3> </tc3> @@ -11261,7 +11875,14 @@ <?xml version="1.0" encoding="UTF-8"?><tc3> <tc3 dnOrder="0" id="TC_TIMER_PERIOD"> - <Values dnOrder="0"/> + <Attributes dnOrder="0"> + <Long dnOrder="0" id="max"> + <Value dnOrder="0">65535</Value> + </Long> + </Attributes> + <Values dnOrder="1"> + <Dynamic dnOrder="0" id="tc3" value="47971"/> + </Values> </tc3> </tc3> @@ -11270,7 +11891,15 @@ <?xml version="1.0" encoding="UTF-8"?><tc3> <tc3 dnOrder="0" id="TC_TIMER_TIME_MS"> - <Values dnOrder="0"/> + <Attributes dnOrder="0"> + <Float dnOrder="0" id="max"> + <Value dnOrder="0">1.3661202</Value> + </Float> + <Boolean dnOrder="1" id="visible"> + <Value dnOrder="0">false</Value> + </Boolean> + </Attributes> + <Values dnOrder="1"/> </tc3> </tc3> @@ -11942,7 +12571,7 @@ ../src/config/default/peripheral/clock/plib_clock.c - e0efd876a9826ba22a780f4b9c6359ad722dffd6b2feeb207b9b361fe2f3918a + 2a45c447b7406cd79fc6a2f4b847c242ba7806047cdce5e6637e2c31c4d58016 ../src/config/default/library/cryptoauthlib/atca_cfgs.h @@ -11986,7 +12615,7 @@ ../src/config/default/definitions.h - 66d9cb43743d2a2c5dd18c68d81e3ff7674148ce9cb51e3d00394437b39da8d4 + 9b8b9985667dd140e843ab42c2acd0989cde8893ff3c3a07f63825d0829c5f96 ../src/packs/ATSAMD21E18A_DFP/instance/sysctrl.h @@ -12194,7 +12823,7 @@ ../src/config/default/peripheral/sercom/spi_master/plib_sercom1_spi_master.c - 51e1a122cc7b92805bf24c5bc52e1a14cac318fccd6a5e5298db4ec675b1ac05 + b1def5598c772186671faa1ee7891432c5f0fc710c793fc3a17515d2f59c3e4f ../src/packs/ATSAMD21E18A_DFP/instance/tc3.h @@ -12266,7 +12895,7 @@ ../src/config/default/peripheral/tc/plib_tc3.c - 1f3a8e522d1e9b4af3595ef33a40dd23c27d8f49ba1a12176f002766127ae511 + e8a2da1f9c0514262a24a0657aaa82234611b3818a4b86bc1fdce8ed391be462 ../src/config/default/usb/usb_device_msd.h @@ -12286,7 +12915,7 @@ ../src/config/default/FreeRTOSConfig.h - 82d619dcfe6fb2b091c1c880bfad1d8973509d1be670e57b9b3ed4aa7a165884 + 17ddb44c33c39369a2783d5239dc7981b8aabf7bbfb696154d7a72800e808b36 ../src/packs/ATSAMD21E18A_DFP/instance/usb.h @@ -12402,7 +13031,7 @@ ../src/config/default/peripheral/sercom/i2c_master/plib_sercom0_i2c_master.c - 18af95fe99b19274aa92647e55b1cd5c905bf9ff69260c8e5663c4ddbcace4b1 + 59add04d57074a6d10b85ed6a85dec87df997c0865087373690a52246209cb84 ../src/config/default/driver/spi_flash/at25df/drv_at25df.h @@ -12474,7 +13103,7 @@ ../src/config/default/configuration.h - c2754dce5c643a59442c054458c0d4a613dcc921eb78ab01fd63887375c91b99 + fed58c60b9d92b03d28d850a136c81f18411c845d1efa27392c052c8e8770d6f ../src/config/default/osal/osal_freertos.h @@ -12490,7 +13119,7 @@ ../src/config/default/peripheral/rtc/plib_rtc.h - 224971ecf35af126c6b757213ae80660ef7603a66a27dc25b2ab0cbbf379edcf + d2457589d2143cfb37806d3f8ed30477aaa584300c1fb9e856f57698f632271e ../src/config/default/device.h @@ -12638,7 +13267,7 @@ ../src/config/default/library/cryptoauthlib/hal/hal_cortex_m_delay.c - 29b76421459e4cb79b077b4906212f5655d15e02e0fb6107f78257b9ed6aa867 + 2c0203f5e96997383178b489a56c9681775c0deb4c0f31a278c388f7af5e7d00 ../src/packs/ATSAMD21E18A_DFP/component/ac.h diff --git a/firmware/iot-risk-data-logger-nfc-samd21.X/nbproject/Makefile-genesis.properties b/firmware/iot-risk-data-logger-nfc-samd21.X/nbproject/Makefile-genesis.properties index aef9b9c..9415a78 100644 --- a/firmware/iot-risk-data-logger-nfc-samd21.X/nbproject/Makefile-genesis.properties +++ b/firmware/iot-risk-data-logger-nfc-samd21.X/nbproject/Makefile-genesis.properties @@ -1,5 +1,5 @@ # -#Sat Nov 18 16:53:24 TRT 2023 +#Sun Nov 19 19:46:27 TRT 2023 default.languagetoolchain.version=4.35 default.Pack.dfplocation=/Applications/microchip/mplabx/v6.15/packs/Microchip/SAMD21_DFP/3.6.144 default.com-microchip-mplab-mdbcore-simulator-Simulator.md5=aa9d1097190a66d1314d421a6f2603b4 diff --git a/firmware/iot-risk-data-logger-nfc-samd21.X/nbproject/private/private.xml b/firmware/iot-risk-data-logger-nfc-samd21.X/nbproject/private/private.xml index 2eee429..ed54460 100644 --- a/firmware/iot-risk-data-logger-nfc-samd21.X/nbproject/private/private.xml +++ b/firmware/iot-risk-data-logger-nfc-samd21.X/nbproject/private/private.xml @@ -1,6 +1,10 @@ + - + + file:/Users/artempolisskyi/projects/iot-risk-data-logger-nfc-samd21/firmware/src/config/default/usb_device_init_data.c + file:/Users/artempolisskyi/projects/iot-risk-data-logger-nfc-samd21/firmware/src/config/default/driver/memory/drv_memory.h + diff --git a/firmware/src/config/default/FreeRTOSConfig.h b/firmware/src/config/default/FreeRTOSConfig.h index 111278a..1d7ef97 100644 --- a/firmware/src/config/default/FreeRTOSConfig.h +++ b/firmware/src/config/default/FreeRTOSConfig.h @@ -45,7 +45,7 @@ #define configUSE_PREEMPTION 1 #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0 #define configUSE_TICKLESS_IDLE 0 -#define configCPU_CLOCK_HZ ( 48000000UL ) +#define configCPU_CLOCK_HZ ( 47972352UL ) #define configTICK_RATE_HZ ( ( TickType_t ) 1000 ) #define configMAX_PRIORITIES ( 5UL ) #define configMINIMAL_STACK_SIZE ( 128 ) diff --git a/firmware/src/config/default/configuration.h b/firmware/src/config/default/configuration.h index f5fd9d4..14e61dc 100644 --- a/firmware/src/config/default/configuration.h +++ b/firmware/src/config/default/configuration.h @@ -85,7 +85,7 @@ extern "C" { #define SYS_TIME_HW_COUNTER_WIDTH (16) #define SYS_TIME_HW_COUNTER_PERIOD (0xFFFFU) #define SYS_TIME_HW_COUNTER_HALF_PERIOD (SYS_TIME_HW_COUNTER_PERIOD>>1) -#define SYS_TIME_CPU_CLOCK_FREQUENCY (48000000) +#define SYS_TIME_CPU_CLOCK_FREQUENCY (47972352) #define SYS_TIME_COMPARE_UPDATE_EXECUTION_CYCLES (200) diff --git a/firmware/src/config/default/definitions.h b/firmware/src/config/default/definitions.h index 6337207..aadc5f4 100644 --- a/firmware/src/config/default/definitions.h +++ b/firmware/src/config/default/definitions.h @@ -93,7 +93,7 @@ extern "C" { #define DEVICE_SERIES "SAMD21" /* CPU clock frequency */ -#define CPU_CLOCK_FREQUENCY 48000000 +#define CPU_CLOCK_FREQUENCY 47972352 // ***************************************************************************** // ***************************************************************************** diff --git a/firmware/src/config/default/harmony-manifest-success.yml b/firmware/src/config/default/harmony-manifest-success.yml index 7b666dd..fd305c5 100644 --- a/firmware/src/config/default/harmony-manifest-success.yml +++ b/firmware/src/config/default/harmony-manifest-success.yml @@ -4,7 +4,7 @@ project: iot-risk-data-logger-nfc-samd21 -creation_date: 2023-11-18T16:53:23.323+03:00[Europe/Istanbul] # ISO 8601 format: https://www.w3.org/TR/NOTE-datetime +creation_date: 2023-11-19T19:46:26.009+03:00[Europe/Istanbul] # ISO 8601 format: https://www.w3.org/TR/NOTE-datetime operating_system: Mac OS X mcc_mode: IDE # [IDE|Standalone|Headless] mcc_version: v5.3.7 diff --git a/firmware/src/config/default/library/cryptoauthlib/hal/hal_cortex_m_delay.c b/firmware/src/config/default/library/cryptoauthlib/hal/hal_cortex_m_delay.c index 17bbb57..d46c440 100644 --- a/firmware/src/config/default/library/cryptoauthlib/hal/hal_cortex_m_delay.c +++ b/firmware/src/config/default/library/cryptoauthlib/hal/hal_cortex_m_delay.c @@ -34,7 +34,7 @@ #include #ifndef CONF_CPU_FREQUENCY -#define CONF_CPU_FREQUENCY 48000000 +#define CONF_CPU_FREQUENCY 47972352 #endif #if CONF_CPU_FREQUENCY < 1000 diff --git a/firmware/src/config/default/peripheral/clock/plib_clock.c b/firmware/src/config/default/peripheral/clock/plib_clock.c index 764265f..acb967e 100644 --- a/firmware/src/config/default/peripheral/clock/plib_clock.c +++ b/firmware/src/config/default/peripheral/clock/plib_clock.c @@ -44,6 +44,15 @@ static void SYSCTRL_Initialize(void) { + /****************** XOSC32K initialization ******************************/ + + /* Configure 32K External Oscillator */ + SYSCTRL_REGS->SYSCTRL_XOSC32K = SYSCTRL_XOSC32K_STARTUP(0U) | SYSCTRL_XOSC32K_ENABLE_Msk | SYSCTRL_XOSC32K_RUNSTDBY_Msk | SYSCTRL_XOSC32K_EN32K_Msk | SYSCTRL_XOSC32K_XTALEN_Msk; + while(!((SYSCTRL_REGS->SYSCTRL_PCLKSR & SYSCTRL_PCLKSR_XOSC32KRDY_Msk) == SYSCTRL_PCLKSR_XOSC32KRDY_Msk)) + { + /* Waiting for the XOSC32K Ready state */ + } + SYSCTRL_REGS->SYSCTRL_OSC32K = 0x0U; } @@ -64,17 +73,24 @@ static void DFLL_Initialize(void) SYSCTRL_REGS->SYSCTRL_DFLLVAL = SYSCTRL_DFLLVAL_COARSE(calibCoarse) | SYSCTRL_DFLLVAL_FINE(512U); + GCLK_REGS->GCLK_CLKCTRL = GCLK_CLKCTRL_GEN(0x2U) | GCLK_CLKCTRL_CLKEN_Msk | GCLK_CLKCTRL_ID(0U); + while((SYSCTRL_REGS->SYSCTRL_PCLKSR & SYSCTRL_PCLKSR_DFLLRDY_Msk) != SYSCTRL_PCLKSR_DFLLRDY_Msk) + { + /* Waiting for the Ready state */ + } + SYSCTRL_REGS->SYSCTRL_DFLLMUL = SYSCTRL_DFLLMUL_MUL(1464U) | SYSCTRL_DFLLMUL_FSTEP(1U) | SYSCTRL_DFLLMUL_CSTEP(1U); + while((SYSCTRL_REGS->SYSCTRL_PCLKSR & SYSCTRL_PCLKSR_DFLLRDY_Msk) != SYSCTRL_PCLKSR_DFLLRDY_Msk) { /* Waiting for the Ready state */ } /* Configure DFLL */ - SYSCTRL_REGS->SYSCTRL_DFLLCTRL = SYSCTRL_DFLLCTRL_ENABLE_Msk ; + SYSCTRL_REGS->SYSCTRL_DFLLCTRL = SYSCTRL_DFLLCTRL_ENABLE_Msk | SYSCTRL_DFLLCTRL_MODE_Msk ; - while((SYSCTRL_REGS->SYSCTRL_PCLKSR & SYSCTRL_PCLKSR_DFLLRDY_Msk) != SYSCTRL_PCLKSR_DFLLRDY_Msk) + while((SYSCTRL_REGS->SYSCTRL_PCLKSR & SYSCTRL_PCLKSR_DFLLLCKF_Msk) != SYSCTRL_PCLKSR_DFLLLCKF_Msk) { - /* Waiting for DFLL to be ready */ + /* Waiting for DFLL to fully lock to meet clock accuracy */ } } @@ -92,6 +108,29 @@ static void GCLK0_Initialize(void) } +static void GCLK1_Initialize(void) +{ + GCLK_REGS->GCLK_GENCTRL = GCLK_GENCTRL_SRC(5U) | GCLK_GENCTRL_RUNSTDBY_Msk | GCLK_GENCTRL_GENEN_Msk | GCLK_GENCTRL_ID(1U); + + GCLK_REGS->GCLK_GENDIV = GCLK_GENDIV_DIV(32U) | GCLK_GENDIV_ID(1U); + while((GCLK_REGS->GCLK_STATUS & GCLK_STATUS_SYNCBUSY_Msk) == GCLK_STATUS_SYNCBUSY_Msk) + { + /* wait for the Generator 1 synchronization */ + } +} + + +static void GCLK2_Initialize(void) +{ + GCLK_REGS->GCLK_GENCTRL = GCLK_GENCTRL_SRC(5U) | GCLK_GENCTRL_GENEN_Msk | GCLK_GENCTRL_ID(2U); + + while((GCLK_REGS->GCLK_STATUS & GCLK_STATUS_SYNCBUSY_Msk) == GCLK_STATUS_SYNCBUSY_Msk) + { + /* wait for the Generator 2 synchronization */ + } +} + + @@ -100,12 +139,14 @@ void CLOCK_Initialize (void) /* Function to Initialize the Oscillators */ SYSCTRL_Initialize(); + GCLK1_Initialize(); + GCLK2_Initialize(); DFLL_Initialize(); GCLK0_Initialize(); /* Selection of the Generator and write Lock for RTC */ - GCLK_REGS->GCLK_CLKCTRL = GCLK_CLKCTRL_ID(4U) | GCLK_CLKCTRL_GEN(0x0U) | GCLK_CLKCTRL_CLKEN_Msk; + GCLK_REGS->GCLK_CLKCTRL = GCLK_CLKCTRL_ID(4U) | GCLK_CLKCTRL_GEN(0x1U) | GCLK_CLKCTRL_CLKEN_Msk; /* Selection of the Generator and write Lock for EIC */ GCLK_REGS->GCLK_CLKCTRL = GCLK_CLKCTRL_ID(5U) | GCLK_CLKCTRL_GEN(0x0U) | GCLK_CLKCTRL_CLKEN_Msk; /* Selection of the Generator and write Lock for USB */ diff --git a/firmware/src/config/default/peripheral/rtc/plib_rtc.h b/firmware/src/config/default/peripheral/rtc/plib_rtc.h index 6419e4c..c9e3342 100644 --- a/firmware/src/config/default/peripheral/rtc/plib_rtc.h +++ b/firmware/src/config/default/peripheral/rtc/plib_rtc.h @@ -55,7 +55,7 @@ extern "C" { // DOM-IGNORE-END /* Frequency of Counter Clock for RTC */ -#define RTC_COUNTER_CLOCK_FREQUENCY (48000000U / (1UL << (0x0U))) +#define RTC_COUNTER_CLOCK_FREQUENCY (1024U / (1UL << (0x0U))) typedef enum { diff --git a/firmware/src/config/default/peripheral/sercom/i2c_master/plib_sercom0_i2c_master.c b/firmware/src/config/default/peripheral/sercom/i2c_master/plib_sercom0_i2c_master.c index 33dc4f9..d346bd2 100644 --- a/firmware/src/config/default/peripheral/sercom/i2c_master/plib_sercom0_i2c_master.c +++ b/firmware/src/config/default/peripheral/sercom/i2c_master/plib_sercom0_i2c_master.c @@ -202,7 +202,7 @@ bool SERCOM0_I2C_TransferSetup(SERCOM_I2C_TRANSFER_SETUP* setup, uint32_t srcClk if( srcClkFreq == 0U) { - srcClkFreq = 48000000UL; + srcClkFreq = 47972352UL; } if (SERCOM0_I2C_CalculateBaudValue(srcClkFreq, i2cClkSpeed, &baudValue) == false) diff --git a/firmware/src/config/default/peripheral/sercom/spi_master/plib_sercom1_spi_master.c b/firmware/src/config/default/peripheral/sercom/spi_master/plib_sercom1_spi_master.c index 672d752..43b88c9 100644 --- a/firmware/src/config/default/peripheral/sercom/spi_master/plib_sercom1_spi_master.c +++ b/firmware/src/config/default/peripheral/sercom/spi_master/plib_sercom1_spi_master.c @@ -56,10 +56,10 @@ /* SERCOM1 clk freq value for the baud calculation */ -#define SERCOM1_Frequency (48000000UL) +#define SERCOM1_Frequency (47972352UL) /* SERCOM1 SPI baud value for 1000000 Hz baud rate */ -#define SERCOM1_SPIM_BAUD_VALUE (23UL) +#define SERCOM1_SPIM_BAUD_VALUE (22UL) /*Global object to save SPI Exchange related data */ volatile static SPI_OBJECT sercom1SPIObj; diff --git a/firmware/src/config/default/peripheral/tc/plib_tc3.c b/firmware/src/config/default/peripheral/tc/plib_tc3.c index 3982bca..41a7492 100644 --- a/firmware/src/config/default/peripheral/tc/plib_tc3.c +++ b/firmware/src/config/default/peripheral/tc/plib_tc3.c @@ -87,7 +87,7 @@ void TC3_TimerInitialize( void ) TC3_REGS->COUNT16.TC_CTRLA = TC_CTRLA_MODE_COUNT16 | TC_CTRLA_PRESCALER_DIV1 | TC_CTRLA_WAVEGEN_MPWM ; /* Configure timer period */ - TC3_REGS->COUNT16.TC_CC[0U] = 47999U; + TC3_REGS->COUNT16.TC_CC[0U] = 47971U; /* Clear all interrupt flags */ TC3_REGS->COUNT16.TC_INTFLAG = TC_INTFLAG_Msk; @@ -125,7 +125,7 @@ void TC3_TimerStop( void ) uint32_t TC3_TimerFrequencyGet( void ) { - return (uint32_t)(48000000UL); + return (uint32_t)(47972352UL); } void TC3_TimerCommandSet(TC_COMMAND command)