diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 73f69e0958611ac6e00bde95641f6699030ad235..0000000000000000000000000000000000000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index e3612db561986620a2f96b7ede6acdc269e32011..0000000000000000000000000000000000000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -SkywardBoardcore diff --git a/.idea/cmake.xml b/.idea/cmake.xml deleted file mode 100644 index e7d1117d2b21bbf39c6a4c4de712a7e81dfe36af..0000000000000000000000000000000000000000 --- a/.idea/cmake.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="CMakeSharedSettings"> - <configurations> - <configuration PROFILE_NAME="Debug" ENABLED="true" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_TOOLCHAIN_FILE=$CMakeProjectDir$/libs/miosix-kernel/miosix/_tools/toolchain.cmake -GNinja" /> - <configuration PROFILE_NAME="Release" ENABLED="true" CONFIG_NAME="Release" GENERATION_OPTIONS="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_TOOLCHAIN_FILE=$CMakeProjectDir$/libs/miosix-kernel/miosix/_tools/toolchain.cmake -GNinja" /> - </configurations> - </component> -</project> diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index c8f84c3534495485e6264ba5b723b469a07d689c..0000000000000000000000000000000000000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,7 +0,0 @@ -<component name="ProjectCodeStyleConfiguration"> - <code_scheme name="Project" version="173"> - <clangFormatSettings> - <option name="ENABLED" value="true" /> - </clangFormatSettings> - </code_scheme> -</component> diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index 0f7bc519db610a2e6290d61d592e9fdac90c8cde..0000000000000000000000000000000000000000 --- a/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ -<component name="ProjectCodeStyleConfiguration"> - <state> - <option name="USE_PER_PROJECT_SETTINGS" value="true" /> - </state> -</component> diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 48114834858e9d1f2cdb249f0bd14a39f6d05a29..0000000000000000000000000000000000000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" /> - <component name="CidrRootsConfiguration"> - <sourceRoots> - <file path="$PROJECT_DIR$/src" /> - </sourceRoots> - <excludeRoots> - <file path="$PROJECT_DIR$/build" /> - <file path="$PROJECT_DIR$/libs" /> - </excludeRoots> - </component> -</project> diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 661190e704ce2747abc8820df2bacd7e2a5498f3..0000000000000000000000000000000000000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="ProjectModuleManager"> - <modules> - <module fileurl="file://$PROJECT_DIR$/.idea/skyward-boardcore.iml" filepath="$PROJECT_DIR$/.idea/skyward-boardcore.iml" /> - </modules> - </component> -</project> diff --git a/.idea/skyward-boardcore.iml b/.idea/skyward-boardcore.iml deleted file mode 100644 index 8afe22e01d18c67c07eeaae0128209012f347937..0000000000000000000000000000000000000000 --- a/.idea/skyward-boardcore.iml +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module classpath="CMake" type="CPP_MODULE" version="4" /> diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index da9f74d6e37609a3bb73e3560e44e2beec899c96..0000000000000000000000000000000000000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="VcsDirectoryMappings"> - <mapping directory="$PROJECT_DIR$" vcs="Git" /> - <mapping directory="$PROJECT_DIR$/libs/Catch2" vcs="Git" /> - <mapping directory="$PROJECT_DIR$/libs/eigen" vcs="Git" /> - <mapping directory="$PROJECT_DIR$/libs/fmt" vcs="Git" /> - <mapping directory="$PROJECT_DIR$/libs/mavlink_skyward_lib" vcs="Git" /> - <mapping directory="$PROJECT_DIR$/libs/miosix-kernel" vcs="Git" /> - <mapping directory="$PROJECT_DIR$/libs/miosix-kernel/miosix/_examples/datalogger/tscpp" vcs="Git" /> - <mapping directory="$PROJECT_DIR$/libs/mxgui" vcs="Git" /> - <mapping directory="$PROJECT_DIR$/libs/tscpp" vcs="Git" /> - </component> -</project> diff --git a/data/fault_list.csv b/data/fault_list.csv deleted file mode 100644 index aff4f3d879cf4618d98f3174d8edcd44bb5d33f6..0000000000000000000000000000000000000000 --- a/data/fault_list.csv +++ /dev/null @@ -1,2 +0,0 @@ -"Category","Name (letters,numbers,underscores,NO SPACES, all caps!)","Description","Generated Name(autogenerated column!)" -"ANAKIN","TEST_FAULT","This fault is for testing","F_ANAKIN_TEST_FAULT" diff --git a/data/gdb/stm32f4-stlinv2.cfg b/data/gdb/stm32f4-stlinv2.cfg deleted file mode 100644 index dae3992fe332fc448d931bfd42127b07aaf699b2..0000000000000000000000000000000000000000 --- a/data/gdb/stm32f4-stlinv2.cfg +++ /dev/null @@ -1,9 +0,0 @@ -# This is an STM32F4 discovery board with a single STM32F407VGT6 chip. -# http://www.st.com/internet/evalboard/product/252419.jsp - -source [find interface/stlink-v2-1.cfg] - -source [find target/stm32f4x.cfg] - -# use hardware reset, connect under reset -reset_config srst_only srst_nogate diff --git a/data/gdb/stm32f7-stlinv2.cfg b/data/gdb/stm32f7-stlinv2.cfg deleted file mode 100644 index 3be1bf3d82a99f997e27888c5ed73cce6a3ce8e2..0000000000000000000000000000000000000000 --- a/data/gdb/stm32f7-stlinv2.cfg +++ /dev/null @@ -1,9 +0,0 @@ -# This is an STM32F7 discovery board with a single STM32F407VGT6 chip. -# http://www.st.com/internet/evalboard/product/252419.jsp - -source [find interface/stlink-v2-1.cfg] - -source [find target/stm32f7x.cfg] - -# use hardware reset, connect under reset -reset_config srst_only srst_nogate diff --git a/data/gdb/stm32f750.svd b/data/gdb/stm32f750.svd deleted file mode 100644 index bc698fc0d203d7316e5ba916942a48241c2d183d..0000000000000000000000000000000000000000 --- a/data/gdb/stm32f750.svd +++ /dev/null @@ -1,68098 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<device xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="1.1" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_1.xsd"> - <name>STM32F750</name> - <version>1.3</version> - <description>STM32F750</description> - <cpu> - <name>CM7</name> - <revision>r0p1</revision> - <endian>little</endian> - <mpuPresent>true</mpuPresent> - <fpuPresent>true</fpuPresent> - <nvicPrioBits>4</nvicPrioBits> - <vendorSystickConfig>false</vendorSystickConfig> - </cpu> - <!--Bus Interface Properties--> - <!--Cortex-M3 is byte addressable--> - <addressUnitBits>8</addressUnitBits> - <!--the maximum data bit width accessible within a single transfer--> - <width>32</width> - <!--Register Default Properties--> - <size>0x20</size> - <resetValue>0x0</resetValue> - <resetMask>0xFFFFFFFF</resetMask> - <peripherals> - <peripheral> - <name>RNG</name> - <description>Random number generator</description> - <groupName>RNG</groupName> - <baseAddress>0x50060800</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>HASH_RNG</name> - <description>Hash and Rng global interrupt</description> - <value>80</value> - </interrupt> - <registers> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IE</name> - <description>Interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RNGEN</name> - <description>Random number generator enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SEIS</name> - <description>Seed error interrupt status</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CEIS</name> - <description>Clock error interrupt status</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SECS</name> - <description>Seed error current status</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CECS</name> - <description>Clock error current status</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DRDY</name> - <description>Data ready</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>DR</name> - <displayName>DR</displayName> - <description>data register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RNDATA</name> - <description>Random data</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>HASH</name> - <description>Hash processor</description> - <groupName>HASH</groupName> - <baseAddress>0x50060400</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>INIT</name> - <description>Initialize message digest calculation</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>DMAE</name> - <description>DMA enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DATATYPE</name> - <description>Data type selection</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MODE</name> - <description>Mode selection</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ALGO0</name> - <description>Algorithm selection</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NBW</name> - <description>Number of words already pushed</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DINNE</name> - <description>DIN not empty</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>MDMAT</name> - <description>Multiple DMA Transfers</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LKEY</name> - <description>Long key selection</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ALGO1</name> - <description>ALGO</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>DIN</name> - <displayName>DIN</displayName> - <description>data input register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATAIN</name> - <description>Data input</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>STR</name> - <displayName>STR</displayName> - <description>start register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DCAL</name> - <description>Digest calculation</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>NBLW</name> - <description>Number of valid bits in the last word of the message</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>HR0</name> - <displayName>HR0</displayName> - <description>digest registers</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H0</name> - <description>H0</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>HR1</name> - <displayName>HR1</displayName> - <description>digest registers</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H1</name> - <description>H1</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>HR2</name> - <displayName>HR2</displayName> - <description>digest registers</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H2</name> - <description>H2</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>HR3</name> - <displayName>HR3</displayName> - <description>digest registers</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H3</name> - <description>H3</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>HR4</name> - <displayName>HR4</displayName> - <description>digest registers</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H4</name> - <description>H4</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>IMR</name> - <displayName>IMR</displayName> - <description>interrupt enable register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DCIE</name> - <description>Digest calculation completion interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DINIE</name> - <description>Data input interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <resetValue>0x00000001</resetValue> - <fields> - <field> - <name>BUSY</name> - <description>Busy bit</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DMAS</name> - <description>DMA Status</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DCIS</name> - <description>Digest calculation completion interrupt status</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DINIS</name> - <description>Data input interrupt status</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>CSR0</name> - <displayName>CSR0</displayName> - <description>context swap registers</description> - <addressOffset>0xF8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR0</name> - <description>CSR0</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR1</name> - <displayName>CSR1</displayName> - <description>context swap registers</description> - <addressOffset>0xFC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR1</name> - <description>CSR1</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR2</name> - <displayName>CSR2</displayName> - <description>context swap registers</description> - <addressOffset>0x100</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR2</name> - <description>CSR2</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR3</name> - <displayName>CSR3</displayName> - <description>context swap registers</description> - <addressOffset>0x104</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR3</name> - <description>CSR3</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR4</name> - <displayName>CSR4</displayName> - <description>context swap registers</description> - <addressOffset>0x108</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR4</name> - <description>CSR4</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR5</name> - <displayName>CSR5</displayName> - <description>context swap registers</description> - <addressOffset>0x10C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR5</name> - <description>CSR5</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR6</name> - <displayName>CSR6</displayName> - <description>context swap registers</description> - <addressOffset>0x110</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR6</name> - <description>CSR6</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR7</name> - <displayName>CSR7</displayName> - <description>context swap registers</description> - <addressOffset>0x114</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR7</name> - <description>CSR7</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR8</name> - <displayName>CSR8</displayName> - <description>context swap registers</description> - <addressOffset>0x118</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR8</name> - <description>CSR8</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR9</name> - <displayName>CSR9</displayName> - <description>context swap registers</description> - <addressOffset>0x11C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR9</name> - <description>CSR9</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR10</name> - <displayName>CSR10</displayName> - <description>context swap registers</description> - <addressOffset>0x120</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR10</name> - <description>CSR10</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR11</name> - <displayName>CSR11</displayName> - <description>context swap registers</description> - <addressOffset>0x124</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR11</name> - <description>CSR11</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR12</name> - <displayName>CSR12</displayName> - <description>context swap registers</description> - <addressOffset>0x128</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR12</name> - <description>CSR12</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR13</name> - <displayName>CSR13</displayName> - <description>context swap registers</description> - <addressOffset>0x12C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR13</name> - <description>CSR13</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR14</name> - <displayName>CSR14</displayName> - <description>context swap registers</description> - <addressOffset>0x130</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR14</name> - <description>CSR14</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR15</name> - <displayName>CSR15</displayName> - <description>context swap registers</description> - <addressOffset>0x134</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR15</name> - <description>CSR15</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR16</name> - <displayName>CSR16</displayName> - <description>context swap registers</description> - <addressOffset>0x138</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR16</name> - <description>CSR16</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR17</name> - <displayName>CSR17</displayName> - <description>context swap registers</description> - <addressOffset>0x13C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR17</name> - <description>CSR17</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR18</name> - <displayName>CSR18</displayName> - <description>context swap registers</description> - <addressOffset>0x140</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR18</name> - <description>CSR18</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR19</name> - <displayName>CSR19</displayName> - <description>context swap registers</description> - <addressOffset>0x144</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR19</name> - <description>CSR19</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR20</name> - <displayName>CSR20</displayName> - <description>context swap registers</description> - <addressOffset>0x148</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR20</name> - <description>CSR20</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR21</name> - <displayName>CSR21</displayName> - <description>context swap registers</description> - <addressOffset>0x14C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR21</name> - <description>CSR21</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR22</name> - <displayName>CSR22</displayName> - <description>context swap registers</description> - <addressOffset>0x150</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR22</name> - <description>CSR22</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR23</name> - <displayName>CSR23</displayName> - <description>context swap registers</description> - <addressOffset>0x154</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR23</name> - <description>CSR23</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR24</name> - <displayName>CSR24</displayName> - <description>context swap registers</description> - <addressOffset>0x158</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR24</name> - <description>CSR24</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR25</name> - <displayName>CSR25</displayName> - <description>context swap registers</description> - <addressOffset>0x15C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR25</name> - <description>CSR25</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR26</name> - <displayName>CSR26</displayName> - <description>context swap registers</description> - <addressOffset>0x160</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR26</name> - <description>CSR26</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR27</name> - <displayName>CSR27</displayName> - <description>context swap registers</description> - <addressOffset>0x164</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR27</name> - <description>CSR27</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR28</name> - <displayName>CSR28</displayName> - <description>context swap registers</description> - <addressOffset>0x168</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR28</name> - <description>CSR28</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR29</name> - <displayName>CSR29</displayName> - <description>context swap registers</description> - <addressOffset>0x16C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR29</name> - <description>CSR29</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR30</name> - <displayName>CSR30</displayName> - <description>context swap registers</description> - <addressOffset>0x170</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR30</name> - <description>CSR30</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR31</name> - <displayName>CSR31</displayName> - <description>context swap registers</description> - <addressOffset>0x174</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR31</name> - <description>CSR31</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR32</name> - <displayName>CSR32</displayName> - <description>context swap registers</description> - <addressOffset>0x178</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR32</name> - <description>CSR32</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR33</name> - <displayName>CSR33</displayName> - <description>context swap registers</description> - <addressOffset>0x17C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR33</name> - <description>CSR33</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR34</name> - <displayName>CSR34</displayName> - <description>context swap registers</description> - <addressOffset>0x180</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR34</name> - <description>CSR34</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR35</name> - <displayName>CSR35</displayName> - <description>context swap registers</description> - <addressOffset>0x184</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR35</name> - <description>CSR35</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR36</name> - <displayName>CSR36</displayName> - <description>context swap registers</description> - <addressOffset>0x188</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR36</name> - <description>CSR36</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR37</name> - <displayName>CSR37</displayName> - <description>context swap registers</description> - <addressOffset>0x18C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR37</name> - <description>CSR37</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR38</name> - <displayName>CSR38</displayName> - <description>context swap registers</description> - <addressOffset>0x190</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR38</name> - <description>CSR38</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR39</name> - <displayName>CSR39</displayName> - <description>context swap registers</description> - <addressOffset>0x194</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR39</name> - <description>CSR39</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR40</name> - <displayName>CSR40</displayName> - <description>context swap registers</description> - <addressOffset>0x198</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR40</name> - <description>CSR40</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR41</name> - <displayName>CSR41</displayName> - <description>context swap registers</description> - <addressOffset>0x19C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR41</name> - <description>CSR41</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR42</name> - <displayName>CSR42</displayName> - <description>context swap registers</description> - <addressOffset>0x1A0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR42</name> - <description>CSR42</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR43</name> - <displayName>CSR43</displayName> - <description>context swap registers</description> - <addressOffset>0x1A4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR43</name> - <description>CSR43</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR44</name> - <displayName>CSR44</displayName> - <description>context swap registers</description> - <addressOffset>0x1A8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR44</name> - <description>CSR44</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR45</name> - <displayName>CSR45</displayName> - <description>context swap registers</description> - <addressOffset>0x1AC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR45</name> - <description>CSR45</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR46</name> - <displayName>CSR46</displayName> - <description>context swap registers</description> - <addressOffset>0x1B0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR46</name> - <description>CSR46</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR47</name> - <displayName>CSR47</displayName> - <description>context swap registers</description> - <addressOffset>0x1B4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR47</name> - <description>CSR47</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR48</name> - <displayName>CSR48</displayName> - <description>context swap registers</description> - <addressOffset>0x1B8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR48</name> - <description>CSR48</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR49</name> - <displayName>CSR49</displayName> - <description>context swap registers</description> - <addressOffset>0x1BC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR49</name> - <description>CSR49</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR50</name> - <displayName>CSR50</displayName> - <description>context swap registers</description> - <addressOffset>0x1C0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR50</name> - <description>CSR50</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR51</name> - <displayName>CSR51</displayName> - <description>context swap registers</description> - <addressOffset>0x1C4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR51</name> - <description>CSR51</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR52</name> - <displayName>CSR52</displayName> - <description>context swap registers</description> - <addressOffset>0x1C8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR52</name> - <description>CSR52</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR53</name> - <displayName>CSR53</displayName> - <description>context swap registers</description> - <addressOffset>0x1CC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSR53</name> - <description>CSR53</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>HASH_HR0</name> - <displayName>HASH_HR0</displayName> - <description>HASH digest register</description> - <addressOffset>0x310</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H0</name> - <description>H0</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>HASH_HR1</name> - <displayName>HASH_HR1</displayName> - <description>read-only</description> - <addressOffset>0x314</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H1</name> - <description>H1</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>HASH_HR2</name> - <displayName>HASH_HR2</displayName> - <description>read-only</description> - <addressOffset>0x318</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H2</name> - <description>H2</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>HASH_HR3</name> - <displayName>HASH_HR3</displayName> - <description>read-only</description> - <addressOffset>0x31C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H3</name> - <description>H3</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>HASH_HR4</name> - <displayName>HASH_HR4</displayName> - <description>read-only</description> - <addressOffset>0x320</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H4</name> - <description>H4</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>HASH_HR5</name> - <displayName>HASH_HR5</displayName> - <description>read-only</description> - <addressOffset>0x324</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H5</name> - <description>H5</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>HASH_HR6</name> - <displayName>HASH_HR6</displayName> - <description>read-only</description> - <addressOffset>0x328</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H6</name> - <description>H6</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>HASH_HR7</name> - <displayName>HASH_HR7</displayName> - <description>read-only</description> - <addressOffset>0x32C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>H7</name> - <description>H7</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>CRYP</name> - <description>Cryptographic processor</description> - <groupName>CRYP</groupName> - <baseAddress>0x50060000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>CRYP</name> - <description>CRYP crypto global interrupt</description> - <value>79</value> - </interrupt> - <registers> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ALGODIR</name> - <description>Algorithm direction</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ALGOMODE0</name> - <description>Algorithm mode</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DATATYPE</name> - <description>Data type selection</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>KEYSIZE</name> - <description>Key size selection (AES mode only)</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FFLUSH</name> - <description>FIFO flush</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CRYPEN</name> - <description>Cryptographic processor enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>GCM_CCMPH</name> - <description>GCM_CCMPH</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ALGOMODE3</name> - <description>ALGOMODE</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000003</resetValue> - <fields> - <field> - <name>BUSY</name> - <description>Busy bit</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OFFU</name> - <description>Output FIFO full</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OFNE</name> - <description>Output FIFO not empty</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IFNF</name> - <description>Input FIFO not full</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IFEM</name> - <description>Input FIFO empty</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DIN</name> - <displayName>DIN</displayName> - <description>data input register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATAIN</name> - <description>Data input</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>DOUT</name> - <displayName>DOUT</displayName> - <description>data output register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATAOUT</name> - <description>Data output</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMACR</name> - <displayName>DMACR</displayName> - <description>DMA control register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DOEN</name> - <description>DMA output enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DIEN</name> - <description>DMA input enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>IMSCR</name> - <displayName>IMSCR</displayName> - <description>interrupt mask set/clear register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OUTIM</name> - <description>Output FIFO service interrupt mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>INIM</name> - <description>Input FIFO service interrupt mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>RISR</name> - <displayName>RISR</displayName> - <description>raw interrupt status register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000001</resetValue> - <fields> - <field> - <name>OUTRIS</name> - <description>Output FIFO service raw interrupt status</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>INRIS</name> - <description>Input FIFO service raw interrupt status</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MISR</name> - <displayName>MISR</displayName> - <description>masked interrupt status register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OUTMIS</name> - <description>Output FIFO service masked interrupt status</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>INMIS</name> - <description>Input FIFO service masked interrupt status</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>K0LR</name> - <displayName>K0LR</displayName> - <description>key registers</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>b224</name> - <description>b224</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b225</name> - <description>b225</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b226</name> - <description>b226</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b227</name> - <description>b227</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b228</name> - <description>b228</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b229</name> - <description>b229</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b230</name> - <description>b230</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b231</name> - <description>b231</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b232</name> - <description>b232</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b233</name> - <description>b233</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b234</name> - <description>b234</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b235</name> - <description>b235</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b236</name> - <description>b236</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b237</name> - <description>b237</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b238</name> - <description>b238</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b239</name> - <description>b239</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b240</name> - <description>b240</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b241</name> - <description>b241</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b242</name> - <description>b242</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b243</name> - <description>b243</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b244</name> - <description>b244</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b245</name> - <description>b245</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b246</name> - <description>b246</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b247</name> - <description>b247</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b248</name> - <description>b248</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b249</name> - <description>b249</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b250</name> - <description>b250</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b251</name> - <description>b251</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b252</name> - <description>b252</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b253</name> - <description>b253</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b254</name> - <description>b254</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b255</name> - <description>b255</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>K0RR</name> - <displayName>K0RR</displayName> - <description>key registers</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>b192</name> - <description>b192</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b193</name> - <description>b193</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b194</name> - <description>b194</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b195</name> - <description>b195</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b196</name> - <description>b196</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b197</name> - <description>b197</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b198</name> - <description>b198</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b199</name> - <description>b199</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b200</name> - <description>b200</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b201</name> - <description>b201</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b202</name> - <description>b202</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b203</name> - <description>b203</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b204</name> - <description>b204</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b205</name> - <description>b205</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b206</name> - <description>b206</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b207</name> - <description>b207</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b208</name> - <description>b208</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b209</name> - <description>b209</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b210</name> - <description>b210</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b211</name> - <description>b211</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b212</name> - <description>b212</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b213</name> - <description>b213</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b214</name> - <description>b214</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b215</name> - <description>b215</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b216</name> - <description>b216</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b217</name> - <description>b217</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b218</name> - <description>b218</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b219</name> - <description>b219</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b220</name> - <description>b220</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b221</name> - <description>b221</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b222</name> - <description>b222</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b223</name> - <description>b223</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>K1LR</name> - <displayName>K1LR</displayName> - <description>key registers</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>b160</name> - <description>b160</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b161</name> - <description>b161</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b162</name> - <description>b162</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b163</name> - <description>b163</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b164</name> - <description>b164</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b165</name> - <description>b165</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b166</name> - <description>b166</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b167</name> - <description>b167</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b168</name> - <description>b168</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b169</name> - <description>b169</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b170</name> - <description>b170</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b171</name> - <description>b171</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b172</name> - <description>b172</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b173</name> - <description>b173</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b174</name> - <description>b174</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b175</name> - <description>b175</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b176</name> - <description>b176</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b177</name> - <description>b177</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b178</name> - <description>b178</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b179</name> - <description>b179</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b180</name> - <description>b180</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b181</name> - <description>b181</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b182</name> - <description>b182</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b183</name> - <description>b183</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b184</name> - <description>b184</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b185</name> - <description>b185</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b186</name> - <description>b186</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b187</name> - <description>b187</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b188</name> - <description>b188</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b189</name> - <description>b189</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b190</name> - <description>b190</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b191</name> - <description>b191</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>K1RR</name> - <displayName>K1RR</displayName> - <description>key registers</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>b128</name> - <description>b128</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b129</name> - <description>b129</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b130</name> - <description>b130</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b131</name> - <description>b131</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b132</name> - <description>b132</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b133</name> - <description>b133</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b134</name> - <description>b134</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b135</name> - <description>b135</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b136</name> - <description>b136</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b137</name> - <description>b137</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b138</name> - <description>b138</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b139</name> - <description>b139</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b140</name> - <description>b140</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b141</name> - <description>b141</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b142</name> - <description>b142</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b143</name> - <description>b143</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b144</name> - <description>b144</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b145</name> - <description>b145</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b146</name> - <description>b146</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b147</name> - <description>b147</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b148</name> - <description>b148</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b149</name> - <description>b149</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b150</name> - <description>b150</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b151</name> - <description>b151</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b152</name> - <description>b152</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b153</name> - <description>b153</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b154</name> - <description>b154</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b155</name> - <description>b155</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b156</name> - <description>b156</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b157</name> - <description>b157</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b158</name> - <description>b158</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b159</name> - <description>b159</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>K2LR</name> - <displayName>K2LR</displayName> - <description>key registers</description> - <addressOffset>0x30</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>b96</name> - <description>b96</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b97</name> - <description>b97</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b98</name> - <description>b98</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b99</name> - <description>b99</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b100</name> - <description>b100</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b101</name> - <description>b101</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b102</name> - <description>b102</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b103</name> - <description>b103</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b104</name> - <description>b104</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b105</name> - <description>b105</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b106</name> - <description>b106</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b107</name> - <description>b107</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b108</name> - <description>b108</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b109</name> - <description>b109</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b110</name> - <description>b110</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b111</name> - <description>b111</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b112</name> - <description>b112</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b113</name> - <description>b113</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b114</name> - <description>b114</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b115</name> - <description>b115</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b116</name> - <description>b116</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b117</name> - <description>b117</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b118</name> - <description>b118</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b119</name> - <description>b119</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b120</name> - <description>b120</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b121</name> - <description>b121</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b122</name> - <description>b122</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b123</name> - <description>b123</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b124</name> - <description>b124</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b125</name> - <description>b125</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b126</name> - <description>b126</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b127</name> - <description>b127</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>K2RR</name> - <displayName>K2RR</displayName> - <description>key registers</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>b64</name> - <description>b64</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b65</name> - <description>b65</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b66</name> - <description>b66</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b67</name> - <description>b67</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b68</name> - <description>b68</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b69</name> - <description>b69</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b70</name> - <description>b70</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b71</name> - <description>b71</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b72</name> - <description>b72</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b73</name> - <description>b73</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b74</name> - <description>b74</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b75</name> - <description>b75</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b76</name> - <description>b76</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b77</name> - <description>b77</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b78</name> - <description>b78</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b79</name> - <description>b79</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b80</name> - <description>b80</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b81</name> - <description>b81</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b82</name> - <description>b82</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b83</name> - <description>b83</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b84</name> - <description>b84</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b85</name> - <description>b85</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b86</name> - <description>b86</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b87</name> - <description>b87</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b88</name> - <description>b88</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b89</name> - <description>b89</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b90</name> - <description>b90</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b91</name> - <description>b91</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b92</name> - <description>b92</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b93</name> - <description>b93</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b94</name> - <description>b94</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b95</name> - <description>b95</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>K3LR</name> - <displayName>K3LR</displayName> - <description>key registers</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>b32</name> - <description>b32</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b33</name> - <description>b33</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b34</name> - <description>b34</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b35</name> - <description>b35</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b36</name> - <description>b36</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b37</name> - <description>b37</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b38</name> - <description>b38</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b39</name> - <description>b39</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b40</name> - <description>b40</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b41</name> - <description>b41</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b42</name> - <description>b42</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b43</name> - <description>b43</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b44</name> - <description>b44</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b45</name> - <description>b45</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b46</name> - <description>b46</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b47</name> - <description>b47</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b48</name> - <description>b48</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b49</name> - <description>b49</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b50</name> - <description>b50</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b51</name> - <description>b51</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b52</name> - <description>b52</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b53</name> - <description>b53</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b54</name> - <description>b54</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b55</name> - <description>b55</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b56</name> - <description>b56</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b57</name> - <description>b57</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b58</name> - <description>b58</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b59</name> - <description>b59</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b60</name> - <description>b60</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b61</name> - <description>b61</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b62</name> - <description>b62</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b63</name> - <description>b63</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>K3RR</name> - <displayName>K3RR</displayName> - <description>key registers</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>b0</name> - <description>b0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b1</name> - <description>b1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b2</name> - <description>b2</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b3</name> - <description>b3</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b4</name> - <description>b4</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b5</name> - <description>b5</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b6</name> - <description>b6</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b7</name> - <description>b7</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b8</name> - <description>b8</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b9</name> - <description>b9</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b10</name> - <description>b10</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b11</name> - <description>b11</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b12</name> - <description>b12</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b13</name> - <description>b13</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b14</name> - <description>b14</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b15</name> - <description>b15</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b16</name> - <description>b16</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b17</name> - <description>b17</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b18</name> - <description>b18</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b19</name> - <description>b19</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b20</name> - <description>b20</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b21</name> - <description>b21</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b22</name> - <description>b22</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b23</name> - <description>b23</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b24</name> - <description>b24</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b25</name> - <description>b25</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b26</name> - <description>b26</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b27</name> - <description>b27</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b28</name> - <description>b28</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b29</name> - <description>b29</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b30</name> - <description>b30</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>b31</name> - <description>b31</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>IV0LR</name> - <displayName>IV0LR</displayName> - <description>initialization vector registers</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IV31</name> - <description>IV31</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV30</name> - <description>IV30</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV29</name> - <description>IV29</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV28</name> - <description>IV28</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV27</name> - <description>IV27</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV26</name> - <description>IV26</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV25</name> - <description>IV25</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV24</name> - <description>IV24</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV23</name> - <description>IV23</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV22</name> - <description>IV22</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV21</name> - <description>IV21</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV20</name> - <description>IV20</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV19</name> - <description>IV19</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV18</name> - <description>IV18</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV17</name> - <description>IV17</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV16</name> - <description>IV16</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV15</name> - <description>IV15</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV14</name> - <description>IV14</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV13</name> - <description>IV13</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV12</name> - <description>IV12</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV11</name> - <description>IV11</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV10</name> - <description>IV10</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV9</name> - <description>IV9</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV8</name> - <description>IV8</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV7</name> - <description>IV7</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV6</name> - <description>IV6</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV5</name> - <description>IV5</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV4</name> - <description>IV4</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV3</name> - <description>IV3</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV2</name> - <description>IV2</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV1</name> - <description>IV1</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV0</name> - <description>IV0</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>IV0RR</name> - <displayName>IV0RR</displayName> - <description>initialization vector registers</description> - <addressOffset>0x44</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IV63</name> - <description>IV63</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV62</name> - <description>IV62</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV61</name> - <description>IV61</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV60</name> - <description>IV60</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV59</name> - <description>IV59</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV58</name> - <description>IV58</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV57</name> - <description>IV57</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV56</name> - <description>IV56</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV55</name> - <description>IV55</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV54</name> - <description>IV54</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV53</name> - <description>IV53</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV52</name> - <description>IV52</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV51</name> - <description>IV51</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV50</name> - <description>IV50</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV49</name> - <description>IV49</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV48</name> - <description>IV48</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV47</name> - <description>IV47</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV46</name> - <description>IV46</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV45</name> - <description>IV45</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV44</name> - <description>IV44</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV43</name> - <description>IV43</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV42</name> - <description>IV42</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV41</name> - <description>IV41</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV40</name> - <description>IV40</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV39</name> - <description>IV39</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV38</name> - <description>IV38</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV37</name> - <description>IV37</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV36</name> - <description>IV36</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV35</name> - <description>IV35</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV34</name> - <description>IV34</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV33</name> - <description>IV33</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV32</name> - <description>IV32</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>IV1LR</name> - <displayName>IV1LR</displayName> - <description>initialization vector registers</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IV95</name> - <description>IV95</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV94</name> - <description>IV94</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV93</name> - <description>IV93</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV92</name> - <description>IV92</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV91</name> - <description>IV91</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV90</name> - <description>IV90</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV89</name> - <description>IV89</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV88</name> - <description>IV88</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV87</name> - <description>IV87</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV86</name> - <description>IV86</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV85</name> - <description>IV85</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV84</name> - <description>IV84</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV83</name> - <description>IV83</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV82</name> - <description>IV82</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV81</name> - <description>IV81</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV80</name> - <description>IV80</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV79</name> - <description>IV79</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV78</name> - <description>IV78</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV77</name> - <description>IV77</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV76</name> - <description>IV76</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV75</name> - <description>IV75</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV74</name> - <description>IV74</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV73</name> - <description>IV73</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV72</name> - <description>IV72</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV71</name> - <description>IV71</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV70</name> - <description>IV70</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV69</name> - <description>IV69</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV68</name> - <description>IV68</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV67</name> - <description>IV67</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV66</name> - <description>IV66</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV65</name> - <description>IV65</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV64</name> - <description>IV64</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>IV1RR</name> - <displayName>IV1RR</displayName> - <description>initialization vector registers</description> - <addressOffset>0x4C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IV127</name> - <description>IV127</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV126</name> - <description>IV126</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV125</name> - <description>IV125</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV124</name> - <description>IV124</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV123</name> - <description>IV123</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV122</name> - <description>IV122</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV121</name> - <description>IV121</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV120</name> - <description>IV120</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV119</name> - <description>IV119</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV118</name> - <description>IV118</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV117</name> - <description>IV117</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV116</name> - <description>IV116</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV115</name> - <description>IV115</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV114</name> - <description>IV114</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV113</name> - <description>IV113</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV112</name> - <description>IV112</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV111</name> - <description>IV111</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV110</name> - <description>IV110</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV109</name> - <description>IV109</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV108</name> - <description>IV108</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV107</name> - <description>IV107</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV106</name> - <description>IV106</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV105</name> - <description>IV105</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV104</name> - <description>IV104</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV103</name> - <description>IV103</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV102</name> - <description>IV102</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV101</name> - <description>IV101</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV100</name> - <description>IV100</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV99</name> - <description>IV99</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV98</name> - <description>IV98</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV97</name> - <description>IV97</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IV96</name> - <description>IV96</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCMCCM0R</name> - <displayName>CSGCMCCM0R</displayName> - <description>context swap register</description> - <addressOffset>0x50</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCMCCM0R</name> - <description>CSGCMCCM0R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCMCCM1R</name> - <displayName>CSGCMCCM1R</displayName> - <description>context swap register</description> - <addressOffset>0x54</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCMCCM1R</name> - <description>CSGCMCCM1R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCMCCM2R</name> - <displayName>CSGCMCCM2R</displayName> - <description>context swap register</description> - <addressOffset>0x58</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCMCCM2R</name> - <description>CSGCMCCM2R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCMCCM3R</name> - <displayName>CSGCMCCM3R</displayName> - <description>context swap register</description> - <addressOffset>0x5C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCMCCM3R</name> - <description>CSGCMCCM3R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCMCCM4R</name> - <displayName>CSGCMCCM4R</displayName> - <description>context swap register</description> - <addressOffset>0x60</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCMCCM4R</name> - <description>CSGCMCCM4R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCMCCM5R</name> - <displayName>CSGCMCCM5R</displayName> - <description>context swap register</description> - <addressOffset>0x64</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCMCCM5R</name> - <description>CSGCMCCM5R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCMCCM6R</name> - <displayName>CSGCMCCM6R</displayName> - <description>context swap register</description> - <addressOffset>0x68</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCMCCM6R</name> - <description>CSGCMCCM6R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCMCCM7R</name> - <displayName>CSGCMCCM7R</displayName> - <description>context swap register</description> - <addressOffset>0x6C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCMCCM7R</name> - <description>CSGCMCCM7R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCM0R</name> - <displayName>CSGCM0R</displayName> - <description>context swap register</description> - <addressOffset>0x70</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCM0R</name> - <description>CSGCM0R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCM1R</name> - <displayName>CSGCM1R</displayName> - <description>context swap register</description> - <addressOffset>0x74</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCM1R</name> - <description>CSGCM1R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCM2R</name> - <displayName>CSGCM2R</displayName> - <description>context swap register</description> - <addressOffset>0x78</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCM2R</name> - <description>CSGCM2R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCM3R</name> - <displayName>CSGCM3R</displayName> - <description>context swap register</description> - <addressOffset>0x7C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCM3R</name> - <description>CSGCM3R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCM4R</name> - <displayName>CSGCM4R</displayName> - <description>context swap register</description> - <addressOffset>0x80</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCM4R</name> - <description>CSGCM4R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCM5R</name> - <displayName>CSGCM5R</displayName> - <description>context swap register</description> - <addressOffset>0x84</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCM5R</name> - <description>CSGCM5R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCM6R</name> - <displayName>CSGCM6R</displayName> - <description>context swap register</description> - <addressOffset>0x88</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCM6R</name> - <description>CSGCM6R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSGCM7R</name> - <displayName>CSGCM7R</displayName> - <description>context swap register</description> - <addressOffset>0x8C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSGCM7R</name> - <description>CSGCM7R</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>DCMI</name> - <description>Digital camera interface</description> - <groupName>DCMI</groupName> - <baseAddress>0x50050000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>DCMI</name> - <description>DCMI global interrupt</description> - <value>78</value> - </interrupt> - <registers> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>ENABLE</name> - <description>DCMI enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EDM</name> - <description>Extended data mode</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>FCRC</name> - <description>Frame capture rate control</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>VSPOL</name> - <description>Vertical synchronization polarity</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HSPOL</name> - <description>Horizontal synchronization polarity</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PCKPOL</name> - <description>Pixel clock polarity</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ESS</name> - <description>Embedded synchronization select</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JPEG</name> - <description>JPEG format</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CROP</name> - <description>Crop feature</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CM</name> - <description>Capture mode</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAPTURE</name> - <description>Capture enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>FNE</name> - <description>FIFO not empty</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VSYNC</name> - <description>VSYNC</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HSYNC</name> - <description>HSYNC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>RIS</name> - <displayName>RIS</displayName> - <description>raw interrupt status register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>LINE_RIS</name> - <description>Line raw interrupt status</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VSYNC_RIS</name> - <description>VSYNC raw interrupt status</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ERR_RIS</name> - <description>Synchronization error raw interrupt status</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVR_RIS</name> - <description>Overrun raw interrupt status</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRAME_RIS</name> - <description>Capture complete raw interrupt status</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>IER</name> - <displayName>IER</displayName> - <description>interrupt enable register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>LINE_IE</name> - <description>Line interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VSYNC_IE</name> - <description>VSYNC interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ERR_IE</name> - <description>Synchronization error interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVR_IE</name> - <description>Overrun interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRAME_IE</name> - <description>Capture complete interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MIS</name> - <displayName>MIS</displayName> - <description>masked interrupt status register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>LINE_MIS</name> - <description>Line masked interrupt status</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VSYNC_MIS</name> - <description>VSYNC masked interrupt status</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ERR_MIS</name> - <description>Synchronization error masked interrupt status</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVR_MIS</name> - <description>Overrun masked interrupt status</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRAME_MIS</name> - <description>Capture complete masked interrupt status</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ICR</name> - <displayName>ICR</displayName> - <description>interrupt clear register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>LINE_ISC</name> - <description>line interrupt status clear</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VSYNC_ISC</name> - <description>Vertical synch interrupt status clear</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ERR_ISC</name> - <description>Synchronization error interrupt status clear</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVR_ISC</name> - <description>Overrun interrupt status clear</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRAME_ISC</name> - <description>Capture complete interrupt status clear</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ESCR</name> - <displayName>ESCR</displayName> - <description>embedded synchronization code register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>FEC</name> - <description>Frame end delimiter code</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>LEC</name> - <description>Line end delimiter code</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>LSC</name> - <description>Line start delimiter code</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>FSC</name> - <description>Frame start delimiter code</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>ESUR</name> - <displayName>ESUR</displayName> - <description>embedded synchronization unmask register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>FEU</name> - <description>Frame end delimiter unmask</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>LEU</name> - <description>Line end delimiter unmask</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>LSU</name> - <description>Line start delimiter unmask</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>FSU</name> - <description>Frame start delimiter unmask</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>CWSTRT</name> - <displayName>CWSTRT</displayName> - <description>crop window start</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>VST</name> - <description>Vertical start line count</description> - <bitOffset>16</bitOffset> - <bitWidth>13</bitWidth> - </field> - <field> - <name>HOFFCNT</name> - <description>Horizontal offset count</description> - <bitOffset>0</bitOffset> - <bitWidth>14</bitWidth> - </field> - </fields> - </register> - <register> - <name>CWSIZE</name> - <displayName>CWSIZE</displayName> - <description>crop window size</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>VLINE</name> - <description>Vertical line count</description> - <bitOffset>16</bitOffset> - <bitWidth>14</bitWidth> - </field> - <field> - <name>CAPCNT</name> - <description>Capture count</description> - <bitOffset>0</bitOffset> - <bitWidth>14</bitWidth> - </field> - </fields> - </register> - <register> - <name>DR</name> - <displayName>DR</displayName> - <description>data register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>Byte3</name> - <description>Data byte 3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>Byte2</name> - <description>Data byte 2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>Byte1</name> - <description>Data byte 1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>Byte0</name> - <description>Data byte 0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>FMC</name> - <description>Flexible memory controller</description> - <groupName>FSMC</groupName> - <baseAddress>0xA0000000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x1000</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>FMC</name> - <description>FMC global interrupt</description> - <value>48</value> - </interrupt> - <registers> - <register> - <name>BCR1</name> - <displayName>BCR1</displayName> - <description>SRAM/NOR-Flash chip-select control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x000030D0</resetValue> - <fields> - <field> - <name>CCLKEN</name> - <description>CCLKEN</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CBURSTRW</name> - <description>CBURSTRW</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ASYNCWAIT</name> - <description>ASYNCWAIT</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EXTMOD</name> - <description>EXTMOD</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITEN</name> - <description>WAITEN</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WREN</name> - <description>WREN</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITCFG</name> - <description>WAITCFG</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITPOL</name> - <description>WAITPOL</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BURSTEN</name> - <description>BURSTEN</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACCEN</name> - <description>FACCEN</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MWID</name> - <description>MWID</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MTYP</name> - <description>MTYP</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MUXEN</name> - <description>MUXEN</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MBKEN</name> - <description>MBKEN</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BTR1</name> - <displayName>BTR1</displayName> - <description>SRAM/NOR-Flash chip-select timing register 1</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xFFFFFFFF</resetValue> - <fields> - <field> - <name>ACCMOD</name> - <description>ACCMOD</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DATLAT</name> - <description>DATLAT</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>CLKDIV</name> - <description>CLKDIV</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BUSTURN</name> - <description>BUSTURN</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DATAST</name> - <description>DATAST</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>ADDHLD</name> - <description>ADDHLD</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ADDSET</name> - <description>ADDSET</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>BCR2</name> - <displayName>BCR2</displayName> - <description>SRAM/NOR-Flash chip-select control register 2</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x000030D0</resetValue> - <fields> - <field> - <name>CBURSTRW</name> - <description>CBURSTRW</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ASYNCWAIT</name> - <description>ASYNCWAIT</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EXTMOD</name> - <description>EXTMOD</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITEN</name> - <description>WAITEN</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WREN</name> - <description>WREN</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITCFG</name> - <description>WAITCFG</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WRAPMOD</name> - <description>WRAPMOD</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITPOL</name> - <description>WAITPOL</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BURSTEN</name> - <description>BURSTEN</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACCEN</name> - <description>FACCEN</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MWID</name> - <description>MWID</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MTYP</name> - <description>MTYP</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MUXEN</name> - <description>MUXEN</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MBKEN</name> - <description>MBKEN</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BTR2</name> - <displayName>BTR2</displayName> - <description>SRAM/NOR-Flash chip-select timing register 2</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xFFFFFFFF</resetValue> - <fields> - <field> - <name>ACCMOD</name> - <description>ACCMOD</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DATLAT</name> - <description>DATLAT</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>CLKDIV</name> - <description>CLKDIV</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BUSTURN</name> - <description>BUSTURN</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DATAST</name> - <description>DATAST</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>ADDHLD</name> - <description>ADDHLD</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ADDSET</name> - <description>ADDSET</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>BCR3</name> - <displayName>BCR3</displayName> - <description>SRAM/NOR-Flash chip-select control register 3</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x000030D0</resetValue> - <fields> - <field> - <name>CBURSTRW</name> - <description>CBURSTRW</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ASYNCWAIT</name> - <description>ASYNCWAIT</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EXTMOD</name> - <description>EXTMOD</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITEN</name> - <description>WAITEN</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WREN</name> - <description>WREN</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITCFG</name> - <description>WAITCFG</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WRAPMOD</name> - <description>WRAPMOD</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITPOL</name> - <description>WAITPOL</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BURSTEN</name> - <description>BURSTEN</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACCEN</name> - <description>FACCEN</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MWID</name> - <description>MWID</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MTYP</name> - <description>MTYP</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MUXEN</name> - <description>MUXEN</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MBKEN</name> - <description>MBKEN</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BTR3</name> - <displayName>BTR3</displayName> - <description>SRAM/NOR-Flash chip-select timing register 3</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xFFFFFFFF</resetValue> - <fields> - <field> - <name>ACCMOD</name> - <description>ACCMOD</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DATLAT</name> - <description>DATLAT</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>CLKDIV</name> - <description>CLKDIV</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BUSTURN</name> - <description>BUSTURN</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DATAST</name> - <description>DATAST</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>ADDHLD</name> - <description>ADDHLD</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ADDSET</name> - <description>ADDSET</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>BCR4</name> - <displayName>BCR4</displayName> - <description>SRAM/NOR-Flash chip-select control register 4</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x000030D0</resetValue> - <fields> - <field> - <name>CBURSTRW</name> - <description>CBURSTRW</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ASYNCWAIT</name> - <description>ASYNCWAIT</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EXTMOD</name> - <description>EXTMOD</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITEN</name> - <description>WAITEN</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WREN</name> - <description>WREN</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITCFG</name> - <description>WAITCFG</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WRAPMOD</name> - <description>WRAPMOD</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITPOL</name> - <description>WAITPOL</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BURSTEN</name> - <description>BURSTEN</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACCEN</name> - <description>FACCEN</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MWID</name> - <description>MWID</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MTYP</name> - <description>MTYP</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MUXEN</name> - <description>MUXEN</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MBKEN</name> - <description>MBKEN</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BTR4</name> - <displayName>BTR4</displayName> - <description>SRAM/NOR-Flash chip-select timing register 4</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xFFFFFFFF</resetValue> - <fields> - <field> - <name>ACCMOD</name> - <description>ACCMOD</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DATLAT</name> - <description>DATLAT</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>CLKDIV</name> - <description>CLKDIV</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BUSTURN</name> - <description>BUSTURN</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DATAST</name> - <description>DATAST</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>ADDHLD</name> - <description>ADDHLD</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ADDSET</name> - <description>ADDSET</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>PCR</name> - <displayName>PCR</displayName> - <description>PC Card/NAND Flash control register</description> - <addressOffset>0x80</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000018</resetValue> - <fields> - <field> - <name>ECCPS</name> - <description>ECCPS</description> - <bitOffset>17</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>TAR</name> - <description>TAR</description> - <bitOffset>13</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TCLR</name> - <description>TCLR</description> - <bitOffset>9</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ECCEN</name> - <description>ECCEN</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PWID</name> - <description>PWID</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PTYP</name> - <description>PTYP</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PBKEN</name> - <description>PBKEN</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PWAITEN</name> - <description>PWAITEN</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>FIFO status and interrupt register</description> - <addressOffset>0x84</addressOffset> - <size>0x20</size> - <resetValue>0x00000040</resetValue> - <fields> - <field> - <name>FEMPT</name> - <description>FEMPT</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>IFEN</name> - <description>IFEN</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ILEN</name> - <description>ILEN</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>IREN</name> - <description>IREN</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>IFS</name> - <description>IFS</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ILS</name> - <description>ILS</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>IRS</name> - <description>IRS</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>PMEM</name> - <displayName>PMEM</displayName> - <description>Common memory space timing register</description> - <addressOffset>0x88</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xFCFCFCFC</resetValue> - <fields> - <field> - <name>MEMHIZx</name> - <description>MEMHIZx</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>MEMHOLDx</name> - <description>MEMHOLDx</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>MEMWAITx</name> - <description>MEMWAITx</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>MEMSETx</name> - <description>MEMSETx</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>PATT</name> - <displayName>PATT</displayName> - <description>Attribute memory space timing register</description> - <addressOffset>0x8C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xFCFCFCFC</resetValue> - <fields> - <field> - <name>ATTHIZx</name> - <description>ATTHIZx</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>ATTHOLDx</name> - <description>ATTHOLDx</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>ATTWAITx</name> - <description>ATTWAITx</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>ATTSETx</name> - <description>ATTSETx</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>ECCR</name> - <displayName>ECCR</displayName> - <description>ECC result register</description> - <addressOffset>0x94</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ECCx</name> - <description>ECCx</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BWTR1</name> - <displayName>BWTR1</displayName> - <description>SRAM/NOR-Flash write timing registers 1</description> - <addressOffset>0x104</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0FFFFFFF</resetValue> - <fields> - <field> - <name>ACCMOD</name> - <description>ACCMOD</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DATLAT</name> - <description>DATLAT</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>CLKDIV</name> - <description>CLKDIV</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DATAST</name> - <description>DATAST</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>ADDHLD</name> - <description>ADDHLD</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ADDSET</name> - <description>ADDSET</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>BWTR2</name> - <displayName>BWTR2</displayName> - <description>SRAM/NOR-Flash write timing registers 2</description> - <addressOffset>0x10C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0FFFFFFF</resetValue> - <fields> - <field> - <name>ACCMOD</name> - <description>ACCMOD</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DATLAT</name> - <description>DATLAT</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>CLKDIV</name> - <description>CLKDIV</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DATAST</name> - <description>DATAST</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>ADDHLD</name> - <description>ADDHLD</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ADDSET</name> - <description>ADDSET</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>BWTR3</name> - <displayName>BWTR3</displayName> - <description>SRAM/NOR-Flash write timing registers 3</description> - <addressOffset>0x114</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0FFFFFFF</resetValue> - <fields> - <field> - <name>ACCMOD</name> - <description>ACCMOD</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DATLAT</name> - <description>DATLAT</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>CLKDIV</name> - <description>CLKDIV</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DATAST</name> - <description>DATAST</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>ADDHLD</name> - <description>ADDHLD</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ADDSET</name> - <description>ADDSET</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>BWTR4</name> - <displayName>BWTR4</displayName> - <description>SRAM/NOR-Flash write timing registers 4</description> - <addressOffset>0x11C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0FFFFFFF</resetValue> - <fields> - <field> - <name>ACCMOD</name> - <description>ACCMOD</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DATLAT</name> - <description>DATLAT</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>CLKDIV</name> - <description>CLKDIV</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DATAST</name> - <description>DATAST</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>ADDHLD</name> - <description>ADDHLD</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ADDSET</name> - <description>ADDSET</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>SDCR1</name> - <displayName>SDCR1</displayName> - <description>SDRAM Control Register 1</description> - <addressOffset>0x140</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x000002D0</resetValue> - <fields> - <field> - <name>NC</name> - <description>Number of column address bits</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>NR</name> - <description>Number of row address bits</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MWID</name> - <description>Memory data bus width</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>NB</name> - <description>Number of internal banks</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAS</name> - <description>CAS latency</description> - <bitOffset>7</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>WP</name> - <description>Write protection</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDCLK</name> - <description>SDRAM clock configuration</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>RBURST</name> - <description>Burst read</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RPIPE</name> - <description>Read pipe</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>SDCR2</name> - <displayName>SDCR2</displayName> - <description>SDRAM Control Register 2</description> - <addressOffset>0x144</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x000002D0</resetValue> - <fields> - <field> - <name>NC</name> - <description>Number of column address bits</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>NR</name> - <description>Number of row address bits</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MWID</name> - <description>Memory data bus width</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>NB</name> - <description>Number of internal banks</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAS</name> - <description>CAS latency</description> - <bitOffset>7</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>WP</name> - <description>Write protection</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDCLK</name> - <description>SDRAM clock configuration</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>RBURST</name> - <description>Burst read</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RPIPE</name> - <description>Read pipe</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>SDTR1</name> - <displayName>SDTR1</displayName> - <description>SDRAM Timing register 1</description> - <addressOffset>0x148</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0FFFFFFF</resetValue> - <fields> - <field> - <name>TMRD</name> - <description>Load Mode Register to Active</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TXSR</name> - <description>Exit self-refresh delay</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TRAS</name> - <description>Self refresh time</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TRC</name> - <description>Row cycle delay</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TWR</name> - <description>Recovery delay</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TRP</name> - <description>Row precharge delay</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TRCD</name> - <description>Row to column delay</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>SDTR2</name> - <displayName>SDTR2</displayName> - <description>SDRAM Timing register 2</description> - <addressOffset>0x14C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0FFFFFFF</resetValue> - <fields> - <field> - <name>TMRD</name> - <description>Load Mode Register to Active</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TXSR</name> - <description>Exit self-refresh delay</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TRAS</name> - <description>Self refresh time</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TRC</name> - <description>Row cycle delay</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TWR</name> - <description>Recovery delay</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TRP</name> - <description>Row precharge delay</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>TRCD</name> - <description>Row to column delay</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>SDCMR</name> - <displayName>SDCMR</displayName> - <description>SDRAM Command Mode register</description> - <addressOffset>0x150</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MODE</name> - <description>Command mode</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CTB2</name> - <description>Command target bank 2</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CTB1</name> - <description>Command target bank 1</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>NRFS</name> - <description>Number of Auto-refresh</description> - <bitOffset>5</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MRD</name> - <description>Mode Register definition</description> - <bitOffset>9</bitOffset> - <bitWidth>13</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>SDRTR</name> - <displayName>SDRTR</displayName> - <description>SDRAM Refresh Timer register</description> - <addressOffset>0x154</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CRE</name> - <description>Clear Refresh error flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>COUNT</name> - <description>Refresh Timer Count</description> - <bitOffset>1</bitOffset> - <bitWidth>13</bitWidth> - <access>read-write</access> - </field> - <field> - <name>REIE</name> - <description>RES Interrupt Enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>SDSR</name> - <displayName>SDSR</displayName> - <description>SDRAM Status register</description> - <addressOffset>0x158</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RE</name> - <description>Refresh error flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MODES1</name> - <description>Status Mode for Bank 1</description> - <bitOffset>1</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODES2</name> - <description>Status Mode for Bank 2</description> - <bitOffset>3</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>BUSY</name> - <description>Busy status</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>DBG</name> - <description>Debug support</description> - <groupName>DBG</groupName> - <baseAddress>0xE0042000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>DBGMCU_IDCODE</name> - <displayName>DBGMCU_IDCODE</displayName> - <description>IDCODE</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x10006411</resetValue> - <fields> - <field> - <name>DEV_ID</name> - <description>DEV_ID</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - <field> - <name>REV_ID</name> - <description>REV_ID</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>DBGMCU_CR</name> - <displayName>DBGMCU_CR</displayName> - <description>Control Register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DBG_SLEEP</name> - <description>DBG_SLEEP</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_STOP</name> - <description>DBG_STOP</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_STANDBY</name> - <description>DBG_STANDBY</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TRACE_IOEN</name> - <description>TRACE_IOEN</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TRACE_MODE</name> - <description>TRACE_MODE</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>DBGMCU_APB1_FZ</name> - <displayName>DBGMCU_APB1_FZ</displayName> - <description>Debug MCU APB1 Freeze registe</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DBG_TIM2_STOP</name> - <description>DBG_TIM2_STOP</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_TIM3_STOP</name> - <description>DBG_TIM3 _STOP</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_TIM4_STOP</name> - <description>DBG_TIM4_STOP</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_TIM5_STOP</name> - <description>DBG_TIM5_STOP</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_TIM6_STOP</name> - <description>DBG_TIM6_STOP</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_TIM7_STOP</name> - <description>DBG_TIM7_STOP</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_TIM12_STOP</name> - <description>DBG_TIM12_STOP</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_TIM13_STOP</name> - <description>DBG_TIM13_STOP</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_TIM14_STOP</name> - <description>DBG_TIM14_STOP</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_WWDG_STOP</name> - <description>DBG_WWDG_STOP</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_IWDEG_STOP</name> - <description>DBG_IWDEG_STOP</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_J2C1_SMBUS_TIMEOUT</name> - <description>DBG_J2C1_SMBUS_TIMEOUT</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_J2C2_SMBUS_TIMEOUT</name> - <description>DBG_J2C2_SMBUS_TIMEOUT</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_J2C3SMBUS_TIMEOUT</name> - <description>DBG_J2C3SMBUS_TIMEOUT</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_CAN1_STOP</name> - <description>DBG_CAN1_STOP</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_CAN2_STOP</name> - <description>DBG_CAN2_STOP</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DBGMCU_APB2_FZ</name> - <displayName>DBGMCU_APB2_FZ</displayName> - <description>Debug MCU APB2 Freeze registe</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DBG_TIM1_STOP</name> - <description>TIM1 counter stopped when core is halted</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_TIM8_STOP</name> - <description>TIM8 counter stopped when core is halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_TIM9_STOP</name> - <description>TIM9 counter stopped when core is halted</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_TIM10_STOP</name> - <description>TIM10 counter stopped when core is halted</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBG_TIM11_STOP</name> - <description>TIM11 counter stopped when core is halted</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>DMA2</name> - <description>DMA controller</description> - <groupName>DMA</groupName> - <baseAddress>0x40026400</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>DMA2_Stream0</name> - <description>DMA2 Stream0 global interrupt</description> - <value>56</value> - </interrupt> - <interrupt> - <name>DMA2_Stream1</name> - <description>DMA2 Stream1 global interrupt</description> - <value>57</value> - </interrupt> - <interrupt> - <name>DMA2_Stream2</name> - <description>DMA2 Stream2 global interrupt</description> - <value>58</value> - </interrupt> - <interrupt> - <name>DMA2_Stream3</name> - <description>DMA2 Stream3 global interrupt</description> - <value>59</value> - </interrupt> - <interrupt> - <name>DMA2_Stream4</name> - <description>DMA2 Stream4 global interrupt</description> - <value>60</value> - </interrupt> - <interrupt> - <name>DMA2_Stream5</name> - <description>DMA2 Stream5 global interrupt</description> - <value>68</value> - </interrupt> - <interrupt> - <name>DMA2_Stream6</name> - <description>DMA2 Stream6 global interrupt</description> - <value>69</value> - </interrupt> - <interrupt> - <name>DMA2_Stream7</name> - <description>DMA2 Stream7 global interrupt</description> - <value>70</value> - </interrupt> - <registers> - <register> - <name>LISR</name> - <displayName>LISR</displayName> - <description>low interrupt status register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TCIF3</name> - <description>Stream x transfer complete interrupt flag (x = 3..0)</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIF3</name> - <description>Stream x half transfer interrupt flag (x=3..0)</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIF3</name> - <description>Stream x transfer error interrupt flag (x=3..0)</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIF3</name> - <description>Stream x direct mode error interrupt flag (x=3..0)</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FEIF3</name> - <description>Stream x FIFO error interrupt flag (x=3..0)</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIF2</name> - <description>Stream x transfer complete interrupt flag (x = 3..0)</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIF2</name> - <description>Stream x half transfer interrupt flag (x=3..0)</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIF2</name> - <description>Stream x transfer error interrupt flag (x=3..0)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIF2</name> - <description>Stream x direct mode error interrupt flag (x=3..0)</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FEIF2</name> - <description>Stream x FIFO error interrupt flag (x=3..0)</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIF1</name> - <description>Stream x transfer complete interrupt flag (x = 3..0)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIF1</name> - <description>Stream x half transfer interrupt flag (x=3..0)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIF1</name> - <description>Stream x transfer error interrupt flag (x=3..0)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIF1</name> - <description>Stream x direct mode error interrupt flag (x=3..0)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FEIF1</name> - <description>Stream x FIFO error interrupt flag (x=3..0)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIF0</name> - <description>Stream x transfer complete interrupt flag (x = 3..0)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIF0</name> - <description>Stream x half transfer interrupt flag (x=3..0)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIF0</name> - <description>Stream x transfer error interrupt flag (x=3..0)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIF0</name> - <description>Stream x direct mode error interrupt flag (x=3..0)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FEIF0</name> - <description>Stream x FIFO error interrupt flag (x=3..0)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>HISR</name> - <displayName>HISR</displayName> - <description>high interrupt status register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TCIF7</name> - <description>Stream x transfer complete interrupt flag (x=7..4)</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIF7</name> - <description>Stream x half transfer interrupt flag (x=7..4)</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIF7</name> - <description>Stream x transfer error interrupt flag (x=7..4)</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIF7</name> - <description>Stream x direct mode error interrupt flag (x=7..4)</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FEIF7</name> - <description>Stream x FIFO error interrupt flag (x=7..4)</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIF6</name> - <description>Stream x transfer complete interrupt flag (x=7..4)</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIF6</name> - <description>Stream x half transfer interrupt flag (x=7..4)</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIF6</name> - <description>Stream x transfer error interrupt flag (x=7..4)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIF6</name> - <description>Stream x direct mode error interrupt flag (x=7..4)</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FEIF6</name> - <description>Stream x FIFO error interrupt flag (x=7..4)</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIF5</name> - <description>Stream x transfer complete interrupt flag (x=7..4)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIF5</name> - <description>Stream x half transfer interrupt flag (x=7..4)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIF5</name> - <description>Stream x transfer error interrupt flag (x=7..4)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIF5</name> - <description>Stream x direct mode error interrupt flag (x=7..4)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FEIF5</name> - <description>Stream x FIFO error interrupt flag (x=7..4)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIF4</name> - <description>Stream x transfer complete interrupt flag (x=7..4)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIF4</name> - <description>Stream x half transfer interrupt flag (x=7..4)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIF4</name> - <description>Stream x transfer error interrupt flag (x=7..4)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIF4</name> - <description>Stream x direct mode error interrupt flag (x=7..4)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FEIF4</name> - <description>Stream x FIFO error interrupt flag (x=7..4)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>LIFCR</name> - <displayName>LIFCR</displayName> - <description>low interrupt flag clear register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CTCIF3</name> - <description>Stream x clear transfer complete interrupt flag (x = 3..0)</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHTIF3</name> - <description>Stream x clear half transfer interrupt flag (x = 3..0)</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTEIF3</name> - <description>Stream x clear transfer error interrupt flag (x = 3..0)</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CDMEIF3</name> - <description>Stream x clear direct mode error interrupt flag (x = 3..0)</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CFEIF3</name> - <description>Stream x clear FIFO error interrupt flag (x = 3..0)</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTCIF2</name> - <description>Stream x clear transfer complete interrupt flag (x = 3..0)</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHTIF2</name> - <description>Stream x clear half transfer interrupt flag (x = 3..0)</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTEIF2</name> - <description>Stream x clear transfer error interrupt flag (x = 3..0)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CDMEIF2</name> - <description>Stream x clear direct mode error interrupt flag (x = 3..0)</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CFEIF2</name> - <description>Stream x clear FIFO error interrupt flag (x = 3..0)</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTCIF1</name> - <description>Stream x clear transfer complete interrupt flag (x = 3..0)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHTIF1</name> - <description>Stream x clear half transfer interrupt flag (x = 3..0)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTEIF1</name> - <description>Stream x clear transfer error interrupt flag (x = 3..0)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CDMEIF1</name> - <description>Stream x clear direct mode error interrupt flag (x = 3..0)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CFEIF1</name> - <description>Stream x clear FIFO error interrupt flag (x = 3..0)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTCIF0</name> - <description>Stream x clear transfer complete interrupt flag (x = 3..0)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHTIF0</name> - <description>Stream x clear half transfer interrupt flag (x = 3..0)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTEIF0</name> - <description>Stream x clear transfer error interrupt flag (x = 3..0)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CDMEIF0</name> - <description>Stream x clear direct mode error interrupt flag (x = 3..0)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CFEIF0</name> - <description>Stream x clear FIFO error interrupt flag (x = 3..0)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>HIFCR</name> - <displayName>HIFCR</displayName> - <description>high interrupt flag clear register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CTCIF7</name> - <description>Stream x clear transfer complete interrupt flag (x = 7..4)</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHTIF7</name> - <description>Stream x clear half transfer interrupt flag (x = 7..4)</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTEIF7</name> - <description>Stream x clear transfer error interrupt flag (x = 7..4)</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CDMEIF7</name> - <description>Stream x clear direct mode error interrupt flag (x = 7..4)</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CFEIF7</name> - <description>Stream x clear FIFO error interrupt flag (x = 7..4)</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTCIF6</name> - <description>Stream x clear transfer complete interrupt flag (x = 7..4)</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHTIF6</name> - <description>Stream x clear half transfer interrupt flag (x = 7..4)</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTEIF6</name> - <description>Stream x clear transfer error interrupt flag (x = 7..4)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CDMEIF6</name> - <description>Stream x clear direct mode error interrupt flag (x = 7..4)</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CFEIF6</name> - <description>Stream x clear FIFO error interrupt flag (x = 7..4)</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTCIF5</name> - <description>Stream x clear transfer complete interrupt flag (x = 7..4)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHTIF5</name> - <description>Stream x clear half transfer interrupt flag (x = 7..4)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTEIF5</name> - <description>Stream x clear transfer error interrupt flag (x = 7..4)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CDMEIF5</name> - <description>Stream x clear direct mode error interrupt flag (x = 7..4)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CFEIF5</name> - <description>Stream x clear FIFO error interrupt flag (x = 7..4)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTCIF4</name> - <description>Stream x clear transfer complete interrupt flag (x = 7..4)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHTIF4</name> - <description>Stream x clear half transfer interrupt flag (x = 7..4)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTEIF4</name> - <description>Stream x clear transfer error interrupt flag (x = 7..4)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CDMEIF4</name> - <description>Stream x clear direct mode error interrupt flag (x = 7..4)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CFEIF4</name> - <description>Stream x clear FIFO error interrupt flag (x = 7..4)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>S0CR</name> - <displayName>S0CR</displayName> - <description>stream x configuration register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CHSEL</name> - <description>Channel selection</description> - <bitOffset>25</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MBURST</name> - <description>Memory burst transfer configuration</description> - <bitOffset>23</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PBURST</name> - <description>Peripheral burst transfer configuration</description> - <bitOffset>21</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CT</name> - <description>Current target (only in double buffer mode)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBM</name> - <description>Double buffer mode</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PL</name> - <description>Priority level</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PINCOS</name> - <description>Peripheral increment offset size</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MSIZE</name> - <description>Memory data size</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PSIZE</name> - <description>Peripheral data size</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MINC</name> - <description>Memory increment mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PINC</name> - <description>Peripheral increment mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CIRC</name> - <description>Circular mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DIR</name> - <description>Data transfer direction</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PFCTRL</name> - <description>Peripheral flow controller</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIE</name> - <description>Transfer complete interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIE</name> - <description>Half transfer interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIE</name> - <description>Transfer error interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIE</name> - <description>Direct mode error interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EN</name> - <description>Stream enable / flag stream ready when read low</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>S0NDTR</name> - <displayName>S0NDTR</displayName> - <description>stream x number of data register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>NDT</name> - <description>Number of data items to transfer</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>S0PAR</name> - <displayName>S0PAR</displayName> - <description>stream x peripheral address register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PA</name> - <description>Peripheral address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S0M0AR</name> - <displayName>S0M0AR</displayName> - <description>stream x memory 0 address register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M0A</name> - <description>Memory 0 address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S0M1AR</name> - <displayName>S0M1AR</displayName> - <description>stream x memory 1 address register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M1A</name> - <description>Memory 1 address (used in case of Double buffer mode)</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S0FCR</name> - <displayName>S0FCR</displayName> - <description>stream x FIFO control register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <resetValue>0x00000021</resetValue> - <fields> - <field> - <name>FEIE</name> - <description>FIFO error interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FS</name> - <description>FIFO status</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DMDIS</name> - <description>Direct mode disable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FTH</name> - <description>FIFO threshold selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>S1CR</name> - <displayName>S1CR</displayName> - <description>stream x configuration register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CHSEL</name> - <description>Channel selection</description> - <bitOffset>25</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MBURST</name> - <description>Memory burst transfer configuration</description> - <bitOffset>23</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PBURST</name> - <description>Peripheral burst transfer configuration</description> - <bitOffset>21</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CT</name> - <description>Current target (only in double buffer mode)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBM</name> - <description>Double buffer mode</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PL</name> - <description>Priority level</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PINCOS</name> - <description>Peripheral increment offset size</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MSIZE</name> - <description>Memory data size</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PSIZE</name> - <description>Peripheral data size</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MINC</name> - <description>Memory increment mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PINC</name> - <description>Peripheral increment mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CIRC</name> - <description>Circular mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DIR</name> - <description>Data transfer direction</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PFCTRL</name> - <description>Peripheral flow controller</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIE</name> - <description>Transfer complete interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIE</name> - <description>Half transfer interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIE</name> - <description>Transfer error interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIE</name> - <description>Direct mode error interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EN</name> - <description>Stream enable / flag stream ready when read low</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>S1NDTR</name> - <displayName>S1NDTR</displayName> - <description>stream x number of data register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>NDT</name> - <description>Number of data items to transfer</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>S1PAR</name> - <displayName>S1PAR</displayName> - <description>stream x peripheral address register</description> - <addressOffset>0x30</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PA</name> - <description>Peripheral address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S1M0AR</name> - <displayName>S1M0AR</displayName> - <description>stream x memory 0 address register</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M0A</name> - <description>Memory 0 address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S1M1AR</name> - <displayName>S1M1AR</displayName> - <description>stream x memory 1 address register</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M1A</name> - <description>Memory 1 address (used in case of Double buffer mode)</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S1FCR</name> - <displayName>S1FCR</displayName> - <description>stream x FIFO control register</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <resetValue>0x00000021</resetValue> - <fields> - <field> - <name>FEIE</name> - <description>FIFO error interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FS</name> - <description>FIFO status</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DMDIS</name> - <description>Direct mode disable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FTH</name> - <description>FIFO threshold selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>S2CR</name> - <displayName>S2CR</displayName> - <description>stream x configuration register</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CHSEL</name> - <description>Channel selection</description> - <bitOffset>25</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MBURST</name> - <description>Memory burst transfer configuration</description> - <bitOffset>23</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PBURST</name> - <description>Peripheral burst transfer configuration</description> - <bitOffset>21</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CT</name> - <description>Current target (only in double buffer mode)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBM</name> - <description>Double buffer mode</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PL</name> - <description>Priority level</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PINCOS</name> - <description>Peripheral increment offset size</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MSIZE</name> - <description>Memory data size</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PSIZE</name> - <description>Peripheral data size</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MINC</name> - <description>Memory increment mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PINC</name> - <description>Peripheral increment mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CIRC</name> - <description>Circular mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DIR</name> - <description>Data transfer direction</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PFCTRL</name> - <description>Peripheral flow controller</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIE</name> - <description>Transfer complete interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIE</name> - <description>Half transfer interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIE</name> - <description>Transfer error interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIE</name> - <description>Direct mode error interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EN</name> - <description>Stream enable / flag stream ready when read low</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>S2NDTR</name> - <displayName>S2NDTR</displayName> - <description>stream x number of data register</description> - <addressOffset>0x44</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>NDT</name> - <description>Number of data items to transfer</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>S2PAR</name> - <displayName>S2PAR</displayName> - <description>stream x peripheral address register</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PA</name> - <description>Peripheral address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S2M0AR</name> - <displayName>S2M0AR</displayName> - <description>stream x memory 0 address register</description> - <addressOffset>0x4C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M0A</name> - <description>Memory 0 address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S2M1AR</name> - <displayName>S2M1AR</displayName> - <description>stream x memory 1 address register</description> - <addressOffset>0x50</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M1A</name> - <description>Memory 1 address (used in case of Double buffer mode)</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S2FCR</name> - <displayName>S2FCR</displayName> - <description>stream x FIFO control register</description> - <addressOffset>0x54</addressOffset> - <size>0x20</size> - <resetValue>0x00000021</resetValue> - <fields> - <field> - <name>FEIE</name> - <description>FIFO error interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FS</name> - <description>FIFO status</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DMDIS</name> - <description>Direct mode disable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FTH</name> - <description>FIFO threshold selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>S3CR</name> - <displayName>S3CR</displayName> - <description>stream x configuration register</description> - <addressOffset>0x58</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CHSEL</name> - <description>Channel selection</description> - <bitOffset>25</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MBURST</name> - <description>Memory burst transfer configuration</description> - <bitOffset>23</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PBURST</name> - <description>Peripheral burst transfer configuration</description> - <bitOffset>21</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CT</name> - <description>Current target (only in double buffer mode)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBM</name> - <description>Double buffer mode</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PL</name> - <description>Priority level</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PINCOS</name> - <description>Peripheral increment offset size</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MSIZE</name> - <description>Memory data size</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PSIZE</name> - <description>Peripheral data size</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MINC</name> - <description>Memory increment mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PINC</name> - <description>Peripheral increment mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CIRC</name> - <description>Circular mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DIR</name> - <description>Data transfer direction</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PFCTRL</name> - <description>Peripheral flow controller</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIE</name> - <description>Transfer complete interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIE</name> - <description>Half transfer interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIE</name> - <description>Transfer error interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIE</name> - <description>Direct mode error interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EN</name> - <description>Stream enable / flag stream ready when read low</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>S3NDTR</name> - <displayName>S3NDTR</displayName> - <description>stream x number of data register</description> - <addressOffset>0x5C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>NDT</name> - <description>Number of data items to transfer</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>S3PAR</name> - <displayName>S3PAR</displayName> - <description>stream x peripheral address register</description> - <addressOffset>0x60</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PA</name> - <description>Peripheral address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S3M0AR</name> - <displayName>S3M0AR</displayName> - <description>stream x memory 0 address register</description> - <addressOffset>0x64</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M0A</name> - <description>Memory 0 address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S3M1AR</name> - <displayName>S3M1AR</displayName> - <description>stream x memory 1 address register</description> - <addressOffset>0x68</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M1A</name> - <description>Memory 1 address (used in case of Double buffer mode)</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S3FCR</name> - <displayName>S3FCR</displayName> - <description>stream x FIFO control register</description> - <addressOffset>0x6C</addressOffset> - <size>0x20</size> - <resetValue>0x00000021</resetValue> - <fields> - <field> - <name>FEIE</name> - <description>FIFO error interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FS</name> - <description>FIFO status</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DMDIS</name> - <description>Direct mode disable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FTH</name> - <description>FIFO threshold selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>S4CR</name> - <displayName>S4CR</displayName> - <description>stream x configuration register</description> - <addressOffset>0x70</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CHSEL</name> - <description>Channel selection</description> - <bitOffset>25</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MBURST</name> - <description>Memory burst transfer configuration</description> - <bitOffset>23</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PBURST</name> - <description>Peripheral burst transfer configuration</description> - <bitOffset>21</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CT</name> - <description>Current target (only in double buffer mode)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBM</name> - <description>Double buffer mode</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PL</name> - <description>Priority level</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PINCOS</name> - <description>Peripheral increment offset size</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MSIZE</name> - <description>Memory data size</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PSIZE</name> - <description>Peripheral data size</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MINC</name> - <description>Memory increment mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PINC</name> - <description>Peripheral increment mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CIRC</name> - <description>Circular mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DIR</name> - <description>Data transfer direction</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PFCTRL</name> - <description>Peripheral flow controller</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIE</name> - <description>Transfer complete interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIE</name> - <description>Half transfer interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIE</name> - <description>Transfer error interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIE</name> - <description>Direct mode error interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EN</name> - <description>Stream enable / flag stream ready when read low</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>S4NDTR</name> - <displayName>S4NDTR</displayName> - <description>stream x number of data register</description> - <addressOffset>0x74</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>NDT</name> - <description>Number of data items to transfer</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>S4PAR</name> - <displayName>S4PAR</displayName> - <description>stream x peripheral address register</description> - <addressOffset>0x78</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PA</name> - <description>Peripheral address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S4M0AR</name> - <displayName>S4M0AR</displayName> - <description>stream x memory 0 address register</description> - <addressOffset>0x7C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M0A</name> - <description>Memory 0 address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S4M1AR</name> - <displayName>S4M1AR</displayName> - <description>stream x memory 1 address register</description> - <addressOffset>0x80</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M1A</name> - <description>Memory 1 address (used in case of Double buffer mode)</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S4FCR</name> - <displayName>S4FCR</displayName> - <description>stream x FIFO control register</description> - <addressOffset>0x84</addressOffset> - <size>0x20</size> - <resetValue>0x00000021</resetValue> - <fields> - <field> - <name>FEIE</name> - <description>FIFO error interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FS</name> - <description>FIFO status</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DMDIS</name> - <description>Direct mode disable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FTH</name> - <description>FIFO threshold selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>S5CR</name> - <displayName>S5CR</displayName> - <description>stream x configuration register</description> - <addressOffset>0x88</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CHSEL</name> - <description>Channel selection</description> - <bitOffset>25</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MBURST</name> - <description>Memory burst transfer configuration</description> - <bitOffset>23</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PBURST</name> - <description>Peripheral burst transfer configuration</description> - <bitOffset>21</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CT</name> - <description>Current target (only in double buffer mode)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBM</name> - <description>Double buffer mode</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PL</name> - <description>Priority level</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PINCOS</name> - <description>Peripheral increment offset size</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MSIZE</name> - <description>Memory data size</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PSIZE</name> - <description>Peripheral data size</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MINC</name> - <description>Memory increment mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PINC</name> - <description>Peripheral increment mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CIRC</name> - <description>Circular mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DIR</name> - <description>Data transfer direction</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PFCTRL</name> - <description>Peripheral flow controller</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIE</name> - <description>Transfer complete interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIE</name> - <description>Half transfer interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIE</name> - <description>Transfer error interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIE</name> - <description>Direct mode error interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EN</name> - <description>Stream enable / flag stream ready when read low</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>S5NDTR</name> - <displayName>S5NDTR</displayName> - <description>stream x number of data register</description> - <addressOffset>0x8C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>NDT</name> - <description>Number of data items to transfer</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>S5PAR</name> - <displayName>S5PAR</displayName> - <description>stream x peripheral address register</description> - <addressOffset>0x90</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PA</name> - <description>Peripheral address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S5M0AR</name> - <displayName>S5M0AR</displayName> - <description>stream x memory 0 address register</description> - <addressOffset>0x94</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M0A</name> - <description>Memory 0 address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S5M1AR</name> - <displayName>S5M1AR</displayName> - <description>stream x memory 1 address register</description> - <addressOffset>0x98</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M1A</name> - <description>Memory 1 address (used in case of Double buffer mode)</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S5FCR</name> - <displayName>S5FCR</displayName> - <description>stream x FIFO control register</description> - <addressOffset>0x9C</addressOffset> - <size>0x20</size> - <resetValue>0x00000021</resetValue> - <fields> - <field> - <name>FEIE</name> - <description>FIFO error interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FS</name> - <description>FIFO status</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DMDIS</name> - <description>Direct mode disable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FTH</name> - <description>FIFO threshold selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>S6CR</name> - <displayName>S6CR</displayName> - <description>stream x configuration register</description> - <addressOffset>0xA0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CHSEL</name> - <description>Channel selection</description> - <bitOffset>25</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MBURST</name> - <description>Memory burst transfer configuration</description> - <bitOffset>23</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PBURST</name> - <description>Peripheral burst transfer configuration</description> - <bitOffset>21</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CT</name> - <description>Current target (only in double buffer mode)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBM</name> - <description>Double buffer mode</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PL</name> - <description>Priority level</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PINCOS</name> - <description>Peripheral increment offset size</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MSIZE</name> - <description>Memory data size</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PSIZE</name> - <description>Peripheral data size</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MINC</name> - <description>Memory increment mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PINC</name> - <description>Peripheral increment mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CIRC</name> - <description>Circular mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DIR</name> - <description>Data transfer direction</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PFCTRL</name> - <description>Peripheral flow controller</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIE</name> - <description>Transfer complete interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIE</name> - <description>Half transfer interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIE</name> - <description>Transfer error interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIE</name> - <description>Direct mode error interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EN</name> - <description>Stream enable / flag stream ready when read low</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>S6NDTR</name> - <displayName>S6NDTR</displayName> - <description>stream x number of data register</description> - <addressOffset>0xA4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>NDT</name> - <description>Number of data items to transfer</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>S6PAR</name> - <displayName>S6PAR</displayName> - <description>stream x peripheral address register</description> - <addressOffset>0xA8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PA</name> - <description>Peripheral address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S6M0AR</name> - <displayName>S6M0AR</displayName> - <description>stream x memory 0 address register</description> - <addressOffset>0xAC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M0A</name> - <description>Memory 0 address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S6M1AR</name> - <displayName>S6M1AR</displayName> - <description>stream x memory 1 address register</description> - <addressOffset>0xB0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M1A</name> - <description>Memory 1 address (used in case of Double buffer mode)</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S6FCR</name> - <displayName>S6FCR</displayName> - <description>stream x FIFO control register</description> - <addressOffset>0xB4</addressOffset> - <size>0x20</size> - <resetValue>0x00000021</resetValue> - <fields> - <field> - <name>FEIE</name> - <description>FIFO error interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FS</name> - <description>FIFO status</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DMDIS</name> - <description>Direct mode disable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FTH</name> - <description>FIFO threshold selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>S7CR</name> - <displayName>S7CR</displayName> - <description>stream x configuration register</description> - <addressOffset>0xB8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CHSEL</name> - <description>Channel selection</description> - <bitOffset>25</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MBURST</name> - <description>Memory burst transfer configuration</description> - <bitOffset>23</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PBURST</name> - <description>Peripheral burst transfer configuration</description> - <bitOffset>21</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CT</name> - <description>Current target (only in double buffer mode)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBM</name> - <description>Double buffer mode</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PL</name> - <description>Priority level</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PINCOS</name> - <description>Peripheral increment offset size</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MSIZE</name> - <description>Memory data size</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PSIZE</name> - <description>Peripheral data size</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MINC</name> - <description>Memory increment mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PINC</name> - <description>Peripheral increment mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CIRC</name> - <description>Circular mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DIR</name> - <description>Data transfer direction</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PFCTRL</name> - <description>Peripheral flow controller</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIE</name> - <description>Transfer complete interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HTIE</name> - <description>Half transfer interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIE</name> - <description>Transfer error interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMEIE</name> - <description>Direct mode error interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EN</name> - <description>Stream enable / flag stream ready when read low</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>S7NDTR</name> - <displayName>S7NDTR</displayName> - <description>stream x number of data register</description> - <addressOffset>0xBC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>NDT</name> - <description>Number of data items to transfer</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>S7PAR</name> - <displayName>S7PAR</displayName> - <description>stream x peripheral address register</description> - <addressOffset>0xC0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PA</name> - <description>Peripheral address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S7M0AR</name> - <displayName>S7M0AR</displayName> - <description>stream x memory 0 address register</description> - <addressOffset>0xC4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M0A</name> - <description>Memory 0 address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S7M1AR</name> - <displayName>S7M1AR</displayName> - <description>stream x memory 1 address register</description> - <addressOffset>0xC8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>M1A</name> - <description>Memory 1 address (used in case of Double buffer mode)</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>S7FCR</name> - <displayName>S7FCR</displayName> - <description>stream x FIFO control register</description> - <addressOffset>0xCC</addressOffset> - <size>0x20</size> - <resetValue>0x00000021</resetValue> - <fields> - <field> - <name>FEIE</name> - <description>FIFO error interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FS</name> - <description>FIFO status</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DMDIS</name> - <description>Direct mode disable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FTH</name> - <description>FIFO threshold selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="DMA2"> - <name>DMA1</name> - <baseAddress>0x40026000</baseAddress> - <interrupt> - <name>DMA1_Stream0</name> - <description>DMA1 Stream0 global interrupt</description> - <value>11</value> - </interrupt> - <interrupt> - <name>DMA1_Stream1</name> - <description>DMA1 Stream1 global interrupt</description> - <value>12</value> - </interrupt> - <interrupt> - <name>DMA1_Stream2</name> - <description>DMA1 Stream2 global interrupt</description> - <value>13</value> - </interrupt> - <interrupt> - <name>DMA1_Stream3</name> - <description>DMA1 Stream3 global interrupt</description> - <value>14</value> - </interrupt> - <interrupt> - <name>DMA1_Stream4</name> - <description>DMA1 Stream4 global interrupt</description> - <value>15</value> - </interrupt> - <interrupt> - <name>DMA1_Stream5</name> - <description>DMA1 Stream5 global interrupt</description> - <value>16</value> - </interrupt> - <interrupt> - <name>DMA1_Stream6</name> - <description>DMA1 Stream6 global interrupt</description> - <value>17</value> - </interrupt> - <interrupt> - <name>DMA1_Stream7</name> - <description>DMA1 Stream7 global interrupt</description> - <value>47</value> - </interrupt> - </peripheral> - <peripheral> - <name>RCC</name> - <description>Reset and clock control</description> - <groupName>RCC</groupName> - <baseAddress>0x40023800</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>RCC</name> - <description>RCC global interrupt</description> - <value>5</value> - </interrupt> - <registers> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>clock control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <resetValue>0x00000083</resetValue> - <fields> - <field> - <name>PLLI2SRDY</name> - <description>PLLI2S clock ready flag</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PLLI2SON</name> - <description>PLLI2S enable</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PLLRDY</name> - <description>Main PLL (PLL) clock ready flag</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PLLON</name> - <description>Main PLL (PLL) enable</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CSSON</name> - <description>Clock security system enable</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HSEBYP</name> - <description>HSE clock bypass</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HSERDY</name> - <description>HSE clock ready flag</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>HSEON</name> - <description>HSE clock enable</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HSICAL</name> - <description>Internal high-speed clock calibration</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - <access>read-only</access> - </field> - <field> - <name>HSITRIM</name> - <description>Internal high-speed clock trimming</description> - <bitOffset>3</bitOffset> - <bitWidth>5</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HSIRDY</name> - <description>Internal high-speed clock ready flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>HSION</name> - <description>Internal high-speed clock enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>PLLCFGR</name> - <displayName>PLLCFGR</displayName> - <description>PLL configuration register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x24003010</resetValue> - <fields> - <field> - <name>PLLQ3</name> - <description>Main PLL (PLL) division factor for USB OTG FS, SDIO and random number generator clocks</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLQ2</name> - <description>Main PLL (PLL) division factor for USB OTG FS, SDIO and random number generator clocks</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLQ1</name> - <description>Main PLL (PLL) division factor for USB OTG FS, SDIO and random number generator clocks</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLQ0</name> - <description>Main PLL (PLL) division factor for USB OTG FS, SDIO and random number generator clocks</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLSRC</name> - <description>Main PLL(PLL) and audio PLL (PLLI2S) entry clock source</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLP1</name> - <description>Main PLL (PLL) division factor for main system clock</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLP0</name> - <description>Main PLL (PLL) division factor for main system clock</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLN8</name> - <description>Main PLL (PLL) multiplication factor for VCO</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLN7</name> - <description>Main PLL (PLL) multiplication factor for VCO</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLN6</name> - <description>Main PLL (PLL) multiplication factor for VCO</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLN5</name> - <description>Main PLL (PLL) multiplication factor for VCO</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLN4</name> - <description>Main PLL (PLL) multiplication factor for VCO</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLN3</name> - <description>Main PLL (PLL) multiplication factor for VCO</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLN2</name> - <description>Main PLL (PLL) multiplication factor for VCO</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLN1</name> - <description>Main PLL (PLL) multiplication factor for VCO</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLN0</name> - <description>Main PLL (PLL) multiplication factor for VCO</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLM5</name> - <description>Division factor for the main PLL (PLL) and audio PLL (PLLI2S) input clock</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLM4</name> - <description>Division factor for the main PLL (PLL) and audio PLL (PLLI2S) input clock</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLM3</name> - <description>Division factor for the main PLL (PLL) and audio PLL (PLLI2S) input clock</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLM2</name> - <description>Division factor for the main PLL (PLL) and audio PLL (PLLI2S) input clock</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLM1</name> - <description>Division factor for the main PLL (PLL) and audio PLL (PLLI2S) input clock</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLLM0</name> - <description>Division factor for the main PLL (PLL) and audio PLL (PLLI2S) input clock</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CFGR</name> - <displayName>CFGR</displayName> - <description>clock configuration register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MCO2</name> - <description>Microcontroller clock output 2</description> - <bitOffset>30</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MCO2PRE</name> - <description>MCO2 prescaler</description> - <bitOffset>27</bitOffset> - <bitWidth>3</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MCO1PRE</name> - <description>MCO1 prescaler</description> - <bitOffset>24</bitOffset> - <bitWidth>3</bitWidth> - <access>read-write</access> - </field> - <field> - <name>I2SSRC</name> - <description>I2S clock selection</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MCO1</name> - <description>Microcontroller clock output 1</description> - <bitOffset>21</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RTCPRE</name> - <description>HSE division factor for RTC clock</description> - <bitOffset>16</bitOffset> - <bitWidth>5</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PPRE2</name> - <description>APB high-speed prescaler (APB2)</description> - <bitOffset>13</bitOffset> - <bitWidth>3</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PPRE1</name> - <description>APB Low speed prescaler (APB1)</description> - <bitOffset>10</bitOffset> - <bitWidth>3</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HPRE</name> - <description>AHB prescaler</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SWS1</name> - <description>System clock switch status</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SWS0</name> - <description>System clock switch status</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SW1</name> - <description>System clock switch</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SW0</name> - <description>System clock switch</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>CIR</name> - <displayName>CIR</displayName> - <description>clock interrupt register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CSSC</name> - <description>Clock security system interrupt clear</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>PLLSAIRDYC</name> - <description>PLLSAI Ready Interrupt Clear</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>PLLI2SRDYC</name> - <description>PLLI2S ready interrupt clear</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>PLLRDYC</name> - <description>Main PLL(PLL) ready interrupt clear</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>HSERDYC</name> - <description>HSE ready interrupt clear</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>HSIRDYC</name> - <description>HSI ready interrupt clear</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>LSERDYC</name> - <description>LSE ready interrupt clear</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>LSIRDYC</name> - <description>LSI ready interrupt clear</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>PLLSAIRDYIE</name> - <description>PLLSAI Ready Interrupt Enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PLLI2SRDYIE</name> - <description>PLLI2S ready interrupt enable</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PLLRDYIE</name> - <description>Main PLL (PLL) ready interrupt enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HSERDYIE</name> - <description>HSE ready interrupt enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HSIRDYIE</name> - <description>HSI ready interrupt enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LSERDYIE</name> - <description>LSE ready interrupt enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LSIRDYIE</name> - <description>LSI ready interrupt enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CSSF</name> - <description>Clock security system interrupt flag</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PLLSAIRDYF</name> - <description>PLLSAI ready interrupt flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PLLI2SRDYF</name> - <description>PLLI2S ready interrupt flag</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PLLRDYF</name> - <description>Main PLL (PLL) ready interrupt flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>HSERDYF</name> - <description>HSE ready interrupt flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>HSIRDYF</name> - <description>HSI ready interrupt flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>LSERDYF</name> - <description>LSE ready interrupt flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>LSIRDYF</name> - <description>LSI ready interrupt flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>AHB1RSTR</name> - <displayName>AHB1RSTR</displayName> - <description>AHB1 peripheral reset register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OTGHSRST</name> - <description>USB OTG HS module reset</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETHMACRST</name> - <description>Ethernet MAC reset</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMA2DRST</name> - <description>DMA2D reset</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMA2RST</name> - <description>DMA2 reset</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMA1RST</name> - <description>DMA2 reset</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CRCRST</name> - <description>CRC reset</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOKRST</name> - <description>IO port K reset</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOJRST</name> - <description>IO port J reset</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOIRST</name> - <description>IO port I reset</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOHRST</name> - <description>IO port H reset</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOGRST</name> - <description>IO port G reset</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOFRST</name> - <description>IO port F reset</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOERST</name> - <description>IO port E reset</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIODRST</name> - <description>IO port D reset</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOCRST</name> - <description>IO port C reset</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOBRST</name> - <description>IO port B reset</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOARST</name> - <description>IO port A reset</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>AHB2RSTR</name> - <displayName>AHB2RSTR</displayName> - <description>AHB2 peripheral reset register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OTGFSRST</name> - <description>USB OTG FS module reset</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RNGRST</name> - <description>Random number generator module reset</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HSAHRST</name> - <description>Hash module reset</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CRYPRST</name> - <description>Cryptographic module reset</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DCMIRST</name> - <description>Camera interface reset</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>AHB3RSTR</name> - <displayName>AHB3RSTR</displayName> - <description>AHB3 peripheral reset register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FMCRST</name> - <description>Flexible memory controller module reset</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>QSPIRST</name> - <description>Quad SPI memory controller reset</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>APB1RSTR</name> - <displayName>APB1RSTR</displayName> - <description>APB1 peripheral reset register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TIM2RST</name> - <description>TIM2 reset</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM3RST</name> - <description>TIM3 reset</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM4RST</name> - <description>TIM4 reset</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM5RST</name> - <description>TIM5 reset</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM6RST</name> - <description>TIM6 reset</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM7RST</name> - <description>TIM7 reset</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM12RST</name> - <description>TIM12 reset</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM13RST</name> - <description>TIM13 reset</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM14RST</name> - <description>TIM14 reset</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WWDGRST</name> - <description>Window watchdog reset</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI2RST</name> - <description>SPI 2 reset</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI3RST</name> - <description>SPI 3 reset</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART2RST</name> - <description>USART 2 reset</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART3RST</name> - <description>USART 3 reset</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART4RST</name> - <description>USART 4 reset</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART5RST</name> - <description>USART 5 reset</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2C1RST</name> - <description>I2C 1 reset</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2C2RST</name> - <description>I2C 2 reset</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2C3RST</name> - <description>I2C3 reset</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAN1RST</name> - <description>CAN1 reset</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAN2RST</name> - <description>CAN2 reset</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PWRRST</name> - <description>Power interface reset</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DACRST</name> - <description>DAC reset</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART7RST</name> - <description>UART7 reset</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART8RST</name> - <description>UART8 reset</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPDIFRXRST</name> - <description>SPDIF-RX reset</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CECRST</name> - <description>HDMI-CEC reset</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LPTIM1RST</name> - <description>Low power timer 1 reset</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2C4RST</name> - <description>I2C 4 reset</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>APB2RSTR</name> - <displayName>APB2RSTR</displayName> - <description>APB2 peripheral reset register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TIM1RST</name> - <description>TIM1 reset</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM8RST</name> - <description>TIM8 reset</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USART1RST</name> - <description>USART1 reset</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USART6RST</name> - <description>USART6 reset</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADCRST</name> - <description>ADC interface reset (common to all ADCs)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI1RST</name> - <description>SPI 1 reset</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI4RST</name> - <description>SPI4 reset</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SYSCFGRST</name> - <description>System configuration controller reset</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM9RST</name> - <description>TIM9 reset</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM10RST</name> - <description>TIM10 reset</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM11RST</name> - <description>TIM11 reset</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI5RST</name> - <description>SPI5 reset</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI6RST</name> - <description>SPI6 reset</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SAI1RST</name> - <description>SAI1 reset</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LTDCRST</name> - <description>LTDC reset</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SAI2RST</name> - <description>SAI2 reset</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDMMC1RST</name> - <description>SDMMC1 reset</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>AHB1ENR</name> - <displayName>AHB1ENR</displayName> - <description>AHB1 peripheral clock register</description> - <addressOffset>0x30</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00100000</resetValue> - <fields> - <field> - <name>OTGHSULPIEN</name> - <description>USB OTG HSULPI clock enable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTGHSEN</name> - <description>USB OTG HS clock enable</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETHMACPTPEN</name> - <description>Ethernet PTP clock enable</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETHMACRXEN</name> - <description>Ethernet Reception clock enable</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETHMACTXEN</name> - <description>Ethernet Transmission clock enable</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETHMACEN</name> - <description>Ethernet MAC clock enable</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMA2DEN</name> - <description>DMA2D clock enable</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMA2EN</name> - <description>DMA2 clock enable</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMA1EN</name> - <description>DMA1 clock enable</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CCMDATARAMEN</name> - <description>CCM data RAM clock enable</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BKPSRAMEN</name> - <description>Backup SRAM interface clock enable</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CRCEN</name> - <description>CRC clock enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOKEN</name> - <description>IO port K clock enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOJEN</name> - <description>IO port J clock enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOIEN</name> - <description>IO port I clock enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOHEN</name> - <description>IO port H clock enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOGEN</name> - <description>IO port G clock enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOFEN</name> - <description>IO port F clock enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOEEN</name> - <description>IO port E clock enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIODEN</name> - <description>IO port D clock enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOCEN</name> - <description>IO port C clock enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOBEN</name> - <description>IO port B clock enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOAEN</name> - <description>IO port A clock enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>AHB2ENR</name> - <displayName>AHB2ENR</displayName> - <description>AHB2 peripheral clock enable register</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OTGFSEN</name> - <description>USB OTG FS clock enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RNGEN</name> - <description>Random number generator clock enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HASHEN</name> - <description>Hash modules clock enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CRYPEN</name> - <description>Cryptographic modules clock enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DCMIEN</name> - <description>Camera interface enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>AHB3ENR</name> - <displayName>AHB3ENR</displayName> - <description>AHB3 peripheral clock enable register</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FMCEN</name> - <description>Flexible memory controller module clock enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>QSPIEN</name> - <description>Quad SPI memory controller clock enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>APB1ENR</name> - <displayName>APB1ENR</displayName> - <description>APB1 peripheral clock enable register</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TIM2EN</name> - <description>TIM2 clock enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM3EN</name> - <description>TIM3 clock enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM4EN</name> - <description>TIM4 clock enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM5EN</name> - <description>TIM5 clock enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM6EN</name> - <description>TIM6 clock enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM7EN</name> - <description>TIM7 clock enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM12EN</name> - <description>TIM12 clock enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM13EN</name> - <description>TIM13 clock enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM14EN</name> - <description>TIM14 clock enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WWDGEN</name> - <description>Window watchdog clock enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI2EN</name> - <description>SPI2 clock enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI3EN</name> - <description>SPI3 clock enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USART2EN</name> - <description>USART 2 clock enable</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USART3EN</name> - <description>USART3 clock enable</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART4EN</name> - <description>UART4 clock enable</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART5EN</name> - <description>UART5 clock enable</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2C1EN</name> - <description>I2C1 clock enable</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2C2EN</name> - <description>I2C2 clock enable</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2C3EN</name> - <description>I2C3 clock enable</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAN1EN</name> - <description>CAN 1 clock enable</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAN2EN</name> - <description>CAN 2 clock enable</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PWREN</name> - <description>Power interface clock enable</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DACEN</name> - <description>DAC interface clock enable</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART7ENR</name> - <description>UART7 clock enable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART8ENR</name> - <description>UART8 clock enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPDIFRXEN</name> - <description>SPDIF-RX clock enable</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CECEN</name> - <description>HDMI-CEN clock enable</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LPTMI1EN</name> - <description>Low power timer 1 clock enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2C4EN</name> - <description>I2C4 clock enable</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>APB2ENR</name> - <displayName>APB2ENR</displayName> - <description>APB2 peripheral clock enable register</description> - <addressOffset>0x44</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TIM1EN</name> - <description>TIM1 clock enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM8EN</name> - <description>TIM8 clock enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USART1EN</name> - <description>USART1 clock enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USART6EN</name> - <description>USART6 clock enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADC1EN</name> - <description>ADC1 clock enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADC2EN</name> - <description>ADC2 clock enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADC3EN</name> - <description>ADC3 clock enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI1EN</name> - <description>SPI1 clock enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI4ENR</name> - <description>SPI4 clock enable</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SYSCFGEN</name> - <description>System configuration controller clock enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM9EN</name> - <description>TIM9 clock enable</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM10EN</name> - <description>TIM10 clock enable</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM11EN</name> - <description>TIM11 clock enable</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI5ENR</name> - <description>SPI5 clock enable</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI6ENR</name> - <description>SPI6 clock enable</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SAI1EN</name> - <description>SAI1 clock enable</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LTDCEN</name> - <description>LTDC clock enable</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SAI2EN</name> - <description>SAI2 clock enable</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDMMC1EN</name> - <description>SDMMC1 clock enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>AHB1LPENR</name> - <displayName>AHB1LPENR</displayName> - <description>AHB1 peripheral clock enable in low power mode register</description> - <addressOffset>0x50</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x7E6791FF</resetValue> - <fields> - <field> - <name>GPIOALPEN</name> - <description>IO port A clock enable during sleep mode</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOBLPEN</name> - <description>IO port B clock enable during Sleep mode</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOCLPEN</name> - <description>IO port C clock enable during Sleep mode</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIODLPEN</name> - <description>IO port D clock enable during Sleep mode</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOELPEN</name> - <description>IO port E clock enable during Sleep mode</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOFLPEN</name> - <description>IO port F clock enable during Sleep mode</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOGLPEN</name> - <description>IO port G clock enable during Sleep mode</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOHLPEN</name> - <description>IO port H clock enable during Sleep mode</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOILPEN</name> - <description>IO port I clock enable during Sleep mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOJLPEN</name> - <description>IO port J clock enable during Sleep mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GPIOKLPEN</name> - <description>IO port K clock enable during Sleep mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CRCLPEN</name> - <description>CRC clock enable during Sleep mode</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FLITFLPEN</name> - <description>Flash interface clock enable during Sleep mode</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SRAM1LPEN</name> - <description>SRAM 1interface clock enable during Sleep mode</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SRAM2LPEN</name> - <description>SRAM 2 interface clock enable during Sleep mode</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BKPSRAMLPEN</name> - <description>Backup SRAM interface clock enable during Sleep mode</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SRAM3LPEN</name> - <description>SRAM 3 interface clock enable during Sleep mode</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMA1LPEN</name> - <description>DMA1 clock enable during Sleep mode</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMA2LPEN</name> - <description>DMA2 clock enable during Sleep mode</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMA2DLPEN</name> - <description>DMA2D clock enable during Sleep mode</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETHMACLPEN</name> - <description>Ethernet MAC clock enable during Sleep mode</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETHMACTXLPEN</name> - <description>Ethernet transmission clock enable during Sleep mode</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETHMACRXLPEN</name> - <description>Ethernet reception clock enable during Sleep mode</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETHMACPTPLPEN</name> - <description>Ethernet PTP clock enable during Sleep mode</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTGHSLPEN</name> - <description>USB OTG HS clock enable during Sleep mode</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTGHSULPILPEN</name> - <description>USB OTG HS ULPI clock enable during Sleep mode</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>AHB2LPENR</name> - <displayName>AHB2LPENR</displayName> - <description>AHB2 peripheral clock enable in low power mode register</description> - <addressOffset>0x54</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x000000F1</resetValue> - <fields> - <field> - <name>OTGFSLPEN</name> - <description>USB OTG FS clock enable during Sleep mode</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RNGLPEN</name> - <description>Random number generator clock enable during Sleep mode</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HASHLPEN</name> - <description>Hash modules clock enable during Sleep mode</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CRYPLPEN</name> - <description>Cryptography modules clock enable during Sleep mode</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DCMILPEN</name> - <description>Camera interface enable during Sleep mode</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>AHB3LPENR</name> - <displayName>AHB3LPENR</displayName> - <description>AHB3 peripheral clock enable in low power mode register</description> - <addressOffset>0x58</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000001</resetValue> - <fields> - <field> - <name>FMCLPEN</name> - <description>Flexible memory controller module clock enable during Sleep mode</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>QSPILPEN</name> - <description>Quand SPI memory controller clock enable during Sleep mode</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>APB1LPENR</name> - <displayName>APB1LPENR</displayName> - <description>APB1 peripheral clock enable in low power mode register</description> - <addressOffset>0x60</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x36FEC9FF</resetValue> - <fields> - <field> - <name>TIM2LPEN</name> - <description>TIM2 clock enable during Sleep mode</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM3LPEN</name> - <description>TIM3 clock enable during Sleep mode</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM4LPEN</name> - <description>TIM4 clock enable during Sleep mode</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM5LPEN</name> - <description>TIM5 clock enable during Sleep mode</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM6LPEN</name> - <description>TIM6 clock enable during Sleep mode</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM7LPEN</name> - <description>TIM7 clock enable during Sleep mode</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM12LPEN</name> - <description>TIM12 clock enable during Sleep mode</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM13LPEN</name> - <description>TIM13 clock enable during Sleep mode</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM14LPEN</name> - <description>TIM14 clock enable during Sleep mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WWDGLPEN</name> - <description>Window watchdog clock enable during Sleep mode</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI2LPEN</name> - <description>SPI2 clock enable during Sleep mode</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI3LPEN</name> - <description>SPI3 clock enable during Sleep mode</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USART2LPEN</name> - <description>USART2 clock enable during Sleep mode</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USART3LPEN</name> - <description>USART3 clock enable during Sleep mode</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART4LPEN</name> - <description>UART4 clock enable during Sleep mode</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART5LPEN</name> - <description>UART5 clock enable during Sleep mode</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2C1LPEN</name> - <description>I2C1 clock enable during Sleep mode</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2C2LPEN</name> - <description>I2C2 clock enable during Sleep mode</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2C3LPEN</name> - <description>I2C3 clock enable during Sleep mode</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAN1LPEN</name> - <description>CAN 1 clock enable during Sleep mode</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAN2LPEN</name> - <description>CAN 2 clock enable during Sleep mode</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PWRLPEN</name> - <description>Power interface clock enable during Sleep mode</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DACLPEN</name> - <description>DAC interface clock enable during Sleep mode</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART7LPEN</name> - <description>UART7 clock enable during Sleep mode</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UART8LPEN</name> - <description>UART8 clock enable during Sleep mode</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPDIFRXLPEN</name> - <description>SPDIF-RX clock enable during sleep mode</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CECLPEN</name> - <description>HDMI-CEN clock enable during Sleep mode</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LPTIM1LPEN</name> - <description>low power timer 1 clock enable during Sleep mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2C4LPEN</name> - <description>I2C4 clock enable during Sleep mode</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>APB2LPENR</name> - <displayName>APB2LPENR</displayName> - <description>APB2 peripheral clock enabled in low power mode register</description> - <addressOffset>0x64</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00075F33</resetValue> - <fields> - <field> - <name>TIM1LPEN</name> - <description>TIM1 clock enable during Sleep mode</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM8LPEN</name> - <description>TIM8 clock enable during Sleep mode</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USART1LPEN</name> - <description>USART1 clock enable during Sleep mode</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USART6LPEN</name> - <description>USART6 clock enable during Sleep mode</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADC1LPEN</name> - <description>ADC1 clock enable during Sleep mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADC2LPEN</name> - <description>ADC2 clock enable during Sleep mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADC3LPEN</name> - <description>ADC 3 clock enable during Sleep mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI1LPEN</name> - <description>SPI 1 clock enable during Sleep mode</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI4LPEN</name> - <description>SPI 4 clock enable during Sleep mode</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SYSCFGLPEN</name> - <description>System configuration controller clock enable during Sleep mode</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM9LPEN</name> - <description>TIM9 clock enable during sleep mode</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM10LPEN</name> - <description>TIM10 clock enable during Sleep mode</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIM11LPEN</name> - <description>TIM11 clock enable during Sleep mode</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI5LPEN</name> - <description>SPI 5 clock enable during Sleep mode</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPI6LPEN</name> - <description>SPI 6 clock enable during Sleep mode</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SAI1LPEN</name> - <description>SAI1 clock enable during sleep mode</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LTDCLPEN</name> - <description>LTDC clock enable during sleep mode</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SAI2LPEN</name> - <description>SAI2 clock enable during sleep mode</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDMMC1LPEN</name> - <description>SDMMC1 clock enable during Sleep mode</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BDCR</name> - <displayName>BDCR</displayName> - <description>Backup domain control register</description> - <addressOffset>0x70</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BDRST</name> - <description>Backup domain software reset</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RTCEN</name> - <description>RTC clock enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RTCSEL1</name> - <description>RTC clock source selection</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RTCSEL0</name> - <description>RTC clock source selection</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LSEBYP</name> - <description>External low-speed oscillator bypass</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LSERDY</name> - <description>External low-speed oscillator ready</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>LSEON</name> - <description>External low-speed oscillator enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>CSR</name> - <displayName>CSR</displayName> - <description>clock control & status register</description> - <addressOffset>0x74</addressOffset> - <size>0x20</size> - <resetValue>0x0E000000</resetValue> - <fields> - <field> - <name>LPWRRSTF</name> - <description>Low-power reset flag</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WWDGRSTF</name> - <description>Window watchdog reset flag</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WDGRSTF</name> - <description>Independent watchdog reset flag</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SFTRSTF</name> - <description>Software reset flag</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PORRSTF</name> - <description>POR/PDR reset flag</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PADRSTF</name> - <description>PIN reset flag</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BORRSTF</name> - <description>BOR reset flag</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RMVF</name> - <description>Remove reset flag</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LSIRDY</name> - <description>Internal low-speed oscillator ready</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>LSION</name> - <description>Internal low-speed oscillator enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>SSCGR</name> - <displayName>SSCGR</displayName> - <description>spread spectrum clock generation register</description> - <addressOffset>0x80</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SSCGEN</name> - <description>Spread spectrum modulation enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPREADSEL</name> - <description>Spread Select</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>INCSTEP</name> - <description>Incrementation step</description> - <bitOffset>13</bitOffset> - <bitWidth>15</bitWidth> - </field> - <field> - <name>MODPER</name> - <description>Modulation period</description> - <bitOffset>0</bitOffset> - <bitWidth>13</bitWidth> - </field> - </fields> - </register> - <register> - <name>PLLI2SCFGR</name> - <displayName>PLLI2SCFGR</displayName> - <description>PLLI2S configuration register</description> - <addressOffset>0x84</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x20003000</resetValue> - <fields> - <field> - <name>PLLI2SR</name> - <description>PLLI2S division factor for I2S clocks</description> - <bitOffset>28</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>PLLI2SQ</name> - <description>PLLI2S division factor for SAI1 clock</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>PLLI2SN</name> - <description>PLLI2S multiplication factor for VCO</description> - <bitOffset>6</bitOffset> - <bitWidth>9</bitWidth> - </field> - </fields> - </register> - <register> - <name>PLLSAICFGR</name> - <displayName>PLLSAICFGR</displayName> - <description>PLL configuration register</description> - <addressOffset>0x88</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x20003000</resetValue> - <fields> - <field> - <name>PLLSAIN</name> - <description>PLLSAI division factor for VCO</description> - <bitOffset>6</bitOffset> - <bitWidth>9</bitWidth> - </field> - <field> - <name>PLLSAIP</name> - <description>PLLSAI division factor for 48MHz clock</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PLLSAIQ</name> - <description>PLLSAI division factor for SAI clock</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>PLLSAIR</name> - <description>PLLSAI division factor for LCD clock</description> - <bitOffset>28</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>DKCFGR1</name> - <displayName>DKCFGR1</displayName> - <description>dedicated clocks configuration register</description> - <addressOffset>0x8C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x20003000</resetValue> - <fields> - <field> - <name>PLLI2SDIV</name> - <description>PLLI2S division factor for SAI1 clock</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>PLLSAIDIVQ</name> - <description>PLLSAI division factor for SAI1 clock</description> - <bitOffset>8</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>PLLSAIDIVR</name> - <description>division factor for LCD_CLK</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>SAI1SEL</name> - <description>SAI1 clock source selection</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>SAI2SEL</name> - <description>SAI2 clock source selection</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>TIMPRE</name> - <description>Timers clocks prescalers selection</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DKCFGR2</name> - <displayName>DKCFGR2</displayName> - <description>dedicated clocks configuration register</description> - <addressOffset>0x90</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x20003000</resetValue> - <fields> - <field> - <name>USART1SEL</name> - <description>USART 1 clock source selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>USART2SEL</name> - <description>USART 2 clock source selection</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>USART3SEL</name> - <description>USART 3 clock source selection</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>UART4SEL</name> - <description>UART 4 clock source selection</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>UART5SEL</name> - <description>UART 5 clock source selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>USART6SEL</name> - <description>USART 6 clock source selection</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>UART7SEL</name> - <description>UART 7 clock source selection</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>UART8SEL</name> - <description>UART 8 clock source selection</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>I2C1SEL</name> - <description>I2C1 clock source selection</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>I2C2SEL</name> - <description>I2C2 clock source selection</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>I2C3SEL</name> - <description>I2C3 clock source selection</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>I2C4SEL</name> - <description>I2C4 clock source selection</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>LPTIM1SEL</name> - <description>Low power timer 1 clock source selection</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CECSEL</name> - <description>HDMI-CEC clock source selection</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CK48MSEL</name> - <description>48MHz clock source selection</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDMMCSEL</name> - <description>SDMMC clock source selection</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>GPIOD</name> - <description>General-purpose I/Os</description> - <groupName>GPIO</groupName> - <baseAddress>0X40020C00</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>MODER</name> - <displayName>MODER</displayName> - <description>GPIO port mode register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MODER15</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>30</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER14</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER13</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>26</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER12</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER11</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER10</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER9</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER8</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER7</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER6</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER5</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER4</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER3</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER2</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER1</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER0</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTYPER</name> - <displayName>OTYPER</displayName> - <description>GPIO port output type register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OT15</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT14</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT13</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT12</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT11</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT10</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT9</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT8</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT7</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT6</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT5</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT4</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT3</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT2</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT1</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT0</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>GPIOB_OSPEEDR</name> - <displayName>GPIOB_OSPEEDR</displayName> - <description>GPIO port output speed register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OSPEEDR15</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>30</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR14</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR13</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>26</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR12</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR11</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR10</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR9</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR8</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR7</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR6</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR5</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR4</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR3</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR2</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR1</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR0</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>PUPDR</name> - <displayName>PUPDR</displayName> - <description>GPIO port pull-up/pull-down register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PUPDR15</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>30</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR14</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR13</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>26</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR12</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR11</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR10</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR9</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR8</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR7</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR6</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR5</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR4</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR3</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR2</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR1</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR0</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>IDR</name> - <displayName>IDR</displayName> - <description>GPIO port input data register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IDR15</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR14</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR13</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR12</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR11</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR10</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR9</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR8</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR7</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR6</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR5</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR4</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR3</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR2</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR1</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR0</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ODR</name> - <displayName>ODR</displayName> - <description>GPIO port output data register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ODR15</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR14</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR13</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR12</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR11</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR10</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR9</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR8</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR7</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR6</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR5</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR4</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR3</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR2</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR1</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR0</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BSRR</name> - <displayName>BSRR</displayName> - <description>GPIO port bit set/reset register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BR15</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR14</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR13</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR12</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR11</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR10</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR9</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR8</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR7</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR6</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR5</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR4</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR3</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR2</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR1</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR0</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS15</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS14</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS13</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS12</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS11</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS10</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS9</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS8</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS7</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS6</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS5</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS4</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS3</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS2</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS1</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS0</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>LCKR</name> - <displayName>LCKR</displayName> - <description>GPIO port configuration lock register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LCKK</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK15</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK14</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK13</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK12</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK11</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK10</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK9</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK8</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK7</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK6</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK5</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK4</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK3</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK2</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK1</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK0</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>AFRL</name> - <displayName>AFRL</displayName> - <description>GPIO alternate function lowregister</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>AFRL7</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>28</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL6</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL5</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL4</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL3</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL2</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL1</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL0</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>AFRH</name> - <displayName>AFRH</displayName> - <description>GPIO alternate function high register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>AFRH15</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH14</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH13</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH12</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH11</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH10</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH9</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH8</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>BRR</name> - <displayName>BRR</displayName> - <description>GPIO port bit reset register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BR0</name> - <description>Port D Reset bit 0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR1</name> - <description>Port D Reset bit 1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR2</name> - <description>Port D Reset bit 2</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR3</name> - <description>Port D Reset bit 3</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR4</name> - <description>Port D Reset bit 4</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR5</name> - <description>Port D Reset bit 5</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR6</name> - <description>Port D Reset bit 6</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR7</name> - <description>Port D Reset bit 7</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR8</name> - <description>Port D Reset bit 8</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR9</name> - <description>Port D Reset bit 9</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR10</name> - <description>Port D Reset bit 10</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR11</name> - <description>Port D Reset bit 11</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR12</name> - <description>Port D Reset bit 12</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR13</name> - <description>Port D Reset bit 13</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR14</name> - <description>Port D Reset bit 14</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR15</name> - <description>Port D Reset bit 15</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="GPIOD"> - <name>GPIOC</name> - <baseAddress>0x40020800</baseAddress> - </peripheral> - <peripheral derivedFrom="GPIOD"> - <name>GPIOK</name> - <baseAddress>0X40022800</baseAddress> - </peripheral> - <peripheral derivedFrom="GPIOD"> - <name>GPIOJ</name> - <baseAddress>0X40022400</baseAddress> - </peripheral> - <peripheral derivedFrom="GPIOD"> - <name>GPIOI</name> - <baseAddress>0X40022000</baseAddress> - </peripheral> - <peripheral derivedFrom="GPIOD"> - <name>GPIOH</name> - <baseAddress>0X40021C00</baseAddress> - </peripheral> - <peripheral derivedFrom="GPIOD"> - <name>GPIOG</name> - <baseAddress>0X40021800</baseAddress> - </peripheral> - <peripheral derivedFrom="GPIOD"> - <name>GPIOF</name> - <baseAddress>0X40021400</baseAddress> - </peripheral> - <peripheral derivedFrom="GPIOD"> - <name>GPIOE</name> - <baseAddress>0X40021000</baseAddress> - </peripheral> - <peripheral> - <name>GPIOB</name> - <description>General-purpose I/Os</description> - <groupName>GPIO</groupName> - <baseAddress>0x40020400</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>MODER</name> - <displayName>MODER</displayName> - <description>GPIO port mode register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000280</resetValue> - <fields> - <field> - <name>MODER15</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>30</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER14</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER13</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>26</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER12</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER11</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER10</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER9</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER8</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER7</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER6</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER5</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER4</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER3</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER2</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER1</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER0</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTYPER</name> - <displayName>OTYPER</displayName> - <description>GPIO port output type register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OT15</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT14</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT13</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT12</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT11</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT10</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT9</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT8</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT7</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT6</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT5</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT4</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT3</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT2</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT1</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT0</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>GPIOB_OSPEEDR</name> - <displayName>GPIOB_OSPEEDR</displayName> - <description>GPIO port output speed register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x000000C0</resetValue> - <fields> - <field> - <name>OSPEEDR15</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>30</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR14</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR13</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>26</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR12</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR11</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR10</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR9</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR8</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR7</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR6</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR5</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR4</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR3</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR2</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR1</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR0</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>PUPDR</name> - <displayName>PUPDR</displayName> - <description>GPIO port pull-up/pull-down register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000100</resetValue> - <fields> - <field> - <name>PUPDR15</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>30</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR14</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR13</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>26</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR12</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR11</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR10</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR9</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR8</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR7</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR6</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR5</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR4</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR3</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR2</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR1</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR0</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>IDR</name> - <displayName>IDR</displayName> - <description>GPIO port input data register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IDR15</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR14</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR13</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR12</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR11</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR10</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR9</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR8</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR7</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR6</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR5</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR4</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR3</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR2</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR1</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR0</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ODR</name> - <displayName>ODR</displayName> - <description>GPIO port output data register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ODR15</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR14</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR13</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR12</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR11</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR10</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR9</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR8</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR7</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR6</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR5</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR4</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR3</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR2</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR1</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR0</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BSRR</name> - <displayName>BSRR</displayName> - <description>GPIO port bit set/reset register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BR15</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR14</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR13</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR12</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR11</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR10</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR9</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR8</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR7</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR6</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR5</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR4</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR3</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR2</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR1</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR0</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS15</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS14</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS13</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS12</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS11</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS10</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS9</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS8</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS7</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS6</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS5</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS4</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS3</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS2</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS1</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS0</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>LCKR</name> - <displayName>LCKR</displayName> - <description>GPIO port configuration lock register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LCKK</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK15</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK14</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK13</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK12</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK11</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK10</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK9</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK8</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK7</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK6</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK5</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK4</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK3</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK2</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK1</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK0</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>AFRL</name> - <displayName>AFRL</displayName> - <description>GPIO alternate function low register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>AFRL7</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>28</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL6</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL5</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL4</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL3</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL2</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL1</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL0</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>AFRH</name> - <displayName>AFRH</displayName> - <description>GPIO alternate function high register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>AFRH15</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH14</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH13</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH12</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH11</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH10</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH9</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH8</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>BRR</name> - <displayName>BRR</displayName> - <description>GPIO port bit reset register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BR0</name> - <description>Port B Reset bit 0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR1</name> - <description>Port B Reset bit 1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR2</name> - <description>Port B Reset bit 2</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR3</name> - <description>Port B Reset bit 3</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR4</name> - <description>Port B Reset bit 4</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR5</name> - <description>Port B Reset bit 5</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR6</name> - <description>Port B Reset bit 6</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR7</name> - <description>Port B Reset bit 7</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR8</name> - <description>Port B Reset bit 8</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR9</name> - <description>Port B Reset bit 9</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR10</name> - <description>Port B Reset bit 10</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR11</name> - <description>Port B Reset bit 11</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR12</name> - <description>Port B Reset bit 12</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR13</name> - <description>Port B Reset bit 13</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR14</name> - <description>Port B Reset bit 14</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR15</name> - <description>Port B Reset bit 15</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>GPIOA</name> - <description>General-purpose I/Os</description> - <groupName>GPIO</groupName> - <baseAddress>0x40020000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>MODER</name> - <displayName>MODER</displayName> - <description>GPIO port mode register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xA8000000</resetValue> - <fields> - <field> - <name>MODER15</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>30</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER14</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER13</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>26</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER12</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER11</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER10</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER9</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER8</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER7</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER6</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER5</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER4</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER3</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER2</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER1</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODER0</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTYPER</name> - <displayName>OTYPER</displayName> - <description>GPIO port output type register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OT15</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT14</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT13</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT12</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT11</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT10</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT9</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT8</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT7</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT6</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT5</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT4</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT3</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT2</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT1</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OT0</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>GPIOB_OSPEEDR</name> - <displayName>GPIOB_OSPEEDR</displayName> - <description>GPIO port output speed register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OSPEEDR15</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>30</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR14</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR13</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>26</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR12</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR11</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR10</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR9</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR8</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR7</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR6</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR5</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR4</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR3</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR2</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR1</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OSPEEDR0</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>PUPDR</name> - <displayName>PUPDR</displayName> - <description>GPIO port pull-up/pull-down register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x64000000</resetValue> - <fields> - <field> - <name>PUPDR15</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>30</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR14</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR13</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>26</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR12</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR11</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR10</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR9</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR8</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR7</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR6</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR5</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR4</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR3</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR2</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR1</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PUPDR0</name> - <description>Port x configuration bits (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>IDR</name> - <displayName>IDR</displayName> - <description>GPIO port input data register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IDR15</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR14</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR13</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR12</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR11</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR10</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR9</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR8</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR7</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR6</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR5</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR4</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR3</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR2</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR1</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDR0</name> - <description>Port input data (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ODR</name> - <displayName>ODR</displayName> - <description>GPIO port output data register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ODR15</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR14</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR13</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR12</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR11</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR10</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR9</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR8</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR7</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR6</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR5</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR4</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR3</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR2</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR1</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODR0</name> - <description>Port output data (y = 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BSRR</name> - <displayName>BSRR</displayName> - <description>GPIO port bit set/reset register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BR15</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR14</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR13</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR12</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR11</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR10</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR9</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR8</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR7</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR6</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR5</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR4</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR3</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR2</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR1</name> - <description>Port x reset bit y (y = 0..15)</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR0</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS15</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS14</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS13</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS12</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS11</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS10</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS9</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS8</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS7</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS6</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS5</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS4</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS3</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS2</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS1</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BS0</name> - <description>Port x set bit y (y= 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>LCKR</name> - <displayName>LCKR</displayName> - <description>GPIO port configuration lock register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LCKK</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK15</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK14</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK13</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK12</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK11</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK10</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK9</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK8</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK7</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK6</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK5</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK4</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK3</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK2</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK1</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LCK0</name> - <description>Port x lock bit y (y= 0..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>AFRL</name> - <displayName>AFRL</displayName> - <description>GPIO alternate function low register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>AFRL7</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>28</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL6</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL5</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL4</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL3</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL2</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL1</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRL0</name> - <description>Alternate function selection for port x bit y (y = 0..7)</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>AFRH</name> - <displayName>AFRH</displayName> - <description>GPIO alternate function high register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>AFRH15</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>28</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH14</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH13</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH12</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH11</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH10</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH9</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>AFRH8</name> - <description>Alternate function selection for port x bit y (y = 8..15)</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>BRR</name> - <displayName>BRR</displayName> - <description>GPIO port bit reset register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BR0</name> - <description>Port A Reset bit 0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR1</name> - <description>Port A Reset bit 1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR2</name> - <description>Port A Reset bit 2</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR3</name> - <description>Port A Reset bit 3</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR4</name> - <description>Port A Reset bit 4</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR5</name> - <description>Port A Reset bit 5</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR6</name> - <description>Port A Reset bit 6</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR7</name> - <description>Port A Reset bit 7</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR8</name> - <description>Port A Reset bit 8</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR9</name> - <description>Port A Reset bit 9</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR10</name> - <description>Port A Reset bit 10</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR11</name> - <description>Port A Reset bit 11</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR12</name> - <description>Port A Reset bit 12</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR13</name> - <description>Port A Reset bit 13</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR14</name> - <description>Port A Reset bit 14</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR15</name> - <description>Port A Reset bit 15</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>SYSCFG</name> - <description>System configuration controller</description> - <groupName>SYSCFG</groupName> - <baseAddress>0x40013800</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>MEMRM</name> - <displayName>MEMRM</displayName> - <description>memory remap register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MEM_MODE</name> - <description>Memory mapping selection</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>FB_MODE</name> - <description>Flash bank mode selection</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWP_FMC</name> - <description>FMC memory mapping swap</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>PMC</name> - <displayName>PMC</displayName> - <description>peripheral mode configuration register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MII_RMII_SEL</name> - <description>Ethernet PHY interface selection</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADC1DC2</name> - <description>ADC1DC2</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADC2DC2</name> - <description>ADC2DC2</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADC3DC2</name> - <description>ADC3DC2</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>EXTICR1</name> - <displayName>EXTICR1</displayName> - <description>external interrupt configuration register 1</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>EXTI3</name> - <description>EXTI x configuration (x = 0 to 3)</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EXTI2</name> - <description>EXTI x configuration (x = 0 to 3)</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EXTI1</name> - <description>EXTI x configuration (x = 0 to 3)</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EXTI0</name> - <description>EXTI x configuration (x = 0 to 3)</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>EXTICR2</name> - <displayName>EXTICR2</displayName> - <description>external interrupt configuration register 2</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>EXTI7</name> - <description>EXTI x configuration (x = 4 to 7)</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EXTI6</name> - <description>EXTI x configuration (x = 4 to 7)</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EXTI5</name> - <description>EXTI x configuration (x = 4 to 7)</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EXTI4</name> - <description>EXTI x configuration (x = 4 to 7)</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>EXTICR3</name> - <displayName>EXTICR3</displayName> - <description>external interrupt configuration register 3</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>EXTI11</name> - <description>EXTI x configuration (x = 8 to 11)</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EXTI10</name> - <description>EXTI10</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EXTI9</name> - <description>EXTI x configuration (x = 8 to 11)</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EXTI8</name> - <description>EXTI x configuration (x = 8 to 11)</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>EXTICR4</name> - <displayName>EXTICR4</displayName> - <description>external interrupt configuration register 4</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>EXTI15</name> - <description>EXTI x configuration (x = 12 to 15)</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EXTI14</name> - <description>EXTI x configuration (x = 12 to 15)</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EXTI13</name> - <description>EXTI x configuration (x = 12 to 15)</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EXTI12</name> - <description>EXTI x configuration (x = 12 to 15)</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>CMPCR</name> - <displayName>CMPCR</displayName> - <description>Compensation cell control register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>READY</name> - <description>READY</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMP_PD</name> - <description>Compensation cell power-down</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>SPI1</name> - <description>Serial peripheral interface</description> - <groupName>SPI</groupName> - <baseAddress>0x40013000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>SPI1</name> - <description>SPI1 global interrupt</description> - <value>35</value> - </interrupt> - <registers> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>BIDIMODE</name> - <description>Bidirectional data mode enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BIDIOE</name> - <description>Output enable in bidirectional mode</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CRCEN</name> - <description>Hardware CRC calculation enable</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CRCNEXT</name> - <description>CRC transfer next</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CRCL</name> - <description>CRC length</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXONLY</name> - <description>Receive only</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SSM</name> - <description>Software slave management</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SSI</name> - <description>Internal slave select</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSBFIRST</name> - <description>Frame format</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPE</name> - <description>SPI enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR</name> - <description>Baud rate control</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MSTR</name> - <description>Master selection</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CPOL</name> - <description>Clock polarity</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CPHA</name> - <description>Clock phase</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR2</name> - <displayName>CR2</displayName> - <description>control register 2</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0700</resetValue> - <fields> - <field> - <name>RXDMAEN</name> - <description>Rx buffer DMA enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXDMAEN</name> - <description>Tx buffer DMA enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SSOE</name> - <description>SS output enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NSSP</name> - <description>NSS pulse management</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRF</name> - <description>Frame format</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ERRIE</name> - <description>Error interrupt enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXNEIE</name> - <description>RX buffer not empty interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXEIE</name> - <description>Tx buffer empty interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DS</name> - <description>Data size</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>FRXTH</name> - <description>FIFO reception threshold</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LDMA_RX</name> - <description>Last DMA transfer for reception</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LDMA_TX</name> - <description>Last DMA transfer for transmission</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <resetValue>0x0002</resetValue> - <fields> - <field> - <name>FRE</name> - <description>Frame format error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>BSY</name> - <description>Busy flag</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>OVR</name> - <description>Overrun flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>MODF</name> - <description>Mode fault</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CRCERR</name> - <description>CRC error flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>UDR</name> - <description>Underrun flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CHSIDE</name> - <description>Channel side</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TXE</name> - <description>Transmit buffer empty</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>RXNE</name> - <description>Receive buffer not empty</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>FRLVL</name> - <description>FIFO reception level</description> - <bitOffset>9</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - <field> - <name>FTLVL</name> - <description>FIFO Transmission Level</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>DR</name> - <displayName>DR</displayName> - <description>data register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>DR</name> - <description>Data register</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CRCPR</name> - <displayName>CRCPR</displayName> - <description>CRC polynomial register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0007</resetValue> - <fields> - <field> - <name>CRCPOLY</name> - <description>CRC polynomial register</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>RXCRCR</name> - <displayName>RXCRCR</displayName> - <description>RX CRC register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>RxCRC</name> - <description>Rx CRC register</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>TXCRCR</name> - <displayName>TXCRCR</displayName> - <description>TX CRC register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TxCRC</name> - <description>Tx CRC register</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>I2SCFGR</name> - <displayName>I2SCFGR</displayName> - <description>I2S configuration register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>I2SMOD</name> - <description>I2S mode selection</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2SE</name> - <description>I2S Enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2SCFG</name> - <description>I2S configuration mode</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PCMSYNC</name> - <description>PCM frame synchronization</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2SSTD</name> - <description>I2S standard selection</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CKPOL</name> - <description>Steady state clock polarity</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DATLEN</name> - <description>Data length to be transferred</description> - <bitOffset>1</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CHLEN</name> - <description>Channel length (number of bits per audio channel)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ASTRTEN</name> - <description>Asynchronous start enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>I2SPR</name> - <displayName>I2SPR</displayName> - <description>I2S prescaler register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>00000010</resetValue> - <fields> - <field> - <name>MCKOE</name> - <description>Master clock output enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODD</name> - <description>Odd factor for the prescaler</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2SDIV</name> - <description>I2S Linear prescaler</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="SPI1"> - <name>SPI3</name> - <baseAddress>0x40003C00</baseAddress> - <interrupt> - <name>SPI3</name> - <description>SPI3 global interrupt</description> - <value>51</value> - </interrupt> - </peripheral> - <peripheral derivedFrom="SPI1"> - <name>SPI4</name> - <baseAddress>0x40013400</baseAddress> - <interrupt> - <name>SPI4</name> - <description>SPI 4 global interrupt</description> - <value>84</value> - </interrupt> - </peripheral> - <peripheral derivedFrom="SPI1"> - <name>SPI5</name> - <baseAddress>0x40015000</baseAddress> - <interrupt> - <name>SPI5</name> - <description>SPI 5 global interrupt</description> - <value>85</value> - </interrupt> - </peripheral> - <peripheral derivedFrom="SPI1"> - <name>SPI6</name> - <baseAddress>0x40015400</baseAddress> - <interrupt> - <name>SPI6</name> - <description>SPI 6 global interrupt</description> - <value>86</value> - </interrupt> - </peripheral> - <peripheral> - <name>SPI2</name> - <description>Serial peripheral interface</description> - <groupName>SPI</groupName> - <baseAddress>0x40003800</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>SPI2</name> - <description>SPI2 global interrupt</description> - <value>36</value> - </interrupt> - <registers> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>BIDIMODE</name> - <description>Bidirectional data mode enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BIDIOE</name> - <description>Output enable in bidirectional mode</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CRCEN</name> - <description>Hardware CRC calculation enable</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CRCNEXT</name> - <description>CRC transfer next</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CRCL</name> - <description>CRC length</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXONLY</name> - <description>Receive only</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SSM</name> - <description>Software slave management</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SSI</name> - <description>Internal slave select</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSBFIRST</name> - <description>Frame format</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPE</name> - <description>SPI enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BR</name> - <description>Baud rate control</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MSTR</name> - <description>Master selection</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CPOL</name> - <description>Clock polarity</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CPHA</name> - <description>Clock phase</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR2</name> - <displayName>CR2</displayName> - <description>control register 2</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0700</resetValue> - <fields> - <field> - <name>RXDMAEN</name> - <description>Rx buffer DMA enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXDMAEN</name> - <description>Tx buffer DMA enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SSOE</name> - <description>SS output enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NSSP</name> - <description>NSS pulse management</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRF</name> - <description>Frame format</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ERRIE</name> - <description>Error interrupt enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXNEIE</name> - <description>RX buffer not empty interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXEIE</name> - <description>Tx buffer empty interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DS</name> - <description>Data size</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>FRXTH</name> - <description>FIFO reception threshold</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LDMA_RX</name> - <description>Last DMA transfer for reception</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LDMA_TX</name> - <description>Last DMA transfer for transmission</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <resetValue>0x0002</resetValue> - <fields> - <field> - <name>BSY</name> - <description>Busy flag</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>OVR</name> - <description>Overrun flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>MODF</name> - <description>Mode fault</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CRCERR</name> - <description>CRC error flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>UDR</name> - <description>Underrun flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CHSIDE</name> - <description>Channel side</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TXE</name> - <description>Transmit buffer empty</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>RXNE</name> - <description>Receive buffer not empty</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>FRE</name> - <description>Frame format error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>FRLVL</name> - <description>FIFO reception level</description> - <bitOffset>9</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - <field> - <name>FTLVL</name> - <description>FIFO Transmission Level</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>DR</name> - <displayName>DR</displayName> - <description>data register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>DR</name> - <description>Data register</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CRCPR</name> - <displayName>CRCPR</displayName> - <description>CRC polynomial register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0007</resetValue> - <fields> - <field> - <name>CRCPOLY</name> - <description>CRC polynomial register</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>RXCRCR</name> - <displayName>RXCRCR</displayName> - <description>RX CRC register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>RxCRC</name> - <description>Rx CRC register</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>TXCRCR</name> - <displayName>TXCRCR</displayName> - <description>TX CRC register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TxCRC</name> - <description>Tx CRC register</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>I2SCFGR</name> - <displayName>I2SCFGR</displayName> - <description>I2S configuration register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>I2SMOD</name> - <description>I2S mode selection</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2SE</name> - <description>I2S Enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2SCFG</name> - <description>I2S configuration mode</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PCMSYNC</name> - <description>PCM frame synchronization</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2SSTD</name> - <description>I2S standard selection</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CKPOL</name> - <description>Steady state clock polarity</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DATLEN</name> - <description>Data length to be transferred</description> - <bitOffset>1</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CHLEN</name> - <description>Channel length (number of bits per audio channel)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ASTRTEN</name> - <description>Asynchronous start enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>I2SPR</name> - <displayName>I2SPR</displayName> - <description>I2S prescaler register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>00000010</resetValue> - <fields> - <field> - <name>MCKOE</name> - <description>Master clock output enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODD</name> - <description>Odd factor for the prescaler</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2SDIV</name> - <description>I2S Linear prescaler</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>ADC1</name> - <description>Analog-to-digital converter</description> - <groupName>ADC</groupName> - <baseAddress>0x40012000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x100</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OVR</name> - <description>Overrun</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STRT</name> - <description>Regular channel start flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JSTRT</name> - <description>Injected channel start flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JEOC</name> - <description>Injected channel end of conversion</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EOC</name> - <description>Regular channel end of conversion</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AWD</name> - <description>Analog watchdog flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>control register 1</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OVRIE</name> - <description>Overrun interrupt enable</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RES</name> - <description>Resolution</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>AWDEN</name> - <description>Analog watchdog enable on regular channels</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JAWDEN</name> - <description>Analog watchdog enable on injected channels</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DISCNUM</name> - <description>Discontinuous mode channel count</description> - <bitOffset>13</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>JDISCEN</name> - <description>Discontinuous mode on injected channels</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DISCEN</name> - <description>Discontinuous mode on regular channels</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JAUTO</name> - <description>Automatic injected group conversion</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AWDSGL</name> - <description>Enable the watchdog on a single channel in scan mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SCAN</name> - <description>Scan mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JEOCIE</name> - <description>Interrupt enable for injected channels</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AWDIE</name> - <description>Analog watchdog interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EOCIE</name> - <description>Interrupt enable for EOC</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AWDCH</name> - <description>Analog watchdog channel select bits</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR2</name> - <displayName>CR2</displayName> - <description>control register 2</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SWSTART</name> - <description>Start conversion of regular channels</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EXTEN</name> - <description>External trigger enable for regular channels</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>EXTSEL</name> - <description>External event select for regular group</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>JSWSTART</name> - <description>Start conversion of injected channels</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JEXTEN</name> - <description>External trigger enable for injected channels</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>JEXTSEL</name> - <description>External event select for injected group</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ALIGN</name> - <description>Data alignment</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EOCS</name> - <description>End of conversion selection</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DDS</name> - <description>DMA disable selection (for single ADC mode)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMA</name> - <description>Direct memory access mode (for single ADC mode)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CONT</name> - <description>Continuous conversion</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADON</name> - <description>A/D Converter ON / OFF</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SMPR1</name> - <displayName>SMPR1</displayName> - <description>sample time register 1</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SMPx_x</name> - <description>Sample time bits</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>SMPR2</name> - <displayName>SMPR2</displayName> - <description>sample time register 2</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SMPx_x</name> - <description>Sample time bits</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>JOFR1</name> - <displayName>JOFR1</displayName> - <description>injected channel data offset register x</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>JOFFSET1</name> - <description>Data offset for injected channel x</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>JOFR2</name> - <displayName>JOFR2</displayName> - <description>injected channel data offset register x</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>JOFFSET2</name> - <description>Data offset for injected channel x</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>JOFR3</name> - <displayName>JOFR3</displayName> - <description>injected channel data offset register x</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>JOFFSET3</name> - <description>Data offset for injected channel x</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>JOFR4</name> - <displayName>JOFR4</displayName> - <description>injected channel data offset register x</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>JOFFSET4</name> - <description>Data offset for injected channel x</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>HTR</name> - <displayName>HTR</displayName> - <description>watchdog higher threshold register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000FFF</resetValue> - <fields> - <field> - <name>HT</name> - <description>Analog watchdog higher threshold</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>LTR</name> - <displayName>LTR</displayName> - <description>watchdog lower threshold register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LT</name> - <description>Analog watchdog lower threshold</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>SQR1</name> - <displayName>SQR1</displayName> - <description>regular sequence register 1</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>L</name> - <description>Regular channel sequence length</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>SQ16</name> - <description>16th conversion in regular sequence</description> - <bitOffset>15</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ15</name> - <description>15th conversion in regular sequence</description> - <bitOffset>10</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ14</name> - <description>14th conversion in regular sequence</description> - <bitOffset>5</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ13</name> - <description>13th conversion in regular sequence</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>SQR2</name> - <displayName>SQR2</displayName> - <description>regular sequence register 2</description> - <addressOffset>0x30</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SQ12</name> - <description>12th conversion in regular sequence</description> - <bitOffset>25</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ11</name> - <description>11th conversion in regular sequence</description> - <bitOffset>20</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ10</name> - <description>10th conversion in regular sequence</description> - <bitOffset>15</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ9</name> - <description>9th conversion in regular sequence</description> - <bitOffset>10</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ8</name> - <description>8th conversion in regular sequence</description> - <bitOffset>5</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ7</name> - <description>7th conversion in regular sequence</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>SQR3</name> - <displayName>SQR3</displayName> - <description>regular sequence register 3</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SQ6</name> - <description>6th conversion in regular sequence</description> - <bitOffset>25</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ5</name> - <description>5th conversion in regular sequence</description> - <bitOffset>20</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ4</name> - <description>4th conversion in regular sequence</description> - <bitOffset>15</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ3</name> - <description>3rd conversion in regular sequence</description> - <bitOffset>10</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ2</name> - <description>2nd conversion in regular sequence</description> - <bitOffset>5</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SQ1</name> - <description>1st conversion in regular sequence</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>JSQR</name> - <displayName>JSQR</displayName> - <description>injected sequence register</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>JL</name> - <description>Injected sequence length</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>JSQ4</name> - <description>4th conversion in injected sequence</description> - <bitOffset>15</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>JSQ3</name> - <description>3rd conversion in injected sequence</description> - <bitOffset>10</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>JSQ2</name> - <description>2nd conversion in injected sequence</description> - <bitOffset>5</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>JSQ1</name> - <description>1st conversion in injected sequence</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>JDR1</name> - <displayName>JDR1</displayName> - <description>injected data register x</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>JDATA</name> - <description>Injected data</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>JDR2</name> - <displayName>JDR2</displayName> - <description>injected data register x</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>JDATA</name> - <description>Injected data</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>JDR3</name> - <displayName>JDR3</displayName> - <description>injected data register x</description> - <addressOffset>0x44</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>JDATA</name> - <description>Injected data</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>JDR4</name> - <displayName>JDR4</displayName> - <description>injected data register x</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>JDATA</name> - <description>Injected data</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>DR</name> - <displayName>DR</displayName> - <description>regular data register</description> - <addressOffset>0x4C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA</name> - <description>Regular data</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="ADC1"> - <name>ADC2</name> - <baseAddress>0x40012100</baseAddress> - </peripheral> - <peripheral derivedFrom="ADC1"> - <name>ADC3</name> - <baseAddress>0x40012200</baseAddress> - </peripheral> - <peripheral> - <name>DAC</name> - <description>Digital-to-analog converter</description> - <groupName>DAC</groupName> - <baseAddress>0x40007400</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DMAUDRIE2</name> - <description>DAC channel2 DMA underrun interrupt enable</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMAEN2</name> - <description>DAC channel2 DMA enable</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MAMP2</name> - <description>DAC channel2 mask/amplitude selector</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>WAVE2</name> - <description>DAC channel2 noise/triangle wave generation enable</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>TSEL2</name> - <description>DAC channel2 trigger selection</description> - <bitOffset>19</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>TEN2</name> - <description>DAC channel2 trigger enable</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BOFF2</name> - <description>DAC channel2 output buffer disable</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EN2</name> - <description>DAC channel2 enable</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMAUDRIE1</name> - <description>DAC channel1 DMA Underrun Interrupt enable</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMAEN1</name> - <description>DAC channel1 DMA enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MAMP1</name> - <description>DAC channel1 mask/amplitude selector</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>WAVE1</name> - <description>DAC channel1 noise/triangle wave generation enable</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>TSEL1</name> - <description>DAC channel1 trigger selection</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>TEN1</name> - <description>DAC channel1 trigger enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BOFF1</name> - <description>DAC channel1 output buffer disable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EN1</name> - <description>DAC channel1 enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SWTRIGR</name> - <displayName>SWTRIGR</displayName> - <description>software trigger register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SWTRIG2</name> - <description>DAC channel2 software trigger</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWTRIG1</name> - <description>DAC channel1 software trigger</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DHR12R1</name> - <displayName>DHR12R1</displayName> - <description>channel1 12-bit right-aligned data holding register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DACC1DHR</name> - <description>DAC channel1 12-bit right-aligned data</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>DHR12L1</name> - <displayName>DHR12L1</displayName> - <description>channel1 12-bit left aligned data holding register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DACC1DHR</name> - <description>DAC channel1 12-bit left-aligned data</description> - <bitOffset>4</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>DHR8R1</name> - <displayName>DHR8R1</displayName> - <description>channel1 8-bit right aligned data holding register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DACC1DHR</name> - <description>DAC channel1 8-bit right-aligned data</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>DHR12R2</name> - <displayName>DHR12R2</displayName> - <description>channel2 12-bit right aligned data holding register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DACC2DHR</name> - <description>DAC channel2 12-bit right-aligned data</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>DHR12L2</name> - <displayName>DHR12L2</displayName> - <description>channel2 12-bit left aligned data holding register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DACC2DHR</name> - <description>DAC channel2 12-bit left-aligned data</description> - <bitOffset>4</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>DHR8R2</name> - <displayName>DHR8R2</displayName> - <description>channel2 8-bit right-aligned data holding register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DACC2DHR</name> - <description>DAC channel2 8-bit right-aligned data</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>DHR12RD</name> - <displayName>DHR12RD</displayName> - <description>Dual DAC 12-bit right-aligned data holding register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DACC2DHR</name> - <description>DAC channel2 12-bit right-aligned data</description> - <bitOffset>16</bitOffset> - <bitWidth>12</bitWidth> - </field> - <field> - <name>DACC1DHR</name> - <description>DAC channel1 12-bit right-aligned data</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>DHR12LD</name> - <displayName>DHR12LD</displayName> - <description>DUAL DAC 12-bit left aligned data holding register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DACC2DHR</name> - <description>DAC channel2 12-bit left-aligned data</description> - <bitOffset>20</bitOffset> - <bitWidth>12</bitWidth> - </field> - <field> - <name>DACC1DHR</name> - <description>DAC channel1 12-bit left-aligned data</description> - <bitOffset>4</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>DHR8RD</name> - <displayName>DHR8RD</displayName> - <description>DUAL DAC 8-bit right aligned data holding register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DACC2DHR</name> - <description>DAC channel2 8-bit right-aligned data</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DACC1DHR</name> - <description>DAC channel1 8-bit right-aligned data</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>DOR1</name> - <displayName>DOR1</displayName> - <description>channel1 data output register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DACC1DOR</name> - <description>DAC channel1 data output</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>DOR2</name> - <displayName>DOR2</displayName> - <description>channel2 data output register</description> - <addressOffset>0x30</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DACC2DOR</name> - <description>DAC channel2 data output</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DMAUDR2</name> - <description>DAC channel2 DMA underrun flag</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMAUDR1</name> - <description>DAC channel1 DMA underrun flag</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>PWR</name> - <description>Power control</description> - <groupName>PWR</groupName> - <baseAddress>0x40007000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>power control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000C000</resetValue> - <fields> - <field> - <name>LPDS</name> - <description>Low-power deep sleep</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PDDS</name> - <description>Power down deepsleep</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CSBF</name> - <description>Clear standby flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PVDE</name> - <description>Power voltage detector enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLS</name> - <description>PVD level selection</description> - <bitOffset>5</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>DBP</name> - <description>Disable backup domain write protection</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FPDS</name> - <description>Flash power down in Stop mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LPUDS</name> - <description>Low-power regulator in deepsleep under-drive mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MRUDS</name> - <description>Main regulator in deepsleep under-drive mode</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADCDC1</name> - <description>ADCDC1</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VOS</name> - <description>Regulator voltage scaling output selection</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ODEN</name> - <description>Over-drive enable</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ODSWEN</name> - <description>Over-drive switching enabled</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UDEN</name> - <description>Under-drive enable in stop mode</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR1</name> - <displayName>CSR1</displayName> - <description>power control/status register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>WUIF</name> - <description>Wakeup internal flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SBF</name> - <description>Standby flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PVDO</name> - <description>PVD output</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>BRR</name> - <description>Backup regulator ready</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>BRE</name> - <description>Backup regulator enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>VOSRDY</name> - <description>Regulator voltage scaling output selection ready bit</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ODRDY</name> - <description>Over-drive mode ready</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ODSWRDY</name> - <description>Over-drive mode switching ready</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>UDRDY</name> - <description>Under-drive ready flag</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>CR2</name> - <displayName>CR2</displayName> - <description>power control register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CWUPF1</name> - <description>Clear Wakeup Pin flag for PA0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CWUPF2</name> - <description>Clear Wakeup Pin flag for PA2</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CWUPF3</name> - <description>Clear Wakeup Pin flag for PC1</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CWUPF4</name> - <description>Clear Wakeup Pin flag for PC13</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CWUPF5</name> - <description>Clear Wakeup Pin flag for PI8</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CWUPF6</name> - <description>Clear Wakeup Pin flag for PI11</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>WUPP1</name> - <description>Wakeup pin polarity bit for PA0</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WUPP2</name> - <description>Wakeup pin polarity bit for PA2</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WUPP3</name> - <description>Wakeup pin polarity bit for PC1</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WUPP4</name> - <description>Wakeup pin polarity bit for PC13</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WUPP5</name> - <description>Wakeup pin polarity bit for PI8</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WUPP6</name> - <description>Wakeup pin polarity bit for PI11</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>CSR2</name> - <displayName>CSR2</displayName> - <description>power control/status register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>WUPF1</name> - <description>Wakeup Pin flag for PA0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>WUPF2</name> - <description>Wakeup Pin flag for PA2</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>WUPF3</name> - <description>Wakeup Pin flag for PC1</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>WUPF4</name> - <description>Wakeup Pin flag for PC13</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>WUPF5</name> - <description>Wakeup Pin flag for PI8</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>WUPF6</name> - <description>Wakeup Pin flag for PI11</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EWUP1</name> - <description>Enable Wakeup pin for PA0</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EWUP2</name> - <description>Enable Wakeup pin for PA2</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EWUP3</name> - <description>Enable Wakeup pin for PC1</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EWUP4</name> - <description>Enable Wakeup pin for PC13</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EWUP5</name> - <description>Enable Wakeup pin for PI8</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EWUP6</name> - <description>Enable Wakeup pin for PI11</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>IWDG</name> - <description>Independent watchdog</description> - <groupName>IWDG</groupName> - <baseAddress>0x40003000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>KR</name> - <displayName>KR</displayName> - <description>Key register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>KEY</name> - <description>Key value (write only, read 0000h)</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>PR</name> - <displayName>PR</displayName> - <description>Prescaler register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PR</name> - <description>Prescaler divider</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>RLR</name> - <displayName>RLR</displayName> - <description>Reload register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000FFF</resetValue> - <fields> - <field> - <name>RL</name> - <description>Watchdog counter reload value</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>Status register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RVU</name> - <description>Watchdog counter reload value update</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PVU</name> - <description>Watchdog prescaler value update</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>WINR</name> - <displayName>WINR</displayName> - <description>Window register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>WIN</name> - <description>Watchdog counter window value</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>WWDG</name> - <description>Window watchdog</description> - <groupName>WWDG</groupName> - <baseAddress>0x40002C00</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>WWDG</name> - <description>Window Watchdog interrupt</description> - <value>0</value> - </interrupt> - <registers> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>Control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x7F</resetValue> - <fields> - <field> - <name>WDGA</name> - <description>Activation bit</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>T</name> - <description>7-bit counter (MSB to LSB)</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - </fields> - </register> - <register> - <name>CFR</name> - <displayName>CFR</displayName> - <description>Configuration register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x7F</resetValue> - <fields> - <field> - <name>EWI</name> - <description>Early wakeup interrupt</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WDGTB1</name> - <description>Timer base</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WDGTB0</name> - <description>Timer base</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>W</name> - <description>7-bit window value</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>Status register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00</resetValue> - <fields> - <field> - <name>EWIF</name> - <description>Early wakeup interrupt flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>C_ADC</name> - <description>Common ADC registers</description> - <groupName>ADC</groupName> - <baseAddress>0x40012300</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>ADC</name> - <description>ADC1 global interrupt</description> - <value>18</value> - </interrupt> - <registers> - <register> - <name>CSR</name> - <displayName>CSR</displayName> - <description>ADC Common status register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OVR3</name> - <description>Overrun flag of ADC3</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STRT3</name> - <description>Regular channel Start flag of ADC 3</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JSTRT3</name> - <description>Injected channel Start flag of ADC 3</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JEOC3</name> - <description>Injected channel end of conversion of ADC 3</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EOC3</name> - <description>End of conversion of ADC 3</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AWD3</name> - <description>Analog watchdog flag of ADC 3</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVR2</name> - <description>Overrun flag of ADC 2</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STRT2</name> - <description>Regular channel Start flag of ADC 2</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JSTRT2</name> - <description>Injected channel Start flag of ADC 2</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JEOC2</name> - <description>Injected channel end of conversion of ADC 2</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EOC2</name> - <description>End of conversion of ADC 2</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AWD2</name> - <description>Analog watchdog flag of ADC 2</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVR1</name> - <description>Overrun flag of ADC 1</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STRT1</name> - <description>Regular channel Start flag of ADC 1</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JSTRT1</name> - <description>Injected channel Start flag of ADC 1</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>JEOC1</name> - <description>Injected channel end of conversion of ADC 1</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EOC1</name> - <description>End of conversion of ADC 1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AWD1</name> - <description>Analog watchdog flag of ADC 1</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR</name> - <displayName>CCR</displayName> - <description>ADC common control register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TSVREFE</name> - <description>Temperature sensor and VREFINT enable</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VBATE</name> - <description>VBAT enable</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADCPRE</name> - <description>ADC prescaler</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DMA</name> - <description>Direct memory access mode for multi ADC mode</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DDS</name> - <description>DMA disable selection for multi-ADC mode</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DELAY</name> - <description>Delay between 2 sampling phases</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>MULT</name> - <description>Multi ADC mode selection</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>CDR</name> - <displayName>CDR</displayName> - <description>ADC common regular data register for dual and triple modes</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA2</name> - <description>2nd data item of a pair of regular conversions</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>DATA1</name> - <description>1st data item of a pair of regular conversions</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>TIM1</name> - <description>Advanced-timers</description> - <groupName>TIM</groupName> - <baseAddress>0x40010000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>TIM1_BRK_TIM9</name> - <description>TIM1 Break interrupt and TIM9 global - interrupt</description> - <value>24</value> - </interrupt> - <interrupt> - <name>TIM1_TRG_COM_TIM11</name> - <description>TIM1 Trigger and Commutation interrupts and - TIM11 global interrupt</description> - <value>26</value> - </interrupt> - <interrupt> - <name>TIM1_UP_TIM10</name> - <description>TIM1 Update interrupt and TIM10</description> - <value>25</value> - </interrupt> - <interrupt> - <name>TIM1_CC</name> - <description>TIM1 Capture Compare interrupt</description> - <value>27</value> - </interrupt> - <registers> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CKD</name> - <description>Clock division</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ARPE</name> - <description>Auto-reload preload enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMS</name> - <description>Center-aligned mode selection</description> - <bitOffset>5</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DIR</name> - <description>Direction</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OPM</name> - <description>One-pulse mode</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>URS</name> - <description>Update request source</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UDIS</name> - <description>Update disable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CEN</name> - <description>Counter enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR2</name> - <displayName>CR2</displayName> - <description>control register 2</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>OIS4</name> - <description>Output Idle state 4</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OIS3N</name> - <description>Output Idle state 3</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OIS3</name> - <description>Output Idle state 3</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OIS2N</name> - <description>Output Idle state 2</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OIS2</name> - <description>Output Idle state 2</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OIS1N</name> - <description>Output Idle state 1</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OIS1</name> - <description>Output Idle state 1</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TI1S</name> - <description>TI1 selection</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MMS</name> - <description>Master mode selection</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>CCDS</name> - <description>Capture/compare DMA selection</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CCUS</name> - <description>Capture/compare control update selection</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CCPC</name> - <description>Capture/compare preloaded control</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SMCR</name> - <displayName>SMCR</displayName> - <description>slave mode control register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>SMS_3</name> - <description>Slave model selection - bit[3]</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETP</name> - <description>External trigger polarity</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ECE</name> - <description>External clock enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETPS</name> - <description>External trigger prescaler</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ETF</name> - <description>External trigger filter</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>MSM</name> - <description>Master/Slave mode</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TS</name> - <description>Trigger selection</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>SMS</name> - <description>Slave mode selection - bit[2:0]</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>DIER</name> - <displayName>DIER</displayName> - <description>DMA/Interrupt enable register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TDE</name> - <description>Trigger DMA request enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>COMDE</name> - <description>COM DMA request enable</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4DE</name> - <description>Capture/Compare 4 DMA request enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3DE</name> - <description>Capture/Compare 3 DMA request enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2DE</name> - <description>Capture/Compare 2 DMA request enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1DE</name> - <description>Capture/Compare 1 DMA request enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UDE</name> - <description>Update DMA request enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIE</name> - <description>Trigger interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4IE</name> - <description>Capture/Compare 4 interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3IE</name> - <description>Capture/Compare 3 interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2IE</name> - <description>Capture/Compare 2 interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1IE</name> - <description>Capture/Compare 1 interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIE</name> - <description>Update interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BIE</name> - <description>Break interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>COMIE</name> - <description>COM interrupt enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC4OF</name> - <description>Capture/Compare 4 overcapture flag</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3OF</name> - <description>Capture/Compare 3 overcapture flag</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2OF</name> - <description>Capture/compare 2 overcapture flag</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1OF</name> - <description>Capture/Compare 1 overcapture flag</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BIF</name> - <description>Break interrupt flag</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIF</name> - <description>Trigger interrupt flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>COMIF</name> - <description>COM interrupt flag</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4IF</name> - <description>Capture/Compare 4 interrupt flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3IF</name> - <description>Capture/Compare 3 interrupt flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2IF</name> - <description>Capture/Compare 2 interrupt flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1IF</name> - <description>Capture/compare 1 interrupt flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIF</name> - <description>Update interrupt flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>EGR</name> - <displayName>EGR</displayName> - <description>event generation register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>BG</name> - <description>Break generation</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TG</name> - <description>Trigger generation</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>COMG</name> - <description>Capture/Compare control update generation</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4G</name> - <description>Capture/compare 4 generation</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3G</name> - <description>Capture/compare 3 generation</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2G</name> - <description>Capture/compare 2 generation</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1G</name> - <description>Capture/compare 1 generation</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UG</name> - <description>Update generation</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR1_Output</name> - <displayName>CCMR1_Output</displayName> - <description>capture/compare mode register 1 (output mode)</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OC2CE</name> - <description>Output Compare 2 clear enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC2M</name> - <description>Output Compare 2 mode</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC2PE</name> - <description>Output Compare 2 preload enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC2FE</name> - <description>Output Compare 2 fast enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2S</name> - <description>Capture/Compare 2 selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OC1CE</name> - <description>Output Compare 1 clear enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC1M</name> - <description>Output Compare 1 mode</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC1PE</name> - <description>Output Compare 1 preload enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC1FE</name> - <description>Output Compare 1 fast enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1S</name> - <description>Capture/Compare 1 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR1_Input</name> - <displayName>CCMR1_Input</displayName> - <description>capture/compare mode register 1 (input mode)</description> - <alternateRegister>CCMR1_Output</alternateRegister> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IC2F</name> - <description>Input capture 2 filter</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>IC2PCS</name> - <description>Input capture 2 prescaler</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC2S</name> - <description>Capture/Compare 2 selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>IC1F</name> - <description>Input capture 1 filter</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ICPCS</name> - <description>Input capture 1 prescaler</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC1S</name> - <description>Capture/Compare 1 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR2_Output</name> - <displayName>CCMR2_Output</displayName> - <description>capture/compare mode register 2 (output mode)</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OC4CE</name> - <description>Output compare 4 clear enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC4M</name> - <description>Output compare 4 mode</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC4PE</name> - <description>Output compare 4 preload enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC4FE</name> - <description>Output compare 4 fast enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4S</name> - <description>Capture/Compare 4 selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OC3CE</name> - <description>Output compare 3 clear enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC3M</name> - <description>Output compare 3 mode</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC3PE</name> - <description>Output compare 3 preload enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC3FE</name> - <description>Output compare 3 fast enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3S</name> - <description>Capture/Compare 3 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR2_Input</name> - <displayName>CCMR2_Input</displayName> - <description>capture/compare mode register 2 (input mode)</description> - <alternateRegister>CCMR2_Output</alternateRegister> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IC4F</name> - <description>Input capture 4 filter</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>IC4PSC</name> - <description>Input capture 4 prescaler</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC4S</name> - <description>Capture/Compare 4 selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>IC3F</name> - <description>Input capture 3 filter</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>IC3PSC</name> - <description>Input capture 3 prescaler</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC3S</name> - <description>Capture/compare 3 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCER</name> - <displayName>CCER</displayName> - <description>capture/compare enable register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC4P</name> - <description>Capture/Compare 3 output Polarity</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4E</name> - <description>Capture/Compare 4 output enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3NP</name> - <description>Capture/Compare 3 output Polarity</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3NE</name> - <description>Capture/Compare 3 complementary output enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3P</name> - <description>Capture/Compare 3 output Polarity</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3E</name> - <description>Capture/Compare 3 output enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2NP</name> - <description>Capture/Compare 2 output Polarity</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2NE</name> - <description>Capture/Compare 2 complementary output enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2P</name> - <description>Capture/Compare 2 output Polarity</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2E</name> - <description>Capture/Compare 2 output enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1NP</name> - <description>Capture/Compare 1 output Polarity</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1NE</name> - <description>Capture/Compare 1 complementary output enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1P</name> - <description>Capture/Compare 1 output Polarity</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1E</name> - <description>Capture/Compare 1 output enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CNT</name> - <displayName>CNT</displayName> - <description>counter</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CNT</name> - <description>counter value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>PSC</name> - <displayName>PSC</displayName> - <description>prescaler</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>PSC</name> - <description>Prescaler value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>ARR</name> - <displayName>ARR</displayName> - <description>auto-reload register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ARR</name> - <description>Auto-reload value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR1</name> - <displayName>CCR1</displayName> - <description>capture/compare register 1</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR1</name> - <description>Capture/Compare 1 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR2</name> - <displayName>CCR2</displayName> - <description>capture/compare register 2</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR2</name> - <description>Capture/Compare 2 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR3</name> - <displayName>CCR3</displayName> - <description>capture/compare register 3</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR3</name> - <description>Capture/Compare value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR4</name> - <displayName>CCR4</displayName> - <description>capture/compare register 4</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR4</name> - <description>Capture/Compare value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>DCR</name> - <displayName>DCR</displayName> - <description>DMA control register</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>DBL</name> - <description>DMA burst length</description> - <bitOffset>8</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>DBA</name> - <description>DMA base address</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMAR</name> - <displayName>DMAR</displayName> - <description>DMA address for full transfer</description> - <addressOffset>0x4C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>DMAB</name> - <description>DMA register for burst accesses</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>RCR</name> - <displayName>RCR</displayName> - <description>repetition counter register</description> - <addressOffset>0x30</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>REP</name> - <description>Repetition counter value</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>BDTR</name> - <displayName>BDTR</displayName> - <description>break and dead-time register</description> - <addressOffset>0x44</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>MOE</name> - <description>Main output enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AOE</name> - <description>Automatic output enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BKP</name> - <description>Break polarity</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BKE</name> - <description>Break enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OSSR</name> - <description>Off-state selection for Run mode</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OSSI</name> - <description>Off-state selection for Idle mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LOCK</name> - <description>Lock configuration</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DTG</name> - <description>Dead-time generator setup</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR3_Output</name> - <displayName>CCMR3_Output</displayName> - <description>capture/compare mode register 3 (output mode)</description> - <addressOffset>0x54</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>OC5FE</name> - <description>Output compare 5 fast enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC5PE</name> - <description>Output compare 5 preload enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC5M</name> - <description>Output compare 5 mode</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC5CE</name> - <description>Output compare 5 clear enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC6FE</name> - <description>Output compare 6 fast enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC6PE</name> - <description>Output compare 6 preload enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC6M</name> - <description>Output compare 6 mode</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC6CE</name> - <description>Output compare 6 clear enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC5M3</name> - <description>Output Compare 5 mode</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC6M3</name> - <description>Output Compare 6 mode</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR5</name> - <displayName>CCR5</displayName> - <description>capture/compare register 5</description> - <addressOffset>0x58</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CCR5</name> - <description>Capture/Compare 5 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>GC5C1</name> - <description>Group Channel 5 and Channel 1</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GC5C2</name> - <description>Group Channel 5 and Channel 2</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GC5C3</name> - <description>Group Channel 5 and Channel 3</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CRR6</name> - <displayName>CRR6</displayName> - <description>capture/compare register 6</description> - <addressOffset>0x5C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CCR6</name> - <description>Capture/Compare 6 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="TIM1"> - <name>TIM8</name> - <baseAddress>0x40010400</baseAddress> - <interrupt> - <name>TIM8_BRK_TIM12</name> - <description>TIM8 Break interrupt and TIM12 global - interrupt</description> - <value>43</value> - </interrupt> - <interrupt> - <name>TIM8_UP_TIM13</name> - <description>TIM8 Update interrupt and TIM13 global - interrupt</description> - <value>44</value> - </interrupt> - <interrupt> - <name>TIM8_TRG_COM_TIM14</name> - <description>TIM8 Trigger and Commutation interrupts and - TIM14 global interrupt</description> - <value>45</value> - </interrupt> - <interrupt> - <name>TIM8_CC</name> - <description>TIM8 Capture Compare interrupt</description> - <value>46</value> - </interrupt> - </peripheral> - <peripheral> - <name>TIM2</name> - <description>General purpose timers</description> - <groupName>TIM</groupName> - <baseAddress>0x40000000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>TIM2</name> - <description>TIM2 global interrupt</description> - <value>28</value> - </interrupt> - <registers> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CKD</name> - <description>Clock division</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ARPE</name> - <description>Auto-reload preload enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMS</name> - <description>Center-aligned mode selection</description> - <bitOffset>5</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DIR</name> - <description>Direction</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OPM</name> - <description>One-pulse mode</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>URS</name> - <description>Update request source</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UDIS</name> - <description>Update disable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CEN</name> - <description>Counter enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR2</name> - <displayName>CR2</displayName> - <description>control register 2</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TI1S</name> - <description>TI1 selection</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MMS</name> - <description>Master mode selection</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>CCDS</name> - <description>Capture/compare DMA selection</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SMCR</name> - <displayName>SMCR</displayName> - <description>slave mode control register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>SMS</name> - <description>Slave mode selection</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>TS</name> - <description>Trigger selection</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MSM</name> - <description>Master/Slave mode</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETF</name> - <description>External trigger filter</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ETPS</name> - <description>External trigger prescaler</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ECE</name> - <description>External clock enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETP</name> - <description>External trigger polarity</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SMS_3</name> - <description>Slave model selection - bit[3]</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DIER</name> - <displayName>DIER</displayName> - <description>DMA/Interrupt enable register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TDE</name> - <description>Trigger DMA request enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4DE</name> - <description>Capture/Compare 4 DMA request enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3DE</name> - <description>Capture/Compare 3 DMA request enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2DE</name> - <description>Capture/Compare 2 DMA request enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1DE</name> - <description>Capture/Compare 1 DMA request enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UDE</name> - <description>Update DMA request enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIE</name> - <description>Trigger interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4IE</name> - <description>Capture/Compare 4 interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3IE</name> - <description>Capture/Compare 3 interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2IE</name> - <description>Capture/Compare 2 interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1IE</name> - <description>Capture/Compare 1 interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIE</name> - <description>Update interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC4OF</name> - <description>Capture/Compare 4 overcapture flag</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3OF</name> - <description>Capture/Compare 3 overcapture flag</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2OF</name> - <description>Capture/compare 2 overcapture flag</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1OF</name> - <description>Capture/Compare 1 overcapture flag</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIF</name> - <description>Trigger interrupt flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4IF</name> - <description>Capture/Compare 4 interrupt flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3IF</name> - <description>Capture/Compare 3 interrupt flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2IF</name> - <description>Capture/Compare 2 interrupt flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1IF</name> - <description>Capture/compare 1 interrupt flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIF</name> - <description>Update interrupt flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>EGR</name> - <displayName>EGR</displayName> - <description>event generation register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TG</name> - <description>Trigger generation</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4G</name> - <description>Capture/compare 4 generation</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3G</name> - <description>Capture/compare 3 generation</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2G</name> - <description>Capture/compare 2 generation</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1G</name> - <description>Capture/compare 1 generation</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UG</name> - <description>Update generation</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR1_Output</name> - <displayName>CCMR1_Output</displayName> - <description>capture/compare mode register 1 (output mode)</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OC2CE</name> - <description>OC2CE</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC2M</name> - <description>OC2M</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC2PE</name> - <description>OC2PE</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC2FE</name> - <description>OC2FE</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2S</name> - <description>CC2S</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OC1CE</name> - <description>OC1CE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC1M</name> - <description>OC1M</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC1PE</name> - <description>OC1PE</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC1FE</name> - <description>OC1FE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1S</name> - <description>CC1S</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR1_Input</name> - <displayName>CCMR1_Input</displayName> - <description>capture/compare mode register 1 (input mode)</description> - <alternateRegister>CCMR1_Output</alternateRegister> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IC2F</name> - <description>Input capture 2 filter</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>IC2PCS</name> - <description>Input capture 2 prescaler</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC2S</name> - <description>Capture/Compare 2 selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>IC1F</name> - <description>Input capture 1 filter</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ICPCS</name> - <description>Input capture 1 prescaler</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC1S</name> - <description>Capture/Compare 1 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR2_Output</name> - <displayName>CCMR2_Output</displayName> - <description>capture/compare mode register 2 (output mode)</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>O24CE</name> - <description>O24CE</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC4M</name> - <description>OC4M</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC4PE</name> - <description>OC4PE</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC4FE</name> - <description>OC4FE</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4S</name> - <description>CC4S</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OC3CE</name> - <description>OC3CE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC3M</name> - <description>OC3M</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC3PE</name> - <description>OC3PE</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC3FE</name> - <description>OC3FE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3S</name> - <description>CC3S</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR2_Input</name> - <displayName>CCMR2_Input</displayName> - <description>capture/compare mode register 2 (input mode)</description> - <alternateRegister>CCMR2_Output</alternateRegister> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IC4F</name> - <description>Input capture 4 filter</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>IC4PSC</name> - <description>Input capture 4 prescaler</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC4S</name> - <description>Capture/Compare 4 selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>IC3F</name> - <description>Input capture 3 filter</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>IC3PSC</name> - <description>Input capture 3 prescaler</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC3S</name> - <description>Capture/compare 3 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCER</name> - <displayName>CCER</displayName> - <description>capture/compare enable register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC4NP</name> - <description>Capture/Compare 4 output Polarity</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4P</name> - <description>Capture/Compare 3 output Polarity</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4E</name> - <description>Capture/Compare 4 output enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3NP</name> - <description>Capture/Compare 3 output Polarity</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3P</name> - <description>Capture/Compare 3 output Polarity</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3E</name> - <description>Capture/Compare 3 output enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2NP</name> - <description>Capture/Compare 2 output Polarity</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2P</name> - <description>Capture/Compare 2 output Polarity</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2E</name> - <description>Capture/Compare 2 output enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1NP</name> - <description>Capture/Compare 1 output Polarity</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1P</name> - <description>Capture/Compare 1 output Polarity</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1E</name> - <description>Capture/Compare 1 output enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CNT</name> - <displayName>CNT</displayName> - <description>counter</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CNT_H</name> - <description>High counter value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CNT_L</name> - <description>Low counter value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>PSC</name> - <displayName>PSC</displayName> - <description>prescaler</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>PSC</name> - <description>Prescaler value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>ARR</name> - <displayName>ARR</displayName> - <description>auto-reload register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ARR_H</name> - <description>High Auto-reload value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>ARR_L</name> - <description>Low Auto-reload value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR1</name> - <displayName>CCR1</displayName> - <description>capture/compare register 1</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR1_H</name> - <description>High Capture/Compare 1 value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CCR1_L</name> - <description>Low Capture/Compare 1 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR2</name> - <displayName>CCR2</displayName> - <description>capture/compare register 2</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR2_H</name> - <description>High Capture/Compare 2 value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CCR2_L</name> - <description>Low Capture/Compare 2 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR3</name> - <displayName>CCR3</displayName> - <description>capture/compare register 3</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR3_H</name> - <description>High Capture/Compare value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CCR3_L</name> - <description>Low Capture/Compare value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR4</name> - <displayName>CCR4</displayName> - <description>capture/compare register 4</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR4_H</name> - <description>High Capture/Compare value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CCR4_L</name> - <description>Low Capture/Compare value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>DCR</name> - <displayName>DCR</displayName> - <description>DMA control register</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>DBL</name> - <description>DMA burst length</description> - <bitOffset>8</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>DBA</name> - <description>DMA base address</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMAR</name> - <displayName>DMAR</displayName> - <description>DMA address for full transfer</description> - <addressOffset>0x4C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>DMAB</name> - <description>DMA register for burst accesses</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OR1</name> - <displayName>OR1</displayName> - <description>TIM2 option register 1</description> - <addressOffset>0x50</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TI4_RMP</name> - <description>Input Capture 4 remap</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ETR1_RMP</name> - <description>External trigger remap</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ITR1_RMP</name> - <description>Internal trigger 1 remap</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OR2</name> - <displayName>OR2</displayName> - <description>TIM2 option register 2</description> - <addressOffset>0x60</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>ETRSEL</name> - <description>ETR source selection</description> - <bitOffset>14</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>TIM3</name> - <description>General purpose timers</description> - <groupName>TIM</groupName> - <baseAddress>0x40000400</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>TIM3</name> - <description>TIM3 global interrupt</description> - <value>29</value> - </interrupt> - <registers> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CKD</name> - <description>Clock division</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ARPE</name> - <description>Auto-reload preload enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMS</name> - <description>Center-aligned mode selection</description> - <bitOffset>5</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DIR</name> - <description>Direction</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OPM</name> - <description>One-pulse mode</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>URS</name> - <description>Update request source</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UDIS</name> - <description>Update disable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CEN</name> - <description>Counter enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR2</name> - <displayName>CR2</displayName> - <description>control register 2</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TI1S</name> - <description>TI1 selection</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MMS</name> - <description>Master mode selection</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>CCDS</name> - <description>Capture/compare DMA selection</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SMCR</name> - <displayName>SMCR</displayName> - <description>slave mode control register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>SMS</name> - <description>Slave mode selection</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>TS</name> - <description>Trigger selection</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MSM</name> - <description>Master/Slave mode</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETF</name> - <description>External trigger filter</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ETPS</name> - <description>External trigger prescaler</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ECE</name> - <description>External clock enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETP</name> - <description>External trigger polarity</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SMS_3</name> - <description>Slave model selection - bit[3]</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DIER</name> - <displayName>DIER</displayName> - <description>DMA/Interrupt enable register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TDE</name> - <description>Trigger DMA request enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4DE</name> - <description>Capture/Compare 4 DMA request enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3DE</name> - <description>Capture/Compare 3 DMA request enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2DE</name> - <description>Capture/Compare 2 DMA request enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1DE</name> - <description>Capture/Compare 1 DMA request enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UDE</name> - <description>Update DMA request enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIE</name> - <description>Trigger interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4IE</name> - <description>Capture/Compare 4 interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3IE</name> - <description>Capture/Compare 3 interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2IE</name> - <description>Capture/Compare 2 interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1IE</name> - <description>Capture/Compare 1 interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIE</name> - <description>Update interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC4OF</name> - <description>Capture/Compare 4 overcapture flag</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3OF</name> - <description>Capture/Compare 3 overcapture flag</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2OF</name> - <description>Capture/compare 2 overcapture flag</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1OF</name> - <description>Capture/Compare 1 overcapture flag</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIF</name> - <description>Trigger interrupt flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4IF</name> - <description>Capture/Compare 4 interrupt flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3IF</name> - <description>Capture/Compare 3 interrupt flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2IF</name> - <description>Capture/Compare 2 interrupt flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1IF</name> - <description>Capture/compare 1 interrupt flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIF</name> - <description>Update interrupt flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>EGR</name> - <displayName>EGR</displayName> - <description>event generation register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TG</name> - <description>Trigger generation</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4G</name> - <description>Capture/compare 4 generation</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3G</name> - <description>Capture/compare 3 generation</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2G</name> - <description>Capture/compare 2 generation</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1G</name> - <description>Capture/compare 1 generation</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UG</name> - <description>Update generation</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR1_Output</name> - <displayName>CCMR1_Output</displayName> - <description>capture/compare mode register 1 (output mode)</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OC2CE</name> - <description>OC2CE</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC2M</name> - <description>OC2M</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC2PE</name> - <description>OC2PE</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC2FE</name> - <description>OC2FE</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2S</name> - <description>CC2S</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OC1CE</name> - <description>OC1CE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC1M</name> - <description>OC1M</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC1PE</name> - <description>OC1PE</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC1FE</name> - <description>OC1FE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1S</name> - <description>CC1S</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR1_Input</name> - <displayName>CCMR1_Input</displayName> - <description>capture/compare mode register 1 (input mode)</description> - <alternateRegister>CCMR1_Output</alternateRegister> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IC2F</name> - <description>Input capture 2 filter</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>IC2PCS</name> - <description>Input capture 2 prescaler</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC2S</name> - <description>Capture/Compare 2 selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>IC1F</name> - <description>Input capture 1 filter</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ICPCS</name> - <description>Input capture 1 prescaler</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC1S</name> - <description>Capture/Compare 1 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR2_Output</name> - <displayName>CCMR2_Output</displayName> - <description>capture/compare mode register 2 (output mode)</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>O24CE</name> - <description>O24CE</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC4M</name> - <description>OC4M</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC4PE</name> - <description>OC4PE</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC4FE</name> - <description>OC4FE</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4S</name> - <description>CC4S</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OC3CE</name> - <description>OC3CE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC3M</name> - <description>OC3M</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC3PE</name> - <description>OC3PE</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC3FE</name> - <description>OC3FE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3S</name> - <description>CC3S</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR2_Input</name> - <displayName>CCMR2_Input</displayName> - <description>capture/compare mode register 2 (input mode)</description> - <alternateRegister>CCMR2_Output</alternateRegister> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IC4F</name> - <description>Input capture 4 filter</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>IC4PSC</name> - <description>Input capture 4 prescaler</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC4S</name> - <description>Capture/Compare 4 selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>IC3F</name> - <description>Input capture 3 filter</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>IC3PSC</name> - <description>Input capture 3 prescaler</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC3S</name> - <description>Capture/compare 3 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCER</name> - <displayName>CCER</displayName> - <description>capture/compare enable register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC4NP</name> - <description>Capture/Compare 4 output Polarity</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4P</name> - <description>Capture/Compare 3 output Polarity</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4E</name> - <description>Capture/Compare 4 output enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3NP</name> - <description>Capture/Compare 3 output Polarity</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3P</name> - <description>Capture/Compare 3 output Polarity</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3E</name> - <description>Capture/Compare 3 output enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2NP</name> - <description>Capture/Compare 2 output Polarity</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2P</name> - <description>Capture/Compare 2 output Polarity</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2E</name> - <description>Capture/Compare 2 output enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1NP</name> - <description>Capture/Compare 1 output Polarity</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1P</name> - <description>Capture/Compare 1 output Polarity</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1E</name> - <description>Capture/Compare 1 output enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CNT</name> - <displayName>CNT</displayName> - <description>counter</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CNT_H</name> - <description>High counter value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CNT_L</name> - <description>Low counter value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>PSC</name> - <displayName>PSC</displayName> - <description>prescaler</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>PSC</name> - <description>Prescaler value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>ARR</name> - <displayName>ARR</displayName> - <description>auto-reload register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ARR_H</name> - <description>High Auto-reload value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>ARR_L</name> - <description>Low Auto-reload value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR1</name> - <displayName>CCR1</displayName> - <description>capture/compare register 1</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR1_H</name> - <description>High Capture/Compare 1 value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CCR1_L</name> - <description>Low Capture/Compare 1 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR2</name> - <displayName>CCR2</displayName> - <description>capture/compare register 2</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR2_H</name> - <description>High Capture/Compare 2 value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CCR2_L</name> - <description>Low Capture/Compare 2 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR3</name> - <displayName>CCR3</displayName> - <description>capture/compare register 3</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR3_H</name> - <description>High Capture/Compare value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CCR3_L</name> - <description>Low Capture/Compare value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR4</name> - <displayName>CCR4</displayName> - <description>capture/compare register 4</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR4_H</name> - <description>High Capture/Compare value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CCR4_L</name> - <description>Low Capture/Compare value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>DCR</name> - <displayName>DCR</displayName> - <description>DMA control register</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>DBL</name> - <description>DMA burst length</description> - <bitOffset>8</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>DBA</name> - <description>DMA base address</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMAR</name> - <displayName>DMAR</displayName> - <description>DMA address for full transfer</description> - <addressOffset>0x4C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>DMAB</name> - <description>DMA register for burst accesses</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OR1</name> - <displayName>OR1</displayName> - <description>TIM3 option register 1</description> - <addressOffset>0x50</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TI1_RMP</name> - <description>Input Capture 1 remap</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OR2</name> - <displayName>OR2</displayName> - <description>TIM3 option register 2</description> - <addressOffset>0x60</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>ETRSEL</name> - <description>ETR source selection</description> - <bitOffset>14</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>TIM4</name> - <description>General purpose timers</description> - <groupName>TIM</groupName> - <baseAddress>0x40000800</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>TIM4</name> - <description>TIM4 global interrupt</description> - <value>30</value> - </interrupt> - <registers> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CKD</name> - <description>Clock division</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ARPE</name> - <description>Auto-reload preload enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMS</name> - <description>Center-aligned mode selection</description> - <bitOffset>5</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DIR</name> - <description>Direction</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OPM</name> - <description>One-pulse mode</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>URS</name> - <description>Update request source</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UDIS</name> - <description>Update disable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CEN</name> - <description>Counter enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR2</name> - <displayName>CR2</displayName> - <description>control register 2</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TI1S</name> - <description>TI1 selection</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MMS</name> - <description>Master mode selection</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>CCDS</name> - <description>Capture/compare DMA selection</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SMCR</name> - <displayName>SMCR</displayName> - <description>slave mode control register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>SMS</name> - <description>Slave mode selection</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>TS</name> - <description>Trigger selection</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MSM</name> - <description>Master/Slave mode</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETF</name> - <description>External trigger filter</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ETPS</name> - <description>External trigger prescaler</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ECE</name> - <description>External clock enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETP</name> - <description>External trigger polarity</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SMS_3</name> - <description>Slave model selection - bit[3]</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DIER</name> - <displayName>DIER</displayName> - <description>DMA/Interrupt enable register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TDE</name> - <description>Trigger DMA request enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4DE</name> - <description>Capture/Compare 4 DMA request enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3DE</name> - <description>Capture/Compare 3 DMA request enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2DE</name> - <description>Capture/Compare 2 DMA request enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1DE</name> - <description>Capture/Compare 1 DMA request enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UDE</name> - <description>Update DMA request enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIE</name> - <description>Trigger interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4IE</name> - <description>Capture/Compare 4 interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3IE</name> - <description>Capture/Compare 3 interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2IE</name> - <description>Capture/Compare 2 interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1IE</name> - <description>Capture/Compare 1 interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIE</name> - <description>Update interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC4OF</name> - <description>Capture/Compare 4 overcapture flag</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3OF</name> - <description>Capture/Compare 3 overcapture flag</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2OF</name> - <description>Capture/compare 2 overcapture flag</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1OF</name> - <description>Capture/Compare 1 overcapture flag</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIF</name> - <description>Trigger interrupt flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4IF</name> - <description>Capture/Compare 4 interrupt flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3IF</name> - <description>Capture/Compare 3 interrupt flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2IF</name> - <description>Capture/Compare 2 interrupt flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1IF</name> - <description>Capture/compare 1 interrupt flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIF</name> - <description>Update interrupt flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>EGR</name> - <displayName>EGR</displayName> - <description>event generation register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TG</name> - <description>Trigger generation</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4G</name> - <description>Capture/compare 4 generation</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3G</name> - <description>Capture/compare 3 generation</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2G</name> - <description>Capture/compare 2 generation</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1G</name> - <description>Capture/compare 1 generation</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UG</name> - <description>Update generation</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR1_Output</name> - <displayName>CCMR1_Output</displayName> - <description>capture/compare mode register 1 (output mode)</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OC2CE</name> - <description>OC2CE</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC2M</name> - <description>OC2M</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC2PE</name> - <description>OC2PE</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC2FE</name> - <description>OC2FE</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2S</name> - <description>CC2S</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OC1CE</name> - <description>OC1CE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC1M</name> - <description>OC1M</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC1PE</name> - <description>OC1PE</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC1FE</name> - <description>OC1FE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1S</name> - <description>CC1S</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR1_Input</name> - <displayName>CCMR1_Input</displayName> - <description>capture/compare mode register 1 (input mode)</description> - <alternateRegister>CCMR1_Output</alternateRegister> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IC2F</name> - <description>Input capture 2 filter</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>IC2PCS</name> - <description>Input capture 2 prescaler</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC2S</name> - <description>Capture/Compare 2 selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>IC1F</name> - <description>Input capture 1 filter</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ICPCS</name> - <description>Input capture 1 prescaler</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC1S</name> - <description>Capture/Compare 1 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR2_Output</name> - <displayName>CCMR2_Output</displayName> - <description>capture/compare mode register 2 (output mode)</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>O24CE</name> - <description>O24CE</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC4M</name> - <description>OC4M</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC4PE</name> - <description>OC4PE</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC4FE</name> - <description>OC4FE</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4S</name> - <description>CC4S</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OC3CE</name> - <description>OC3CE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC3M</name> - <description>OC3M</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC3PE</name> - <description>OC3PE</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC3FE</name> - <description>OC3FE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3S</name> - <description>CC3S</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR2_Input</name> - <displayName>CCMR2_Input</displayName> - <description>capture/compare mode register 2 (input mode)</description> - <alternateRegister>CCMR2_Output</alternateRegister> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IC4F</name> - <description>Input capture 4 filter</description> - <bitOffset>12</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>IC4PSC</name> - <description>Input capture 4 prescaler</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC4S</name> - <description>Capture/Compare 4 selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>IC3F</name> - <description>Input capture 3 filter</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>IC3PSC</name> - <description>Input capture 3 prescaler</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC3S</name> - <description>Capture/compare 3 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCER</name> - <displayName>CCER</displayName> - <description>capture/compare enable register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC4NP</name> - <description>Capture/Compare 4 output Polarity</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4P</name> - <description>Capture/Compare 3 output Polarity</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC4E</name> - <description>Capture/Compare 4 output enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3NP</name> - <description>Capture/Compare 3 output Polarity</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3P</name> - <description>Capture/Compare 3 output Polarity</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC3E</name> - <description>Capture/Compare 3 output enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2NP</name> - <description>Capture/Compare 2 output Polarity</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2P</name> - <description>Capture/Compare 2 output Polarity</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2E</name> - <description>Capture/Compare 2 output enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1NP</name> - <description>Capture/Compare 1 output Polarity</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1P</name> - <description>Capture/Compare 1 output Polarity</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1E</name> - <description>Capture/Compare 1 output enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CNT</name> - <displayName>CNT</displayName> - <description>counter</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CNT_H</name> - <description>High counter value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CNT_L</name> - <description>Low counter value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>PSC</name> - <displayName>PSC</displayName> - <description>prescaler</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>PSC</name> - <description>Prescaler value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>ARR</name> - <displayName>ARR</displayName> - <description>auto-reload register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ARR_H</name> - <description>High Auto-reload value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>ARR_L</name> - <description>Low Auto-reload value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR1</name> - <displayName>CCR1</displayName> - <description>capture/compare register 1</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR1_H</name> - <description>High Capture/Compare 1 value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CCR1_L</name> - <description>Low Capture/Compare 1 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR2</name> - <displayName>CCR2</displayName> - <description>capture/compare register 2</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR2_H</name> - <description>High Capture/Compare 2 value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CCR2_L</name> - <description>Low Capture/Compare 2 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR3</name> - <displayName>CCR3</displayName> - <description>capture/compare register 3</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR3_H</name> - <description>High Capture/Compare value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CCR3_L</name> - <description>Low Capture/Compare value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR4</name> - <displayName>CCR4</displayName> - <description>capture/compare register 4</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR4_H</name> - <description>High Capture/Compare value</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CCR4_L</name> - <description>Low Capture/Compare value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>DCR</name> - <displayName>DCR</displayName> - <description>DMA control register</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>DBL</name> - <description>DMA burst length</description> - <bitOffset>8</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>DBA</name> - <description>DMA base address</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMAR</name> - <displayName>DMAR</displayName> - <description>DMA address for full transfer</description> - <addressOffset>0x4C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>DMAB</name> - <description>DMA register for burst accesses</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="TIM4"> - <name>TIM5</name> - <baseAddress>0x40000C00</baseAddress> - <interrupt> - <name>TIM5</name> - <description>TIM5 global interrupt</description> - <value>50</value> - </interrupt> - </peripheral> - <peripheral> - <name>TIM9</name> - <description>General purpose timers</description> - <groupName>TIM</groupName> - <baseAddress>0x40014000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CKD</name> - <description>Clock division</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ARPE</name> - <description>Auto-reload preload enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OPM</name> - <description>One-pulse mode</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>URS</name> - <description>Update request source</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UDIS</name> - <description>Update disable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CEN</name> - <description>Counter enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SMCR</name> - <displayName>SMCR</displayName> - <description>slave mode control register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>MSM</name> - <description>Master/Slave mode</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TS</name> - <description>Trigger selection</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>SMS</name> - <description>Slave mode selection</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>DIER</name> - <displayName>DIER</displayName> - <description>DMA/Interrupt enable register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TIE</name> - <description>Trigger interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2IE</name> - <description>Capture/Compare 2 interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1IE</name> - <description>Capture/Compare 1 interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIE</name> - <description>Update interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC2OF</name> - <description>Capture/compare 2 overcapture flag</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1OF</name> - <description>Capture/Compare 1 overcapture flag</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIF</name> - <description>Trigger interrupt flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2IF</name> - <description>Capture/Compare 2 interrupt flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1IF</name> - <description>Capture/compare 1 interrupt flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIF</name> - <description>Update interrupt flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>EGR</name> - <displayName>EGR</displayName> - <description>event generation register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TG</name> - <description>Trigger generation</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2G</name> - <description>Capture/compare 2 generation</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1G</name> - <description>Capture/compare 1 generation</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UG</name> - <description>Update generation</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR1_Output</name> - <displayName>CCMR1_Output</displayName> - <description>capture/compare mode register 1 (output mode)</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OC2M</name> - <description>Output Compare 2 mode</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC2PE</name> - <description>Output Compare 2 preload enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC2FE</name> - <description>Output Compare 2 fast enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2S</name> - <description>Capture/Compare 2 selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>OC1M</name> - <description>Output Compare 1 mode</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC1PE</name> - <description>Output Compare 1 preload enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC1FE</name> - <description>Output Compare 1 fast enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1S</name> - <description>Capture/Compare 1 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR1_Input</name> - <displayName>CCMR1_Input</displayName> - <description>capture/compare mode register 1 (input mode)</description> - <alternateRegister>CCMR1_Output</alternateRegister> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IC2F</name> - <description>Input capture 2 filter</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>IC2PCS</name> - <description>Input capture 2 prescaler</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC2S</name> - <description>Capture/Compare 2 selection</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>IC1F</name> - <description>Input capture 1 filter</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>ICPCS</name> - <description>Input capture 1 prescaler</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC1S</name> - <description>Capture/Compare 1 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCER</name> - <displayName>CCER</displayName> - <description>capture/compare enable register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC2NP</name> - <description>Capture/Compare 2 output Polarity</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2P</name> - <description>Capture/Compare 2 output Polarity</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC2E</name> - <description>Capture/Compare 2 output enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1NP</name> - <description>Capture/Compare 1 output Polarity</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1P</name> - <description>Capture/Compare 1 output Polarity</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1E</name> - <description>Capture/Compare 1 output enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CNT</name> - <displayName>CNT</displayName> - <description>counter</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CNT</name> - <description>counter value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>PSC</name> - <displayName>PSC</displayName> - <description>prescaler</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>PSC</name> - <description>Prescaler value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>ARR</name> - <displayName>ARR</displayName> - <description>auto-reload register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ARR</name> - <description>Auto-reload value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR1</name> - <displayName>CCR1</displayName> - <description>capture/compare register 1</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR1</name> - <description>Capture/Compare 1 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR2</name> - <displayName>CCR2</displayName> - <description>capture/compare register 2</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR2</name> - <description>Capture/Compare 2 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="TIM9"> - <name>TIM12</name> - <baseAddress>0x40001800</baseAddress> - </peripheral> - <peripheral> - <name>TIM10</name> - <description>General-purpose-timers</description> - <groupName>TIM</groupName> - <baseAddress>0x40014400</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CKD</name> - <description>Clock division</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ARPE</name> - <description>Auto-reload preload enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>URS</name> - <description>Update request source</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UDIS</name> - <description>Update disable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CEN</name> - <description>Counter enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DIER</name> - <displayName>DIER</displayName> - <description>DMA/Interrupt enable register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC1IE</name> - <description>Capture/Compare 1 interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIE</name> - <description>Update interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC1OF</name> - <description>Capture/Compare 1 overcapture flag</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1IF</name> - <description>Capture/compare 1 interrupt flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIF</name> - <description>Update interrupt flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>EGR</name> - <displayName>EGR</displayName> - <description>event generation register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC1G</name> - <description>Capture/compare 1 generation</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UG</name> - <description>Update generation</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR1_Output</name> - <displayName>CCMR1_Output</displayName> - <description>capture/compare mode register 1 (output mode)</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OC1M</name> - <description>Output Compare 1 mode</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OC1PE</name> - <description>Output Compare 1 preload enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OC1FE</name> - <description>Output Compare 1 fast enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1S</name> - <description>Capture/Compare 1 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCMR1_Input</name> - <displayName>CCMR1_Input</displayName> - <description>capture/compare mode register 1 (input mode)</description> - <alternateRegister>CCMR1_Output</alternateRegister> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IC1F</name> - <description>Input capture 1 filter</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ICPCS</name> - <description>Input capture 1 prescaler</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CC1S</name> - <description>Capture/Compare 1 selection</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCER</name> - <displayName>CCER</displayName> - <description>capture/compare enable register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>CC1NP</name> - <description>Capture/Compare 1 output Polarity</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1P</name> - <description>Capture/Compare 1 output Polarity</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CC1E</name> - <description>Capture/Compare 1 output enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CNT</name> - <displayName>CNT</displayName> - <description>counter</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CNT</name> - <description>counter value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>PSC</name> - <displayName>PSC</displayName> - <description>prescaler</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>PSC</name> - <description>Prescaler value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>ARR</name> - <displayName>ARR</displayName> - <description>auto-reload register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ARR</name> - <description>Auto-reload value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR1</name> - <displayName>CCR1</displayName> - <description>capture/compare register 1</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCR1</name> - <description>Capture/Compare 1 value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>SMCR</name> - <displayName>SMCR</displayName> - <description>slave mode control register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SMS3</name> - <description>Slave mode selection</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETP</name> - <description>External trigger polarity</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ECE</name> - <description>External clock enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETPS</name> - <description>External trigger prescaler</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ETF</name> - <description>External trigger filter</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>MSM</name> - <description>Master/slave mode</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TS</name> - <description>Trigger selection</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>SMS</name> - <description>Slave mode selection</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>OR</name> - <displayName>OR</displayName> - <description>option register</description> - <addressOffset>0x50</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TI1_RMP</name> - <description>TIM11 Input 1 remapping capability</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="TIM10"> - <name>TIM11</name> - <baseAddress>0x40014800</baseAddress> - </peripheral> - <peripheral derivedFrom="TIM10"> - <name>TIM13</name> - <baseAddress>0x40001C00</baseAddress> - </peripheral> - <peripheral derivedFrom="TIM10"> - <name>TIM14</name> - <baseAddress>0x40002000</baseAddress> - </peripheral> - <peripheral> - <name>TIM6</name> - <description>Basic timers</description> - <groupName>TIM</groupName> - <baseAddress>0x40001000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>TIM6_DAC</name> - <description>TIM6 global interrupt, DAC1 and DAC2 underrun - error interrupt</description> - <value>54</value> - </interrupt> - <registers> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>ARPE</name> - <description>Auto-reload preload enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OPM</name> - <description>One-pulse mode</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>URS</name> - <description>Update request source</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UDIS</name> - <description>Update disable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CEN</name> - <description>Counter enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR2</name> - <displayName>CR2</displayName> - <description>control register 2</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>MMS</name> - <description>Master mode selection</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>DIER</name> - <displayName>DIER</displayName> - <description>DMA/Interrupt enable register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>UDE</name> - <description>Update DMA request enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UIE</name> - <description>Update interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>UIF</name> - <description>Update interrupt flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>EGR</name> - <displayName>EGR</displayName> - <description>event generation register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>UG</name> - <description>Update generation</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CNT</name> - <displayName>CNT</displayName> - <description>counter</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CNT</name> - <description>Low counter value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>PSC</name> - <displayName>PSC</displayName> - <description>prescaler</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>PSC</name> - <description>Prescaler value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>ARR</name> - <displayName>ARR</displayName> - <description>auto-reload register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ARR</name> - <description>Low Auto-reload value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="TIM6"> - <name>TIM7</name> - <baseAddress>0x40001400</baseAddress> - <interrupt> - <name>TIM7</name> - <description>TIM7 global interrupt</description> - <value>55</value> - </interrupt> - </peripheral> - <peripheral> - <name>Ethernet_MAC</name> - <description>Ethernet: media access control (MAC)</description> - <groupName>Ethernet</groupName> - <baseAddress>0x40028000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x100</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>MACCR</name> - <displayName>MACCR</displayName> - <description>Ethernet MAC configuration register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0008000</resetValue> - <fields> - <field> - <name>RE</name> - <description>RE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TE</name> - <description>TE</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DC</name> - <description>DC</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BL</name> - <description>BL</description> - <bitOffset>5</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>APCS</name> - <description>APCS</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RD</name> - <description>RD</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IPCO</name> - <description>IPCO</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DM</name> - <description>DM</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LM</name> - <description>LM</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ROD</name> - <description>ROD</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FES</name> - <description>FES</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CSD</name> - <description>CSD</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IFG</name> - <description>IFG</description> - <bitOffset>17</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>JD</name> - <description>JD</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WD</name> - <description>WD</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CSTF</name> - <description>CSTF</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACFFR</name> - <displayName>MACFFR</displayName> - <description>Ethernet MAC frame filter register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PM</name> - <description>PM</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HU</name> - <description>HU</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HM</name> - <description>HM</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DAIF</name> - <description>DAIF</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RAM</name> - <description>RAM</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BFD</name> - <description>BFD</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PCF</name> - <description>PCF</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SAIF</name> - <description>SAIF</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SAF</name> - <description>SAF</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HPF</name> - <description>HPF</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RA</name> - <description>RA</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACHTHR</name> - <displayName>MACHTHR</displayName> - <description>Ethernet MAC hash table high register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>HTH</name> - <description>HTH</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACHTLR</name> - <displayName>MACHTLR</displayName> - <description>Ethernet MAC hash table low register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>HTL</name> - <description>HTL</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACMIIAR</name> - <displayName>MACMIIAR</displayName> - <description>Ethernet MAC MII address register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MB</name> - <description>MB</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MW</name> - <description>MW</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CR</name> - <description>CR</description> - <bitOffset>2</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MR</name> - <description>MR</description> - <bitOffset>6</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>PA</name> - <description>PA</description> - <bitOffset>11</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACMIIDR</name> - <displayName>MACMIIDR</displayName> - <description>Ethernet MAC MII data register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TD</name> - <description>TD</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACFCR</name> - <displayName>MACFCR</displayName> - <description>Ethernet MAC flow control register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FCB</name> - <description>FCB</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TFCE</name> - <description>TFCE</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RFCE</name> - <description>RFCE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UPFD</name> - <description>UPFD</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PLT</name> - <description>PLT</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ZQPD</name> - <description>ZQPD</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PT</name> - <description>PT</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACVLANTR</name> - <displayName>MACVLANTR</displayName> - <description>Ethernet MAC VLAN tag register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>VLANTI</name> - <description>VLANTI</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>VLANTC</name> - <description>VLANTC</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACPMTCSR</name> - <displayName>MACPMTCSR</displayName> - <description>Ethernet MAC PMT control and status register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PD</name> - <description>PD</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MPE</name> - <description>MPE</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WFE</name> - <description>WFE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MPR</name> - <description>MPR</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WFR</name> - <description>WFR</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GU</name> - <description>GU</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WFFRPR</name> - <description>WFFRPR</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACDBGR</name> - <displayName>MACDBGR</displayName> - <description>Ethernet MAC debug register</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CR</name> - <description>CR</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CSR</name> - <description>CSR</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ROR</name> - <description>ROR</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MCF</name> - <description>MCF</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MCP</name> - <description>MCP</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MCFHP</name> - <description>MCFHP</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACSR</name> - <displayName>MACSR</displayName> - <description>Ethernet MAC interrupt status register</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PMTS</name> - <description>PMTS</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>MMCS</name> - <description>MMCS</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>MMCRS</name> - <description>MMCRS</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>MMCTS</name> - <description>MMCTS</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TSTS</name> - <description>TSTS</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>MACIMR</name> - <displayName>MACIMR</displayName> - <description>Ethernet MAC interrupt mask register</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PMTIM</name> - <description>PMTIM</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSTIM</name> - <description>TSTIM</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACA0HR</name> - <displayName>MACA0HR</displayName> - <description>Ethernet MAC address 0 high register</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <resetValue>0x0010FFFF</resetValue> - <fields> - <field> - <name>MACA0H</name> - <description>MAC address0 high</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MO</name> - <description>Always 1</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>MACA0LR</name> - <displayName>MACA0LR</displayName> - <description>Ethernet MAC address 0 low register</description> - <addressOffset>0x44</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xFFFFFFFF</resetValue> - <fields> - <field> - <name>MACA0L</name> - <description>0</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACA1HR</name> - <displayName>MACA1HR</displayName> - <description>Ethernet MAC address 1 high register</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000FFFF</resetValue> - <fields> - <field> - <name>MACA1H</name> - <description>MACA1H</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>MBC</name> - <description>MBC</description> - <bitOffset>24</bitOffset> - <bitWidth>6</bitWidth> - </field> - <field> - <name>SA</name> - <description>SA</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AE</name> - <description>AE</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACA1LR</name> - <displayName>MACA1LR</displayName> - <description>Ethernet MAC address1 low register</description> - <addressOffset>0x4C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xFFFFFFFF</resetValue> - <fields> - <field> - <name>MACA1LR</name> - <description>MACA1LR</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACA2HR</name> - <displayName>MACA2HR</displayName> - <description>Ethernet MAC address 2 high register</description> - <addressOffset>0x50</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000FFFF</resetValue> - <fields> - <field> - <name>MAC2AH</name> - <description>MAC2AH</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>MBC</name> - <description>MBC</description> - <bitOffset>24</bitOffset> - <bitWidth>6</bitWidth> - </field> - <field> - <name>SA</name> - <description>SA</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AE</name> - <description>AE</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACA2LR</name> - <displayName>MACA2LR</displayName> - <description>Ethernet MAC address 2 low register</description> - <addressOffset>0x54</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xFFFFFFFF</resetValue> - <fields> - <field> - <name>MACA2L</name> - <description>MACA2L</description> - <bitOffset>0</bitOffset> - <bitWidth>31</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACA3HR</name> - <displayName>MACA3HR</displayName> - <description>Ethernet MAC address 3 high register</description> - <addressOffset>0x58</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000FFFF</resetValue> - <fields> - <field> - <name>MACA3H</name> - <description>MACA3H</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>MBC</name> - <description>MBC</description> - <bitOffset>24</bitOffset> - <bitWidth>6</bitWidth> - </field> - <field> - <name>SA</name> - <description>SA</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AE</name> - <description>AE</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACA3LR</name> - <displayName>MACA3LR</displayName> - <description>Ethernet MAC address 3 low register</description> - <addressOffset>0x5C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xFFFFFFFF</resetValue> - <fields> - <field> - <name>MBCA3L</name> - <description>MBCA3L</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>MACRWUFFER</name> - <displayName>MACRWUFFER</displayName> - <description>Ethernet MAC remote wakeup frame filter register</description> - <addressOffset>0x60</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xFFFFFFFF</resetValue> - </register> - </registers> - </peripheral> - <peripheral> - <name>Ethernet_MMC</name> - <description>Ethernet: MAC management counters</description> - <groupName>Ethernet</groupName> - <baseAddress>0x40028100</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>MMCCR</name> - <displayName>MMCCR</displayName> - <description>Ethernet MMC control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CR</name> - <description>CR</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CSR</name> - <description>CSR</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ROR</name> - <description>ROR</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MCF</name> - <description>MCF</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MCP</name> - <description>MCP</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MCFHP</name> - <description>MCFHP</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MMCRIR</name> - <displayName>MMCRIR</displayName> - <description>Ethernet MMC receive interrupt register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RFCES</name> - <description>RFCES</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RFAES</name> - <description>RFAES</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RGUFS</name> - <description>RGUFS</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MMCTIR</name> - <displayName>MMCTIR</displayName> - <description>Ethernet MMC transmit interrupt register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TGFSCS</name> - <description>TGFSCS</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TGFMSCS</name> - <description>TGFMSCS</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TGFS</name> - <description>TGFS</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MMCRIMR</name> - <displayName>MMCRIMR</displayName> - <description>Ethernet MMC receive interrupt mask register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RFCEM</name> - <description>RFCEM</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RFAEM</name> - <description>RFAEM</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RGUFM</name> - <description>RGUFM</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MMCTIMR</name> - <displayName>MMCTIMR</displayName> - <description>Ethernet MMC transmit interrupt mask register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TGFSCM</name> - <description>TGFSCM</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TGFMSCM</name> - <description>TGFMSCM</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TGFM</name> - <description>TGFM</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MMCTGFSCCR</name> - <displayName>MMCTGFSCCR</displayName> - <description>Ethernet MMC transmitted good frames after a single collision counter</description> - <addressOffset>0x4C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TGFSCC</name> - <description>TGFSCC</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>MMCTGFMSCCR</name> - <displayName>MMCTGFMSCCR</displayName> - <description>Ethernet MMC transmitted good frames after more than a single collision</description> - <addressOffset>0x50</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TGFMSCC</name> - <description>TGFMSCC</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>MMCTGFCR</name> - <displayName>MMCTGFCR</displayName> - <description>Ethernet MMC transmitted good frames counter register</description> - <addressOffset>0x68</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TGFC</name> - <description>HTL</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>MMCRFCECR</name> - <displayName>MMCRFCECR</displayName> - <description>Ethernet MMC received frames with CRC error counter register</description> - <addressOffset>0x94</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RFCFC</name> - <description>RFCFC</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>MMCRFAECR</name> - <displayName>MMCRFAECR</displayName> - <description>Ethernet MMC received frames with alignment error counter register</description> - <addressOffset>0x98</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RFAEC</name> - <description>RFAEC</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>MMCRGUFCR</name> - <displayName>MMCRGUFCR</displayName> - <description>MMC received good unicast frames counter register</description> - <addressOffset>0xC4</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RGUFC</name> - <description>RGUFC</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>Ethernet_PTP</name> - <description>Ethernet: Precision time protocol</description> - <groupName>Ethernet</groupName> - <baseAddress>0x40028700</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>PTPTSCR</name> - <displayName>PTPTSCR</displayName> - <description>Ethernet PTP time stamp control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00002000</resetValue> - <fields> - <field> - <name>TSE</name> - <description>TSE</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSFCU</name> - <description>TSFCU</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSPTPPSV2E</name> - <description>TSPTPPSV2E</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSSPTPOEFE</name> - <description>TSSPTPOEFE</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSSIPV6FE</name> - <description>TSSIPV6FE</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSSIPV4FE</name> - <description>TSSIPV4FE</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSSEME</name> - <description>TSSEME</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSSMRME</name> - <description>TSSMRME</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSCNT</name> - <description>TSCNT</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>TSPFFMAE</name> - <description>TSPFFMAE</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSSTI</name> - <description>TSSTI</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSSTU</name> - <description>TSSTU</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSITE</name> - <description>TSITE</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TTSARU</name> - <description>TTSARU</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSSARFE</name> - <description>TSSARFE</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSSSR</name> - <description>TSSSR</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>PTPSSIR</name> - <displayName>PTPSSIR</displayName> - <description>Ethernet PTP subsecond increment register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>STSSI</name> - <description>STSSI</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>PTPTSHR</name> - <displayName>PTPTSHR</displayName> - <description>Ethernet PTP time stamp high register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>STS</name> - <description>STS</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>PTPTSLR</name> - <displayName>PTPTSLR</displayName> - <description>Ethernet PTP time stamp low register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>STSS</name> - <description>STSS</description> - <bitOffset>0</bitOffset> - <bitWidth>31</bitWidth> - </field> - <field> - <name>STPNS</name> - <description>STPNS</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>PTPTSHUR</name> - <displayName>PTPTSHUR</displayName> - <description>Ethernet PTP time stamp high update register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TSUS</name> - <description>TSUS</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>PTPTSLUR</name> - <displayName>PTPTSLUR</displayName> - <description>Ethernet PTP time stamp low update register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TSUSS</name> - <description>TSUSS</description> - <bitOffset>0</bitOffset> - <bitWidth>31</bitWidth> - </field> - <field> - <name>TSUPNS</name> - <description>TSUPNS</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>PTPTSAR</name> - <displayName>PTPTSAR</displayName> - <description>Ethernet PTP time stamp addend register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TSA</name> - <description>TSA</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>PTPTTHR</name> - <displayName>PTPTTHR</displayName> - <description>Ethernet PTP target time high register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TTSH</name> - <description>0</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>PTPTTLR</name> - <displayName>PTPTTLR</displayName> - <description>Ethernet PTP target time low register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TTSL</name> - <description>TTSL</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>PTPTSSR</name> - <displayName>PTPTSSR</displayName> - <description>Ethernet PTP time stamp status register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TSSO</name> - <description>TSSO</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSTTR</name> - <description>TSTTR</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>PTPPPSCR</name> - <displayName>PTPPPSCR</displayName> - <description>Ethernet PTP PPS control register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TSSO</name> - <description>TSSO</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSTTR</name> - <description>TSTTR</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>Ethernet_DMA</name> - <description>Ethernet: DMA controller operation</description> - <groupName>Ethernet</groupName> - <baseAddress>0x40029000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>ETH</name> - <description>Ethernet global interrupt</description> - <value>61</value> - </interrupt> - <interrupt> - <name>ETH_WKUP</name> - <description>Ethernet Wakeup through EXTI line - interrupt</description> - <value>62</value> - </interrupt> - <registers> - <register> - <name>DMABMR</name> - <displayName>DMABMR</displayName> - <description>Ethernet DMA bus mode register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00002101</resetValue> - <fields> - <field> - <name>SR</name> - <description>SR</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DA</name> - <description>DA</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DSL</name> - <description>DSL</description> - <bitOffset>2</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>EDFE</name> - <description>EDFE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PBL</name> - <description>PBL</description> - <bitOffset>8</bitOffset> - <bitWidth>6</bitWidth> - </field> - <field> - <name>RTPR</name> - <description>RTPR</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>FB</name> - <description>FB</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RDP</name> - <description>RDP</description> - <bitOffset>17</bitOffset> - <bitWidth>6</bitWidth> - </field> - <field> - <name>USP</name> - <description>USP</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FPM</name> - <description>FPM</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AAB</name> - <description>AAB</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MB</name> - <description>MB</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMATPDR</name> - <displayName>DMATPDR</displayName> - <description>Ethernet DMA transmit poll demand register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TPD</name> - <description>TPD</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMARPDR</name> - <displayName>DMARPDR</displayName> - <description>EHERNET DMA receive poll demand register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RPD</name> - <description>RPD</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMARDLAR</name> - <displayName>DMARDLAR</displayName> - <description>Ethernet DMA receive descriptor list address register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SRL</name> - <description>SRL</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMATDLAR</name> - <displayName>DMATDLAR</displayName> - <description>Ethernet DMA transmit descriptor list address register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>STL</name> - <description>STL</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMASR</name> - <displayName>DMASR</displayName> - <description>Ethernet DMA status register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TS</name> - <description>TS</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TPSS</name> - <description>TPSS</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TBUS</name> - <description>TBUS</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TJTS</name> - <description>TJTS</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ROS</name> - <description>ROS</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TUS</name> - <description>TUS</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RS</name> - <description>RS</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RBUS</name> - <description>RBUS</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RPSS</name> - <description>RPSS</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PWTS</name> - <description>PWTS</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ETS</name> - <description>ETS</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FBES</name> - <description>FBES</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ERS</name> - <description>ERS</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>AIS</name> - <description>AIS</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NIS</name> - <description>NIS</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RPS</name> - <description>RPS</description> - <bitOffset>17</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TPS</name> - <description>TPS</description> - <bitOffset>20</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EBS</name> - <description>EBS</description> - <bitOffset>23</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>MMCS</name> - <description>MMCS</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PMTS</name> - <description>PMTS</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TSTS</name> - <description>TSTS</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>DMAOMR</name> - <displayName>DMAOMR</displayName> - <description>Ethernet DMA operation mode register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SR</name> - <description>SR</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OSF</name> - <description>OSF</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RTC</name> - <description>RTC</description> - <bitOffset>3</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>FUGF</name> - <description>FUGF</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FEF</name> - <description>FEF</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ST</name> - <description>ST</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TTC</name> - <description>TTC</description> - <bitOffset>14</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>FTF</name> - <description>FTF</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSF</name> - <description>TSF</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DFRF</name> - <description>DFRF</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RSF</name> - <description>RSF</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTCEFD</name> - <description>DTCEFD</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMAIER</name> - <displayName>DMAIER</displayName> - <description>Ethernet DMA interrupt enable register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TIE</name> - <description>TIE</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TPSIE</name> - <description>TPSIE</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TBUIE</name> - <description>TBUIE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TJTIE</name> - <description>TJTIE</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ROIE</name> - <description>ROIE</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TUIE</name> - <description>TUIE</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RIE</name> - <description>RIE</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RBUIE</name> - <description>RBUIE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RPSIE</name> - <description>RPSIE</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RWTIE</name> - <description>RWTIE</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ETIE</name> - <description>ETIE</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBEIE</name> - <description>FBEIE</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ERIE</name> - <description>ERIE</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AISE</name> - <description>AISE</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NISE</name> - <description>NISE</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMAMFBOCR</name> - <displayName>DMAMFBOCR</displayName> - <description>Ethernet DMA missed frame and buffer overflow counter register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MFC</name> - <description>MFC</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>OMFC</name> - <description>OMFC</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MFA</name> - <description>MFA</description> - <bitOffset>17</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>OFOC</name> - <description>OFOC</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMARSWTR</name> - <displayName>DMARSWTR</displayName> - <description>Ethernet DMA receive status watchdog timer register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RSWTC</name> - <description>RSWTC</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMACHTDR</name> - <displayName>DMACHTDR</displayName> - <description>Ethernet DMA current host transmit descriptor register</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>HTDAP</name> - <description>HTDAP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMACHRDR</name> - <displayName>DMACHRDR</displayName> - <description>Ethernet DMA current host receive descriptor register</description> - <addressOffset>0x4C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>HRDAP</name> - <description>HRDAP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMACHTBAR</name> - <displayName>DMACHTBAR</displayName> - <description>Ethernet DMA current host transmit buffer address register</description> - <addressOffset>0x50</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>HTBAP</name> - <description>HTBAP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>DMACHRBAR</name> - <displayName>DMACHRBAR</displayName> - <description>Ethernet DMA current host receive buffer address register</description> - <addressOffset>0x54</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>HRBAP</name> - <description>HRBAP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>CRC</name> - <description>Cryptographic processor</description> - <groupName>CRC</groupName> - <baseAddress>0x40023000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>DR</name> - <displayName>DR</displayName> - <description>Data register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xFFFFFFFF</resetValue> - <fields> - <field> - <name>DR</name> - <description>Data Register</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>IDR</name> - <displayName>IDR</displayName> - <description>Independent Data register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IDR</name> - <description>Independent Data register</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>Control register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CR</name> - <description>Control regidter</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>INIT</name> - <displayName>INIT</displayName> - <description>Initial CRC value</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CRC_INIT</name> - <description>Programmable initial CRC value</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>POL</name> - <displayName>POL</displayName> - <description>CRC polynomial</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>POL</name> - <description>Programmable polynomial</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>CAN1</name> - <description>Controller area network</description> - <groupName>CAN</groupName> - <baseAddress>0x40006400</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>CAN1_TX</name> - <description>CAN1 TX interrupts</description> - <value>19</value> - </interrupt> - <interrupt> - <name>CAN1_RX0</name> - <description>CAN1 RX0 interrupts</description> - <value>20</value> - </interrupt> - <interrupt> - <name>CAN1_RX1</name> - <description>CAN1 RX1 interrupts</description> - <value>21</value> - </interrupt> - <interrupt> - <name>CAN1_SCE</name> - <description>CAN1 SCE interrupt</description> - <value>22</value> - </interrupt> - <registers> - <register> - <name>MCR</name> - <displayName>MCR</displayName> - <description>master control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00010002</resetValue> - <fields> - <field> - <name>DBF</name> - <description>DBF</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RESET</name> - <description>RESET</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TTCM</name> - <description>TTCM</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ABOM</name> - <description>ABOM</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AWUM</name> - <description>AWUM</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NART</name> - <description>NART</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RFLM</name> - <description>RFLM</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXFP</name> - <description>TXFP</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SLEEP</name> - <description>SLEEP</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>INRQ</name> - <description>INRQ</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MSR</name> - <displayName>MSR</displayName> - <description>master status register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <resetValue>0x00000C02</resetValue> - <fields> - <field> - <name>RX</name> - <description>RX</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SAMP</name> - <description>SAMP</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>RXM</name> - <description>RXM</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TXM</name> - <description>TXM</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SLAKI</name> - <description>SLAKI</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WKUI</name> - <description>WKUI</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ERRI</name> - <description>ERRI</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SLAK</name> - <description>SLAK</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>INAK</name> - <description>INAK</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>TSR</name> - <displayName>TSR</displayName> - <description>transmit status register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <resetValue>0x1C000000</resetValue> - <fields> - <field> - <name>LOW2</name> - <description>Lowest priority flag for mailbox 2</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>LOW1</name> - <description>Lowest priority flag for mailbox 1</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>LOW0</name> - <description>Lowest priority flag for mailbox 0</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TME2</name> - <description>Lowest priority flag for mailbox 2</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TME1</name> - <description>Lowest priority flag for mailbox 1</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TME0</name> - <description>Lowest priority flag for mailbox 0</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CODE</name> - <description>CODE</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ABRQ2</name> - <description>ABRQ2</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TERR2</name> - <description>TERR2</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ALST2</name> - <description>ALST2</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXOK2</name> - <description>TXOK2</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RQCP2</name> - <description>RQCP2</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ABRQ1</name> - <description>ABRQ1</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TERR1</name> - <description>TERR1</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ALST1</name> - <description>ALST1</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXOK1</name> - <description>TXOK1</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RQCP1</name> - <description>RQCP1</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ABRQ0</name> - <description>ABRQ0</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TERR0</name> - <description>TERR0</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ALST0</name> - <description>ALST0</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXOK0</name> - <description>TXOK0</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RQCP0</name> - <description>RQCP0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>RF0R</name> - <displayName>RF0R</displayName> - <description>receive FIFO 0 register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RFOM0</name> - <description>RFOM0</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FOVR0</name> - <description>FOVR0</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FULL0</name> - <description>FULL0</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FMP0</name> - <description>FMP0</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>RF1R</name> - <displayName>RF1R</displayName> - <description>receive FIFO 1 register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RFOM1</name> - <description>RFOM1</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FOVR1</name> - <description>FOVR1</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FULL1</name> - <description>FULL1</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FMP1</name> - <description>FMP1</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>IER</name> - <displayName>IER</displayName> - <description>interrupt enable register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SLKIE</name> - <description>SLKIE</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WKUIE</name> - <description>WKUIE</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ERRIE</name> - <description>ERRIE</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LECIE</name> - <description>LECIE</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BOFIE</name> - <description>BOFIE</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPVIE</name> - <description>EPVIE</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EWGIE</name> - <description>EWGIE</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FOVIE1</name> - <description>FOVIE1</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFIE1</name> - <description>FFIE1</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FMPIE1</name> - <description>FMPIE1</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FOVIE0</name> - <description>FOVIE0</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFIE0</name> - <description>FFIE0</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FMPIE0</name> - <description>FMPIE0</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TMEIE</name> - <description>TMEIE</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ESR</name> - <displayName>ESR</displayName> - <description>interrupt enable register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>REC</name> - <description>REC</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TEC</name> - <description>TEC</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - <access>read-only</access> - </field> - <field> - <name>LEC</name> - <description>LEC</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BOFF</name> - <description>BOFF</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPVF</name> - <description>EPVF</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EWGF</name> - <description>EWGF</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>BTR</name> - <displayName>BTR</displayName> - <description>bit timing register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SILM</name> - <description>SILM</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LBKM</name> - <description>LBKM</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SJW</name> - <description>SJW</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>TS2</name> - <description>TS2</description> - <bitOffset>20</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>TS1</name> - <description>TS1</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BRP</name> - <description>BRP</description> - <bitOffset>0</bitOffset> - <bitWidth>10</bitWidth> - </field> - </fields> - </register> - <register> - <name>TI0R</name> - <displayName>TI0R</displayName> - <description>TX mailbox identifier register</description> - <addressOffset>0x180</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>STID</name> - <description>STID</description> - <bitOffset>21</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EXID</name> - <description>EXID</description> - <bitOffset>3</bitOffset> - <bitWidth>18</bitWidth> - </field> - <field> - <name>IDE</name> - <description>IDE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RTR</name> - <description>RTR</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXRQ</name> - <description>TXRQ</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>TDT0R</name> - <displayName>TDT0R</displayName> - <description>mailbox data length control and time stamp register</description> - <addressOffset>0x184</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TIME</name> - <description>TIME</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>TGT</name> - <description>TGT</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DLC</name> - <description>DLC</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>TDL0R</name> - <displayName>TDL0R</displayName> - <description>mailbox data low register</description> - <addressOffset>0x188</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA3</name> - <description>DATA3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA2</name> - <description>DATA2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA1</name> - <description>DATA1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA0</name> - <description>DATA0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>TDH0R</name> - <displayName>TDH0R</displayName> - <description>mailbox data high register</description> - <addressOffset>0x18C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA7</name> - <description>DATA7</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA6</name> - <description>DATA6</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA5</name> - <description>DATA5</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA4</name> - <description>DATA4</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>TI1R</name> - <displayName>TI1R</displayName> - <description>mailbox identifier register</description> - <addressOffset>0x190</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>STID</name> - <description>STID</description> - <bitOffset>21</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EXID</name> - <description>EXID</description> - <bitOffset>3</bitOffset> - <bitWidth>18</bitWidth> - </field> - <field> - <name>IDE</name> - <description>IDE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RTR</name> - <description>RTR</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXRQ</name> - <description>TXRQ</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>TDT1R</name> - <displayName>TDT1R</displayName> - <description>mailbox data length control and time stamp register</description> - <addressOffset>0x194</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TIME</name> - <description>TIME</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>TGT</name> - <description>TGT</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DLC</name> - <description>DLC</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>TDL1R</name> - <displayName>TDL1R</displayName> - <description>mailbox data low register</description> - <addressOffset>0x198</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA3</name> - <description>DATA3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA2</name> - <description>DATA2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA1</name> - <description>DATA1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA0</name> - <description>DATA0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>TDH1R</name> - <displayName>TDH1R</displayName> - <description>mailbox data high register</description> - <addressOffset>0x19C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA7</name> - <description>DATA7</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA6</name> - <description>DATA6</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA5</name> - <description>DATA5</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA4</name> - <description>DATA4</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>TI2R</name> - <displayName>TI2R</displayName> - <description>mailbox identifier register</description> - <addressOffset>0x1A0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>STID</name> - <description>STID</description> - <bitOffset>21</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EXID</name> - <description>EXID</description> - <bitOffset>3</bitOffset> - <bitWidth>18</bitWidth> - </field> - <field> - <name>IDE</name> - <description>IDE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RTR</name> - <description>RTR</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXRQ</name> - <description>TXRQ</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>TDT2R</name> - <displayName>TDT2R</displayName> - <description>mailbox data length control and time stamp register</description> - <addressOffset>0x1A4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TIME</name> - <description>TIME</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>TGT</name> - <description>TGT</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DLC</name> - <description>DLC</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>TDL2R</name> - <displayName>TDL2R</displayName> - <description>mailbox data low register</description> - <addressOffset>0x1A8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA3</name> - <description>DATA3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA2</name> - <description>DATA2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA1</name> - <description>DATA1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA0</name> - <description>DATA0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>TDH2R</name> - <displayName>TDH2R</displayName> - <description>mailbox data high register</description> - <addressOffset>0x1AC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA7</name> - <description>DATA7</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA6</name> - <description>DATA6</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA5</name> - <description>DATA5</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA4</name> - <description>DATA4</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>RI0R</name> - <displayName>RI0R</displayName> - <description>receive FIFO mailbox identifier register</description> - <addressOffset>0x1B0</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>STID</name> - <description>STID</description> - <bitOffset>21</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EXID</name> - <description>EXID</description> - <bitOffset>3</bitOffset> - <bitWidth>18</bitWidth> - </field> - <field> - <name>IDE</name> - <description>IDE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RTR</name> - <description>RTR</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>RDT0R</name> - <displayName>RDT0R</displayName> - <description>mailbox data high register</description> - <addressOffset>0x1B4</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TIME</name> - <description>TIME</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>FMI</name> - <description>FMI</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DLC</name> - <description>DLC</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>RDL0R</name> - <displayName>RDL0R</displayName> - <description>mailbox data high register</description> - <addressOffset>0x1B8</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA3</name> - <description>DATA3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA2</name> - <description>DATA2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA1</name> - <description>DATA1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA0</name> - <description>DATA0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>RDH0R</name> - <displayName>RDH0R</displayName> - <description>receive FIFO mailbox data high register</description> - <addressOffset>0x1BC</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA7</name> - <description>DATA7</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA6</name> - <description>DATA6</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA5</name> - <description>DATA5</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA4</name> - <description>DATA4</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>RI1R</name> - <displayName>RI1R</displayName> - <description>mailbox data high register</description> - <addressOffset>0x1C0</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>STID</name> - <description>STID</description> - <bitOffset>21</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EXID</name> - <description>EXID</description> - <bitOffset>3</bitOffset> - <bitWidth>18</bitWidth> - </field> - <field> - <name>IDE</name> - <description>IDE</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RTR</name> - <description>RTR</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>RDT1R</name> - <displayName>RDT1R</displayName> - <description>mailbox data high register</description> - <addressOffset>0x1C4</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TIME</name> - <description>TIME</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>FMI</name> - <description>FMI</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DLC</name> - <description>DLC</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>RDL1R</name> - <displayName>RDL1R</displayName> - <description>mailbox data high register</description> - <addressOffset>0x1C8</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA3</name> - <description>DATA3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA2</name> - <description>DATA2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA1</name> - <description>DATA1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA0</name> - <description>DATA0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>RDH1R</name> - <displayName>RDH1R</displayName> - <description>mailbox data high register</description> - <addressOffset>0x1CC</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA7</name> - <description>DATA7</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA6</name> - <description>DATA6</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA5</name> - <description>DATA5</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DATA4</name> - <description>DATA4</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>FMR</name> - <displayName>FMR</displayName> - <description>filter master register</description> - <addressOffset>0x200</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x2A1C0E01</resetValue> - <fields> - <field> - <name>CAN2SB</name> - <description>CAN2SB</description> - <bitOffset>8</bitOffset> - <bitWidth>6</bitWidth> - </field> - <field> - <name>FINIT</name> - <description>FINIT</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>FM1R</name> - <displayName>FM1R</displayName> - <description>filter mode register</description> - <addressOffset>0x204</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FBM0</name> - <description>Filter mode</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM1</name> - <description>Filter mode</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM2</name> - <description>Filter mode</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM3</name> - <description>Filter mode</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM4</name> - <description>Filter mode</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM5</name> - <description>Filter mode</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM6</name> - <description>Filter mode</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM7</name> - <description>Filter mode</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM8</name> - <description>Filter mode</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM9</name> - <description>Filter mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM10</name> - <description>Filter mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM11</name> - <description>Filter mode</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM12</name> - <description>Filter mode</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM13</name> - <description>Filter mode</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM14</name> - <description>Filter mode</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM15</name> - <description>Filter mode</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM16</name> - <description>Filter mode</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM17</name> - <description>Filter mode</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM18</name> - <description>Filter mode</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM19</name> - <description>Filter mode</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM20</name> - <description>Filter mode</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM21</name> - <description>Filter mode</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM22</name> - <description>Filter mode</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM23</name> - <description>Filter mode</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM24</name> - <description>Filter mode</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM25</name> - <description>Filter mode</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM26</name> - <description>Filter mode</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FBM27</name> - <description>Filter mode</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>FS1R</name> - <displayName>FS1R</displayName> - <description>filter scale register</description> - <addressOffset>0x20C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FSC0</name> - <description>Filter scale configuration</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC1</name> - <description>Filter scale configuration</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC2</name> - <description>Filter scale configuration</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC3</name> - <description>Filter scale configuration</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC4</name> - <description>Filter scale configuration</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC5</name> - <description>Filter scale configuration</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC6</name> - <description>Filter scale configuration</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC7</name> - <description>Filter scale configuration</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC8</name> - <description>Filter scale configuration</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC9</name> - <description>Filter scale configuration</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC10</name> - <description>Filter scale configuration</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC11</name> - <description>Filter scale configuration</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC12</name> - <description>Filter scale configuration</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC13</name> - <description>Filter scale configuration</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC14</name> - <description>Filter scale configuration</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC15</name> - <description>Filter scale configuration</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC16</name> - <description>Filter scale configuration</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC17</name> - <description>Filter scale configuration</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC18</name> - <description>Filter scale configuration</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC19</name> - <description>Filter scale configuration</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC20</name> - <description>Filter scale configuration</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC21</name> - <description>Filter scale configuration</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC22</name> - <description>Filter scale configuration</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC23</name> - <description>Filter scale configuration</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC24</name> - <description>Filter scale configuration</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC25</name> - <description>Filter scale configuration</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC26</name> - <description>Filter scale configuration</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSC27</name> - <description>Filter scale configuration</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>FFA1R</name> - <displayName>FFA1R</displayName> - <description>filter FIFO assignment register</description> - <addressOffset>0x214</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FFA0</name> - <description>Filter FIFO assignment for filter 0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA1</name> - <description>Filter FIFO assignment for filter 1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA2</name> - <description>Filter FIFO assignment for filter 2</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA3</name> - <description>Filter FIFO assignment for filter 3</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA4</name> - <description>Filter FIFO assignment for filter 4</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA5</name> - <description>Filter FIFO assignment for filter 5</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA6</name> - <description>Filter FIFO assignment for filter 6</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA7</name> - <description>Filter FIFO assignment for filter 7</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA8</name> - <description>Filter FIFO assignment for filter 8</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA9</name> - <description>Filter FIFO assignment for filter 9</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA10</name> - <description>Filter FIFO assignment for filter 10</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA11</name> - <description>Filter FIFO assignment for filter 11</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA12</name> - <description>Filter FIFO assignment for filter 12</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA13</name> - <description>Filter FIFO assignment for filter 13</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA14</name> - <description>Filter FIFO assignment for filter 14</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA15</name> - <description>Filter FIFO assignment for filter 15</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA16</name> - <description>Filter FIFO assignment for filter 16</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA17</name> - <description>Filter FIFO assignment for filter 17</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA18</name> - <description>Filter FIFO assignment for filter 18</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA19</name> - <description>Filter FIFO assignment for filter 19</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA20</name> - <description>Filter FIFO assignment for filter 20</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA21</name> - <description>Filter FIFO assignment for filter 21</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA22</name> - <description>Filter FIFO assignment for filter 22</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA23</name> - <description>Filter FIFO assignment for filter 23</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA24</name> - <description>Filter FIFO assignment for filter 24</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA25</name> - <description>Filter FIFO assignment for filter 25</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA26</name> - <description>Filter FIFO assignment for filter 26</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFA27</name> - <description>Filter FIFO assignment for filter 27</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>FA1R</name> - <displayName>FA1R</displayName> - <description>filter activation register</description> - <addressOffset>0x21C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FACT0</name> - <description>Filter active</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT1</name> - <description>Filter active</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT2</name> - <description>Filter active</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT3</name> - <description>Filter active</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT4</name> - <description>Filter active</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT5</name> - <description>Filter active</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT6</name> - <description>Filter active</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT7</name> - <description>Filter active</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT8</name> - <description>Filter active</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT9</name> - <description>Filter active</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT10</name> - <description>Filter active</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT11</name> - <description>Filter active</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT12</name> - <description>Filter active</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT13</name> - <description>Filter active</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT14</name> - <description>Filter active</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT15</name> - <description>Filter active</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT16</name> - <description>Filter active</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT17</name> - <description>Filter active</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT18</name> - <description>Filter active</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT19</name> - <description>Filter active</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT20</name> - <description>Filter active</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT21</name> - <description>Filter active</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT22</name> - <description>Filter active</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT23</name> - <description>Filter active</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT24</name> - <description>Filter active</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT25</name> - <description>Filter active</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT26</name> - <description>Filter active</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FACT27</name> - <description>Filter active</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F0R1</name> - <displayName>F0R1</displayName> - <description>Filter bank 0 register 1</description> - <addressOffset>0x240</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F0R2</name> - <displayName>F0R2</displayName> - <description>Filter bank 0 register 2</description> - <addressOffset>0x244</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F1R1</name> - <displayName>F1R1</displayName> - <description>Filter bank 1 register 1</description> - <addressOffset>0x248</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F1R2</name> - <displayName>F1R2</displayName> - <description>Filter bank 1 register 2</description> - <addressOffset>0x24C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F2R1</name> - <displayName>F2R1</displayName> - <description>Filter bank 2 register 1</description> - <addressOffset>0x250</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F2R2</name> - <displayName>F2R2</displayName> - <description>Filter bank 2 register 2</description> - <addressOffset>0x254</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F3R1</name> - <displayName>F3R1</displayName> - <description>Filter bank 3 register 1</description> - <addressOffset>0x258</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F3R2</name> - <displayName>F3R2</displayName> - <description>Filter bank 3 register 2</description> - <addressOffset>0x25C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F4R1</name> - <displayName>F4R1</displayName> - <description>Filter bank 4 register 1</description> - <addressOffset>0x260</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F4R2</name> - <displayName>F4R2</displayName> - <description>Filter bank 4 register 2</description> - <addressOffset>0x264</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F5R1</name> - <displayName>F5R1</displayName> - <description>Filter bank 5 register 1</description> - <addressOffset>0x268</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F5R2</name> - <displayName>F5R2</displayName> - <description>Filter bank 5 register 2</description> - <addressOffset>0x26C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F6R1</name> - <displayName>F6R1</displayName> - <description>Filter bank 6 register 1</description> - <addressOffset>0x270</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F6R2</name> - <displayName>F6R2</displayName> - <description>Filter bank 6 register 2</description> - <addressOffset>0x274</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F7R1</name> - <displayName>F7R1</displayName> - <description>Filter bank 7 register 1</description> - <addressOffset>0x278</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F7R2</name> - <displayName>F7R2</displayName> - <description>Filter bank 7 register 2</description> - <addressOffset>0x27C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F8R1</name> - <displayName>F8R1</displayName> - <description>Filter bank 8 register 1</description> - <addressOffset>0x280</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F8R2</name> - <displayName>F8R2</displayName> - <description>Filter bank 8 register 2</description> - <addressOffset>0x284</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F9R1</name> - <displayName>F9R1</displayName> - <description>Filter bank 9 register 1</description> - <addressOffset>0x288</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F9R2</name> - <displayName>F9R2</displayName> - <description>Filter bank 9 register 2</description> - <addressOffset>0x28C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F10R1</name> - <displayName>F10R1</displayName> - <description>Filter bank 10 register 1</description> - <addressOffset>0x290</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F10R2</name> - <displayName>F10R2</displayName> - <description>Filter bank 10 register 2</description> - <addressOffset>0x294</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F11R1</name> - <displayName>F11R1</displayName> - <description>Filter bank 11 register 1</description> - <addressOffset>0x298</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F11R2</name> - <displayName>F11R2</displayName> - <description>Filter bank 11 register 2</description> - <addressOffset>0x29C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F12R1</name> - <displayName>F12R1</displayName> - <description>Filter bank 4 register 1</description> - <addressOffset>0x2A0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F12R2</name> - <displayName>F12R2</displayName> - <description>Filter bank 12 register 2</description> - <addressOffset>0x2A4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F13R1</name> - <displayName>F13R1</displayName> - <description>Filter bank 13 register 1</description> - <addressOffset>0x2A8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F13R2</name> - <displayName>F13R2</displayName> - <description>Filter bank 13 register 2</description> - <addressOffset>0x2AC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F14R1</name> - <displayName>F14R1</displayName> - <description>Filter bank 14 register 1</description> - <addressOffset>0x2B0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F14R2</name> - <displayName>F14R2</displayName> - <description>Filter bank 14 register 2</description> - <addressOffset>0x2B4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F15R1</name> - <displayName>F15R1</displayName> - <description>Filter bank 15 register 1</description> - <addressOffset>0x2B8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F15R2</name> - <displayName>F15R2</displayName> - <description>Filter bank 15 register 2</description> - <addressOffset>0x2BC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F16R1</name> - <displayName>F16R1</displayName> - <description>Filter bank 16 register 1</description> - <addressOffset>0x2C0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F16R2</name> - <displayName>F16R2</displayName> - <description>Filter bank 16 register 2</description> - <addressOffset>0x2C4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F17R1</name> - <displayName>F17R1</displayName> - <description>Filter bank 17 register 1</description> - <addressOffset>0x2C8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F17R2</name> - <displayName>F17R2</displayName> - <description>Filter bank 17 register 2</description> - <addressOffset>0x2CC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F18R1</name> - <displayName>F18R1</displayName> - <description>Filter bank 18 register 1</description> - <addressOffset>0x2D0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F18R2</name> - <displayName>F18R2</displayName> - <description>Filter bank 18 register 2</description> - <addressOffset>0x2D4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F19R1</name> - <displayName>F19R1</displayName> - <description>Filter bank 19 register 1</description> - <addressOffset>0x2D8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F19R2</name> - <displayName>F19R2</displayName> - <description>Filter bank 19 register 2</description> - <addressOffset>0x2DC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F20R1</name> - <displayName>F20R1</displayName> - <description>Filter bank 20 register 1</description> - <addressOffset>0x2E0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F20R2</name> - <displayName>F20R2</displayName> - <description>Filter bank 20 register 2</description> - <addressOffset>0x2E4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F21R1</name> - <displayName>F21R1</displayName> - <description>Filter bank 21 register 1</description> - <addressOffset>0x2E8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F21R2</name> - <displayName>F21R2</displayName> - <description>Filter bank 21 register 2</description> - <addressOffset>0x2EC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F22R1</name> - <displayName>F22R1</displayName> - <description>Filter bank 22 register 1</description> - <addressOffset>0x2F0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F22R2</name> - <displayName>F22R2</displayName> - <description>Filter bank 22 register 2</description> - <addressOffset>0x2F4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F23R1</name> - <displayName>F23R1</displayName> - <description>Filter bank 23 register 1</description> - <addressOffset>0x2F8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F23R2</name> - <displayName>F23R2</displayName> - <description>Filter bank 23 register 2</description> - <addressOffset>0x2FC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F24R1</name> - <displayName>F24R1</displayName> - <description>Filter bank 24 register 1</description> - <addressOffset>0x300</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F24R2</name> - <displayName>F24R2</displayName> - <description>Filter bank 24 register 2</description> - <addressOffset>0x304</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F25R1</name> - <displayName>F25R1</displayName> - <description>Filter bank 25 register 1</description> - <addressOffset>0x308</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F25R2</name> - <displayName>F25R2</displayName> - <description>Filter bank 25 register 2</description> - <addressOffset>0x30C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F26R1</name> - <displayName>F26R1</displayName> - <description>Filter bank 26 register 1</description> - <addressOffset>0x310</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F26R2</name> - <displayName>F26R2</displayName> - <description>Filter bank 26 register 2</description> - <addressOffset>0x314</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F27R1</name> - <displayName>F27R1</displayName> - <description>Filter bank 27 register 1</description> - <addressOffset>0x318</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>F27R2</name> - <displayName>F27R2</displayName> - <description>Filter bank 27 register 2</description> - <addressOffset>0x31C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FB0</name> - <description>Filter bits</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB1</name> - <description>Filter bits</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB2</name> - <description>Filter bits</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB3</name> - <description>Filter bits</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB4</name> - <description>Filter bits</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB5</name> - <description>Filter bits</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB6</name> - <description>Filter bits</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB7</name> - <description>Filter bits</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB8</name> - <description>Filter bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB9</name> - <description>Filter bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB10</name> - <description>Filter bits</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB11</name> - <description>Filter bits</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB12</name> - <description>Filter bits</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB13</name> - <description>Filter bits</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB14</name> - <description>Filter bits</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB15</name> - <description>Filter bits</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB16</name> - <description>Filter bits</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB17</name> - <description>Filter bits</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB18</name> - <description>Filter bits</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB19</name> - <description>Filter bits</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB20</name> - <description>Filter bits</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB21</name> - <description>Filter bits</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB22</name> - <description>Filter bits</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB23</name> - <description>Filter bits</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB24</name> - <description>Filter bits</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB25</name> - <description>Filter bits</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB26</name> - <description>Filter bits</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB27</name> - <description>Filter bits</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB28</name> - <description>Filter bits</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB29</name> - <description>Filter bits</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB30</name> - <description>Filter bits</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FB31</name> - <description>Filter bits</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="CAN1"> - <name>CAN2</name> - <baseAddress>0x40006800</baseAddress> - <interrupt> - <name>CAN2_TX</name> - <description>CAN2 TX interrupts</description> - <value>63</value> - </interrupt> - <interrupt> - <name>CAN2_RX0</name> - <description>CAN2 RX0 interrupts</description> - <value>64</value> - </interrupt> - <interrupt> - <name>CAN2_RX1</name> - <description>CAN2 RX1 interrupts</description> - <value>65</value> - </interrupt> - <interrupt> - <name>CAN2_SCE</name> - <description>CAN2 SCE interrupt</description> - <value>66</value> - </interrupt> - </peripheral> - <peripheral> - <name>FLASH</name> - <description>FLASH</description> - <groupName>FLASH</groupName> - <baseAddress>0x40023C00</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>FLASH</name> - <description>Flash global interrupt</description> - <value>4</value> - </interrupt> - <registers> - <register> - <name>ACR</name> - <displayName>ACR</displayName> - <description>Flash access control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LATENCY</name> - <description>Latency</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>PRFTEN</name> - <description>Prefetch enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ARTEN</name> - <description>ART Accelerator Enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ARTRST</name> - <description>ART Accelerator reset</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>KEYR</name> - <displayName>KEYR</displayName> - <description>Flash key register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>KEY</name> - <description>FPEC key</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OPTKEYR</name> - <displayName>OPTKEYR</displayName> - <description>Flash option key register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OPTKEY</name> - <description>Option byte key</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>Status register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>EOP</name> - <description>End of operation</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>OPERR</name> - <description>Operation error</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WRPERR</name> - <description>Write protection error</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PGAERR</name> - <description>Programming alignment error</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PGPERR</name> - <description>Programming parallelism error</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ERSERR</name> - <description>Programming sequence error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BSY</name> - <description>Busy</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>Control register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x80000000</resetValue> - <fields> - <field> - <name>PG</name> - <description>Programming</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SER</name> - <description>Sector Erase</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MER</name> - <description>Mass Erase of sectors 0 to 11</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SNB</name> - <description>Sector number</description> - <bitOffset>3</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>PSIZE</name> - <description>Program size</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>STRT</name> - <description>Start</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EOPIE</name> - <description>End of operation interrupt enable</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ERRIE</name> - <description>Error interrupt enable</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LOCK</name> - <description>Lock</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OPTCR</name> - <displayName>OPTCR</displayName> - <description>Flash option control register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0xC0FFAAFD</resetValue> - <fields> - <field> - <name>OPTLOCK</name> - <description>Option lock</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OPTSTRT</name> - <description>Option start</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BOR_LEV</name> - <description>BOR reset Level</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>WWDG_SW</name> - <description>User option bytes</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IWDG_SW</name> - <description>User option bytes</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>nRST_STOP</name> - <description>User option bytes</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>nRST_STDBY</name> - <description>User option bytes</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RDP</name> - <description>Read protect</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>nWRP</name> - <description>Not write protect</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IWDG_STDBY</name> - <description>Independent watchdog counter freeze in standby mode</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IWDG_STOP</name> - <description>Independent watchdog counter freeze in Stop mode</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OPTCR1</name> - <displayName>OPTCR1</displayName> - <description>Flash option control register 1</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00400080</resetValue> - <fields> - <field> - <name>BOOT_ADD0</name> - <description>Boot base address when Boot pin =0</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>BOOT_ADD1</name> - <description>Boot base address when Boot pin =1</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>EXTI</name> - <description>External interrupt/event controller</description> - <groupName>EXTI</groupName> - <baseAddress>0x40013C00</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>TAMP_STAMP</name> - <description>Tamper and TimeStamp interrupts through the - EXTI line</description> - <value>2</value> - </interrupt> - <interrupt> - <name>EXTI0</name> - <description>EXTI Line0 interrupt</description> - <value>6</value> - </interrupt> - <interrupt> - <name>EXTI1</name> - <description>EXTI Line1 interrupt</description> - <value>7</value> - </interrupt> - <interrupt> - <name>EXTI2</name> - <description>EXTI Line2 interrupt</description> - <value>8</value> - </interrupt> - <interrupt> - <name>EXTI3</name> - <description>EXTI Line3 interrupt</description> - <value>9</value> - </interrupt> - <interrupt> - <name>EXTI4</name> - <description>EXTI Line4 interrupt</description> - <value>10</value> - </interrupt> - <interrupt> - <name>EXTI9_5</name> - <description>EXTI Line[9:5] interrupts</description> - <value>23</value> - </interrupt> - <interrupt> - <name>EXTI15_10</name> - <description>EXTI Line[15:10] interrupts</description> - <value>40</value> - </interrupt> - <interrupt> - <name>PVD</name> - <description>PVD through EXTI line detection INTERRUPT</description> - <value>1</value> - </interrupt> - <registers> - <register> - <name>IMR</name> - <displayName>IMR</displayName> - <description>Interrupt mask register (EXTI_IMR)</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MR0</name> - <description>Interrupt Mask on line 0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR1</name> - <description>Interrupt Mask on line 1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR2</name> - <description>Interrupt Mask on line 2</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR3</name> - <description>Interrupt Mask on line 3</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR4</name> - <description>Interrupt Mask on line 4</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR5</name> - <description>Interrupt Mask on line 5</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR6</name> - <description>Interrupt Mask on line 6</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR7</name> - <description>Interrupt Mask on line 7</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR8</name> - <description>Interrupt Mask on line 8</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR9</name> - <description>Interrupt Mask on line 9</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR10</name> - <description>Interrupt Mask on line 10</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR11</name> - <description>Interrupt Mask on line 11</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR12</name> - <description>Interrupt Mask on line 12</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR13</name> - <description>Interrupt Mask on line 13</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR14</name> - <description>Interrupt Mask on line 14</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR15</name> - <description>Interrupt Mask on line 15</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR16</name> - <description>Interrupt Mask on line 16</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR17</name> - <description>Interrupt Mask on line 17</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR18</name> - <description>Interrupt Mask on line 18</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR19</name> - <description>Interrupt Mask on line 19</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR20</name> - <description>Interrupt Mask on line 20</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR21</name> - <description>Interrupt Mask on line 21</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR22</name> - <description>Interrupt Mask on line 22</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>EMR</name> - <displayName>EMR</displayName> - <description>Event mask register (EXTI_EMR)</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MR0</name> - <description>Event Mask on line 0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR1</name> - <description>Event Mask on line 1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR2</name> - <description>Event Mask on line 2</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR3</name> - <description>Event Mask on line 3</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR4</name> - <description>Event Mask on line 4</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR5</name> - <description>Event Mask on line 5</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR6</name> - <description>Event Mask on line 6</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR7</name> - <description>Event Mask on line 7</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR8</name> - <description>Event Mask on line 8</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR9</name> - <description>Event Mask on line 9</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR10</name> - <description>Event Mask on line 10</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR11</name> - <description>Event Mask on line 11</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR12</name> - <description>Event Mask on line 12</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR13</name> - <description>Event Mask on line 13</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR14</name> - <description>Event Mask on line 14</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR15</name> - <description>Event Mask on line 15</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR16</name> - <description>Event Mask on line 16</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR17</name> - <description>Event Mask on line 17</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR18</name> - <description>Event Mask on line 18</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR19</name> - <description>Event Mask on line 19</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR20</name> - <description>Event Mask on line 20</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR21</name> - <description>Event Mask on line 21</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MR22</name> - <description>Event Mask on line 22</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>RTSR</name> - <displayName>RTSR</displayName> - <description>Rising Trigger selection register (EXTI_RTSR)</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TR0</name> - <description>Rising trigger event configuration of line 0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR1</name> - <description>Rising trigger event configuration of line 1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR2</name> - <description>Rising trigger event configuration of line 2</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR3</name> - <description>Rising trigger event configuration of line 3</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR4</name> - <description>Rising trigger event configuration of line 4</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR5</name> - <description>Rising trigger event configuration of line 5</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR6</name> - <description>Rising trigger event configuration of line 6</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR7</name> - <description>Rising trigger event configuration of line 7</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR8</name> - <description>Rising trigger event configuration of line 8</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR9</name> - <description>Rising trigger event configuration of line 9</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR10</name> - <description>Rising trigger event configuration of line 10</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR11</name> - <description>Rising trigger event configuration of line 11</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR12</name> - <description>Rising trigger event configuration of line 12</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR13</name> - <description>Rising trigger event configuration of line 13</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR14</name> - <description>Rising trigger event configuration of line 14</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR15</name> - <description>Rising trigger event configuration of line 15</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR16</name> - <description>Rising trigger event configuration of line 16</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR17</name> - <description>Rising trigger event configuration of line 17</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR18</name> - <description>Rising trigger event configuration of line 18</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR19</name> - <description>Rising trigger event configuration of line 19</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR20</name> - <description>Rising trigger event configuration of line 20</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR21</name> - <description>Rising trigger event configuration of line 21</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR22</name> - <description>Rising trigger event configuration of line 22</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>FTSR</name> - <displayName>FTSR</displayName> - <description>Falling Trigger selection register (EXTI_FTSR)</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TR0</name> - <description>Falling trigger event configuration of line 0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR1</name> - <description>Falling trigger event configuration of line 1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR2</name> - <description>Falling trigger event configuration of line 2</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR3</name> - <description>Falling trigger event configuration of line 3</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR4</name> - <description>Falling trigger event configuration of line 4</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR5</name> - <description>Falling trigger event configuration of line 5</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR6</name> - <description>Falling trigger event configuration of line 6</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR7</name> - <description>Falling trigger event configuration of line 7</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR8</name> - <description>Falling trigger event configuration of line 8</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR9</name> - <description>Falling trigger event configuration of line 9</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR10</name> - <description>Falling trigger event configuration of line 10</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR11</name> - <description>Falling trigger event configuration of line 11</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR12</name> - <description>Falling trigger event configuration of line 12</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR13</name> - <description>Falling trigger event configuration of line 13</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR14</name> - <description>Falling trigger event configuration of line 14</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR15</name> - <description>Falling trigger event configuration of line 15</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR16</name> - <description>Falling trigger event configuration of line 16</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR17</name> - <description>Falling trigger event configuration of line 17</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR18</name> - <description>Falling trigger event configuration of line 18</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR19</name> - <description>Falling trigger event configuration of line 19</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR20</name> - <description>Falling trigger event configuration of line 20</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR21</name> - <description>Falling trigger event configuration of line 21</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TR22</name> - <description>Falling trigger event configuration of line 22</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SWIER</name> - <displayName>SWIER</displayName> - <description>Software interrupt event register (EXTI_SWIER)</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SWIER0</name> - <description>Software Interrupt on line 0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER1</name> - <description>Software Interrupt on line 1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER2</name> - <description>Software Interrupt on line 2</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER3</name> - <description>Software Interrupt on line 3</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER4</name> - <description>Software Interrupt on line 4</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER5</name> - <description>Software Interrupt on line 5</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER6</name> - <description>Software Interrupt on line 6</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER7</name> - <description>Software Interrupt on line 7</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER8</name> - <description>Software Interrupt on line 8</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER9</name> - <description>Software Interrupt on line 9</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER10</name> - <description>Software Interrupt on line 10</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER11</name> - <description>Software Interrupt on line 11</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER12</name> - <description>Software Interrupt on line 12</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER13</name> - <description>Software Interrupt on line 13</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER14</name> - <description>Software Interrupt on line 14</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER15</name> - <description>Software Interrupt on line 15</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER16</name> - <description>Software Interrupt on line 16</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER17</name> - <description>Software Interrupt on line 17</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER18</name> - <description>Software Interrupt on line 18</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER19</name> - <description>Software Interrupt on line 19</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER20</name> - <description>Software Interrupt on line 20</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER21</name> - <description>Software Interrupt on line 21</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWIER22</name> - <description>Software Interrupt on line 22</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>PR</name> - <displayName>PR</displayName> - <description>Pending register (EXTI_PR)</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PR0</name> - <description>Pending bit 0</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR1</name> - <description>Pending bit 1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR2</name> - <description>Pending bit 2</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR3</name> - <description>Pending bit 3</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR4</name> - <description>Pending bit 4</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR5</name> - <description>Pending bit 5</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR6</name> - <description>Pending bit 6</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR7</name> - <description>Pending bit 7</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR8</name> - <description>Pending bit 8</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR9</name> - <description>Pending bit 9</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR10</name> - <description>Pending bit 10</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR11</name> - <description>Pending bit 11</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR12</name> - <description>Pending bit 12</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR13</name> - <description>Pending bit 13</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR14</name> - <description>Pending bit 14</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR15</name> - <description>Pending bit 15</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR16</name> - <description>Pending bit 16</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR17</name> - <description>Pending bit 17</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR18</name> - <description>Pending bit 18</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR19</name> - <description>Pending bit 19</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR20</name> - <description>Pending bit 20</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR21</name> - <description>Pending bit 21</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PR22</name> - <description>Pending bit 22</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>LTDC</name> - <description>LCD-TFT Controller</description> - <groupName>LTDC</groupName> - <baseAddress>0x40016800</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>LCD_TFT</name> - <description>LTDC global interrupt</description> - <value>88</value> - </interrupt> - <interrupt> - <name>LTDC_ER</name> - <description>LTDC Error global interrupt</description> - <value>89</value> - </interrupt> - <registers> - <register> - <name>SSCR</name> - <displayName>SSCR</displayName> - <description>Synchronization Size Configuration Register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>HSW</name> - <description>Horizontal Synchronization Width (in units of pixel clock period)</description> - <bitOffset>16</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>VSH</name> - <description>Vertical Synchronization Height (in units of horizontal scan line)</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - </fields> - </register> - <register> - <name>BPCR</name> - <displayName>BPCR</displayName> - <description>Back Porch Configuration Register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>AHBP</name> - <description>Accumulated Horizontal back porch (in units of pixel clock period)</description> - <bitOffset>16</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>AVBP</name> - <description>Accumulated Vertical back porch (in units of horizontal scan line)</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - </fields> - </register> - <register> - <name>AWCR</name> - <displayName>AWCR</displayName> - <description>Active Width Configuration Register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>AAV</name> - <description>AAV</description> - <bitOffset>16</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>AAH</name> - <description>Accumulated Active Height (in units of horizontal scan line)</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - </fields> - </register> - <register> - <name>TWCR</name> - <displayName>TWCR</displayName> - <description>Total Width Configuration Register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TOTALW</name> - <description>Total Width (in units of pixel clock period)</description> - <bitOffset>16</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>TOTALH</name> - <description>Total Height (in units of horizontal scan line)</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - </fields> - </register> - <register> - <name>GCR</name> - <displayName>GCR</displayName> - <description>Global Control Register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <resetValue>0x00002220</resetValue> - <fields> - <field> - <name>HSPOL</name> - <description>Horizontal Synchronization Polarity</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>VSPOL</name> - <description>Vertical Synchronization Polarity</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DEPOL</name> - <description>Data Enable Polarity</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PCPOL</name> - <description>Pixel Clock Polarity</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DEN</name> - <description>Dither Enable</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DRW</name> - <description>Dither Red Width</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DGW</name> - <description>Dither Green Width</description> - <bitOffset>8</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DBW</name> - <description>Dither Blue Width</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>LTDCEN</name> - <description>LCD-TFT controller enable bit</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>SRCR</name> - <displayName>SRCR</displayName> - <description>Shadow Reload Configuration Register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>VBR</name> - <description>Vertical Blanking Reload</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IMR</name> - <description>Immediate Reload</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BCCR</name> - <displayName>BCCR</displayName> - <description>Background Color Configuration Register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BC</name> - <description>Background Color Red value</description> - <bitOffset>0</bitOffset> - <bitWidth>24</bitWidth> - </field> - </fields> - </register> - <register> - <name>IER</name> - <displayName>IER</displayName> - <description>Interrupt Enable Register</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RRIE</name> - <description>Register Reload interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TERRIE</name> - <description>Transfer Error Interrupt Enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FUIE</name> - <description>FIFO Underrun Interrupt Enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LIE</name> - <description>Line Interrupt Enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ISR</name> - <displayName>ISR</displayName> - <description>Interrupt Status Register</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RRIF</name> - <description>Register Reload Interrupt Flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TERRIF</name> - <description>Transfer Error interrupt flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FUIF</name> - <description>FIFO Underrun Interrupt flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LIF</name> - <description>Line Interrupt flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ICR</name> - <displayName>ICR</displayName> - <description>Interrupt Clear Register</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CRRIF</name> - <description>Clears Register Reload Interrupt Flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTERRIF</name> - <description>Clears the Transfer Error Interrupt Flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CFUIF</name> - <description>Clears the FIFO Underrun Interrupt flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CLIF</name> - <description>Clears the Line Interrupt Flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>LIPCR</name> - <displayName>LIPCR</displayName> - <description>Line Interrupt Position Configuration Register</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LIPOS</name> - <description>Line Interrupt Position</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - </fields> - </register> - <register> - <name>CPSR</name> - <displayName>CPSR</displayName> - <description>Current Position Status Register</description> - <addressOffset>0x44</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CXPOS</name> - <description>Current X Position</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CYPOS</name> - <description>Current Y Position</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CDSR</name> - <displayName>CDSR</displayName> - <description>Current Display Status Register</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x0000000F</resetValue> - <fields> - <field> - <name>HSYNCS</name> - <description>Horizontal Synchronization display Status</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VSYNCS</name> - <description>Vertical Synchronization display Status</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HDES</name> - <description>Horizontal Data Enable display Status</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VDES</name> - <description>Vertical Data Enable display Status</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>L1CR</name> - <displayName>L1CR</displayName> - <description>Layerx Control Register</description> - <addressOffset>0x84</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CLUTEN</name> - <description>Color Look-Up Table Enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>COLKEN</name> - <description>Color Keying Enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LEN</name> - <description>Layer Enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>L1WHPCR</name> - <displayName>L1WHPCR</displayName> - <description>Layerx Window Horizontal Position Configuration Register</description> - <addressOffset>0x88</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>WHSPPOS</name> - <description>Window Horizontal Stop Position</description> - <bitOffset>16</bitOffset> - <bitWidth>12</bitWidth> - </field> - <field> - <name>WHSTPOS</name> - <description>Window Horizontal Start Position</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>L1WVPCR</name> - <displayName>L1WVPCR</displayName> - <description>Layerx Window Vertical Position Configuration Register</description> - <addressOffset>0x8C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>WVSPPOS</name> - <description>Window Vertical Stop Position</description> - <bitOffset>16</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>WVSTPOS</name> - <description>Window Vertical Start Position</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - </fields> - </register> - <register> - <name>L1CKCR</name> - <displayName>L1CKCR</displayName> - <description>Layerx Color Keying Configuration Register</description> - <addressOffset>0x90</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CKRED</name> - <description>Color Key Red value</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>CKGREEN</name> - <description>Color Key Green value</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>CKBLUE</name> - <description>Color Key Blue value</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>L1PFCR</name> - <displayName>L1PFCR</displayName> - <description>Layerx Pixel Format Configuration Register</description> - <addressOffset>0x94</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PF</name> - <description>Pixel Format</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>L1CACR</name> - <displayName>L1CACR</displayName> - <description>Layerx Constant Alpha Configuration Register</description> - <addressOffset>0x98</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CONSTA</name> - <description>Constant Alpha</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>L1DCCR</name> - <displayName>L1DCCR</displayName> - <description>Layerx Default Color Configuration Register</description> - <addressOffset>0x9C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DCALPHA</name> - <description>Default Color Alpha</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DCRED</name> - <description>Default Color Red</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DCGREEN</name> - <description>Default Color Green</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DCBLUE</name> - <description>Default Color Blue</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>L1BFCR</name> - <displayName>L1BFCR</displayName> - <description>Layerx Blending Factors Configuration Register</description> - <addressOffset>0xA0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000607</resetValue> - <fields> - <field> - <name>BF1</name> - <description>Blending Factor 1</description> - <bitOffset>8</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>BF2</name> - <description>Blending Factor 2</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>L1CFBAR</name> - <displayName>L1CFBAR</displayName> - <description>Layerx Color Frame Buffer Address Register</description> - <addressOffset>0xAC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CFBADD</name> - <description>Color Frame Buffer Start Address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>L1CFBLR</name> - <displayName>L1CFBLR</displayName> - <description>Layerx Color Frame Buffer Length Register</description> - <addressOffset>0xB0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CFBP</name> - <description>Color Frame Buffer Pitch in bytes</description> - <bitOffset>16</bitOffset> - <bitWidth>13</bitWidth> - </field> - <field> - <name>CFBLL</name> - <description>Color Frame Buffer Line Length</description> - <bitOffset>0</bitOffset> - <bitWidth>13</bitWidth> - </field> - </fields> - </register> - <register> - <name>L1CFBLNR</name> - <displayName>L1CFBLNR</displayName> - <description>Layerx ColorFrame Buffer Line Number Register</description> - <addressOffset>0xB4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CFBLNBR</name> - <description>Frame Buffer Line Number</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - </fields> - </register> - <register> - <name>L1CLUTWR</name> - <displayName>L1CLUTWR</displayName> - <description>Layerx CLUT Write Register</description> - <addressOffset>0xC4</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CLUTADD</name> - <description>CLUT Address</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>RED</name> - <description>Red value</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>GREEN</name> - <description>Green value</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>BLUE</name> - <description>Blue value</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>L2CR</name> - <displayName>L2CR</displayName> - <description>Layerx Control Register</description> - <addressOffset>0x104</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CLUTEN</name> - <description>Color Look-Up Table Enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>COLKEN</name> - <description>Color Keying Enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LEN</name> - <description>Layer Enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>L2WHPCR</name> - <displayName>L2WHPCR</displayName> - <description>Layerx Window Horizontal Position Configuration Register</description> - <addressOffset>0x108</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>WHSPPOS</name> - <description>Window Horizontal Stop Position</description> - <bitOffset>16</bitOffset> - <bitWidth>12</bitWidth> - </field> - <field> - <name>WHSTPOS</name> - <description>Window Horizontal Start Position</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>L2WVPCR</name> - <displayName>L2WVPCR</displayName> - <description>Layerx Window Vertical Position Configuration Register</description> - <addressOffset>0x10C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>WVSPPOS</name> - <description>Window Vertical Stop Position</description> - <bitOffset>16</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>WVSTPOS</name> - <description>Window Vertical Start Position</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - </fields> - </register> - <register> - <name>L2CKCR</name> - <displayName>L2CKCR</displayName> - <description>Layerx Color Keying Configuration Register</description> - <addressOffset>0x110</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CKRED</name> - <description>Color Key Red value</description> - <bitOffset>15</bitOffset> - <bitWidth>9</bitWidth> - </field> - <field> - <name>CKGREEN</name> - <description>Color Key Green value</description> - <bitOffset>8</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>CKBLUE</name> - <description>Color Key Blue value</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>L2PFCR</name> - <displayName>L2PFCR</displayName> - <description>Layerx Pixel Format Configuration Register</description> - <addressOffset>0x114</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PF</name> - <description>Pixel Format</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>L2CACR</name> - <displayName>L2CACR</displayName> - <description>Layerx Constant Alpha Configuration Register</description> - <addressOffset>0x118</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CONSTA</name> - <description>Constant Alpha</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>L2DCCR</name> - <displayName>L2DCCR</displayName> - <description>Layerx Default Color Configuration Register</description> - <addressOffset>0x11C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DCALPHA</name> - <description>Default Color Alpha</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DCRED</name> - <description>Default Color Red</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DCGREEN</name> - <description>Default Color Green</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>DCBLUE</name> - <description>Default Color Blue</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>L2BFCR</name> - <displayName>L2BFCR</displayName> - <description>Layerx Blending Factors Configuration Register</description> - <addressOffset>0x120</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000607</resetValue> - <fields> - <field> - <name>BF1</name> - <description>Blending Factor 1</description> - <bitOffset>8</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>BF2</name> - <description>Blending Factor 2</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>L2CFBAR</name> - <displayName>L2CFBAR</displayName> - <description>Layerx Color Frame Buffer Address Register</description> - <addressOffset>0x12C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CFBADD</name> - <description>Color Frame Buffer Start Address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>L2CFBLR</name> - <displayName>L2CFBLR</displayName> - <description>Layerx Color Frame Buffer Length Register</description> - <addressOffset>0x130</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CFBP</name> - <description>Color Frame Buffer Pitch in bytes</description> - <bitOffset>16</bitOffset> - <bitWidth>13</bitWidth> - </field> - <field> - <name>CFBLL</name> - <description>Color Frame Buffer Line Length</description> - <bitOffset>0</bitOffset> - <bitWidth>13</bitWidth> - </field> - </fields> - </register> - <register> - <name>L2CFBLNR</name> - <displayName>L2CFBLNR</displayName> - <description>Layerx ColorFrame Buffer Line Number Register</description> - <addressOffset>0x134</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CFBLNBR</name> - <description>Frame Buffer Line Number</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - </fields> - </register> - <register> - <name>L2CLUTWR</name> - <displayName>L2CLUTWR</displayName> - <description>Layerx CLUT Write Register</description> - <addressOffset>0x144</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CLUTADD</name> - <description>CLUT Address</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>RED</name> - <description>Red value</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>GREEN</name> - <description>Green value</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>BLUE</name> - <description>Blue value</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>SAI1</name> - <description>Serial audio interface</description> - <groupName>SAI</groupName> - <baseAddress>0x40015800</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>SAI1</name> - <description>SAI1 global interrupt</description> - <value>87</value> - </interrupt> - <registers> - <register> - <name>BCR1</name> - <displayName>BCR1</displayName> - <description>BConfiguration register 1</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000040</resetValue> - <fields> - <field> - <name>MCJDIV</name> - <description>Master clock divider</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>NODIV</name> - <description>No divider</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMAEN</name> - <description>DMA enable</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SAIBEN</name> - <description>Audio block B enable</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OutDri</name> - <description>Output drive</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MONO</name> - <description>Mono mode</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SYNCEN</name> - <description>Synchronization enable</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CKSTR</name> - <description>Clock strobing edge</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSBFIRST</name> - <description>Least significant bit first</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DS</name> - <description>Data size</description> - <bitOffset>5</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>PRTCFG</name> - <description>Protocol configuration</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODE</name> - <description>Audio block mode</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>BCR2</name> - <displayName>BCR2</displayName> - <description>BConfiguration register 2</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>COMP</name> - <description>Companding mode</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CPL</name> - <description>Complement bit</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MUTECN</name> - <description>Mute counter</description> - <bitOffset>7</bitOffset> - <bitWidth>6</bitWidth> - </field> - <field> - <name>MUTEVAL</name> - <description>Mute value</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MUTE</name> - <description>Mute</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TRIS</name> - <description>Tristate management on data line</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFLUS</name> - <description>FIFO flush</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FTH</name> - <description>FIFO threshold</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>BFRCR</name> - <displayName>BFRCR</displayName> - <description>BFRCR</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000007</resetValue> - <fields> - <field> - <name>FSOFF</name> - <description>Frame synchronization offset</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSPOL</name> - <description>Frame synchronization polarity</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSDEF</name> - <description>Frame synchronization definition</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSALL</name> - <description>Frame synchronization active level length</description> - <bitOffset>8</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>FRL</name> - <description>Frame length</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>BSLOTR</name> - <displayName>BSLOTR</displayName> - <description>BSlot register</description> - <addressOffset>0x30</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SLOTEN</name> - <description>Slot enable</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>NBSLOT</name> - <description>Number of slots in an audio frame</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>SLOTSZ</name> - <description>Slot size</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>FBOFF</name> - <description>First bit offset</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>BIM</name> - <displayName>BIM</displayName> - <description>BInterrupt mask register2</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LFSDETIE</name> - <description>Late frame synchronization detection interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AFSDETIE</name> - <description>Anticipated frame synchronization detection interrupt enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CNRDYIE</name> - <description>Codec not ready interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FREQIE</name> - <description>FIFO request interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WCKCFG</name> - <description>Wrong clock configuration interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MUTEDET</name> - <description>Mute detection interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVRUDRIE</name> - <description>Overrun/underrun interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BSR</name> - <displayName>BSR</displayName> - <description>BStatus register</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FLVL</name> - <description>FIFO level threshold</description> - <bitOffset>16</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>LFSDET</name> - <description>Late frame synchronization detection</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AFSDET</name> - <description>Anticipated frame synchronization detection</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CNRDY</name> - <description>Codec not ready</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FREQ</name> - <description>FIFO request</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WCKCFG</name> - <description>Wrong clock configuration flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MUTEDET</name> - <description>Mute detection</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVRUDR</name> - <description>Overrun / underrun</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BCLRFR</name> - <displayName>BCLRFR</displayName> - <description>BClear flag register</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LFSDET</name> - <description>Clear late frame synchronization detection flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAFSDET</name> - <description>Clear anticipated frame synchronization detection flag</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CNRDY</name> - <description>Clear codec not ready flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WCKCFG</name> - <description>Clear wrong clock configuration flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MUTEDET</name> - <description>Mute detection flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVRUDR</name> - <description>Clear overrun / underrun</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BDR</name> - <displayName>BDR</displayName> - <description>BData register</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA</name> - <description>Data</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ACR1</name> - <displayName>ACR1</displayName> - <description>AConfiguration register 1</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000040</resetValue> - <fields> - <field> - <name>MCJDIV</name> - <description>Master clock divider</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>NODIV</name> - <description>No divider</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMAEN</name> - <description>DMA enable</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SAIAEN</name> - <description>Audio block A enable</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OutDri</name> - <description>Output drive</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MONO</name> - <description>Mono mode</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SYNCEN</name> - <description>Synchronization enable</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CKSTR</name> - <description>Clock strobing edge</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSBFIRST</name> - <description>Least significant bit first</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DS</name> - <description>Data size</description> - <bitOffset>5</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>PRTCFG</name> - <description>Protocol configuration</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MODE</name> - <description>Audio block mode</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>ACR2</name> - <displayName>ACR2</displayName> - <description>AConfiguration register 2</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>COMP</name> - <description>Companding mode</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CPL</name> - <description>Complement bit</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MUTECN</name> - <description>Mute counter</description> - <bitOffset>7</bitOffset> - <bitWidth>6</bitWidth> - </field> - <field> - <name>MUTEVAL</name> - <description>Mute value</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MUTE</name> - <description>Mute</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TRIS</name> - <description>Tristate management on data line</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FFLUS</name> - <description>FIFO flush</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FTH</name> - <description>FIFO threshold</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>AFRCR</name> - <displayName>AFRCR</displayName> - <description>AFRCR</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000007</resetValue> - <fields> - <field> - <name>FSOFF</name> - <description>Frame synchronization offset</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSPOL</name> - <description>Frame synchronization polarity</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSDEF</name> - <description>Frame synchronization definition</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FSALL</name> - <description>Frame synchronization active level length</description> - <bitOffset>8</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>FRL</name> - <description>Frame length</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>ASLOTR</name> - <displayName>ASLOTR</displayName> - <description>ASlot register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SLOTEN</name> - <description>Slot enable</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>NBSLOT</name> - <description>Number of slots in an audio frame</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>SLOTSZ</name> - <description>Slot size</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>FBOFF</name> - <description>First bit offset</description> - <bitOffset>0</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>AIM</name> - <displayName>AIM</displayName> - <description>AInterrupt mask register2</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LFSDET</name> - <description>Late frame synchronization detection interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AFSDETIE</name> - <description>Anticipated frame synchronization detection interrupt enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CNRDYIE</name> - <description>Codec not ready interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FREQIE</name> - <description>FIFO request interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WCKCFG</name> - <description>Wrong clock configuration interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MUTEDET</name> - <description>Mute detection interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVRUDRIE</name> - <description>Overrun/underrun interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ASR</name> - <displayName>ASR</displayName> - <description>AStatus register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FLVL</name> - <description>FIFO level threshold</description> - <bitOffset>16</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>LFSDET</name> - <description>Late frame synchronization detection</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AFSDET</name> - <description>Anticipated frame synchronization detection</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CNRDY</name> - <description>Codec not ready</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FREQ</name> - <description>FIFO request</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WCKCFG</name> - <description>Wrong clock configuration flag. This bit is read only.</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MUTEDET</name> - <description>Mute detection</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVRUDR</name> - <description>Overrun / underrun</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ACLRFR</name> - <displayName>ACLRFR</displayName> - <description>AClear flag register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LFSDET</name> - <description>Clear late frame synchronization detection flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAFSDET</name> - <description>Clear anticipated frame synchronization detection flag.</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CNRDY</name> - <description>Clear codec not ready flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WCKCFG</name> - <description>Clear wrong clock configuration flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MUTEDET</name> - <description>Mute detection flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVRUDR</name> - <description>Clear overrun / underrun</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ADR</name> - <displayName>ADR</displayName> - <description>AData register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA</name> - <description>Data</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>GCR</name> - <displayName>GCR</displayName> - <description>Global configuration register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SYNCIN</name> - <description>Synchronization inputs</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>SYNCOUT</name> - <description>Synchronization outputs</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="SAI1"> - <name>SAI2</name> - <baseAddress>0x40015C00</baseAddress> - <interrupt> - <name>SAI2</name> - <description>SAI2 global interrupt</description> - <value>91</value> - </interrupt> - </peripheral> - <peripheral> - <name>DMA2D</name> - <description>DMA2D controller</description> - <groupName>DMA2D</groupName> - <baseAddress>0x4002B000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0xC00</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>DMA2D</name> - <description>DMA2D global interrupt</description> - <value>90</value> - </interrupt> - <registers> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MODE</name> - <description>DMA2D mode</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CEIE</name> - <description>Configuration Error Interrupt Enable</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTCIE</name> - <description>CLUT transfer complete interrupt enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAEIE</name> - <description>CLUT access error interrupt enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TWIE</name> - <description>Transfer watermark interrupt enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIE</name> - <description>Transfer complete interrupt enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIE</name> - <description>Transfer error interrupt enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ABORT</name> - <description>Abort</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SUSP</name> - <description>Suspend</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>START</name> - <description>Start</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ISR</name> - <displayName>ISR</displayName> - <description>Interrupt Status Register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CEIF</name> - <description>Configuration error interrupt flag</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTCIF</name> - <description>CLUT transfer complete interrupt flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAEIF</name> - <description>CLUT access error interrupt flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TWIF</name> - <description>Transfer watermark interrupt flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIF</name> - <description>Transfer complete interrupt flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIF</name> - <description>Transfer error interrupt flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>IFCR</name> - <displayName>IFCR</displayName> - <description>interrupt flag clear register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CCEIF</name> - <description>Clear configuration error interrupt flag</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CCTCIF</name> - <description>Clear CLUT transfer complete interrupt flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CAECIF</name> - <description>Clear CLUT access error interrupt flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTWIF</name> - <description>Clear transfer watermark interrupt flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTCIF</name> - <description>Clear transfer complete interrupt flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTEIF</name> - <description>Clear Transfer error interrupt flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>FGMAR</name> - <displayName>FGMAR</displayName> - <description>foreground memory address register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MA</name> - <description>Memory address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>FGOR</name> - <displayName>FGOR</displayName> - <description>foreground offset register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LO</name> - <description>Line offset</description> - <bitOffset>0</bitOffset> - <bitWidth>14</bitWidth> - </field> - </fields> - </register> - <register> - <name>BGMAR</name> - <displayName>BGMAR</displayName> - <description>background memory address register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MA</name> - <description>Memory address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BGOR</name> - <displayName>BGOR</displayName> - <description>background offset register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LO</name> - <description>Line offset</description> - <bitOffset>0</bitOffset> - <bitWidth>14</bitWidth> - </field> - </fields> - </register> - <register> - <name>FGPFCCR</name> - <displayName>FGPFCCR</displayName> - <description>foreground PFC control register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ALPHA</name> - <description>Alpha value</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>AM</name> - <description>Alpha mode</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CS</name> - <description>CLUT size</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>START</name> - <description>Start</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CCM</name> - <description>CLUT color mode</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CM</name> - <description>Color mode</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>FGCOLR</name> - <displayName>FGCOLR</displayName> - <description>foreground color register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RED</name> - <description>Red Value</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>GREEN</name> - <description>Green Value</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>BLUE</name> - <description>Blue Value</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>BGPFCCR</name> - <displayName>BGPFCCR</displayName> - <description>background PFC control register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ALPHA</name> - <description>Alpha value</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>AM</name> - <description>Alpha mode</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CS</name> - <description>CLUT size</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>START</name> - <description>Start</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CCM</name> - <description>CLUT Color mode</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CM</name> - <description>Color mode</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>BGCOLR</name> - <displayName>BGCOLR</displayName> - <description>background color register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RED</name> - <description>Red Value</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>GREEN</name> - <description>Green Value</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>BLUE</name> - <description>Blue Value</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>FGCMAR</name> - <displayName>FGCMAR</displayName> - <description>foreground CLUT memory address register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MA</name> - <description>Memory Address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BGCMAR</name> - <displayName>BGCMAR</displayName> - <description>background CLUT memory address register</description> - <addressOffset>0x30</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MA</name> - <description>Memory address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OPFCCR</name> - <displayName>OPFCCR</displayName> - <description>output PFC control register</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CM</name> - <description>Color mode</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>OCOLR</name> - <displayName>OCOLR</displayName> - <description>output color register</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>APLHA</name> - <description>Alpha Channel Value</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>RED</name> - <description>Red Value</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>GREEN</name> - <description>Green Value</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>BLUE</name> - <description>Blue Value</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>OMAR</name> - <displayName>OMAR</displayName> - <description>output memory address register</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MA</name> - <description>Memory Address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OOR</name> - <displayName>OOR</displayName> - <description>output offset register</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LO</name> - <description>Line Offset</description> - <bitOffset>0</bitOffset> - <bitWidth>14</bitWidth> - </field> - </fields> - </register> - <register> - <name>NLR</name> - <displayName>NLR</displayName> - <description>number of line register</description> - <addressOffset>0x44</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PL</name> - <description>Pixel per lines</description> - <bitOffset>16</bitOffset> - <bitWidth>14</bitWidth> - </field> - <field> - <name>NL</name> - <description>Number of lines</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>LWR</name> - <displayName>LWR</displayName> - <description>line watermark register</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LW</name> - <description>Line watermark</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>AMTCR</name> - <displayName>AMTCR</displayName> - <description>AHB master timer configuration register</description> - <addressOffset>0x4C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DT</name> - <description>Dead Time</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>EN</name> - <description>Enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>FGCLUT</name> - <displayName>FGCLUT</displayName> - <description>FGCLUT</description> - <addressOffset>0x400</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>APLHA</name> - <description>APLHA</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>RED</name> - <description>RED</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>GREEN</name> - <description>GREEN</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>BLUE</name> - <description>BLUE</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>BGCLUT</name> - <displayName>BGCLUT</displayName> - <description>BGCLUT</description> - <addressOffset>0x800</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>APLHA</name> - <description>APLHA</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>RED</name> - <description>RED</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>GREEN</name> - <description>GREEN</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>BLUE</name> - <description>BLUE</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>QUADSPI</name> - <description>QuadSPI interface</description> - <groupName>QUADSPI</groupName> - <baseAddress>0xA0001000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x1000</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>QuadSPI</name> - <description>QuadSPI global interrupt</description> - <value>92</value> - </interrupt> - <registers> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PRESCALER</name> - <description>Clock prescaler</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>PMM</name> - <description>Polling match mode</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>APMS</name> - <description>Automatic poll mode stop</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TOIE</name> - <description>TimeOut interrupt enable</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SMIE</name> - <description>Status match interrupt enable</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FTIE</name> - <description>FIFO threshold interrupt enable</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIE</name> - <description>Transfer complete interrupt enable</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEIE</name> - <description>Transfer error interrupt enable</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FTHRES</name> - <description>IFO threshold level</description> - <bitOffset>8</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>FSEL</name> - <description>FLASH memory selection</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DFM</name> - <description>Dual-flash mode</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SSHIFT</name> - <description>Sample shift</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCEN</name> - <description>Timeout counter enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMAEN</name> - <description>DMA enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ABORT</name> - <description>Abort request</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EN</name> - <description>Enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DCR</name> - <displayName>DCR</displayName> - <description>device configuration register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FSIZE</name> - <description>FLASH memory size</description> - <bitOffset>16</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>CSHT</name> - <description>Chip select high time</description> - <bitOffset>8</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>CKMODE</name> - <description>Mode 0 / mode 3</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>status register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FLEVEL</name> - <description>FIFO level</description> - <bitOffset>8</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>BUSY</name> - <description>Busy</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TOF</name> - <description>Timeout flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SMF</name> - <description>Status match flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FTF</name> - <description>FIFO threshold flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCF</name> - <description>Transfer complete flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEF</name> - <description>Transfer error flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>FCR</name> - <displayName>FCR</displayName> - <description>flag clear register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CTOF</name> - <description>Clear timeout flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CSMF</name> - <description>Clear status match flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTCF</name> - <description>Clear transfer complete flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTEF</name> - <description>Clear transfer error flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DLR</name> - <displayName>DLR</displayName> - <description>data length register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DL</name> - <description>Data length</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR</name> - <displayName>CCR</displayName> - <description>communication configuration register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DDRM</name> - <description>Double data rate mode</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DHHC</name> - <description>DDR hold half cycle</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SIOO</name> - <description>Send instruction only once mode</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FMODE</name> - <description>Functional mode</description> - <bitOffset>26</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DMODE</name> - <description>Data mode</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DCYC</name> - <description>Number of dummy cycles</description> - <bitOffset>18</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>ABSIZE</name> - <description>Alternate bytes size</description> - <bitOffset>16</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ABMODE</name> - <description>Alternate bytes mode</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ADSIZE</name> - <description>Address size</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>ADMODE</name> - <description>Address mode</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>IMODE</name> - <description>Instruction mode</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>INSTRUCTION</name> - <description>Instruction</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>AR</name> - <displayName>AR</displayName> - <description>address register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ADDRESS</name> - <description>Address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ABR</name> - <displayName>ABR</displayName> - <description>ABR</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ALTERNATE</name> - <description>ALTERNATE</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>DR</name> - <displayName>DR</displayName> - <description>data register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATA</name> - <description>Data</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>PSMKR</name> - <displayName>PSMKR</displayName> - <description>polling status mask register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MASK</name> - <description>Status mask</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>PSMAR</name> - <displayName>PSMAR</displayName> - <description>polling status match register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MATCH</name> - <description>Status match</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>PIR</name> - <displayName>PIR</displayName> - <description>polling interval register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>INTERVAL</name> - <description>Polling interval</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>LPTR</name> - <displayName>LPTR</displayName> - <description>low-power timeout register</description> - <addressOffset>0x30</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TIMEOUT</name> - <description>Timeout period</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>CEC</name> - <description>HDMI-CEC controller</description> - <groupName>CEC</groupName> - <baseAddress>0x40006C00</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>HDMI_CEC</name> - <description>HDMI-CEC global interrupt</description> - <value>94</value> - </interrupt> - <registers> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TXEOM</name> - <description>Tx End Of Message</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXSOM</name> - <description>Tx start of message</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CECEN</name> - <description>CEC Enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CFGR</name> - <displayName>CFGR</displayName> - <description>configuration register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SFT</name> - <description>Signal Free Time</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>RXTOL</name> - <description>Rx-Tolerance</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BRESTP</name> - <description>Rx-stop on bit rising error</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BREGEN</name> - <description>Generate error-bit on bit rising error</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LBPEGEN</name> - <description>Generate Error-Bit on Long Bit Period Error</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BRDNOGEN</name> - <description>Avoid Error-Bit Generation in Broadcast</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SFTOP</name> - <description>SFT Option Bit</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OAR</name> - <description>Own addresses configuration</description> - <bitOffset>16</bitOffset> - <bitWidth>15</bitWidth> - </field> - <field> - <name>LSTN</name> - <description>Listen mode</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>TXDR</name> - <displayName>TXDR</displayName> - <description>Tx data register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TXD</name> - <description>Tx Data register</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>RXDR</name> - <displayName>RXDR</displayName> - <description>Rx Data Register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RXDR</name> - <description>CEC Rx Data Register</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>ISR</name> - <displayName>ISR</displayName> - <description>Interrupt and Status Register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TXACKE</name> - <description>Tx-Missing acknowledge error</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Tx-Error</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXUDR</name> - <description>Tx-Buffer Underrun</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXEND</name> - <description>End of Transmission</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXBR</name> - <description>Tx-Byte Request</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ARBLST</name> - <description>Arbitration Lost</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXACKE</name> - <description>Rx-Missing Acknowledge</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LBPE</name> - <description>Rx-Long Bit Period Error</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SBPE</name> - <description>Rx-Short Bit period error</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BRE</name> - <description>Rx-Bit rising error</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXOVR</name> - <description>Rx-Overrun</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXEND</name> - <description>End Of Reception</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXBR</name> - <description>Rx-Byte Received</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>IER</name> - <displayName>IER</displayName> - <description>interrupt enable register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TXACKIE</name> - <description>Tx-Missing Acknowledge Error Interrupt Enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRIE</name> - <description>Tx-Error Interrupt Enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXUDRIE</name> - <description>Tx-Underrun interrupt enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXENDIE</name> - <description>Tx-End of message interrupt enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXBRIE</name> - <description>Tx-Byte Request Interrupt Enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ARBLSTIE</name> - <description>Arbitration Lost Interrupt Enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXACKIE</name> - <description>Rx-Missing Acknowledge Error Interrupt Enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LBPEIE</name> - <description>Long Bit Period Error Interrupt Enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SBPEIE</name> - <description>Short Bit Period Error Interrupt Enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BREIE</name> - <description>Bit Rising Error Interrupt Enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXOVRIE</name> - <description>Rx-Buffer Overrun Interrupt Enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXENDIE</name> - <description>End Of Reception Interrupt Enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXBRIE</name> - <description>Rx-Byte Received Interrupt Enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>SPDIF_RX</name> - <description>Receiver Interface</description> - <groupName>SPDIF_RX</groupName> - <baseAddress>0x40004000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>SPDIFRX</name> - <description>SPDIFRX global interrupt</description> - <value>97</value> - </interrupt> - <registers> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>Control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SPDIFEN</name> - <description>Peripheral Block Enable</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>RXDMAEN</name> - <description>Receiver DMA ENable for data flow</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXSTEO</name> - <description>STerEO Mode</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DRFMT</name> - <description>RX Data format</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PMSK</name> - <description>Mask Parity error bit</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VMSK</name> - <description>Mask of Validity bit</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CUMSK</name> - <description>Mask of channel status and user bits</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PTMSK</name> - <description>Mask of Preamble Type bits</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CBDMAEN</name> - <description>Control Buffer DMA ENable for control flow</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHSEL</name> - <description>Channel Selection</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NBTR</name> - <description>Maximum allowed re-tries during synchronization phase</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>WFA</name> - <description>Wait For Activity</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>INSEL</name> - <description>input selection</description> - <bitOffset>16</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>IMR</name> - <displayName>IMR</displayName> - <description>Interrupt mask register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RXNEIE</name> - <description>RXNE interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CSRNEIE</name> - <description>Control Buffer Ready Interrupt Enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PERRIE</name> - <description>Parity error interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVRIE</name> - <description>Overrun error Interrupt Enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SBLKIE</name> - <description>Synchronization Block Detected Interrupt Enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SYNCDIE</name> - <description>Synchronization Done</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IFEIE</name> - <description>Serial Interface Error Interrupt Enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SR</name> - <displayName>SR</displayName> - <description>Status register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RXNE</name> - <description>Read data register not empty</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CSRNE</name> - <description>Control Buffer register is not empty</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PERR</name> - <description>Parity error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVR</name> - <description>Overrun error</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SBD</name> - <description>Synchronization Block Detected</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SYNCD</name> - <description>Synchronization Done</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FERR</name> - <description>Framing error</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SERR</name> - <description>Synchronization error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TERR</name> - <description>Time-out error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WIDTH5</name> - <description>Duration of 5 symbols counted with SPDIF_CLK</description> - <bitOffset>16</bitOffset> - <bitWidth>15</bitWidth> - </field> - </fields> - </register> - <register> - <name>IFCR</name> - <displayName>IFCR</displayName> - <description>Interrupt Flag Clear register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PERRCF</name> - <description>Clears the Parity error flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVRCF</name> - <description>Clears the Overrun error flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SBDCF</name> - <description>Clears the Synchronization Block Detected flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SYNCDCF</name> - <description>Clears the Synchronization Done flag</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DR</name> - <displayName>DR</displayName> - <description>Data input register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DR</name> - <description>Parity Error bit</description> - <bitOffset>0</bitOffset> - <bitWidth>24</bitWidth> - </field> - <field> - <name>PE</name> - <description>Parity Error bit</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>V</name> - <description>Validity bit</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>U</name> - <description>User bit</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>C</name> - <description>Channel Status bit</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PT</name> - <description>Preamble Type</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CSR</name> - <displayName>CSR</displayName> - <description>Channel Status register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>USR</name> - <description>User data information</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>CS</name> - <description>Channel A status information</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>SOB</name> - <description>Start Of Block</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DIR</name> - <displayName>DIR</displayName> - <description>Debug Information register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>THI</name> - <description>Threshold HIGH</description> - <bitOffset>0</bitOffset> - <bitWidth>13</bitWidth> - </field> - <field> - <name>TLO</name> - <description>Threshold LOW</description> - <bitOffset>16</bitOffset> - <bitWidth>13</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>SDMMC1</name> - <description>Secure digital input/output interface</description> - <groupName>SDMMC</groupName> - <baseAddress>0x40012C00</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>SDMMC1</name> - <description>SDMMC1 global interrupt</description> - <value>49</value> - </interrupt> - <registers> - <register> - <name>POWER</name> - <displayName>POWER</displayName> - <description>power control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PWRCTRL</name> - <description>PWRCTRL</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>CLKCR</name> - <displayName>CLKCR</displayName> - <description>SDI clock control register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>HWFC_EN</name> - <description>HW Flow Control enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NEGEDGE</name> - <description>SDIO_CK dephasing selection bit</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WIDBUS</name> - <description>Wide bus mode enable bit</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>BYPASS</name> - <description>Clock divider bypass enable bit</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PWRSAV</name> - <description>Power saving configuration bit</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CLKEN</name> - <description>Clock enable bit</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CLKDIV</name> - <description>Clock divide factor</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>ARG</name> - <displayName>ARG</displayName> - <description>argument register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CMDARG</name> - <description>Command argument</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>CMD</name> - <displayName>CMD</displayName> - <description>command register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CE_ATACMD</name> - <description>CE-ATA command</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>nIEN</name> - <description>not Interrupt Enable</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ENCMDcompl</name> - <description>Enable CMD completion</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDIOSuspend</name> - <description>SD I/O suspend command</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CPSMEN</name> - <description>Command path state machine (CPSM) Enable bit</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITPEND</name> - <description>CPSM Waits for ends of data transfer (CmdPend internal signal)</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITINT</name> - <description>CPSM waits for interrupt request</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAITRESP</name> - <description>Wait for response bits</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CMDINDEX</name> - <description>Command index</description> - <bitOffset>0</bitOffset> - <bitWidth>6</bitWidth> - </field> - </fields> - </register> - <register> - <name>RESPCMD</name> - <displayName>RESPCMD</displayName> - <description>command response register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RESPCMD</name> - <description>Response command index</description> - <bitOffset>0</bitOffset> - <bitWidth>6</bitWidth> - </field> - </fields> - </register> - <register> - <name>RESP1</name> - <displayName>RESP1</displayName> - <description>response 1..4 register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CARDSTATUS1</name> - <description>see Table 132</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>RESP2</name> - <displayName>RESP2</displayName> - <description>response 1..4 register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CARDSTATUS2</name> - <description>see Table 132</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>RESP3</name> - <displayName>RESP3</displayName> - <description>response 1..4 register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CARDSTATUS3</name> - <description>see Table 132</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>RESP4</name> - <displayName>RESP4</displayName> - <description>response 1..4 register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CARDSTATUS4</name> - <description>see Table 132</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>DTIMER</name> - <displayName>DTIMER</displayName> - <description>data timer register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATATIME</name> - <description>Data timeout period</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>DLEN</name> - <displayName>DLEN</displayName> - <description>data length register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATALENGTH</name> - <description>Data length value</description> - <bitOffset>0</bitOffset> - <bitWidth>25</bitWidth> - </field> - </fields> - </register> - <register> - <name>DCTRL</name> - <displayName>DCTRL</displayName> - <description>data control register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SDIOEN</name> - <description>SD I/O enable functions</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RWMOD</name> - <description>Read wait mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RWSTOP</name> - <description>Read wait stop</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RWSTART</name> - <description>Read wait start</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBLOCKSIZE</name> - <description>Data block size</description> - <bitOffset>4</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DMAEN</name> - <description>DMA enable bit</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTMODE</name> - <description>Data transfer mode selection 1: Stream or SDIO multibyte data transfer</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTDIR</name> - <description>Data transfer direction selection</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTEN</name> - <description>DTEN</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>DCOUNT</name> - <displayName>DCOUNT</displayName> - <description>data counter register</description> - <addressOffset>0x30</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DATACOUNT</name> - <description>Data count value</description> - <bitOffset>0</bitOffset> - <bitWidth>25</bitWidth> - </field> - </fields> - </register> - <register> - <name>STA</name> - <displayName>STA</displayName> - <description>status register</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CEATAEND</name> - <description>CE-ATA command completion signal received for CMD61</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDIOIT</name> - <description>SDIO interrupt received</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXDAVL</name> - <description>Data available in receive FIFO</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXDAVL</name> - <description>Data available in transmit FIFO</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXFIFOE</name> - <description>Receive FIFO empty</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXFIFOE</name> - <description>Transmit FIFO empty</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXFIFOF</name> - <description>Receive FIFO full</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXFIFOF</name> - <description>Transmit FIFO full</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXFIFOHF</name> - <description>Receive FIFO half full: there are at least 8 words in the FIFO</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXFIFOHE</name> - <description>Transmit FIFO half empty: at least 8 words can be written into the FIFO</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXACT</name> - <description>Data receive in progress</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXACT</name> - <description>Data transmit in progress</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMDACT</name> - <description>Command transfer in progress</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBCKEND</name> - <description>Data block sent/received (CRC check passed)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STBITERR</name> - <description>Start bit not detected on all data signals in wide bus mode</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DATAEND</name> - <description>Data end (data counter, SDIDCOUNT, is zero)</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMDSENT</name> - <description>Command sent (no response required)</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMDREND</name> - <description>Command response received (CRC check passed)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXOVERR</name> - <description>Received FIFO overrun error</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXUNDERR</name> - <description>Transmit FIFO underrun error</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTIMEOUT</name> - <description>Data timeout</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTIMEOUT</name> - <description>Command response timeout</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DCRCFAIL</name> - <description>Data block sent/received (CRC check failed)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CCRCFAIL</name> - <description>Command response received (CRC check failed)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ICR</name> - <displayName>ICR</displayName> - <description>interrupt clear register</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CEATAENDC</name> - <description>CEATAEND flag clear bit</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDIOITC</name> - <description>SDIOIT flag clear bit</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBCKENDC</name> - <description>DBCKEND flag clear bit</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STBITERRC</name> - <description>STBITERR flag clear bit</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DATAENDC</name> - <description>DATAEND flag clear bit</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMDSENTC</name> - <description>CMDSENT flag clear bit</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMDRENDC</name> - <description>CMDREND flag clear bit</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXOVERRC</name> - <description>RXOVERR flag clear bit</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXUNDERRC</name> - <description>TXUNDERR flag clear bit</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTIMEOUTC</name> - <description>DTIMEOUT flag clear bit</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTIMEOUTC</name> - <description>CTIMEOUT flag clear bit</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DCRCFAILC</name> - <description>DCRCFAIL flag clear bit</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CCRCFAILC</name> - <description>CCRCFAIL flag clear bit</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MASK</name> - <displayName>MASK</displayName> - <description>mask register</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CEATAENDIE</name> - <description>CE-ATA command completion signal received interrupt enable</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDIOITIE</name> - <description>SDIO mode interrupt received interrupt enable</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXDAVLIE</name> - <description>Data available in Rx FIFO interrupt enable</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXDAVLIE</name> - <description>Data available in Tx FIFO interrupt enable</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXFIFOEIE</name> - <description>Rx FIFO empty interrupt enable</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXFIFOEIE</name> - <description>Tx FIFO empty interrupt enable</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXFIFOFIE</name> - <description>Rx FIFO full interrupt enable</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXFIFOFIE</name> - <description>Tx FIFO full interrupt enable</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXFIFOHFIE</name> - <description>Rx FIFO half full interrupt enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXFIFOHEIE</name> - <description>Tx FIFO half empty interrupt enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXACTIE</name> - <description>Data receive acting interrupt enable</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXACTIE</name> - <description>Data transmit acting interrupt enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMDACTIE</name> - <description>Command acting interrupt enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBCKENDIE</name> - <description>Data block end interrupt enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STBITERRIE</name> - <description>Start bit error interrupt enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DATAENDIE</name> - <description>Data end interrupt enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMDSENTIE</name> - <description>Command sent interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMDRENDIE</name> - <description>Command response received interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXOVERRIE</name> - <description>Rx FIFO overrun error interrupt enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXUNDERRIE</name> - <description>Tx FIFO underrun error interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTIMEOUTIE</name> - <description>Data timeout interrupt enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTIMEOUTIE</name> - <description>Command timeout interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DCRCFAILIE</name> - <description>Data CRC fail interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CCRCFAILIE</name> - <description>Command CRC fail interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>FIFOCNT</name> - <displayName>FIFOCNT</displayName> - <description>FIFO counter register</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FIFOCOUNT</name> - <description>Remaining number of words to be written to or read from the FIFO</description> - <bitOffset>0</bitOffset> - <bitWidth>24</bitWidth> - </field> - </fields> - </register> - <register> - <name>FIFO</name> - <displayName>FIFO</displayName> - <description>data FIFO register</description> - <addressOffset>0x80</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FIFOData</name> - <description>Receive and transmit FIFO data</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>LPTIM1</name> - <description>Low power timer</description> - <groupName>LPTIM</groupName> - <baseAddress>0x40002400</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>LPTIMER1</name> - <description>LP Timer1 global interrupt</description> - <value>93</value> - </interrupt> - <registers> - <register> - <name>ISR</name> - <displayName>ISR</displayName> - <description>Interrupt and Status Register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DOWN</name> - <description>Counter direction change up to down</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UP</name> - <description>Counter direction change down to up</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ARROK</name> - <description>Autoreload register update OK</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMPOK</name> - <description>Compare register update OK</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EXTTRIG</name> - <description>External trigger edge event</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ARRM</name> - <description>Autoreload match</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMPM</name> - <description>Compare match</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ICR</name> - <displayName>ICR</displayName> - <description>Interrupt Clear Register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DOWNCF</name> - <description>Direction change to down Clear Flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UPCF</name> - <description>Direction change to UP Clear Flag</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ARROKCF</name> - <description>Autoreload register update OK Clear Flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMPOKCF</name> - <description>Compare register update OK Clear Flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EXTTRIGCF</name> - <description>External trigger valid edge Clear Flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ARRMCF</name> - <description>Autoreload match Clear Flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMPMCF</name> - <description>compare match Clear Flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>IER</name> - <displayName>IER</displayName> - <description>Interrupt Enable Register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DOWNIE</name> - <description>Direction change to down Interrupt Enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UPIE</name> - <description>Direction change to UP Interrupt Enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ARROKIE</name> - <description>Autoreload register update OK Interrupt Enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMPOKIE</name> - <description>Compare register update OK Interrupt Enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EXTTRIGIE</name> - <description>External trigger valid edge Interrupt Enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ARRMIE</name> - <description>Autoreload match Interrupt Enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMPMIE</name> - <description>Compare match Interrupt Enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CFGR</name> - <displayName>CFGR</displayName> - <description>Configuration Register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ENC</name> - <description>Encoder mode enable</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>COUNTMODE</name> - <description>counter mode enabled</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PRELOAD</name> - <description>Registers update mode</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAVPOL</name> - <description>Waveform shape polarity</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAVE</name> - <description>Waveform shape</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIMOUT</name> - <description>Timeout enable</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TRIGEN</name> - <description>Trigger enable and polarity</description> - <bitOffset>17</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>TRIGSEL</name> - <description>Trigger selector</description> - <bitOffset>13</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>PRESC</name> - <description>Clock prescaler</description> - <bitOffset>9</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>TRGFLT</name> - <description>Configurable digital filter for trigger</description> - <bitOffset>6</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CKFLT</name> - <description>Configurable digital filter for external clock</description> - <bitOffset>3</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CKPOL</name> - <description>Clock Polarity</description> - <bitOffset>1</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CKSEL</name> - <description>Clock selector</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>Control Register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CNTSTRT</name> - <description>Timer start in continuous mode</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SNGSTRT</name> - <description>LPTIM start in single mode</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ENABLE</name> - <description>LPTIM Enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CMP</name> - <displayName>CMP</displayName> - <description>Compare Register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CMP</name> - <description>Compare value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>ARR</name> - <displayName>ARR</displayName> - <description>Autoreload Register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000001</resetValue> - <fields> - <field> - <name>ARR</name> - <description>Auto reload value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CNT</name> - <displayName>CNT</displayName> - <description>Counter Register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CNT</name> - <description>Counter value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>I2C1</name> - <description>Inter-integrated circuit</description> - <groupName>I2C</groupName> - <baseAddress>0x40005400</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>I2C1_EV</name> - <description>I2C1 event interrupt</description> - <value>31</value> - </interrupt> - <interrupt> - <name>I2C1_ER</name> - <description>I2C1 error interrupt</description> - <value>32</value> - </interrupt> - <registers> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>Control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PE</name> - <description>Peripheral enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXIE</name> - <description>TX Interrupt enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXIE</name> - <description>RX Interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADDRIE</name> - <description>Address match interrupt enable (slave only)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NACKIE</name> - <description>Not acknowledge received interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STOPIE</name> - <description>STOP detection Interrupt enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIE</name> - <description>Transfer Complete interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ERRIE</name> - <description>Error interrupts enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DNF</name> - <description>Digital noise filter</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ANFOFF</name> - <description>Analog noise filter OFF</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXDMAEN</name> - <description>DMA transmission requests enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXDMAEN</name> - <description>DMA reception requests enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SBC</name> - <description>Slave byte control</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NOSTRETCH</name> - <description>Clock stretching disable</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WUPEN</name> - <description>Wakeup from STOP enable</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GCEN</name> - <description>General call enable</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SMBHEN</name> - <description>SMBus Host address enable</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SMBDEN</name> - <description>SMBus Device Default address enable</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ALERTEN</name> - <description>SMBUS alert enable</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PECEN</name> - <description>PEC enable</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR2</name> - <displayName>CR2</displayName> - <description>Control register 2</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PECBYTE</name> - <description>Packet error checking byte</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AUTOEND</name> - <description>Automatic end mode (master mode)</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RELOAD</name> - <description>NBYTES reload mode</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NBYTES</name> - <description>Number of bytes</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>NACK</name> - <description>NACK generation (slave mode)</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STOP</name> - <description>Stop generation (master mode)</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>START</name> - <description>Start generation</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HEAD10R</name> - <description>10-bit address header only read direction (master receiver mode)</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADD10</name> - <description>10-bit addressing mode (master mode)</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RD_WRN</name> - <description>Transfer direction (master mode)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SADD</name> - <description>Slave address bit (master mode)</description> - <bitOffset>0</bitOffset> - <bitWidth>10</bitWidth> - </field> - </fields> - </register> - <register> - <name>OAR1</name> - <displayName>OAR1</displayName> - <description>Own address register 1</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OA1</name> - <description>Interface address</description> - <bitOffset>0</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>OA1MODE</name> - <description>Own Address 1 10-bit mode</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OA1EN</name> - <description>Own Address 1 enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OAR2</name> - <displayName>OAR2</displayName> - <description>Own address register 2</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>OA2</name> - <description>Interface address</description> - <bitOffset>1</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>OA2MSK</name> - <description>Own Address 2 masks</description> - <bitOffset>8</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>OA2EN</name> - <description>Own Address 2 enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>TIMINGR</name> - <displayName>TIMINGR</displayName> - <description>Timing register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SCLL</name> - <description>SCL low period (master mode)</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>SCLH</name> - <description>SCL high period (master mode)</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>SDADEL</name> - <description>Data hold time</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>SCLDEL</name> - <description>Data setup time</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>PRESC</name> - <description>Timing prescaler</description> - <bitOffset>28</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>TIMEOUTR</name> - <displayName>TIMEOUTR</displayName> - <description>Status register 1</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TIMEOUTA</name> - <description>Bus timeout A</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - <field> - <name>TIDLE</name> - <description>Idle clock timeout detection</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIMOUTEN</name> - <description>Clock timeout enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIMEOUTB</name> - <description>Bus timeout B</description> - <bitOffset>16</bitOffset> - <bitWidth>12</bitWidth> - </field> - <field> - <name>TEXTEN</name> - <description>Extended clock timeout enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ISR</name> - <displayName>ISR</displayName> - <description>Interrupt and Status register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <resetValue>0x00000001</resetValue> - <fields> - <field> - <name>ADDCODE</name> - <description>Address match code (Slave mode)</description> - <bitOffset>17</bitOffset> - <bitWidth>7</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DIR</name> - <description>Transfer direction (Slave mode)</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>BUSY</name> - <description>Bus busy</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ALERT</name> - <description>SMBus alert</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TIMEOUT</name> - <description>Timeout or t_low detection flag</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PECERR</name> - <description>PEC Error in reception</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>OVR</name> - <description>Overrun/Underrun (slave mode)</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ARLO</name> - <description>Arbitration lost</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>BERR</name> - <description>Bus error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TCR</name> - <description>Transfer Complete Reload</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TC</name> - <description>Transfer Complete (master mode)</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>STOPF</name> - <description>Stop detection flag</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NACKF</name> - <description>Not acknowledge received flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ADDR</name> - <description>Address matched (slave mode)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>RXNE</name> - <description>Receive data register not empty (receivers)</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TXIS</name> - <description>Transmit interrupt status (transmitters)</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXE</name> - <description>Transmit data register empty (transmitters)</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>ICR</name> - <displayName>ICR</displayName> - <description>Interrupt clear register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ALERTCF</name> - <description>Alert flag clear</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TIMOUTCF</name> - <description>Timeout detection flag clear</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PECCF</name> - <description>PEC Error flag clear</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVRCF</name> - <description>Overrun/Underrun flag clear</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ARLOCF</name> - <description>Arbitration lost flag clear</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BERRCF</name> - <description>Bus error flag clear</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STOPCF</name> - <description>Stop detection flag clear</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NACKCF</name> - <description>Not Acknowledge flag clear</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADDRCF</name> - <description>Address Matched flag clear</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>PECR</name> - <displayName>PECR</displayName> - <description>PEC register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PEC</name> - <description>Packet error checking register</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>RXDR</name> - <displayName>RXDR</displayName> - <description>Receive data register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RXDATA</name> - <description>8-bit receive data</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>TXDR</name> - <displayName>TXDR</displayName> - <description>Transmit data register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TXDATA</name> - <description>8-bit transmit data</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="I2C1"> - <name>I2C2</name> - <baseAddress>0x40005800</baseAddress> - <interrupt> - <name>I2C2_EV</name> - <description>I2C2 event interrupt</description> - <value>33</value> - </interrupt> - <interrupt> - <name>I2C2_ER</name> - <description>I2C2 error interrupt</description> - <value>34</value> - </interrupt> - </peripheral> - <peripheral derivedFrom="I2C1"> - <name>I2C3</name> - <baseAddress>0x40005C00</baseAddress> - <interrupt> - <name>I2C3_EV</name> - <description>I2C3 event interrupt</description> - <value>72</value> - </interrupt> - <interrupt> - <name>I2C3_ER</name> - <description>I2C3 error interrupt</description> - <value>73</value> - </interrupt> - </peripheral> - <peripheral derivedFrom="I2C1"> - <name>I2C4</name> - <baseAddress>0x40006000</baseAddress> - <interrupt> - <name>I2C4_EV</name> - <description>I2C4 event interrupt</description> - <value>95</value> - </interrupt> - <interrupt> - <name>I2C4_ER</name> - <description>I2C4 Error interrupt</description> - <value>96</value> - </interrupt> - </peripheral> - <peripheral> - <name>RTC</name> - <description>Real-time clock</description> - <groupName>RTC</groupName> - <baseAddress>0x40002800</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>RTC_WKUP</name> - <description>RTC Tamper or TimeStamp /CSS on LSE through - EXTI line 19 interrupts</description> - <value>3</value> - </interrupt> - <interrupt> - <name>RTC_ALARM</name> - <description>RTC alarms through EXTI line 18 - interrupts</description> - <value>41</value> - </interrupt> - <registers> - <register> - <name>TR</name> - <displayName>TR</displayName> - <description>time register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PM</name> - <description>AM/PM notation</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HT</name> - <description>Hour tens in BCD format</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>HU</name> - <description>Hour units in BCD format</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>MNT</name> - <description>Minute tens in BCD format</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MNU</name> - <description>Minute units in BCD format</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ST</name> - <description>Second tens in BCD format</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>SU</name> - <description>Second units in BCD format</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>DR</name> - <displayName>DR</displayName> - <description>date register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00002101</resetValue> - <fields> - <field> - <name>YT</name> - <description>Year tens in BCD format</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>YU</name> - <description>Year units in BCD format</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>WDU</name> - <description>Week day units</description> - <bitOffset>13</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MT</name> - <description>Month tens in BCD format</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MU</name> - <description>Month units in BCD format</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DT</name> - <description>Date tens in BCD format</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DU</name> - <description>Date units in BCD format</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR</name> - <displayName>CR</displayName> - <description>control register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>WCKSEL</name> - <description>Wakeup clock selection</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>TSEDGE</name> - <description>Time-stamp event active edge</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>REFCKON</name> - <description>Reference clock detection enable (50 or 60 Hz)</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BYPSHAD</name> - <description>Bypass the shadow registers</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FMT</name> - <description>Hour format</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ALRAE</name> - <description>Alarm A enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ALRBE</name> - <description>Alarm B enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WUTE</name> - <description>Wakeup timer enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSE</name> - <description>Time stamp enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ALRAIE</name> - <description>Alarm A interrupt enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ALRBIE</name> - <description>Alarm B interrupt enable</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WUTIE</name> - <description>Wakeup timer interrupt enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TSIE</name> - <description>Time-stamp interrupt enable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADD1H</name> - <description>Add 1 hour (summer time change)</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SUB1H</name> - <description>Subtract 1 hour (winter time change)</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BKP</name> - <description>Backup</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>COSEL</name> - <description>Calibration output selection</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>POL</name> - <description>Output polarity</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OSEL</name> - <description>Output selection</description> - <bitOffset>21</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COE</name> - <description>Calibration output enable</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ITSE</name> - <description>timestamp on internal event enable</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ISR</name> - <displayName>ISR</displayName> - <description>initialization and status register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <resetValue>0x00000007</resetValue> - <fields> - <field> - <name>ALRAWF</name> - <description>Alarm A write flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ALRBWF</name> - <description>Alarm B write flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>WUTWF</name> - <description>Wakeup timer write flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SHPF</name> - <description>Shift operation pending</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>INITS</name> - <description>Initialization status flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>RSF</name> - <description>Registers synchronization flag</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>INITF</name> - <description>Initialization flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>INIT</name> - <description>Initialization mode</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ALRAF</name> - <description>Alarm A flag</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ALRBF</name> - <description>Alarm B flag</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WUTF</name> - <description>Wakeup timer flag</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TSF</name> - <description>Time-stamp flag</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TSOVF</name> - <description>Time-stamp overflow flag</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TAMP1F</name> - <description>Tamper detection flag</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TAMP2F</name> - <description>RTC_TAMP2 detection flag</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TAMP3F</name> - <description>RTC_TAMP3 detection flag</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RECALPF</name> - <description>Recalibration pending Flag</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>PRER</name> - <displayName>PRER</displayName> - <description>prescaler register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x007F00FF</resetValue> - <fields> - <field> - <name>PREDIV_A</name> - <description>Asynchronous prescaler factor</description> - <bitOffset>16</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>PREDIV_S</name> - <description>Synchronous prescaler factor</description> - <bitOffset>0</bitOffset> - <bitWidth>15</bitWidth> - </field> - </fields> - </register> - <register> - <name>WUTR</name> - <displayName>WUTR</displayName> - <description>wakeup timer register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000FFFF</resetValue> - <fields> - <field> - <name>WUT</name> - <description>Wakeup auto-reload value bits</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>ALRMAR</name> - <displayName>ALRMAR</displayName> - <description>alarm A register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MSK4</name> - <description>Alarm A date mask</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WDSEL</name> - <description>Week day selection</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DT</name> - <description>Date tens in BCD format</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DU</name> - <description>Date units or day in BCD format</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>MSK3</name> - <description>Alarm A hours mask</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PM</name> - <description>AM/PM notation</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HT</name> - <description>Hour tens in BCD format</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>HU</name> - <description>Hour units in BCD format</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>MSK2</name> - <description>Alarm A minutes mask</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MNT</name> - <description>Minute tens in BCD format</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MNU</name> - <description>Minute units in BCD format</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>MSK1</name> - <description>Alarm A seconds mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ST</name> - <description>Second tens in BCD format</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>SU</name> - <description>Second units in BCD format</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>ALRMBR</name> - <displayName>ALRMBR</displayName> - <description>alarm B register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MSK4</name> - <description>Alarm B date mask</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WDSEL</name> - <description>Week day selection</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DT</name> - <description>Date tens in BCD format</description> - <bitOffset>28</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DU</name> - <description>Date units or day in BCD format</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>MSK3</name> - <description>Alarm B hours mask</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PM</name> - <description>AM/PM notation</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HT</name> - <description>Hour tens in BCD format</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>HU</name> - <description>Hour units in BCD format</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>MSK2</name> - <description>Alarm B minutes mask</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MNT</name> - <description>Minute tens in BCD format</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MNU</name> - <description>Minute units in BCD format</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>MSK1</name> - <description>Alarm B seconds mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ST</name> - <description>Second tens in BCD format</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>SU</name> - <description>Second units in BCD format</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>WPR</name> - <displayName>WPR</displayName> - <description>write protection register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>KEY</name> - <description>Write protection key</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>SSR</name> - <displayName>SSR</displayName> - <description>sub second register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SS</name> - <description>Sub second value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>SHIFTR</name> - <displayName>SHIFTR</displayName> - <description>shift control register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ADD1S</name> - <description>Add one second</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SUBFS</name> - <description>Subtract a fraction of a second</description> - <bitOffset>0</bitOffset> - <bitWidth>15</bitWidth> - </field> - </fields> - </register> - <register> - <name>TSTR</name> - <displayName>TSTR</displayName> - <description>time stamp time register</description> - <addressOffset>0x30</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SU</name> - <description>Second units in BCD format</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ST</name> - <description>Second tens in BCD format</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MNU</name> - <description>Minute units in BCD format</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>MNT</name> - <description>Minute tens in BCD format</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>HU</name> - <description>Hour units in BCD format</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>HT</name> - <description>Hour tens in BCD format</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PM</name> - <description>AM/PM notation</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>TSDR</name> - <displayName>TSDR</displayName> - <description>time stamp date register</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>WDU</name> - <description>Week day units</description> - <bitOffset>13</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>MT</name> - <description>Month tens in BCD format</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MU</name> - <description>Month units in BCD format</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DT</name> - <description>Date tens in BCD format</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DU</name> - <description>Date units in BCD format</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>TSSSR</name> - <displayName>TSSSR</displayName> - <description>timestamp sub second register</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SS</name> - <description>Sub second value</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>CALR</name> - <displayName>CALR</displayName> - <description>calibration register</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CALP</name> - <description>Increase frequency of RTC by 488.5 ppm</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CALW8</name> - <description>Use an 8-second calibration cycle period</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CALW16</name> - <description>Use a 16-second calibration cycle period</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CALM</name> - <description>Calibration minus</description> - <bitOffset>0</bitOffset> - <bitWidth>9</bitWidth> - </field> - </fields> - </register> - <register> - <name>TAMPCR</name> - <displayName>TAMPCR</displayName> - <description>tamper configuration register</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TAMP1E</name> - <description>Tamper 1 detection enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP1TRG</name> - <description>Active level for tamper 1</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMPIE</name> - <description>Tamper interrupt enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP2E</name> - <description>Tamper 2 detection enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP2TRG</name> - <description>Active level for tamper 2</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP3E</name> - <description>Tamper 3 detection enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP3TRG</name> - <description>Active level for tamper 3</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMPTS</name> - <description>Activate timestamp on tamper detection event</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMPFREQ</name> - <description>Tamper sampling frequency</description> - <bitOffset>8</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>TAMPFLT</name> - <description>Tamper filter count</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>TAMPPRCH</name> - <description>Tamper precharge duration</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>TAMPPUDIS</name> - <description>TAMPER pull-up disable</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP1IE</name> - <description>Tamper 1 interrupt enable</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP1NOERASE</name> - <description>Tamper 1 no erase</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP1MF</name> - <description>Tamper 1 mask flag</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP2IE</name> - <description>Tamper 2 interrupt enable</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP2NOERASE</name> - <description>Tamper 2 no erase</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP2MF</name> - <description>Tamper 2 mask flag</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP3IE</name> - <description>Tamper 3 interrupt enable</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP3NOERASE</name> - <description>Tamper 3 no erase</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAMP3MF</name> - <description>Tamper 3 mask flag</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ALRMASSR</name> - <displayName>ALRMASSR</displayName> - <description>alarm A sub second register</description> - <addressOffset>0x44</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MASKSS</name> - <description>Mask the most-significant bits starting at this bit</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>SS</name> - <description>Sub seconds value</description> - <bitOffset>0</bitOffset> - <bitWidth>15</bitWidth> - </field> - </fields> - </register> - <register> - <name>ALRMBSSR</name> - <displayName>ALRMBSSR</displayName> - <description>alarm B sub second register</description> - <addressOffset>0x48</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MASKSS</name> - <description>Mask the most-significant bits starting at this bit</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>SS</name> - <description>Sub seconds value</description> - <bitOffset>0</bitOffset> - <bitWidth>15</bitWidth> - </field> - </fields> - </register> - <register> - <name>OR</name> - <displayName>OR</displayName> - <description>option register</description> - <addressOffset>0x4C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RTC_ALARM_TYPE</name> - <description>RTC_ALARM on PC13 output type</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RTC_OUT_RMP</name> - <description>RTC_OUT remap</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP0R</name> - <displayName>BKP0R</displayName> - <description>backup register</description> - <addressOffset>0x50</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP1R</name> - <displayName>BKP1R</displayName> - <description>backup register</description> - <addressOffset>0x54</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP2R</name> - <displayName>BKP2R</displayName> - <description>backup register</description> - <addressOffset>0x58</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP3R</name> - <displayName>BKP3R</displayName> - <description>backup register</description> - <addressOffset>0x5C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP4R</name> - <displayName>BKP4R</displayName> - <description>backup register</description> - <addressOffset>0x60</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP5R</name> - <displayName>BKP5R</displayName> - <description>backup register</description> - <addressOffset>0x64</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP6R</name> - <displayName>BKP6R</displayName> - <description>backup register</description> - <addressOffset>0x68</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP7R</name> - <displayName>BKP7R</displayName> - <description>backup register</description> - <addressOffset>0x6C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP8R</name> - <displayName>BKP8R</displayName> - <description>backup register</description> - <addressOffset>0x70</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP9R</name> - <displayName>BKP9R</displayName> - <description>backup register</description> - <addressOffset>0x74</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP10R</name> - <displayName>BKP10R</displayName> - <description>backup register</description> - <addressOffset>0x78</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP11R</name> - <displayName>BKP11R</displayName> - <description>backup register</description> - <addressOffset>0x7C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP12R</name> - <displayName>BKP12R</displayName> - <description>backup register</description> - <addressOffset>0x80</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP13R</name> - <displayName>BKP13R</displayName> - <description>backup register</description> - <addressOffset>0x84</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP14R</name> - <displayName>BKP14R</displayName> - <description>backup register</description> - <addressOffset>0x88</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP15R</name> - <displayName>BKP15R</displayName> - <description>backup register</description> - <addressOffset>0x8C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP16R</name> - <displayName>BKP16R</displayName> - <description>backup register</description> - <addressOffset>0x90</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP17R</name> - <displayName>BKP17R</displayName> - <description>backup register</description> - <addressOffset>0x94</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP18R</name> - <displayName>BKP18R</displayName> - <description>backup register</description> - <addressOffset>0x98</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP19R</name> - <displayName>BKP19R</displayName> - <description>backup register</description> - <addressOffset>0x9C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP20R</name> - <displayName>BKP20R</displayName> - <description>backup register</description> - <addressOffset>0xA0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP21R</name> - <displayName>BKP21R</displayName> - <description>backup register</description> - <addressOffset>0xA4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP22R</name> - <displayName>BKP22R</displayName> - <description>backup register</description> - <addressOffset>0xA8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP23R</name> - <displayName>BKP23R</displayName> - <description>backup register</description> - <addressOffset>0xAC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP24R</name> - <displayName>BKP24R</displayName> - <description>backup register</description> - <addressOffset>0xB0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP25R</name> - <displayName>BKP25R</displayName> - <description>backup register</description> - <addressOffset>0xB4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP26R</name> - <displayName>BKP26R</displayName> - <description>backup register</description> - <addressOffset>0xB8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP27R</name> - <displayName>BKP27R</displayName> - <description>backup register</description> - <addressOffset>0xBC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP28R</name> - <displayName>BKP28R</displayName> - <description>backup register</description> - <addressOffset>0xC0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP29R</name> - <displayName>BKP29R</displayName> - <description>backup register</description> - <addressOffset>0xC4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP30R</name> - <displayName>BKP30R</displayName> - <description>backup register</description> - <addressOffset>0xC8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BKP31R</name> - <displayName>BKP31R</displayName> - <description>backup register</description> - <addressOffset>0xCC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>BKP</name> - <description>BKP</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>USART6</name> - <description>Universal synchronous asynchronous receiver transmitter</description> - <groupName>USART</groupName> - <baseAddress>0x40011400</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>USART6</name> - <description>USART6 global interrupt</description> - <value>71</value> - </interrupt> - <registers> - <register> - <name>CR1</name> - <displayName>CR1</displayName> - <description>Control register 1</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>M1</name> - <description>Word length</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EOBIE</name> - <description>End of Block interrupt enable</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RTOIE</name> - <description>Receiver timeout interrupt enable</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DEAT4</name> - <description>Driver Enable assertion time</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DEAT3</name> - <description>DEAT3</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DEAT2</name> - <description>DEAT2</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DEAT1</name> - <description>DEAT1</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DEAT0</name> - <description>DEAT0</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DEDT4</name> - <description>Driver Enable de-assertion time</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DEDT3</name> - <description>DEDT3</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DEDT2</name> - <description>DEDT2</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DEDT1</name> - <description>DEDT1</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DEDT0</name> - <description>DEDT0</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVER8</name> - <description>Oversampling mode</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMIE</name> - <description>Character match interrupt enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MME</name> - <description>Mute mode enable</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>M0</name> - <description>Word length</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WAKE</name> - <description>Receiver wakeup method</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PCE</name> - <description>Parity control enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PS</name> - <description>Parity selection</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PEIE</name> - <description>PE interrupt enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXEIE</name> - <description>interrupt enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCIE</name> - <description>Transmission complete interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXNEIE</name> - <description>RXNE interrupt enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDLEIE</name> - <description>IDLE interrupt enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TE</name> - <description>Transmitter enable</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RE</name> - <description>Receiver enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UESM</name> - <description>USART enable in Stop mode</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UE</name> - <description>USART enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR2</name> - <displayName>CR2</displayName> - <description>Control register 2</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>ADD4_7</name> - <description>Address of the USART node</description> - <bitOffset>28</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ADD0_3</name> - <description>Address of the USART node</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>RTOEN</name> - <description>Receiver timeout enable</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ABRMOD1</name> - <description>Auto baud rate mode</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ABRMOD0</name> - <description>ABRMOD0</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ABREN</name> - <description>Auto baud rate enable</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MSBFIRST</name> - <description>Most significant bit first</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TAINV</name> - <description>Binary data inversion</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXINV</name> - <description>TX pin active level inversion</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXINV</name> - <description>RX pin active level inversion</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SWAP</name> - <description>Swap TX/RX pins</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LINEN</name> - <description>LIN mode enable</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STOP</name> - <description>STOP bits</description> - <bitOffset>12</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>CLKEN</name> - <description>Clock enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CPOL</name> - <description>Clock polarity</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CPHA</name> - <description>Clock phase</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LBCL</name> - <description>Last bit clock pulse</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LBDIE</name> - <description>LIN break detection interrupt enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LBDL</name> - <description>LIN break detection length</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADDM7</name> - <description>7-bit Address Detection/4-bit Address Detection</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CR3</name> - <displayName>CR3</displayName> - <description>Control register 3</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>WUFIE</name> - <description>Wakeup from Stop mode interrupt enable</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WUS</name> - <description>Wakeup from Stop mode interrupt flag selection</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>SCARCNT</name> - <description>Smartcard auto-retry count</description> - <bitOffset>17</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>DEP</name> - <description>Driver enable polarity selection</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DEM</name> - <description>Driver enable mode</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DDRE</name> - <description>DMA Disable on Reception Error</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OVRDIS</name> - <description>Overrun Disable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ONEBIT</name> - <description>One sample bit method enable</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTSIE</name> - <description>CTS interrupt enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTSE</name> - <description>CTS enable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RTSE</name> - <description>RTS enable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMAT</name> - <description>DMA enable transmitter</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DMAR</name> - <description>DMA enable receiver</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SCEN</name> - <description>Smartcard mode enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NACK</name> - <description>Smartcard NACK enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HDSEL</name> - <description>Half-duplex selection</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IRLP</name> - <description>Ir low-power</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IREN</name> - <description>Ir mode enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EIE</name> - <description>Error interrupt enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>BRR</name> - <displayName>BRR</displayName> - <description>Baud rate register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>DIV_Mantissa</name> - <description>DIV_Mantissa</description> - <bitOffset>4</bitOffset> - <bitWidth>12</bitWidth> - </field> - <field> - <name>DIV_Fraction</name> - <description>DIV_Fraction</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>GTPR</name> - <displayName>GTPR</displayName> - <description>Guard time and prescaler register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>GT</name> - <description>Guard time value</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>PSC</name> - <description>Prescaler value</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>RTOR</name> - <displayName>RTOR</displayName> - <description>Receiver timeout register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>BLEN</name> - <description>Block Length</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>RTO</name> - <description>Receiver timeout value</description> - <bitOffset>0</bitOffset> - <bitWidth>24</bitWidth> - </field> - </fields> - </register> - <register> - <name>RQR</name> - <displayName>RQR</displayName> - <description>Request register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TXFRQ</name> - <description>Transmit data flush request</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXFRQ</name> - <description>Receive data flush request</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MMRQ</name> - <description>Mute mode request</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SBKRQ</name> - <description>Send break request</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ABRRQ</name> - <description>Auto baud rate request</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ISR</name> - <displayName>ISR</displayName> - <description>Interrupt & status register</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00C0</resetValue> - <fields> - <field> - <name>REACK</name> - <description>REACK</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEACK</name> - <description>TEACK</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WUF</name> - <description>WUF</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RWU</name> - <description>RWU</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SBKF</name> - <description>SBKF</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMF</name> - <description>CMF</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BUSY</name> - <description>BUSY</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ABRF</name> - <description>ABRF</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ABRE</name> - <description>ABRE</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EOBF</name> - <description>EOBF</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RTOF</name> - <description>RTOF</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTS</name> - <description>CTS</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTSIF</name> - <description>CTSIF</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LBDF</name> - <description>LBDF</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXE</name> - <description>TXE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TC</name> - <description>TC</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXNE</name> - <description>RXNE</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDLE</name> - <description>IDLE</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ORE</name> - <description>ORE</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NF</name> - <description>NF</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FE</name> - <description>FE</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PE</name> - <description>PE</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>ICR</name> - <displayName>ICR</displayName> - <description>Interrupt flag clear register</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>write-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>WUCF</name> - <description>Wakeup from Stop mode clear flag</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CMCF</name> - <description>Character match clear flag</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EOBCF</name> - <description>End of block clear flag</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RTOCF</name> - <description>Receiver timeout clear flag</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CTSCF</name> - <description>CTS clear flag</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LBDCF</name> - <description>LIN break detection clear flag</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TCCF</name> - <description>Transmission complete clear flag</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDLECF</name> - <description>Idle line detected clear flag</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ORECF</name> - <description>Overrun error clear flag</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NCF</name> - <description>Noise detected clear flag</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FECF</name> - <description>Framing error clear flag</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PECF</name> - <description>Parity error clear flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>RDR</name> - <displayName>RDR</displayName> - <description>Receive data register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>RDR</name> - <description>Receive data value</description> - <bitOffset>0</bitOffset> - <bitWidth>9</bitWidth> - </field> - </fields> - </register> - <register> - <name>TDR</name> - <displayName>TDR</displayName> - <description>Transmit data register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000</resetValue> - <fields> - <field> - <name>TDR</name> - <description>Transmit data value</description> - <bitOffset>0</bitOffset> - <bitWidth>9</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral derivedFrom="USART6"> - <name>USART1</name> - <baseAddress>0x40011000</baseAddress> - <interrupt> - <name>USART1</name> - <description>USART1 global interrupt</description> - <value>37</value> - </interrupt> - </peripheral> - <peripheral derivedFrom="USART6"> - <name>USART3</name> - <baseAddress>0x40004800</baseAddress> - <interrupt> - <name>USART3</name> - <description>USART3 global interrupt</description> - <value>39</value> - </interrupt> - </peripheral> - <peripheral derivedFrom="USART6"> - <name>USART2</name> - <baseAddress>0x40004400</baseAddress> - <interrupt> - <name>USART2</name> - <description>USART2 global interrupt</description> - <value>38</value> - </interrupt> - </peripheral> - <peripheral derivedFrom="USART6"> - <name>UART5</name> - <baseAddress>0x40005000</baseAddress> - <interrupt> - <name>UART5</name> - <description>UART5 global interrupt</description> - <value>53</value> - </interrupt> - </peripheral> - <peripheral derivedFrom="USART6"> - <name>UART4</name> - <baseAddress>0x40004C00</baseAddress> - <interrupt> - <name>UART4</name> - <description>UART4 global interrupt</description> - <value>52</value> - </interrupt> - </peripheral> - <peripheral derivedFrom="USART6"> - <name>UART8</name> - <baseAddress>0x40007C00</baseAddress> - <interrupt> - <name>UART8</name> - <description>UART 8 global interrupt</description> - <value>83</value> - </interrupt> - </peripheral> - <peripheral derivedFrom="USART6"> - <name>UART7</name> - <baseAddress>0x40007800</baseAddress> - <interrupt> - <name>UART7</name> - <description>UART7 global interrupt</description> - <value>82</value> - </interrupt> - </peripheral> - <peripheral> - <name>OTG_FS_GLOBAL</name> - <description>USB on the go full speed</description> - <groupName>USB_OTG_FS</groupName> - <baseAddress>0x50000000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>OTG_FS_GOTGCTL</name> - <displayName>OTG_FS_GOTGCTL</displayName> - <description>OTG_FS control and status register (OTG_FS_GOTGCTL)</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <resetValue>0x00000800</resetValue> - <fields> - <field> - <name>SRQSCS</name> - <description>Session request success</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SRQ</name> - <description>Session request</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HNGSCS</name> - <description>Host negotiation success</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>HNPRQ</name> - <description>HNP request</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HSHNPEN</name> - <description>Host set HNP enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DHNPEN</name> - <description>Device HNP enabled</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CIDSTS</name> - <description>Connector ID status</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DBCT</name> - <description>Long/short debounce time</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ASVLD</name> - <description>A-session valid</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>BSVLD</name> - <description>B-session valid</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>VBVALOEN</name> - <description>VBUS valid override enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>VBVALOVAL</name> - <description>VBUS valid override value</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>AVALOEN</name> - <description>A-peripheral session valid override enable</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>AVALOVAL</name> - <description>A-peripheral session valid override value</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BVALOEN</name> - <description>B-peripheral session valid override enable</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BVALOVAL</name> - <description>B-peripheral session valid override value</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EHEN</name> - <description>Embedded host enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>OTGVER</name> - <description>OTG version</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GOTGINT</name> - <displayName>OTG_FS_GOTGINT</displayName> - <description>OTG_FS interrupt register (OTG_FS_GOTGINT)</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SEDET</name> - <description>Session end detected</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SRSSCHG</name> - <description>Session request success status change</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HNSSCHG</name> - <description>Host negotiation success status change</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HNGDET</name> - <description>Host negotiation detected</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADTOCHG</name> - <description>A-device timeout change</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBCDNE</name> - <description>Debounce done</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDCHNG</name> - <description>ID input pin changed</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GAHBCFG</name> - <displayName>OTG_FS_GAHBCFG</displayName> - <description>OTG_FS AHB configuration register (OTG_FS_GAHBCFG)</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>GINT</name> - <description>Global interrupt mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXFELVL</name> - <description>TxFIFO empty level</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PTXFELVL</name> - <description>Periodic TxFIFO empty level</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GUSBCFG</name> - <displayName>OTG_FS_GUSBCFG</displayName> - <description>OTG_FS USB configuration register (OTG_FS_GUSBCFG)</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <resetValue>0x00000A00</resetValue> - <fields> - <field> - <name>TOCAL</name> - <description>FS timeout calibration</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PHYSEL</name> - <description>Full Speed serial transceiver select</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SRPCAP</name> - <description>SRP-capable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HNPCAP</name> - <description>HNP-capable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TRDT</name> - <description>USB turnaround time</description> - <bitOffset>10</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FHMOD</name> - <description>Force host mode</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FDMOD</name> - <description>Force device mode</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GRSTCTL</name> - <displayName>OTG_FS_GRSTCTL</displayName> - <description>OTG_FS reset register (OTG_FS_GRSTCTL)</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <resetValue>0x20000000</resetValue> - <fields> - <field> - <name>CSRST</name> - <description>Core soft reset</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HSRST</name> - <description>HCLK soft reset</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FCRST</name> - <description>Host frame counter reset</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RXFFLSH</name> - <description>RxFIFO flush</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFFLSH</name> - <description>TxFIFO flush</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFNUM</name> - <description>TxFIFO number</description> - <bitOffset>6</bitOffset> - <bitWidth>5</bitWidth> - <access>read-write</access> - </field> - <field> - <name>AHBIDL</name> - <description>AHB master idle</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GINTSTS</name> - <displayName>OTG_FS_GINTSTS</displayName> - <description>OTG_FS core interrupt register (OTG_FS_GINTSTS)</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <resetValue>0x04000020</resetValue> - <fields> - <field> - <name>CMOD</name> - <description>Current mode of operation</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>MMIS</name> - <description>Mode mismatch interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>OTGINT</name> - <description>OTG interrupt</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SOF</name> - <description>Start of frame</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RXFLVL</name> - <description>RxFIFO non-empty</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NPTXFE</name> - <description>Non-periodic TxFIFO empty</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>GINAKEFF</name> - <description>Global IN non-periodic NAK effective</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>GOUTNAKEFF</name> - <description>Global OUT NAK effective</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ESUSP</name> - <description>Early suspend</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBSUSP</name> - <description>USB suspend</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBRST</name> - <description>USB reset</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ENUMDNE</name> - <description>Enumeration done</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ISOODRP</name> - <description>Isochronous OUT packet dropped interrupt</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EOPF</name> - <description>End of periodic frame interrupt</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>IEPINT</name> - <description>IN endpoint interrupt</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>OEPINT</name> - <description>OUT endpoint interrupt</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>IISOIXFR</name> - <description>Incomplete isochronous IN transfer</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>IPXFR_INCOMPISOOUT</name> - <description>Incomplete periodic transfer(Host mode)/Incomplete isochronous OUT transfer(Device mode)</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HPRTINT</name> - <description>Host port interrupt</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>HCINT</name> - <description>Host channels interrupt</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PTXFE</name> - <description>Periodic TxFIFO empty</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CIDSCHG</name> - <description>Connector ID status change</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DISCINT</name> - <description>Disconnect detected interrupt</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SRQINT</name> - <description>Session request/new session detected interrupt</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WKUPINT</name> - <description>Resume/remote wakeup detected interrupt</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RSTDET</name> - <description>Reset detected interrupt</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GINTMSK</name> - <displayName>OTG_FS_GINTMSK</displayName> - <description>OTG_FS interrupt mask register (OTG_FS_GINTMSK)</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MMISM</name> - <description>Mode mismatch interrupt mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>OTGINT</name> - <description>OTG interrupt mask</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SOFM</name> - <description>Start of frame mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RXFLVLM</name> - <description>Receive FIFO non-empty mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NPTXFEM</name> - <description>Non-periodic TxFIFO empty mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>GINAKEFFM</name> - <description>Global non-periodic IN NAK effective mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>GONAKEFFM</name> - <description>Global OUT NAK effective mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ESUSPM</name> - <description>Early suspend mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBSUSPM</name> - <description>USB suspend mask</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBRST</name> - <description>USB reset mask</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ENUMDNEM</name> - <description>Enumeration done mask</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ISOODRPM</name> - <description>Isochronous OUT packet dropped interrupt mask</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EOPFM</name> - <description>End of periodic frame interrupt mask</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>IEPINT</name> - <description>IN endpoints interrupt mask</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>OEPINT</name> - <description>OUT endpoints interrupt mask</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>IISOIXFRM</name> - <description>Incomplete isochronous IN transfer mask</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>IPXFRM_IISOOXFRM</name> - <description>Incomplete periodic transfer mask(Host mode)/Incomplete isochronous OUT transfer mask(Device mode)</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PRTIM</name> - <description>Host port interrupt mask</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>HCIM</name> - <description>Host channels interrupt mask</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PTXFEM</name> - <description>Periodic TxFIFO empty mask</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CIDSCHGM</name> - <description>Connector ID status change mask</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DISCINT</name> - <description>Disconnect detected interrupt mask</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SRQIM</name> - <description>Session request/new session detected interrupt mask</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WUIM</name> - <description>Resume/remote wakeup detected interrupt mask</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RSTDETM</name> - <description>Reset detected interrupt mask</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LPMIN</name> - <description>LPM interrupt mask</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GRXSTSR_Device</name> - <displayName>OTG_FS_GRXSTSR_Device</displayName> - <description>OTG_FS Receive status debug read(Device mode)</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BCNT</name> - <description>Byte count</description> - <bitOffset>4</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>15</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTSTS</name> - <description>Packet status</description> - <bitOffset>17</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>FRMNUM</name> - <description>Frame number</description> - <bitOffset>21</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GRXSTSR_Host</name> - <displayName>OTG_FS_GRXSTSR_Host</displayName> - <description>OTG_FS Receive status debug read(Host mode)</description> - <alternateRegister>OTG_FS_GRXSTSR_Device</alternateRegister> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CHNUM</name> - <description>Endpoint number</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BCNT</name> - <description>Byte count</description> - <bitOffset>4</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>15</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTSTS</name> - <description>Packet status</description> - <bitOffset>17</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GRXFSIZ</name> - <displayName>OTG_FS_GRXFSIZ</displayName> - <description>OTG_FS Receive FIFO size register (OTG_FS_GRXFSIZ)</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000200</resetValue> - <fields> - <field> - <name>RXFD</name> - <description>RxFIFO depth</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPTXF0_Device</name> - <displayName>OTG_FS_DIEPTXF0_Device</displayName> - <description>OTG_FS Endpoint 0 Transmit FIFO size</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000200</resetValue> - <fields> - <field> - <name>TX0FSA</name> - <description>Endpoint 0 transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>TX0FD</name> - <description>Endpoint 0 TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HNPTXFSIZ_Host</name> - <displayName>OTG_FS_HNPTXFSIZ_Host</displayName> - <description>OTG_FS Host non-periodic transmit FIFO size register</description> - <alternateRegister>OTG_FS_DIEPTXF0_Device</alternateRegister> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000200</resetValue> - <fields> - <field> - <name>NPTXFSA</name> - <description>Non-periodic transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>NPTXFD</name> - <description>Non-periodic TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HNPTXSTS</name> - <displayName>OTG_FS_HNPTXSTS</displayName> - <description>OTG_FS non-periodic transmit FIFO/queue status register (OTG_FS_GNPTXSTS)</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00080200</resetValue> - <fields> - <field> - <name>NPTXFSAV</name> - <description>Non-periodic TxFIFO space available</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>NPTQXSAV</name> - <description>Non-periodic transmit request queue space available</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>NPTXQTOP</name> - <description>Top of the non-periodic transmit request queue</description> - <bitOffset>24</bitOffset> - <bitWidth>7</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GCCFG</name> - <displayName>OTG_FS_GCCFG</displayName> - <description>OTG_FS general core configuration register (OTG_FS_GCCFG)</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PWRDWN</name> - <description>Power down</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BCDEN</name> - <description>Battery charging detector (BCD) enable</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DCDEN</name> - <description>Data contact detection (DCD) mode enable</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PDEN</name> - <description>Primary detection (PD) mode enable</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDEN</name> - <description>Secondary detection (SD) mode enable</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VBDEN</name> - <description>USB VBUS detection enable</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DCDET</name> - <description>Data contact detection (DCD) status</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PDET</name> - <description>Primary detection (PD) status</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDET</name> - <description>Secondary detection (SD) status</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PS2DET</name> - <description>DM pull-up detection status</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_CID</name> - <displayName>OTG_FS_CID</displayName> - <description>core ID register</description> - <addressOffset>0x3C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00001000</resetValue> - <fields> - <field> - <name>PRODUCT_ID</name> - <description>Product ID field</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HPTXFSIZ</name> - <displayName>OTG_FS_HPTXFSIZ</displayName> - <description>OTG_FS Host periodic transmit FIFO size register (OTG_FS_HPTXFSIZ)</description> - <addressOffset>0x100</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x02000600</resetValue> - <fields> - <field> - <name>PTXSA</name> - <description>Host periodic TxFIFO start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>PTXFSIZ</name> - <description>Host periodic TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPTXF1</name> - <displayName>OTG_FS_DIEPTXF1</displayName> - <description>OTG_FS device IN endpoint transmit FIFO size register (OTG_FS_DIEPTXF1)</description> - <addressOffset>0x104</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>INEPTXSA</name> - <description>IN endpoint FIFO2 transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>INEPTXFD</name> - <description>IN endpoint TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPTXF2</name> - <displayName>OTG_FS_DIEPTXF2</displayName> - <description>OTG_FS device IN endpoint transmit FIFO size register (OTG_FS_DIEPTXF2)</description> - <addressOffset>0x108</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>INEPTXSA</name> - <description>IN endpoint FIFO3 transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>INEPTXFD</name> - <description>IN endpoint TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPTXF3</name> - <displayName>OTG_FS_DIEPTXF3</displayName> - <description>OTG_FS device IN endpoint transmit FIFO size register (OTG_FS_DIEPTXF3)</description> - <addressOffset>0x10C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>INEPTXSA</name> - <description>IN endpoint FIFO4 transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>INEPTXFD</name> - <description>IN endpoint TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GRXSTSP_Device</name> - <displayName>OTG_FS_GRXSTSP_Device</displayName> - <description>OTG status read and pop register (Device mode)</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BCNT</name> - <description>Byte count</description> - <bitOffset>4</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>15</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTSTS</name> - <description>Packet status</description> - <bitOffset>17</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>FRMNUM</name> - <description>Frame number</description> - <bitOffset>21</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GRXSTSP_Host</name> - <displayName>OTG_FS_GRXSTSP_Host</displayName> - <description>OTG status read and pop register (Host mode)</description> - <alternateRegister>OTG_FS_GRXSTSP_Device</alternateRegister> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>CHNUM</name> - <description>Channel number</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BCNT</name> - <description>Byte count</description> - <bitOffset>4</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>15</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTSTS</name> - <description>Packet status</description> - <bitOffset>17</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GI2CCTL</name> - <displayName>OTG_FS_GI2CCTL</displayName> - <description>OTG I2C access register</description> - <addressOffset>0x30</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>RWDATA</name> - <description>I2C Read/Write Data</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>REGADDR</name> - <description>I2C Register Address</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>ADDR</name> - <description>I2C Address</description> - <bitOffset>16</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>I2CEN</name> - <description>I2C Enable</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>I2C ACK</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>I2CDEVADR</name> - <description>I2C Device Address</description> - <bitOffset>26</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>I2CDATSE0</name> - <description>I2C DatSe0 USB mode</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RW</name> - <description>Read/Write Indicator</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BSYDNE</name> - <description>I2C Busy/Done</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GPWRDN</name> - <displayName>OTG_FS_GPWRDN</displayName> - <description>OTG power down register</description> - <addressOffset>0x58</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>ADPMEN</name> - <description>ADP module enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADPIF</name> - <description>ADP interrupt flag</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GADPCTL</name> - <displayName>OTG_FS_GADPCTL</displayName> - <description>OTG ADP timer, control and status register</description> - <addressOffset>0x60</addressOffset> - <size>0x20</size> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>PRBDSCHG</name> - <description>Probe discharge</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PRBDELTA</name> - <description>Probe delta</description> - <bitOffset>2</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PRBPER</name> - <description>Probe period</description> - <bitOffset>4</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RTIM</name> - <description>Ramp time</description> - <bitOffset>6</bitOffset> - <bitWidth>11</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ENAPRB</name> - <description>Enable probe</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ENASNS</name> - <description>Enable sense</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ADPRST</name> - <description>ADP reset</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ADPEN</name> - <description>ADP enable</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ADPPRBIF</name> - <description>ADP probe interrupt flag</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ADPSNSIF</name> - <description>ADP sense interrupt flag</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ADPTOIF</name> - <description>ADP timeout interrupt flag</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ADPPRBIM</name> - <description>ADP probe interrupt mask</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ADPSNSIM</name> - <description>ADP sense interrupt mask</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ADPTOIM</name> - <description>ADP timeout interrupt mask</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>AR</name> - <description>Access request</description> - <bitOffset>27</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPTXF4</name> - <displayName>OTG_FS_DIEPTXF4</displayName> - <description>OTG_FS device IN endpoint transmit FIFO size register (OTG_FS_DIEPTXF4)</description> - <addressOffset>0x110</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>INEPTXSA</name> - <description>IN endpoint FIFOx transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>INEPTXFD</name> - <description>IN endpoint Tx FIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPTXF5</name> - <displayName>OTG_FS_DIEPTXF5</displayName> - <description>OTG_FS device IN endpoint transmit FIFO size register (OTG_FS_DIEPTXF5)</description> - <addressOffset>0x114</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>INEPTXSA</name> - <description>IN endpoint FIFOx transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>INEPTXFD</name> - <description>IN endpoint Tx FIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_GLPMCFG</name> - <displayName>OTG_FS_GLPMCFG</displayName> - <description>OTG core LPM configuration register</description> - <addressOffset>0x54</addressOffset> - <size>0x20</size> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>LPMEN</name> - <description>LPM support enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LPMACK</name> - <description>LPM token acknowledge enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BESL</name> - <description>Best effort service latency</description> - <bitOffset>2</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>REMWAKE</name> - <description>bRemoteWake value</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>L1SSEN</name> - <description>L1 Shallow Sleep enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BESLTHRS</name> - <description>BESL threshold</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>L1DSEN</name> - <description>L1 deep sleep enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LPMRST</name> - <description>LPM response</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SLPSTS</name> - <description>Port sleep status</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>L1RSMOK</name> - <description>Sleep State Resume OK</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>LPMCHIDX</name> - <description>LPM Channel Index</description> - <bitOffset>17</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LPMRCNT</name> - <description>LPM retry count</description> - <bitOffset>21</bitOffset> - <bitWidth>3</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNDLPM</name> - <description>Send LPM transaction</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LPMRCNTSTS</name> - <description>LPM retry count status</description> - <bitOffset>25</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ENBESL</name> - <description>Enable best effort service latency</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>OTG_FS_HOST</name> - <description>USB on the go full speed</description> - <groupName>USB_OTG_FS</groupName> - <baseAddress>0x50000400</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>OTG_FS_HCFG</name> - <displayName>OTG_FS_HCFG</displayName> - <description>OTG_FS host configuration register (OTG_FS_HCFG)</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>FSLSPCS</name> - <description>FS/LS PHY clock select</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FSLSS</name> - <description>FS- and LS-only support</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HFIR</name> - <displayName>OTG_FS_HFIR</displayName> - <description>OTG_FS Host frame interval register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000EA60</resetValue> - <fields> - <field> - <name>FRIVL</name> - <description>Frame interval</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HFNUM</name> - <displayName>OTG_FS_HFNUM</displayName> - <description>OTG_FS host frame number/frame time remaining register (OTG_FS_HFNUM)</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00003FFF</resetValue> - <fields> - <field> - <name>FRNUM</name> - <description>Frame number</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>FTREM</name> - <description>Frame time remaining</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HPTXSTS</name> - <displayName>OTG_FS_HPTXSTS</displayName> - <description>OTG_FS_Host periodic transmit FIFO/queue status register (OTG_FS_HPTXSTS)</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <resetValue>0x00080100</resetValue> - <fields> - <field> - <name>PTXFSAVL</name> - <description>Periodic transmit data FIFO space available</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PTXQSAV</name> - <description>Periodic transmit request queue space available</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PTXQTOP</name> - <description>Top of the periodic transmit request queue</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HAINT</name> - <displayName>OTG_FS_HAINT</displayName> - <description>OTG_FS Host all channels interrupt register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>HAINT</name> - <description>Channel interrupts</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HAINTMSK</name> - <displayName>OTG_FS_HAINTMSK</displayName> - <description>OTG_FS host all channels interrupt mask register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>HAINTM</name> - <description>Channel interrupt mask</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HPRT</name> - <displayName>OTG_FS_HPRT</displayName> - <description>OTG_FS host port control and status register (OTG_FS_HPRT)</description> - <addressOffset>0x40</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PCSTS</name> - <description>Port connect status</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PCDET</name> - <description>Port connect detected</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PENA</name> - <description>Port enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PENCHNG</name> - <description>Port enable/disable change</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>POCA</name> - <description>Port overcurrent active</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>POCCHNG</name> - <description>Port overcurrent change</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PRES</name> - <description>Port resume</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PSUSP</name> - <description>Port suspend</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PRST</name> - <description>Port reset</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PLSTS</name> - <description>Port line status</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PPWR</name> - <description>Port power</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PTCTL</name> - <description>Port test control</description> - <bitOffset>13</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PSPD</name> - <description>Port speed</description> - <bitOffset>17</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCCHAR0</name> - <displayName>OTG_FS_HCCHAR0</displayName> - <description>OTG_FS host channel-0 characteristics register (OTG_FS_HCCHAR0)</description> - <addressOffset>0x100</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multicount</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCCHAR1</name> - <displayName>OTG_FS_HCCHAR1</displayName> - <description>OTG_FS host channel-1 characteristics register (OTG_FS_HCCHAR1)</description> - <addressOffset>0x120</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multicount</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCCHAR2</name> - <displayName>OTG_FS_HCCHAR2</displayName> - <description>OTG_FS host channel-2 characteristics register (OTG_FS_HCCHAR2)</description> - <addressOffset>0x140</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multicount</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCCHAR3</name> - <displayName>OTG_FS_HCCHAR3</displayName> - <description>OTG_FS host channel-3 characteristics register (OTG_FS_HCCHAR3)</description> - <addressOffset>0x160</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multicount</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCCHAR4</name> - <displayName>OTG_FS_HCCHAR4</displayName> - <description>OTG_FS host channel-4 characteristics register (OTG_FS_HCCHAR4)</description> - <addressOffset>0x180</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multicount</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCCHAR5</name> - <displayName>OTG_FS_HCCHAR5</displayName> - <description>OTG_FS host channel-5 characteristics register (OTG_FS_HCCHAR5)</description> - <addressOffset>0x1A0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multicount</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCCHAR6</name> - <displayName>OTG_FS_HCCHAR6</displayName> - <description>OTG_FS host channel-6 characteristics register (OTG_FS_HCCHAR6)</description> - <addressOffset>0x1C0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multicount</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCCHAR7</name> - <displayName>OTG_FS_HCCHAR7</displayName> - <description>OTG_FS host channel-7 characteristics register (OTG_FS_HCCHAR7)</description> - <addressOffset>0x1E0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multicount</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINT0</name> - <displayName>OTG_FS_HCINT0</displayName> - <description>OTG_FS host channel-0 interrupt register (OTG_FS_HCINT0)</description> - <addressOffset>0x108</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINT1</name> - <displayName>OTG_FS_HCINT1</displayName> - <description>OTG_FS host channel-1 interrupt register (OTG_FS_HCINT1)</description> - <addressOffset>0x128</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINT2</name> - <displayName>OTG_FS_HCINT2</displayName> - <description>OTG_FS host channel-2 interrupt register (OTG_FS_HCINT2)</description> - <addressOffset>0x148</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINT3</name> - <displayName>OTG_FS_HCINT3</displayName> - <description>OTG_FS host channel-3 interrupt register (OTG_FS_HCINT3)</description> - <addressOffset>0x168</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINT4</name> - <displayName>OTG_FS_HCINT4</displayName> - <description>OTG_FS host channel-4 interrupt register (OTG_FS_HCINT4)</description> - <addressOffset>0x188</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINT5</name> - <displayName>OTG_FS_HCINT5</displayName> - <description>OTG_FS host channel-5 interrupt register (OTG_FS_HCINT5)</description> - <addressOffset>0x1A8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINT6</name> - <displayName>OTG_FS_HCINT6</displayName> - <description>OTG_FS host channel-6 interrupt register (OTG_FS_HCINT6)</description> - <addressOffset>0x1C8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINT7</name> - <displayName>OTG_FS_HCINT7</displayName> - <description>OTG_FS host channel-7 interrupt register (OTG_FS_HCINT7)</description> - <addressOffset>0x1E8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINTMSK0</name> - <displayName>OTG_FS_HCINTMSK0</displayName> - <description>OTG_FS host channel-0 mask register (OTG_FS_HCINTMSK0)</description> - <addressOffset>0x10C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINTMSK1</name> - <displayName>OTG_FS_HCINTMSK1</displayName> - <description>OTG_FS host channel-1 mask register (OTG_FS_HCINTMSK1)</description> - <addressOffset>0x12C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINTMSK2</name> - <displayName>OTG_FS_HCINTMSK2</displayName> - <description>OTG_FS host channel-2 mask register (OTG_FS_HCINTMSK2)</description> - <addressOffset>0x14C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINTMSK3</name> - <displayName>OTG_FS_HCINTMSK3</displayName> - <description>OTG_FS host channel-3 mask register (OTG_FS_HCINTMSK3)</description> - <addressOffset>0x16C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINTMSK4</name> - <displayName>OTG_FS_HCINTMSK4</displayName> - <description>OTG_FS host channel-4 mask register (OTG_FS_HCINTMSK4)</description> - <addressOffset>0x18C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINTMSK5</name> - <displayName>OTG_FS_HCINTMSK5</displayName> - <description>OTG_FS host channel-5 mask register (OTG_FS_HCINTMSK5)</description> - <addressOffset>0x1AC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINTMSK6</name> - <displayName>OTG_FS_HCINTMSK6</displayName> - <description>OTG_FS host channel-6 mask register (OTG_FS_HCINTMSK6)</description> - <addressOffset>0x1CC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINTMSK7</name> - <displayName>OTG_FS_HCINTMSK7</displayName> - <description>OTG_FS host channel-7 mask register (OTG_FS_HCINTMSK7)</description> - <addressOffset>0x1EC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCTSIZ0</name> - <displayName>OTG_FS_HCTSIZ0</displayName> - <description>OTG_FS host channel-0 transfer size register</description> - <addressOffset>0x110</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCTSIZ1</name> - <displayName>OTG_FS_HCTSIZ1</displayName> - <description>OTG_FS host channel-1 transfer size register</description> - <addressOffset>0x130</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCTSIZ2</name> - <displayName>OTG_FS_HCTSIZ2</displayName> - <description>OTG_FS host channel-2 transfer size register</description> - <addressOffset>0x150</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCTSIZ3</name> - <displayName>OTG_FS_HCTSIZ3</displayName> - <description>OTG_FS host channel-3 transfer size register</description> - <addressOffset>0x170</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCTSIZ4</name> - <displayName>OTG_FS_HCTSIZ4</displayName> - <description>OTG_FS host channel-x transfer size register</description> - <addressOffset>0x190</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCTSIZ5</name> - <displayName>OTG_FS_HCTSIZ5</displayName> - <description>OTG_FS host channel-5 transfer size register</description> - <addressOffset>0x1B0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCTSIZ6</name> - <displayName>OTG_FS_HCTSIZ6</displayName> - <description>OTG_FS host channel-6 transfer size register</description> - <addressOffset>0x1D0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCTSIZ7</name> - <displayName>OTG_FS_HCTSIZ7</displayName> - <description>OTG_FS host channel-7 transfer size register</description> - <addressOffset>0x1F0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCCHAR8</name> - <displayName>OTG_FS_HCCHAR8</displayName> - <description>OTG_FS host channel-8 characteristics register</description> - <addressOffset>0x1F4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multicount</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINT8</name> - <displayName>OTG_FS_HCINT8</displayName> - <description>OTG_FS host channel-8 interrupt register</description> - <addressOffset>0x1F8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINTMSK8</name> - <displayName>OTG_FS_HCINTMSK8</displayName> - <description>OTG_FS host channel-8 mask register</description> - <addressOffset>0x1FC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCTSIZ8</name> - <displayName>OTG_FS_HCTSIZ8</displayName> - <description>OTG_FS host channel-8 transfer size register</description> - <addressOffset>0x200</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCCHAR9</name> - <displayName>OTG_FS_HCCHAR9</displayName> - <description>OTG_FS host channel-9 characteristics register</description> - <addressOffset>0x204</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multicount</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINT9</name> - <displayName>OTG_FS_HCINT9</displayName> - <description>OTG_FS host channel-9 interrupt register</description> - <addressOffset>0x208</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINTMSK9</name> - <displayName>OTG_FS_HCINTMSK9</displayName> - <description>OTG_FS host channel-9 mask register</description> - <addressOffset>0x20C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCTSIZ9</name> - <displayName>OTG_FS_HCTSIZ9</displayName> - <description>OTG_FS host channel-9 transfer size register</description> - <addressOffset>0x210</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCCHAR10</name> - <displayName>OTG_FS_HCCHAR10</displayName> - <description>OTG_FS host channel-10 characteristics register</description> - <addressOffset>0x214</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multicount</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINT10</name> - <displayName>OTG_FS_HCINT10</displayName> - <description>OTG_FS host channel-10 interrupt register</description> - <addressOffset>0x218</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINTMSK10</name> - <displayName>OTG_FS_HCINTMSK10</displayName> - <description>OTG_FS host channel-10 mask register</description> - <addressOffset>0x21C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCTSIZ10</name> - <displayName>OTG_FS_HCTSIZ10</displayName> - <description>OTG_FS host channel-10 transfer size register</description> - <addressOffset>0x220</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCCHAR11</name> - <displayName>OTG_FS_HCCHAR11</displayName> - <description>OTG_FS host channel-11 characteristics register</description> - <addressOffset>0x224</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multicount</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINT11</name> - <displayName>OTG_FS_HCINT11</displayName> - <description>OTG_FS host channel-11 interrupt register</description> - <addressOffset>0x228</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCINTMSK11</name> - <displayName>OTG_FS_HCINTMSK11</displayName> - <description>OTG_FS host channel-11 mask register</description> - <addressOffset>0x22C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_HCTSIZ11</name> - <displayName>OTG_FS_HCTSIZ11</displayName> - <description>OTG_FS host channel-11 transfer size register</description> - <addressOffset>0x230</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>OTG_FS_DEVICE</name> - <description>USB on the go full speed</description> - <groupName>USB_OTG_FS</groupName> - <baseAddress>0x50000800</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>OTG_FS_DCFG</name> - <displayName>OTG_FS_DCFG</displayName> - <description>OTG_FS device configuration register (OTG_FS_DCFG)</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x02200000</resetValue> - <fields> - <field> - <name>DSPD</name> - <description>Device speed</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>NZLSOHSK</name> - <description>Non-zero-length status OUT handshake</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>4</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>PFIVL</name> - <description>Periodic frame interval</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DCTL</name> - <displayName>OTG_FS_DCTL</displayName> - <description>OTG_FS device control register (OTG_FS_DCTL)</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RWUSIG</name> - <description>Remote wakeup signaling</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SDIS</name> - <description>Soft disconnect</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>GINSTS</name> - <description>Global IN NAK status</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>GONSTS</name> - <description>Global OUT NAK status</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TCTL</name> - <description>Test control</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SGINAK</name> - <description>Set global IN NAK</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CGINAK</name> - <description>Clear global IN NAK</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SGONAK</name> - <description>Set global OUT NAK</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CGONAK</name> - <description>Clear global OUT NAK</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>POPRGDNE</name> - <description>Power-on programming done</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DSTS</name> - <displayName>OTG_FS_DSTS</displayName> - <description>OTG_FS device status register (OTG_FS_DSTS)</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000010</resetValue> - <fields> - <field> - <name>SUSPSTS</name> - <description>Suspend status</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ENUMSPD</name> - <description>Enumerated speed</description> - <bitOffset>1</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>EERR</name> - <description>Erratic error</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FNSOF</name> - <description>Frame number of the received SOF</description> - <bitOffset>8</bitOffset> - <bitWidth>14</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPMSK</name> - <displayName>OTG_FS_DIEPMSK</displayName> - <description>OTG_FS device IN endpoint common interrupt mask register (OTG_FS_DIEPMSK)</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed interrupt mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDM</name> - <description>Endpoint disabled interrupt mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TOM</name> - <description>Timeout condition mask (Non-isochronous endpoints)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ITTXFEMSK</name> - <description>IN token received when TxFIFO empty mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>INEPNMM</name> - <description>IN token received with EP mismatch mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>INEPNEM</name> - <description>IN endpoint NAK effective mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPMSK</name> - <displayName>OTG_FS_DOEPMSK</displayName> - <description>OTG_FS device OUT endpoint common interrupt mask register (OTG_FS_DOEPMSK)</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed interrupt mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDM</name> - <description>Endpoint disabled interrupt mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUPM</name> - <description>SETUP phase done mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDM</name> - <description>OUT token received when endpoint disabled mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DAINT</name> - <displayName>OTG_FS_DAINT</displayName> - <description>OTG_FS device all endpoints interrupt register (OTG_FS_DAINT)</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IEPINT</name> - <description>IN endpoint interrupt bits</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>OEPINT</name> - <description>OUT endpoint interrupt bits</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DAINTMSK</name> - <displayName>OTG_FS_DAINTMSK</displayName> - <description>OTG_FS all endpoints interrupt mask register (OTG_FS_DAINTMSK)</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IEPM</name> - <description>IN EP interrupt mask bits</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>OEPINT</name> - <description>OUT endpoint interrupt bits</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DVBUSDIS</name> - <displayName>OTG_FS_DVBUSDIS</displayName> - <description>OTG_FS device VBUS discharge time register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x000017D7</resetValue> - <fields> - <field> - <name>VBUSDT</name> - <description>Device VBUS discharge time</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DVBUSPULSE</name> - <displayName>OTG_FS_DVBUSPULSE</displayName> - <description>OTG_FS device VBUS pulsing time register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x000005B8</resetValue> - <fields> - <field> - <name>DVBUSP</name> - <description>Device VBUS pulsing time</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPEMPMSK</name> - <displayName>OTG_FS_DIEPEMPMSK</displayName> - <description>OTG_FS device IN endpoint FIFO empty interrupt mask register</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>INEPTXFEM</name> - <description>IN EP Tx FIFO empty interrupt mask bits</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPCTL0</name> - <displayName>OTG_FS_DIEPCTL0</displayName> - <description>OTG_FS device control IN endpoint 0 control register (OTG_FS_DIEPCTL0)</description> - <addressOffset>0x100</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - <field> - <name>STALL</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFNUM</name> - <description>TxFIFO number</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPCTL1</name> - <displayName>OTG_FS_DIEPCTL1</displayName> - <description>OTG device endpoint-1 control register</description> - <addressOffset>0x120</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>EPENA</name> - <description>EPENA</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDIS</name> - <description>EPDIS</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SODDFRM_SD1PID</name> - <description>SODDFRM/SD1PID</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>SD0PID/SEVNFRM</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>SNAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CNAK</name> - <description>CNAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>TXFNUM</name> - <description>TXFNUM</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>Stall</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPTYP</name> - <description>EPTYP</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAKSTS</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>EONUM/DPID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>USBAEP</name> - <description>USBAEP</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MPSIZ</name> - <description>MPSIZ</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPCTL2</name> - <displayName>OTG_FS_DIEPCTL2</displayName> - <description>OTG device endpoint-2 control register</description> - <addressOffset>0x140</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>EPENA</name> - <description>EPENA</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDIS</name> - <description>EPDIS</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SODDFRM</name> - <description>SODDFRM</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>SD0PID/SEVNFRM</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>SNAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CNAK</name> - <description>CNAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>TXFNUM</name> - <description>TXFNUM</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>Stall</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPTYP</name> - <description>EPTYP</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAKSTS</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>EONUM/DPID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>USBAEP</name> - <description>USBAEP</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MPSIZ</name> - <description>MPSIZ</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPCTL3</name> - <displayName>OTG_FS_DIEPCTL3</displayName> - <description>OTG device endpoint-3 control register</description> - <addressOffset>0x160</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>EPENA</name> - <description>EPENA</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDIS</name> - <description>EPDIS</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SODDFRM</name> - <description>SODDFRM</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>SD0PID/SEVNFRM</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>SNAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CNAK</name> - <description>CNAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>TXFNUM</name> - <description>TXFNUM</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>Stall</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPTYP</name> - <description>EPTYP</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAKSTS</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>EONUM/DPID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>USBAEP</name> - <description>USBAEP</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MPSIZ</name> - <description>MPSIZ</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPCTL0</name> - <displayName>OTG_FS_DOEPCTL0</displayName> - <description>device endpoint-0 control register</description> - <addressOffset>0x300</addressOffset> - <size>0x20</size> - <resetValue>0x00008000</resetValue> - <fields> - <field> - <name>EPENA</name> - <description>EPENA</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>EPDIS</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SNAK</name> - <description>SNAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CNAK</name> - <description>CNAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>Stall</name> - <description>Stall</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>SNPM</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPTYP</name> - <description>EPTYP</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAKSTS</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>USBAEP</name> - <description>USBAEP</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>MPSIZ</name> - <description>MPSIZ</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPCTL1</name> - <displayName>OTG_FS_DOEPCTL1</displayName> - <description>device endpoint-1 control register</description> - <addressOffset>0x320</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>EPENA</name> - <description>EPENA</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDIS</name> - <description>EPDIS</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SODDFRM</name> - <description>SODDFRM</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>SD0PID/SEVNFRM</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>SNAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CNAK</name> - <description>CNAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>Stall</name> - <description>Stall</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>SNPM</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPTYP</name> - <description>EPTYP</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAKSTS</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>EONUM/DPID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>USBAEP</name> - <description>USBAEP</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MPSIZ</name> - <description>MPSIZ</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPCTL2</name> - <displayName>OTG_FS_DOEPCTL2</displayName> - <description>device endpoint-2 control register</description> - <addressOffset>0x340</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>EPENA</name> - <description>EPENA</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDIS</name> - <description>EPDIS</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SODDFRM</name> - <description>SODDFRM</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>SD0PID/SEVNFRM</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>SNAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CNAK</name> - <description>CNAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>Stall</name> - <description>Stall</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>SNPM</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPTYP</name> - <description>EPTYP</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAKSTS</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>EONUM/DPID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>USBAEP</name> - <description>USBAEP</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MPSIZ</name> - <description>MPSIZ</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPCTL3</name> - <displayName>OTG_FS_DOEPCTL3</displayName> - <description>device endpoint-3 control register</description> - <addressOffset>0x360</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>EPENA</name> - <description>EPENA</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDIS</name> - <description>EPDIS</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SODDFRM</name> - <description>SODDFRM</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>SD0PID/SEVNFRM</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>SNAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CNAK</name> - <description>CNAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>Stall</name> - <description>Stall</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>SNPM</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPTYP</name> - <description>EPTYP</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAKSTS</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>EONUM/DPID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>USBAEP</name> - <description>USBAEP</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MPSIZ</name> - <description>MPSIZ</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPINT0</name> - <displayName>OTG_FS_DIEPINT0</displayName> - <description>device endpoint-x interrupt register</description> - <addressOffset>0x108</addressOffset> - <size>0x20</size> - <resetValue>0x00000080</resetValue> - <fields> - <field> - <name>TXFE</name> - <description>TXFE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>INEPNE</name> - <description>INEPNE</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>ITTXFE</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>TOC</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>EPDISD</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>XFRC</name> - <description>XFRC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPINT1</name> - <displayName>OTG_FS_DIEPINT1</displayName> - <description>device endpoint-1 interrupt register</description> - <addressOffset>0x128</addressOffset> - <size>0x20</size> - <resetValue>0x00000080</resetValue> - <fields> - <field> - <name>TXFE</name> - <description>TXFE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>INEPNE</name> - <description>INEPNE</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>ITTXFE</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>TOC</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>EPDISD</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>XFRC</name> - <description>XFRC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPINT2</name> - <displayName>OTG_FS_DIEPINT2</displayName> - <description>device endpoint-2 interrupt register</description> - <addressOffset>0x148</addressOffset> - <size>0x20</size> - <resetValue>0x00000080</resetValue> - <fields> - <field> - <name>TXFE</name> - <description>TXFE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>INEPNE</name> - <description>INEPNE</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>ITTXFE</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>TOC</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>EPDISD</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>XFRC</name> - <description>XFRC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPINT3</name> - <displayName>OTG_FS_DIEPINT3</displayName> - <description>device endpoint-3 interrupt register</description> - <addressOffset>0x168</addressOffset> - <size>0x20</size> - <resetValue>0x00000080</resetValue> - <fields> - <field> - <name>TXFE</name> - <description>TXFE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>INEPNE</name> - <description>INEPNE</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>ITTXFE</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>TOC</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>EPDISD</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>XFRC</name> - <description>XFRC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPINT0</name> - <displayName>OTG_FS_DOEPINT0</displayName> - <description>device endpoint-0 interrupt register</description> - <addressOffset>0x308</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000080</resetValue> - <fields> - <field> - <name>B2BSTUP</name> - <description>B2BSTUP</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OTEPDIS</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>STUP</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>EPDISD</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>XFRC</name> - <description>XFRC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPINT1</name> - <displayName>OTG_FS_DOEPINT1</displayName> - <description>device endpoint-1 interrupt register</description> - <addressOffset>0x328</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000080</resetValue> - <fields> - <field> - <name>B2BSTUP</name> - <description>B2BSTUP</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OTEPDIS</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>STUP</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>EPDISD</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>XFRC</name> - <description>XFRC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPINT2</name> - <displayName>OTG_FS_DOEPINT2</displayName> - <description>device endpoint-2 interrupt register</description> - <addressOffset>0x348</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000080</resetValue> - <fields> - <field> - <name>B2BSTUP</name> - <description>B2BSTUP</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OTEPDIS</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>STUP</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>EPDISD</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>XFRC</name> - <description>XFRC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPINT3</name> - <displayName>OTG_FS_DOEPINT3</displayName> - <description>device endpoint-3 interrupt register</description> - <addressOffset>0x368</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000080</resetValue> - <fields> - <field> - <name>B2BSTUP</name> - <description>B2BSTUP</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OTEPDIS</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>STUP</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>EPDISD</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>XFRC</name> - <description>XFRC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPTSIZ0</name> - <displayName>OTG_FS_DIEPTSIZ0</displayName> - <description>device endpoint-0 transfer size register</description> - <addressOffset>0x110</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPTSIZ0</name> - <displayName>OTG_FS_DOEPTSIZ0</displayName> - <description>device OUT endpoint-0 transfer size register</description> - <addressOffset>0x310</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>STUPCNT</name> - <description>SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPTSIZ1</name> - <displayName>OTG_FS_DIEPTSIZ1</displayName> - <description>device endpoint-1 transfer size register</description> - <addressOffset>0x130</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MCNT</name> - <description>Multi count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPTSIZ2</name> - <displayName>OTG_FS_DIEPTSIZ2</displayName> - <description>device endpoint-2 transfer size register</description> - <addressOffset>0x150</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MCNT</name> - <description>Multi count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPTSIZ3</name> - <displayName>OTG_FS_DIEPTSIZ3</displayName> - <description>device endpoint-3 transfer size register</description> - <addressOffset>0x170</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MCNT</name> - <description>Multi count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DTXFSTS0</name> - <displayName>OTG_FS_DTXFSTS0</displayName> - <description>OTG_FS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x118</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space available</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DTXFSTS1</name> - <displayName>OTG_FS_DTXFSTS1</displayName> - <description>OTG_FS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x138</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space available</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DTXFSTS2</name> - <displayName>OTG_FS_DTXFSTS2</displayName> - <description>OTG_FS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x158</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space available</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DTXFSTS3</name> - <displayName>OTG_FS_DTXFSTS3</displayName> - <description>OTG_FS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x178</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space available</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPTSIZ1</name> - <displayName>OTG_FS_DOEPTSIZ1</displayName> - <description>device OUT endpoint-1 transfer size register</description> - <addressOffset>0x330</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RXDPID_STUPCNT</name> - <description>Received data PID/SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPTSIZ2</name> - <displayName>OTG_FS_DOEPTSIZ2</displayName> - <description>device OUT endpoint-2 transfer size register</description> - <addressOffset>0x350</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RXDPID_STUPCNT</name> - <description>Received data PID/SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPTSIZ3</name> - <displayName>OTG_FS_DOEPTSIZ3</displayName> - <description>device OUT endpoint-3 transfer size register</description> - <addressOffset>0x370</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RXDPID_STUPCNT</name> - <description>Received data PID/SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPCTL4</name> - <displayName>OTG_FS_DIEPCTL4</displayName> - <description>OTG device endpoint-4 control register</description> - <addressOffset>0x180</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>EPENA</name> - <description>EPENA</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDIS</name> - <description>EPDIS</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SODDFRM</name> - <description>SODDFRM</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>SD0PID/SEVNFRM</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>SNAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CNAK</name> - <description>CNAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>TXFNUM</name> - <description>TXFNUM</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>Stall</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPTYP</name> - <description>EPTYP</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAKSTS</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>EONUM/DPID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>USBAEP</name> - <description>USBAEP</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MPSIZ</name> - <description>MPSIZ</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPINT4</name> - <displayName>OTG_FS_DIEPINT4</displayName> - <description>device endpoint-4 interrupt register</description> - <addressOffset>0x188</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TXFE</name> - <description>TXFE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>INEPNE</name> - <description>INEPNE</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>ITTXFE</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>TOC</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>EPDISD</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>XFRC</name> - <description>XFRC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPTSIZ4</name> - <displayName>OTG_FS_DIEPTSIZ4</displayName> - <description>device endpoint-4 transfer size register</description> - <addressOffset>0x194</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MCNT</name> - <description>Multi count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DTXFSTS4</name> - <displayName>OTG_FS_DTXFSTS4</displayName> - <description>OTG_FS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x19C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space available</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPCTL5</name> - <displayName>OTG_FS_DIEPCTL5</displayName> - <description>OTG device endpoint-5 control register</description> - <addressOffset>0x1A0</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>EPENA</name> - <description>EPENA</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDIS</name> - <description>EPDIS</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SODDFRM</name> - <description>SODDFRM</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>SD0PID/SEVNFRM</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>SNAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CNAK</name> - <description>CNAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>TXFNUM</name> - <description>TXFNUM</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>Stall</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPTYP</name> - <description>EPTYP</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAKSTS</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>EONUM/DPID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>USBAEP</name> - <description>USBAEP</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MPSIZ</name> - <description>MPSIZ</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPINT5</name> - <displayName>OTG_FS_DIEPINT5</displayName> - <description>device endpoint-5 interrupt register</description> - <addressOffset>0x1A8</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TXFE</name> - <description>TXFE</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>INEPNE</name> - <description>INEPNE</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>ITTXFE</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>TOC</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>EPDISD</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>XFRC</name> - <description>XFRC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DIEPTSIZ55</name> - <displayName>OTG_FS_DIEPTSIZ55</displayName> - <description>device endpoint-5 transfer size register</description> - <addressOffset>0x1B0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MCNT</name> - <description>Multi count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DTXFSTS55</name> - <displayName>OTG_FS_DTXFSTS55</displayName> - <description>OTG_FS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x1B8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space available</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPCTL4</name> - <displayName>OTG_FS_DOEPCTL4</displayName> - <description>device endpoint-4 control register</description> - <addressOffset>0x378</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>EPENA</name> - <description>EPENA</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDIS</name> - <description>EPDIS</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SODDFRM</name> - <description>SODDFRM</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>SD0PID/SEVNFRM</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>SNAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CNAK</name> - <description>CNAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>Stall</name> - <description>Stall</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>SNPM</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPTYP</name> - <description>EPTYP</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAKSTS</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>EONUM/DPID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>USBAEP</name> - <description>USBAEP</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MPSIZ</name> - <description>MPSIZ</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPINT4</name> - <displayName>OTG_FS_DOEPINT4</displayName> - <description>device endpoint-4 interrupt register</description> - <addressOffset>0x380</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>B2BSTUP</name> - <description>B2BSTUP</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OTEPDIS</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>STUP</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>EPDISD</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>XFRC</name> - <description>XFRC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPTSIZ4</name> - <displayName>OTG_FS_DOEPTSIZ4</displayName> - <description>device OUT endpoint-4 transfer size register</description> - <addressOffset>0x388</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RXDPID_STUPCNT</name> - <description>Received data PID/SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPCTL5</name> - <displayName>OTG_FS_DOEPCTL5</displayName> - <description>device endpoint-5 control register</description> - <addressOffset>0x390</addressOffset> - <size>0x20</size> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>EPENA</name> - <description>EPENA</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDIS</name> - <description>EPDIS</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SODDFRM</name> - <description>SODDFRM</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>SD0PID/SEVNFRM</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>SNAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CNAK</name> - <description>CNAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>Stall</name> - <description>Stall</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>SNPM</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPTYP</name> - <description>EPTYP</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAKSTS</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>EONUM/DPID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>USBAEP</name> - <description>USBAEP</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>MPSIZ</name> - <description>MPSIZ</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPINT5</name> - <displayName>OTG_FS_DOEPINT5</displayName> - <description>device endpoint-5 interrupt register</description> - <addressOffset>0x398</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>B2BSTUP</name> - <description>B2BSTUP</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OTEPDIS</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>STUP</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>EPDISD</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>XFRC</name> - <description>XFRC</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_FS_DOEPTSIZ5</name> - <displayName>OTG_FS_DOEPTSIZ5</displayName> - <description>device OUT endpoint-5 transfer size register</description> - <addressOffset>0x3A0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>RXDPID_STUPCNT</name> - <description>Received data PID/SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>OTG_FS_PWRCLK</name> - <description>USB on the go full speed</description> - <groupName>USB_OTG_FS</groupName> - <baseAddress>0x50000E00</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>OTG_FS_WKUP</name> - <description>USB On-The-Go FS Wakeup through EXTI line - interrupt</description> - <value>42</value> - </interrupt> - <interrupt> - <name>OTG_FS</name> - <description>USB On The Go FS global - interrupt</description> - <value>67</value> - </interrupt> - <registers> - <register> - <name>OTG_FS_PCGCCTL</name> - <displayName>OTG_FS_PCGCCTL</displayName> - <description>OTG_FS power and clock gating control register (OTG_FS_PCGCCTL)</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>STPPCLK</name> - <description>Stop PHY clock</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GATEHCLK</name> - <description>Gate HCLK</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PHYSUSP</name> - <description>PHY Suspended</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>OTG_HS_GLOBAL</name> - <description>USB on the go high speed</description> - <groupName>USB_OTG_HS</groupName> - <baseAddress>0x40040000</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>OTG_HS_GOTGCTL</name> - <displayName>OTG_HS_GOTGCTL</displayName> - <description>OTG_HS control and status register</description> - <addressOffset>0x0</addressOffset> - <size>32</size> - <resetValue>0x00000800</resetValue> - <fields> - <field> - <name>SRQSCS</name> - <description>Session request success</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SRQ</name> - <description>Session request</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HNGSCS</name> - <description>Host negotiation success</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>HNPRQ</name> - <description>HNP request</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HSHNPEN</name> - <description>Host set HNP enable</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DHNPEN</name> - <description>Device HNP enabled</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CIDSTS</name> - <description>Connector ID status</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DBCT</name> - <description>Long/short debounce time</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ASVLD</name> - <description>A-session valid</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>BSVLD</name> - <description>B-session valid</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EHEN</name> - <description>Embedded host enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GOTGINT</name> - <displayName>OTG_HS_GOTGINT</displayName> - <description>OTG_HS interrupt register</description> - <addressOffset>0x4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>SEDET</name> - <description>Session end detected</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SRSSCHG</name> - <description>Session request success status change</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HNSSCHG</name> - <description>Host negotiation success status change</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HNGDET</name> - <description>Host negotiation detected</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADTOCHG</name> - <description>A-device timeout change</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DBCDNE</name> - <description>Debounce done</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDCHNG</name> - <description>ID input pin changed</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GAHBCFG</name> - <displayName>OTG_HS_GAHBCFG</displayName> - <description>OTG_HS AHB configuration register</description> - <addressOffset>0x8</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>GINT</name> - <description>Global interrupt mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HBSTLEN</name> - <description>Burst length/type</description> - <bitOffset>1</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DMAEN</name> - <description>DMA enable</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXFELVL</name> - <description>TxFIFO empty level</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PTXFELVL</name> - <description>Periodic TxFIFO empty level</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GUSBCFG</name> - <displayName>OTG_HS_GUSBCFG</displayName> - <description>OTG_HS USB configuration register</description> - <addressOffset>0xC</addressOffset> - <size>32</size> - <resetValue>0x00000A00</resetValue> - <fields> - <field> - <name>TOCAL</name> - <description>FS timeout calibration</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PHYSEL</name> - <description>USB 2.0 high-speed ULPI PHY or USB 1.1 full-speed serial transceiver select</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SRPCAP</name> - <description>SRP-capable</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HNPCAP</name> - <description>HNP-capable</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TRDT</name> - <description>USB turnaround time</description> - <bitOffset>10</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PHYLPCS</name> - <description>PHY Low-power clock select</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ULPIFSLS</name> - <description>ULPI FS/LS select</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ULPIAR</name> - <description>ULPI Auto-resume</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ULPICSM</name> - <description>ULPI Clock SuspendM</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ULPIEVBUSD</name> - <description>ULPI External VBUS Drive</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ULPIEVBUSI</name> - <description>ULPI external VBUS indicator</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TSDPS</name> - <description>TermSel DLine pulsing selection</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PCCI</name> - <description>Indicator complement</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PTCI</name> - <description>Indicator pass through</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ULPIIPD</name> - <description>ULPI interface protect disable</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FHMOD</name> - <description>Forced host mode</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FDMOD</name> - <description>Forced peripheral mode</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GRSTCTL</name> - <displayName>OTG_HS_GRSTCTL</displayName> - <description>OTG_HS reset register</description> - <addressOffset>0x10</addressOffset> - <size>32</size> - <resetValue>0x20000000</resetValue> - <fields> - <field> - <name>CSRST</name> - <description>Core soft reset</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HSRST</name> - <description>HCLK soft reset</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FCRST</name> - <description>Host frame counter reset</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RXFFLSH</name> - <description>RxFIFO flush</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFFLSH</name> - <description>TxFIFO flush</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFNUM</name> - <description>TxFIFO number</description> - <bitOffset>6</bitOffset> - <bitWidth>5</bitWidth> - <access>read-write</access> - </field> - <field> - <name>AHBIDL</name> - <description>AHB master idle</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>DMAREQ</name> - <description>DMA request signal enabled for USB OTG HS</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GINTSTS</name> - <displayName>OTG_HS_GINTSTS</displayName> - <description>OTG_HS core interrupt register</description> - <addressOffset>0x14</addressOffset> - <size>32</size> - <resetValue>0x04000020</resetValue> - <fields> - <field> - <name>CMOD</name> - <description>Current mode of operation</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>MMIS</name> - <description>Mode mismatch interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>OTGINT</name> - <description>OTG interrupt</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SOF</name> - <description>Start of frame</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RXFLVL</name> - <description>RxFIFO nonempty</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NPTXFE</name> - <description>Nonperiodic TxFIFO empty</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>GINAKEFF</name> - <description>Global IN nonperiodic NAK effective</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>BOUTNAKEFF</name> - <description>Global OUT NAK effective</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ESUSP</name> - <description>Early suspend</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBSUSP</name> - <description>USB suspend</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBRST</name> - <description>USB reset</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ENUMDNE</name> - <description>Enumeration done</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ISOODRP</name> - <description>Isochronous OUT packet dropped interrupt</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EOPF</name> - <description>End of periodic frame interrupt</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>IEPINT</name> - <description>IN endpoint interrupt</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>OEPINT</name> - <description>OUT endpoint interrupt</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>IISOIXFR</name> - <description>Incomplete isochronous IN transfer</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PXFR_INCOMPISOOUT</name> - <description>Incomplete periodic transfer</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DATAFSUSP</name> - <description>Data fetch suspended</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>HPRTINT</name> - <description>Host port interrupt</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>HCINT</name> - <description>Host channels interrupt</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PTXFE</name> - <description>Periodic TxFIFO empty</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>CIDSCHG</name> - <description>Connector ID status change</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DISCINT</name> - <description>Disconnect detected interrupt</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SRQINT</name> - <description>Session request/new session detected interrupt</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WKUINT</name> - <description>Resume/remote wakeup detected interrupt</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GINTMSK</name> - <displayName>OTG_HS_GINTMSK</displayName> - <description>OTG_HS interrupt mask register</description> - <addressOffset>0x18</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MMISM</name> - <description>Mode mismatch interrupt mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>OTGINT</name> - <description>OTG interrupt mask</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SOFM</name> - <description>Start of frame mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RXFLVLM</name> - <description>Receive FIFO nonempty mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NPTXFEM</name> - <description>Nonperiodic TxFIFO empty mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>GINAKEFFM</name> - <description>Global nonperiodic IN NAK effective mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>GONAKEFFM</name> - <description>Global OUT NAK effective mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ESUSPM</name> - <description>Early suspend mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBSUSPM</name> - <description>USB suspend mask</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBRST</name> - <description>USB reset mask</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ENUMDNEM</name> - <description>Enumeration done mask</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ISOODRPM</name> - <description>Isochronous OUT packet dropped interrupt mask</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EOPFM</name> - <description>End of periodic frame interrupt mask</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>IEPINT</name> - <description>IN endpoints interrupt mask</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>OEPINT</name> - <description>OUT endpoints interrupt mask</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>IISOIXFRM</name> - <description>Incomplete isochronous IN transfer mask</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PXFRM_IISOOXFRM</name> - <description>Incomplete periodic transfer mask</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FSUSPM</name> - <description>Data fetch suspended mask</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PRTIM</name> - <description>Host port interrupt mask</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>HCIM</name> - <description>Host channels interrupt mask</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PTXFEM</name> - <description>Periodic TxFIFO empty mask</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CIDSCHGM</name> - <description>Connector ID status change mask</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>DISCINT</name> - <description>Disconnect detected interrupt mask</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SRQIM</name> - <description>Session request/new session detected interrupt mask</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>WUIM</name> - <description>Resume/remote wakeup detected interrupt mask</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>RSTDE</name> - <description>Reset detected interrupt mask</description> - <bitOffset>23</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LPMINTM</name> - <description>LPM interrupt mask</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GRXSTSR_Host</name> - <displayName>OTG_HS_GRXSTSR_Host</displayName> - <description>OTG_HS Receive status debug read register (host mode)</description> - <addressOffset>0x1C</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>CHNUM</name> - <description>Channel number</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BCNT</name> - <description>Byte count</description> - <bitOffset>4</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>15</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTSTS</name> - <description>Packet status</description> - <bitOffset>17</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GRXSTSP_Host</name> - <displayName>OTG_HS_GRXSTSP_Host</displayName> - <description>OTG_HS status read and pop register (host mode)</description> - <addressOffset>0x20</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>CHNUM</name> - <description>Channel number</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BCNT</name> - <description>Byte count</description> - <bitOffset>4</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>15</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTSTS</name> - <description>Packet status</description> - <bitOffset>17</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GRXFSIZ</name> - <displayName>OTG_HS_GRXFSIZ</displayName> - <description>OTG_HS Receive FIFO size register</description> - <addressOffset>0x24</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x00000200</resetValue> - <fields> - <field> - <name>RXFD</name> - <description>RxFIFO depth</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HNPTXFSIZ_Host</name> - <displayName>OTG_HS_HNPTXFSIZ_Host</displayName> - <description>OTG_HS nonperiodic transmit FIFO size register (host mode)</description> - <addressOffset>0x28</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x00000200</resetValue> - <fields> - <field> - <name>NPTXFSA</name> - <description>Nonperiodic transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>NPTXFD</name> - <description>Nonperiodic TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTXF0_Device</name> - <displayName>OTG_HS_DIEPTXF0_Device</displayName> - <description>Endpoint 0 transmit FIFO size (peripheral mode)</description> - <alternateRegister>OTG_HS_HNPTXFSIZ_Host</alternateRegister> - <addressOffset>0x28</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x00000200</resetValue> - <fields> - <field> - <name>TX0FSA</name> - <description>Endpoint 0 transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>TX0FD</name> - <description>Endpoint 0 TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GNPTXSTS</name> - <displayName>OTG_HS_GNPTXSTS</displayName> - <description>OTG_HS nonperiodic transmit FIFO/queue status register</description> - <addressOffset>0x2C</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x00080200</resetValue> - <fields> - <field> - <name>NPTXFSAV</name> - <description>Nonperiodic TxFIFO space available</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>NPTQXSAV</name> - <description>Nonperiodic transmit request queue space available</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>NPTXQTOP</name> - <description>Top of the nonperiodic transmit request queue</description> - <bitOffset>24</bitOffset> - <bitWidth>7</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GCCFG</name> - <displayName>OTG_HS_GCCFG</displayName> - <description>OTG_HS general core configuration register</description> - <addressOffset>0x38</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PWRDWN</name> - <description>Power down</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BCDEN</name> - <description>Battery charging detector (BCD) enable</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DCDEN</name> - <description>Data contact detection (DCD) mode enable</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PDEN</name> - <description>Primary detection (PD) mode enable</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDEN</name> - <description>Secondary detection (SD) mode enable</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VBDEN</name> - <description>USB VBUS detection enable</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DCDET</name> - <description>Data contact detection (DCD) status</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PDET</name> - <description>Primary detection (PD) status</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SDET</name> - <description>Secondary detection (SD) status</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PS2DET</name> - <description>DM pull-up detection status</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_CID</name> - <displayName>OTG_HS_CID</displayName> - <description>OTG_HS core ID register</description> - <addressOffset>0x3C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x00001200</resetValue> - <fields> - <field> - <name>PRODUCT_ID</name> - <description>Product ID field</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HPTXFSIZ</name> - <displayName>OTG_HS_HPTXFSIZ</displayName> - <description>OTG_HS Host periodic transmit FIFO size register</description> - <addressOffset>0x100</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x02000600</resetValue> - <fields> - <field> - <name>PTXSA</name> - <description>Host periodic TxFIFO start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>PTXFD</name> - <description>Host periodic TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTXF1</name> - <displayName>OTG_HS_DIEPTXF1</displayName> - <description>OTG_HS device IN endpoint transmit FIFO size register</description> - <addressOffset>0x104</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>INEPTXSA</name> - <description>IN endpoint FIFOx transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>INEPTXFD</name> - <description>IN endpoint TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTXF2</name> - <displayName>OTG_HS_DIEPTXF2</displayName> - <description>OTG_HS device IN endpoint transmit FIFO size register</description> - <addressOffset>0x108</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>INEPTXSA</name> - <description>IN endpoint FIFOx transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>INEPTXFD</name> - <description>IN endpoint TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTXF3</name> - <displayName>OTG_HS_DIEPTXF3</displayName> - <description>OTG_HS device IN endpoint transmit FIFO size register</description> - <addressOffset>0x11C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>INEPTXSA</name> - <description>IN endpoint FIFOx transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>INEPTXFD</name> - <description>IN endpoint TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTXF4</name> - <displayName>OTG_HS_DIEPTXF4</displayName> - <description>OTG_HS device IN endpoint transmit FIFO size register</description> - <addressOffset>0x120</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>INEPTXSA</name> - <description>IN endpoint FIFOx transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>INEPTXFD</name> - <description>IN endpoint TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTXF5</name> - <displayName>OTG_HS_DIEPTXF5</displayName> - <description>OTG_HS device IN endpoint transmit FIFO size register</description> - <addressOffset>0x124</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>INEPTXSA</name> - <description>IN endpoint FIFOx transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>INEPTXFD</name> - <description>IN endpoint TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTXF6</name> - <displayName>OTG_HS_DIEPTXF6</displayName> - <description>OTG_HS device IN endpoint transmit FIFO size register</description> - <addressOffset>0x128</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>INEPTXSA</name> - <description>IN endpoint FIFOx transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>INEPTXFD</name> - <description>IN endpoint TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTXF7</name> - <displayName>OTG_HS_DIEPTXF7</displayName> - <description>OTG_HS device IN endpoint transmit FIFO size register</description> - <addressOffset>0x12C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x02000400</resetValue> - <fields> - <field> - <name>INEPTXSA</name> - <description>IN endpoint FIFOx transmit RAM start address</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>INEPTXFD</name> - <description>IN endpoint TxFIFO depth</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GRXSTSR_Device</name> - <displayName>OTG_HS_GRXSTSR_Device</displayName> - <description>OTG_HS Receive status debug read register (peripheral mode mode)</description> - <alternateRegister>OTG_HS_GRXSTSR_Host</alternateRegister> - <addressOffset>0x1C</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BCNT</name> - <description>Byte count</description> - <bitOffset>4</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>15</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTSTS</name> - <description>Packet status</description> - <bitOffset>17</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>FRMNUM</name> - <description>Frame number</description> - <bitOffset>21</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GRXSTSP_Device</name> - <displayName>OTG_HS_GRXSTSP_Device</displayName> - <description>OTG_HS status read and pop register (peripheral mode)</description> - <alternateRegister>OTG_HS_GRXSTSP_Host</alternateRegister> - <addressOffset>0x20</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>BCNT</name> - <description>Byte count</description> - <bitOffset>4</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>15</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PKTSTS</name> - <description>Packet status</description> - <bitOffset>17</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>FRMNUM</name> - <description>Frame number</description> - <bitOffset>21</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_GLPMCFG</name> - <displayName>OTG_HS_GLPMCFG</displayName> - <description>OTG core LPM configuration register</description> - <addressOffset>0x54</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>LPMEN</name> - <description>LPM support enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LPMACK</name> - <description>LPM token acknowledge enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BESL</name> - <description>Best effort service latency</description> - <bitOffset>2</bitOffset> - <bitWidth>4</bitWidth> - <access>read-only</access> - </field> - <field> - <name>REMWAKE</name> - <description>bRemoteWake value</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>L1SSEN</name> - <description>L1 Shallow Sleep enable</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BESLTHRS</name> - <description>BESL threshold</description> - <bitOffset>8</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>L1DSEN</name> - <description>L1 deep sleep enable</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LPMRST</name> - <description>LPM response</description> - <bitOffset>13</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SLPSTS</name> - <description>Port sleep status</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>L1RSMOK</name> - <description>Sleep State Resume OK</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>LPMCHIDX</name> - <description>LPM Channel Index</description> - <bitOffset>17</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LPMRCNT</name> - <description>LPM retry count</description> - <bitOffset>21</bitOffset> - <bitWidth>3</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNDLPM</name> - <description>Send LPM transaction</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>LPMRCNTSTS</name> - <description>LPM retry count status</description> - <bitOffset>25</bitOffset> - <bitWidth>3</bitWidth> - <access>read-only</access> - </field> - <field> - <name>ENBESL</name> - <description>Enable best effort service latency</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>OTG_HS_HOST</name> - <description>USB on the go high speed</description> - <groupName>USB_OTG_HS</groupName> - <baseAddress>0x40040400</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>OTG_HS_HCFG</name> - <displayName>OTG_HS_HCFG</displayName> - <description>OTG_HS host configuration register</description> - <addressOffset>0x0</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>FSLSPCS</name> - <description>FS/LS PHY clock select</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>FSLSS</name> - <description>FS- and LS-only support</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HFIR</name> - <displayName>OTG_HS_HFIR</displayName> - <description>OTG_HS Host frame interval register</description> - <addressOffset>0x4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0000EA60</resetValue> - <fields> - <field> - <name>FRIVL</name> - <description>Frame interval</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HFNUM</name> - <displayName>OTG_HS_HFNUM</displayName> - <description>OTG_HS host frame number/frame time remaining register</description> - <addressOffset>0x8</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x00003FFF</resetValue> - <fields> - <field> - <name>FRNUM</name> - <description>Frame number</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>FTREM</name> - <description>Frame time remaining</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HPTXSTS</name> - <displayName>OTG_HS_HPTXSTS</displayName> - <description>OTG_HS_Host periodic transmit FIFO/queue status register</description> - <addressOffset>0x10</addressOffset> - <size>32</size> - <resetValue>0x00080100</resetValue> - <fields> - <field> - <name>PTXFSAVL</name> - <description>Periodic transmit data FIFO space available</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PTXQSAV</name> - <description>Periodic transmit request queue space available</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PTXQTOP</name> - <description>Top of the periodic transmit request queue</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HAINT</name> - <displayName>OTG_HS_HAINT</displayName> - <description>OTG_HS Host all channels interrupt register</description> - <addressOffset>0x14</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>HAINT</name> - <description>Channel interrupts</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HAINTMSK</name> - <displayName>OTG_HS_HAINTMSK</displayName> - <description>OTG_HS host all channels interrupt mask register</description> - <addressOffset>0x18</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>HAINTM</name> - <description>Channel interrupt mask</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HPRT</name> - <displayName>OTG_HS_HPRT</displayName> - <description>OTG_HS host port control and status register</description> - <addressOffset>0x40</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PCSTS</name> - <description>Port connect status</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PCDET</name> - <description>Port connect detected</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PENA</name> - <description>Port enable</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PENCHNG</name> - <description>Port enable/disable change</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>POCA</name> - <description>Port overcurrent active</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>POCCHNG</name> - <description>Port overcurrent change</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PRES</name> - <description>Port resume</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PSUSP</name> - <description>Port suspend</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PRST</name> - <description>Port reset</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PLSTS</name> - <description>Port line status</description> - <bitOffset>10</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - <field> - <name>PPWR</name> - <description>Port power</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PTCTL</name> - <description>Port test control</description> - <bitOffset>13</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PSPD</name> - <description>Port speed</description> - <bitOffset>17</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR0</name> - <displayName>OTG_HS_HCCHAR0</displayName> - <description>OTG_HS host channel-0 characteristics register</description> - <addressOffset>0x100</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR1</name> - <displayName>OTG_HS_HCCHAR1</displayName> - <description>OTG_HS host channel-1 characteristics register</description> - <addressOffset>0x120</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR2</name> - <displayName>OTG_HS_HCCHAR2</displayName> - <description>OTG_HS host channel-2 characteristics register</description> - <addressOffset>0x140</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR3</name> - <displayName>OTG_HS_HCCHAR3</displayName> - <description>OTG_HS host channel-3 characteristics register</description> - <addressOffset>0x160</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR4</name> - <displayName>OTG_HS_HCCHAR4</displayName> - <description>OTG_HS host channel-4 characteristics register</description> - <addressOffset>0x180</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR5</name> - <displayName>OTG_HS_HCCHAR5</displayName> - <description>OTG_HS host channel-5 characteristics register</description> - <addressOffset>0x1A0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR6</name> - <displayName>OTG_HS_HCCHAR6</displayName> - <description>OTG_HS host channel-6 characteristics register</description> - <addressOffset>0x1C0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR7</name> - <displayName>OTG_HS_HCCHAR7</displayName> - <description>OTG_HS host channel-7 characteristics register</description> - <addressOffset>0x1E0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR8</name> - <displayName>OTG_HS_HCCHAR8</displayName> - <description>OTG_HS host channel-8 characteristics register</description> - <addressOffset>0x200</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR9</name> - <displayName>OTG_HS_HCCHAR9</displayName> - <description>OTG_HS host channel-9 characteristics register</description> - <addressOffset>0x220</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR10</name> - <displayName>OTG_HS_HCCHAR10</displayName> - <description>OTG_HS host channel-10 characteristics register</description> - <addressOffset>0x240</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR11</name> - <displayName>OTG_HS_HCCHAR11</displayName> - <description>OTG_HS host channel-11 characteristics register</description> - <addressOffset>0x260</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT0</name> - <displayName>OTG_HS_HCSPLT0</displayName> - <description>OTG_HS host channel-0 split control register</description> - <addressOffset>0x104</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT1</name> - <displayName>OTG_HS_HCSPLT1</displayName> - <description>OTG_HS host channel-1 split control register</description> - <addressOffset>0x124</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT2</name> - <displayName>OTG_HS_HCSPLT2</displayName> - <description>OTG_HS host channel-2 split control register</description> - <addressOffset>0x144</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT3</name> - <displayName>OTG_HS_HCSPLT3</displayName> - <description>OTG_HS host channel-3 split control register</description> - <addressOffset>0x164</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT4</name> - <displayName>OTG_HS_HCSPLT4</displayName> - <description>OTG_HS host channel-4 split control register</description> - <addressOffset>0x184</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT5</name> - <displayName>OTG_HS_HCSPLT5</displayName> - <description>OTG_HS host channel-5 split control register</description> - <addressOffset>0x1A4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT6</name> - <displayName>OTG_HS_HCSPLT6</displayName> - <description>OTG_HS host channel-6 split control register</description> - <addressOffset>0x1C4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT7</name> - <displayName>OTG_HS_HCSPLT7</displayName> - <description>OTG_HS host channel-7 split control register</description> - <addressOffset>0x1E4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT8</name> - <displayName>OTG_HS_HCSPLT8</displayName> - <description>OTG_HS host channel-8 split control register</description> - <addressOffset>0x204</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT9</name> - <displayName>OTG_HS_HCSPLT9</displayName> - <description>OTG_HS host channel-9 split control register</description> - <addressOffset>0x224</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT10</name> - <displayName>OTG_HS_HCSPLT10</displayName> - <description>OTG_HS host channel-10 split control register</description> - <addressOffset>0x244</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT11</name> - <displayName>OTG_HS_HCSPLT11</displayName> - <description>OTG_HS host channel-11 split control register</description> - <addressOffset>0x264</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT0</name> - <displayName>OTG_HS_HCINT0</displayName> - <description>OTG_HS host channel-11 interrupt register</description> - <addressOffset>0x108</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT1</name> - <displayName>OTG_HS_HCINT1</displayName> - <description>OTG_HS host channel-1 interrupt register</description> - <addressOffset>0x128</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT2</name> - <displayName>OTG_HS_HCINT2</displayName> - <description>OTG_HS host channel-2 interrupt register</description> - <addressOffset>0x148</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT3</name> - <displayName>OTG_HS_HCINT3</displayName> - <description>OTG_HS host channel-3 interrupt register</description> - <addressOffset>0x168</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT4</name> - <displayName>OTG_HS_HCINT4</displayName> - <description>OTG_HS host channel-4 interrupt register</description> - <addressOffset>0x188</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT5</name> - <displayName>OTG_HS_HCINT5</displayName> - <description>OTG_HS host channel-5 interrupt register</description> - <addressOffset>0x1A8</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT6</name> - <displayName>OTG_HS_HCINT6</displayName> - <description>OTG_HS host channel-6 interrupt register</description> - <addressOffset>0x1C8</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT7</name> - <displayName>OTG_HS_HCINT7</displayName> - <description>OTG_HS host channel-7 interrupt register</description> - <addressOffset>0x1E8</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT8</name> - <displayName>OTG_HS_HCINT8</displayName> - <description>OTG_HS host channel-8 interrupt register</description> - <addressOffset>0x208</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT9</name> - <displayName>OTG_HS_HCINT9</displayName> - <description>OTG_HS host channel-9 interrupt register</description> - <addressOffset>0x228</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT10</name> - <displayName>OTG_HS_HCINT10</displayName> - <description>OTG_HS host channel-10 interrupt register</description> - <addressOffset>0x248</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT11</name> - <displayName>OTG_HS_HCINT11</displayName> - <description>OTG_HS host channel-11 interrupt register</description> - <addressOffset>0x268</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK0</name> - <displayName>OTG_HS_HCINTMSK0</displayName> - <description>OTG_HS host channel-11 interrupt mask register</description> - <addressOffset>0x10C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK1</name> - <displayName>OTG_HS_HCINTMSK1</displayName> - <description>OTG_HS host channel-1 interrupt mask register</description> - <addressOffset>0x12C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK2</name> - <displayName>OTG_HS_HCINTMSK2</displayName> - <description>OTG_HS host channel-2 interrupt mask register</description> - <addressOffset>0x14C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK3</name> - <displayName>OTG_HS_HCINTMSK3</displayName> - <description>OTG_HS host channel-3 interrupt mask register</description> - <addressOffset>0x16C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK4</name> - <displayName>OTG_HS_HCINTMSK4</displayName> - <description>OTG_HS host channel-4 interrupt mask register</description> - <addressOffset>0x18C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK5</name> - <displayName>OTG_HS_HCINTMSK5</displayName> - <description>OTG_HS host channel-5 interrupt mask register</description> - <addressOffset>0x1AC</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK6</name> - <displayName>OTG_HS_HCINTMSK6</displayName> - <description>OTG_HS host channel-6 interrupt mask register</description> - <addressOffset>0x1CC</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK7</name> - <displayName>OTG_HS_HCINTMSK7</displayName> - <description>OTG_HS host channel-7 interrupt mask register</description> - <addressOffset>0x1EC</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK8</name> - <displayName>OTG_HS_HCINTMSK8</displayName> - <description>OTG_HS host channel-8 interrupt mask register</description> - <addressOffset>0x20C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK9</name> - <displayName>OTG_HS_HCINTMSK9</displayName> - <description>OTG_HS host channel-9 interrupt mask register</description> - <addressOffset>0x22C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK10</name> - <displayName>OTG_HS_HCINTMSK10</displayName> - <description>OTG_HS host channel-10 interrupt mask register</description> - <addressOffset>0x24C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK11</name> - <displayName>OTG_HS_HCINTMSK11</displayName> - <description>OTG_HS host channel-11 interrupt mask register</description> - <addressOffset>0x26C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>response received interrupt mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error mask</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ0</name> - <displayName>OTG_HS_HCTSIZ0</displayName> - <description>OTG_HS host channel-11 transfer size register</description> - <addressOffset>0x110</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ1</name> - <displayName>OTG_HS_HCTSIZ1</displayName> - <description>OTG_HS host channel-1 transfer size register</description> - <addressOffset>0x130</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ2</name> - <displayName>OTG_HS_HCTSIZ2</displayName> - <description>OTG_HS host channel-2 transfer size register</description> - <addressOffset>0x150</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ3</name> - <displayName>OTG_HS_HCTSIZ3</displayName> - <description>OTG_HS host channel-3 transfer size register</description> - <addressOffset>0x170</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ4</name> - <displayName>OTG_HS_HCTSIZ4</displayName> - <description>OTG_HS host channel-4 transfer size register</description> - <addressOffset>0x190</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ5</name> - <displayName>OTG_HS_HCTSIZ5</displayName> - <description>OTG_HS host channel-5 transfer size register</description> - <addressOffset>0x1B0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ6</name> - <displayName>OTG_HS_HCTSIZ6</displayName> - <description>OTG_HS host channel-6 transfer size register</description> - <addressOffset>0x1D0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ7</name> - <displayName>OTG_HS_HCTSIZ7</displayName> - <description>OTG_HS host channel-7 transfer size register</description> - <addressOffset>0x1F0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ8</name> - <displayName>OTG_HS_HCTSIZ8</displayName> - <description>OTG_HS host channel-8 transfer size register</description> - <addressOffset>0x210</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ9</name> - <displayName>OTG_HS_HCTSIZ9</displayName> - <description>OTG_HS host channel-9 transfer size register</description> - <addressOffset>0x230</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ10</name> - <displayName>OTG_HS_HCTSIZ10</displayName> - <description>OTG_HS host channel-10 transfer size register</description> - <addressOffset>0x250</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ11</name> - <displayName>OTG_HS_HCTSIZ11</displayName> - <description>OTG_HS host channel-11 transfer size register</description> - <addressOffset>0x270</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA0</name> - <displayName>OTG_HS_HCDMA0</displayName> - <description>OTG_HS host channel-0 DMA address register</description> - <addressOffset>0x114</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA1</name> - <displayName>OTG_HS_HCDMA1</displayName> - <description>OTG_HS host channel-1 DMA address register</description> - <addressOffset>0x134</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA2</name> - <displayName>OTG_HS_HCDMA2</displayName> - <description>OTG_HS host channel-2 DMA address register</description> - <addressOffset>0x154</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA3</name> - <displayName>OTG_HS_HCDMA3</displayName> - <description>OTG_HS host channel-3 DMA address register</description> - <addressOffset>0x174</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA4</name> - <displayName>OTG_HS_HCDMA4</displayName> - <description>OTG_HS host channel-4 DMA address register</description> - <addressOffset>0x194</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA5</name> - <displayName>OTG_HS_HCDMA5</displayName> - <description>OTG_HS host channel-5 DMA address register</description> - <addressOffset>0x1B4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA6</name> - <displayName>OTG_HS_HCDMA6</displayName> - <description>OTG_HS host channel-6 DMA address register</description> - <addressOffset>0x1D4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA7</name> - <displayName>OTG_HS_HCDMA7</displayName> - <description>OTG_HS host channel-7 DMA address register</description> - <addressOffset>0x1F4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA8</name> - <displayName>OTG_HS_HCDMA8</displayName> - <description>OTG_HS host channel-8 DMA address register</description> - <addressOffset>0x214</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA9</name> - <displayName>OTG_HS_HCDMA9</displayName> - <description>OTG_HS host channel-9 DMA address register</description> - <addressOffset>0x234</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA10</name> - <displayName>OTG_HS_HCDMA10</displayName> - <description>OTG_HS host channel-10 DMA address register</description> - <addressOffset>0x254</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA11</name> - <displayName>OTG_HS_HCDMA11</displayName> - <description>OTG_HS host channel-11 DMA address register</description> - <addressOffset>0x274</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR12</name> - <displayName>OTG_HS_HCCHAR12</displayName> - <description>OTG_HS host channel-12 characteristics register</description> - <addressOffset>0x278</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT12</name> - <displayName>OTG_HS_HCSPLT12</displayName> - <description>OTG_HS host channel-12 split control register</description> - <addressOffset>0x27C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT12</name> - <displayName>OTG_HS_HCINT12</displayName> - <description>OTG_HS host channel-12 interrupt register</description> - <addressOffset>0x280</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK12</name> - <displayName>OTG_HS_HCINTMSK12</displayName> - <description>OTG_HS host channel-12 interrupt mask register</description> - <addressOffset>0x284</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ12</name> - <displayName>OTG_HS_HCTSIZ12</displayName> - <description>OTG_HS host channel-12 transfer size register</description> - <addressOffset>0x288</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA12</name> - <displayName>OTG_HS_HCDMA12</displayName> - <description>OTG_HS host channel-12 DMA address register</description> - <addressOffset>0x28C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR13</name> - <displayName>OTG_HS_HCCHAR13</displayName> - <description>OTG_HS host channel-13 characteristics register</description> - <addressOffset>0x290</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT13</name> - <displayName>OTG_HS_HCSPLT13</displayName> - <description>OTG_HS host channel-13 split control register</description> - <addressOffset>0x294</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT13</name> - <displayName>OTG_HS_HCINT13</displayName> - <description>OTG_HS host channel-13 interrupt register</description> - <addressOffset>0x298</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK13</name> - <displayName>OTG_HS_HCINTMSK13</displayName> - <description>OTG_HS host channel-13 interrupt mask register</description> - <addressOffset>0x29C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALLM response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ13</name> - <displayName>OTG_HS_HCTSIZ13</displayName> - <description>OTG_HS host channel-13 transfer size register</description> - <addressOffset>0x2A0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA13</name> - <displayName>OTG_HS_HCDMA13</displayName> - <description>OTG_HS host channel-13 DMA address register</description> - <addressOffset>0x2A4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR14</name> - <displayName>OTG_HS_HCCHAR14</displayName> - <description>OTG_HS host channel-14 characteristics register</description> - <addressOffset>0x2A8</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT14</name> - <displayName>OTG_HS_HCSPLT14</displayName> - <description>OTG_HS host channel-14 split control register</description> - <addressOffset>0x2AC</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT14</name> - <displayName>OTG_HS_HCINT14</displayName> - <description>OTG_HS host channel-14 interrupt register</description> - <addressOffset>0x2B0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK14</name> - <displayName>OTG_HS_HCINTMSK14</displayName> - <description>OTG_HS host channel-14 interrupt mask register</description> - <addressOffset>0x2B4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALLM</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAKM response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACKM response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ14</name> - <displayName>OTG_HS_HCTSIZ14</displayName> - <description>OTG_HS host channel-14 transfer size register</description> - <addressOffset>0x2B8</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA14</name> - <displayName>OTG_HS_HCDMA14</displayName> - <description>OTG_HS host channel-14 DMA address register</description> - <addressOffset>0x2BC</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCCHAR15</name> - <displayName>OTG_HS_HCCHAR15</displayName> - <description>OTG_HS host channel-15 characteristics register</description> - <addressOffset>0x2C0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - </field> - <field> - <name>EPNUM</name> - <description>Endpoint number</description> - <bitOffset>11</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>EPDIR</name> - <description>Endpoint direction</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSDEV</name> - <description>Low-speed device</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>MC</name> - <description>Multi Count (MC) / Error Count (EC)</description> - <bitOffset>20</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>22</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ODDFRM</name> - <description>Odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHDIS</name> - <description>Channel disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHENA</name> - <description>Channel enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCSPLT15</name> - <displayName>OTG_HS_HCSPLT15</displayName> - <description>OTG_HS host channel-15 split control register</description> - <addressOffset>0x2C4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>PRTADDR</name> - <description>Port address</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>HUBADDR</name> - <description>Hub address</description> - <bitOffset>7</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>XACTPOS</name> - <description>XACTPOS</description> - <bitOffset>14</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>COMPLSPLT</name> - <description>Do complete split</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SPLITEN</name> - <description>Split enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINT15</name> - <displayName>OTG_HS_HCINT15</displayName> - <description>OTG_HS host channel-15 interrupt register</description> - <addressOffset>0x2C8</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHH</name> - <description>Channel halted</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAK</name> - <description>NAK response received interrupt</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACK</name> - <description>ACK response received/transmitted interrupt</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERR</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERR</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMOR</name> - <description>Frame overrun</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERR</name> - <description>Data toggle error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCINTMSK15</name> - <displayName>OTG_HS_HCINTMSK15</displayName> - <description>OTG_HS host channel-15 interrupt mask register</description> - <addressOffset>0x2CC</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CHHM</name> - <description>Channel halted mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBERR</name> - <description>AHB error</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STALL</name> - <description>STALL response received interrupt mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NAKM</name> - <description>NAK response received interrupt mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ACKM</name> - <description>ACK response received/transmitted interrupt mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>Response received interrupt</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXERRM</name> - <description>Transaction error</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BBERRM</name> - <description>Babble error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FRMORM</name> - <description>Frame overrun mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTERRM</name> - <description>Data toggle error mask</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCTSIZ15</name> - <displayName>OTG_HS_HCTSIZ15</displayName> - <description>OTG_HS host channel-15 transfer size register</description> - <addressOffset>0x2D0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>DPID</name> - <description>Data PID</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_HCDMA15</name> - <displayName>OTG_HS_HCDMA15</displayName> - <description>OTG_HS host channel-15 DMA address register</description> - <addressOffset>0x2D4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>OTG_HS_DEVICE</name> - <description>USB on the go high speed</description> - <groupName>USB_OTG_HS</groupName> - <baseAddress>0x40040800</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x400</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>OTG_HS_DCFG</name> - <displayName>OTG_HS_DCFG</displayName> - <description>OTG_HS device configuration register</description> - <addressOffset>0x0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x02200000</resetValue> - <fields> - <field> - <name>DSPD</name> - <description>Device speed</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>NZLSOHSK</name> - <description>Nonzero-length status OUT handshake</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DAD</name> - <description>Device address</description> - <bitOffset>4</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>PFIVL</name> - <description>Periodic (micro)frame interval</description> - <bitOffset>11</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>PERSCHIVL</name> - <description>Periodic scheduling interval</description> - <bitOffset>24</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DCTL</name> - <displayName>OTG_HS_DCTL</displayName> - <description>OTG_HS device control register</description> - <addressOffset>0x4</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>RWUSIG</name> - <description>Remote wakeup signaling</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SDIS</name> - <description>Soft disconnect</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>GINSTS</name> - <description>Global IN NAK status</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>GONSTS</name> - <description>Global OUT NAK status</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TCTL</name> - <description>Test control</description> - <bitOffset>4</bitOffset> - <bitWidth>3</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SGINAK</name> - <description>Set global IN NAK</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CGINAK</name> - <description>Clear global IN NAK</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SGONAK</name> - <description>Set global OUT NAK</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>CGONAK</name> - <description>Clear global OUT NAK</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>POPRGDNE</name> - <description>Power-on programming done</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DSTS</name> - <displayName>OTG_HS_DSTS</displayName> - <description>OTG_HS device status register</description> - <addressOffset>0x8</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x00000010</resetValue> - <fields> - <field> - <name>SUSPSTS</name> - <description>Suspend status</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ENUMSPD</name> - <description>Enumerated speed</description> - <bitOffset>1</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>EERR</name> - <description>Erratic error</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FNSOF</name> - <description>Frame number of the received SOF</description> - <bitOffset>8</bitOffset> - <bitWidth>14</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPMSK</name> - <displayName>OTG_HS_DIEPMSK</displayName> - <description>OTG_HS device IN endpoint common interrupt mask register</description> - <addressOffset>0x10</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed interrupt mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDM</name> - <description>Endpoint disabled interrupt mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TOM</name> - <description>Timeout condition mask (nonisochronous endpoints)</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ITTXFEMSK</name> - <description>IN token received when TxFIFO empty mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>INEPNMM</name> - <description>IN token received with EP mismatch mask</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>INEPNEM</name> - <description>IN endpoint NAK effective mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXFURM</name> - <description>FIFO underrun mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BIM</name> - <description>BNA interrupt mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPMSK</name> - <displayName>OTG_HS_DOEPMSK</displayName> - <description>OTG_HS device OUT endpoint common interrupt mask register</description> - <addressOffset>0x14</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRCM</name> - <description>Transfer completed interrupt mask</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDM</name> - <description>Endpoint disabled interrupt mask</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUPM</name> - <description>SETUP phase done mask</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDM</name> - <description>OUT token received when endpoint disabled mask</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>B2BSTUP</name> - <description>Back-to-back SETUP packets received mask</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OPEM</name> - <description>OUT packet error mask</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BOIM</name> - <description>BNA interrupt mask</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DAINT</name> - <displayName>OTG_HS_DAINT</displayName> - <description>OTG_HS device all endpoints interrupt register</description> - <addressOffset>0x18</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>IEPINT</name> - <description>IN endpoint interrupt bits</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>OEPINT</name> - <description>OUT endpoint interrupt bits</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DAINTMSK</name> - <displayName>OTG_HS_DAINTMSK</displayName> - <description>OTG_HS all endpoints interrupt mask register</description> - <addressOffset>0x1C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>IEPM</name> - <description>IN EP interrupt mask bits</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - <field> - <name>OEPM</name> - <description>OUT EP interrupt mask bits</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DVBUSDIS</name> - <displayName>OTG_HS_DVBUSDIS</displayName> - <description>OTG_HS device VBUS discharge time register</description> - <addressOffset>0x28</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x000017D7</resetValue> - <fields> - <field> - <name>VBUSDT</name> - <description>Device VBUS discharge time</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DVBUSPULSE</name> - <displayName>OTG_HS_DVBUSPULSE</displayName> - <description>OTG_HS device VBUS pulsing time register</description> - <addressOffset>0x2C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x000005B8</resetValue> - <fields> - <field> - <name>DVBUSP</name> - <description>Device VBUS pulsing time</description> - <bitOffset>0</bitOffset> - <bitWidth>12</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DTHRCTL</name> - <displayName>OTG_HS_DTHRCTL</displayName> - <description>OTG_HS Device threshold control register</description> - <addressOffset>0x30</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>NONISOTHREN</name> - <description>Nonisochronous IN endpoints threshold enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ISOTHREN</name> - <description>ISO IN endpoint threshold enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TXTHRLEN</name> - <description>Transmit threshold length</description> - <bitOffset>2</bitOffset> - <bitWidth>9</bitWidth> - </field> - <field> - <name>RXTHREN</name> - <description>Receive threshold enable</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RXTHRLEN</name> - <description>Receive threshold length</description> - <bitOffset>17</bitOffset> - <bitWidth>9</bitWidth> - </field> - <field> - <name>ARPEN</name> - <description>Arbiter parking enable</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPEMPMSK</name> - <displayName>OTG_HS_DIEPEMPMSK</displayName> - <description>OTG_HS device IN endpoint FIFO empty interrupt mask register</description> - <addressOffset>0x34</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>INEPTXFEM</name> - <description>IN EP Tx FIFO empty interrupt mask bits</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DEACHINT</name> - <displayName>OTG_HS_DEACHINT</displayName> - <description>OTG_HS device each endpoint interrupt register</description> - <addressOffset>0x38</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>IEP1INT</name> - <description>IN endpoint 1interrupt bit</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OEP1INT</name> - <description>OUT endpoint 1 interrupt bit</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DEACHINTMSK</name> - <displayName>OTG_HS_DEACHINTMSK</displayName> - <description>OTG_HS device each endpoint interrupt register mask</description> - <addressOffset>0x3C</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>IEP1INTM</name> - <description>IN Endpoint 1 interrupt mask bit</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OEP1INTM</name> - <description>OUT Endpoint 1 interrupt mask bit</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPCTL0</name> - <displayName>OTG_HS_DIEPCTL0</displayName> - <description>OTG device endpoint-0 control register</description> - <addressOffset>0x100</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even/odd frame</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFNUM</name> - <description>TxFIFO number</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPCTL1</name> - <displayName>OTG_HS_DIEPCTL1</displayName> - <description>OTG device endpoint-1 control register</description> - <addressOffset>0x120</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even/odd frame</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFNUM</name> - <description>TxFIFO number</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPCTL2</name> - <displayName>OTG_HS_DIEPCTL2</displayName> - <description>OTG device endpoint-2 control register</description> - <addressOffset>0x140</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even/odd frame</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFNUM</name> - <description>TxFIFO number</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPCTL3</name> - <displayName>OTG_HS_DIEPCTL3</displayName> - <description>OTG device endpoint-3 control register</description> - <addressOffset>0x160</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even/odd frame</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFNUM</name> - <description>TxFIFO number</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPCTL4</name> - <displayName>OTG_HS_DIEPCTL4</displayName> - <description>OTG device endpoint-4 control register</description> - <addressOffset>0x180</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even/odd frame</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFNUM</name> - <description>TxFIFO number</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPCTL5</name> - <displayName>OTG_HS_DIEPCTL5</displayName> - <description>OTG device endpoint-5 control register</description> - <addressOffset>0x1A0</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even/odd frame</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFNUM</name> - <description>TxFIFO number</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPCTL6</name> - <displayName>OTG_HS_DIEPCTL6</displayName> - <description>OTG device endpoint-6 control register</description> - <addressOffset>0x1C0</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even/odd frame</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFNUM</name> - <description>TxFIFO number</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPCTL7</name> - <displayName>OTG_HS_DIEPCTL7</displayName> - <description>OTG device endpoint-7 control register</description> - <addressOffset>0x1E0</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even/odd frame</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFNUM</name> - <description>TxFIFO number</description> - <bitOffset>22</bitOffset> - <bitWidth>4</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPINT0</name> - <displayName>OTG_HS_DIEPINT0</displayName> - <description>OTG device endpoint-0 interrupt register</description> - <addressOffset>0x108</addressOffset> - <size>32</size> - <resetValue>0x00000080</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>Timeout condition</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>IN token received when TxFIFO is empty</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>INEPNE</name> - <description>IN endpoint NAK effective</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFE</name> - <description>Transmit FIFO empty</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TXFIFOUDRN</name> - <description>Transmit Fifo Underrun</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BNA</name> - <description>Buffer not available interrupt</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PKTDRPSTS</name> - <description>Packet dropped status</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BERR</name> - <description>Babble error interrupt</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAK</name> - <description>NAK interrupt</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPINT1</name> - <displayName>OTG_HS_DIEPINT1</displayName> - <description>OTG device endpoint-1 interrupt register</description> - <addressOffset>0x128</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>Timeout condition</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>IN token received when TxFIFO is empty</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>INEPNE</name> - <description>IN endpoint NAK effective</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFE</name> - <description>Transmit FIFO empty</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TXFIFOUDRN</name> - <description>Transmit Fifo Underrun</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BNA</name> - <description>Buffer not available interrupt</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PKTDRPSTS</name> - <description>Packet dropped status</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BERR</name> - <description>Babble error interrupt</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAK</name> - <description>NAK interrupt</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPINT2</name> - <displayName>OTG_HS_DIEPINT2</displayName> - <description>OTG device endpoint-2 interrupt register</description> - <addressOffset>0x148</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>Timeout condition</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>IN token received when TxFIFO is empty</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>INEPNE</name> - <description>IN endpoint NAK effective</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFE</name> - <description>Transmit FIFO empty</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TXFIFOUDRN</name> - <description>Transmit Fifo Underrun</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BNA</name> - <description>Buffer not available interrupt</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PKTDRPSTS</name> - <description>Packet dropped status</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BERR</name> - <description>Babble error interrupt</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAK</name> - <description>NAK interrupt</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPINT3</name> - <displayName>OTG_HS_DIEPINT3</displayName> - <description>OTG device endpoint-3 interrupt register</description> - <addressOffset>0x168</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>Timeout condition</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>IN token received when TxFIFO is empty</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>INEPNE</name> - <description>IN endpoint NAK effective</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFE</name> - <description>Transmit FIFO empty</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TXFIFOUDRN</name> - <description>Transmit Fifo Underrun</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BNA</name> - <description>Buffer not available interrupt</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PKTDRPSTS</name> - <description>Packet dropped status</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BERR</name> - <description>Babble error interrupt</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAK</name> - <description>NAK interrupt</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPINT4</name> - <displayName>OTG_HS_DIEPINT4</displayName> - <description>OTG device endpoint-4 interrupt register</description> - <addressOffset>0x188</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>Timeout condition</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>IN token received when TxFIFO is empty</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>INEPNE</name> - <description>IN endpoint NAK effective</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFE</name> - <description>Transmit FIFO empty</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TXFIFOUDRN</name> - <description>Transmit Fifo Underrun</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BNA</name> - <description>Buffer not available interrupt</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PKTDRPSTS</name> - <description>Packet dropped status</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BERR</name> - <description>Babble error interrupt</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAK</name> - <description>NAK interrupt</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPINT5</name> - <displayName>OTG_HS_DIEPINT5</displayName> - <description>OTG device endpoint-5 interrupt register</description> - <addressOffset>0x1A8</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>Timeout condition</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>IN token received when TxFIFO is empty</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>INEPNE</name> - <description>IN endpoint NAK effective</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFE</name> - <description>Transmit FIFO empty</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TXFIFOUDRN</name> - <description>Transmit Fifo Underrun</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BNA</name> - <description>Buffer not available interrupt</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PKTDRPSTS</name> - <description>Packet dropped status</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BERR</name> - <description>Babble error interrupt</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAK</name> - <description>NAK interrupt</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPINT6</name> - <displayName>OTG_HS_DIEPINT6</displayName> - <description>OTG device endpoint-6 interrupt register</description> - <addressOffset>0x1C8</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>Timeout condition</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>IN token received when TxFIFO is empty</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>INEPNE</name> - <description>IN endpoint NAK effective</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFE</name> - <description>Transmit FIFO empty</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TXFIFOUDRN</name> - <description>Transmit Fifo Underrun</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BNA</name> - <description>Buffer not available interrupt</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PKTDRPSTS</name> - <description>Packet dropped status</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BERR</name> - <description>Babble error interrupt</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAK</name> - <description>NAK interrupt</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPINT7</name> - <displayName>OTG_HS_DIEPINT7</displayName> - <description>OTG device endpoint-7 interrupt register</description> - <addressOffset>0x1E8</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TOC</name> - <description>Timeout condition</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>ITTXFE</name> - <description>IN token received when TxFIFO is empty</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>INEPNE</name> - <description>IN endpoint NAK effective</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>TXFE</name> - <description>Transmit FIFO empty</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>TXFIFOUDRN</name> - <description>Transmit Fifo Underrun</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BNA</name> - <description>Buffer not available interrupt</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>PKTDRPSTS</name> - <description>Packet dropped status</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>BERR</name> - <description>Babble error interrupt</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>NAK</name> - <description>NAK interrupt</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTSIZ0</name> - <displayName>OTG_HS_DIEPTSIZ0</displayName> - <description>OTG_HS device IN endpoint 0 transfer size register</description> - <addressOffset>0x110</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPDMA1</name> - <displayName>OTG_HS_DIEPDMA1</displayName> - <description>OTG_HS device endpoint-1 DMA address register</description> - <addressOffset>0x114</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPDMA2</name> - <displayName>OTG_HS_DIEPDMA2</displayName> - <description>OTG_HS device endpoint-2 DMA address register</description> - <addressOffset>0x134</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPDMA3</name> - <displayName>OTG_HS_DIEPDMA3</displayName> - <description>OTG_HS device endpoint-3 DMA address register</description> - <addressOffset>0x154</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPDMA4</name> - <displayName>OTG_HS_DIEPDMA4</displayName> - <description>OTG_HS device endpoint-4 DMA address register</description> - <addressOffset>0x174</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPDMA5</name> - <displayName>OTG_HS_DIEPDMA5</displayName> - <description>OTG_HS device endpoint-5 DMA address register</description> - <addressOffset>0x194</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>DMAADDR</name> - <description>DMA address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DTXFSTS0</name> - <displayName>OTG_HS_DTXFSTS0</displayName> - <description>OTG_HS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x118</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space avail</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DTXFSTS1</name> - <displayName>OTG_HS_DTXFSTS1</displayName> - <description>OTG_HS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x138</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space avail</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DTXFSTS2</name> - <displayName>OTG_HS_DTXFSTS2</displayName> - <description>OTG_HS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x158</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space avail</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DTXFSTS3</name> - <displayName>OTG_HS_DTXFSTS3</displayName> - <description>OTG_HS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x178</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space avail</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DTXFSTS4</name> - <displayName>OTG_HS_DTXFSTS4</displayName> - <description>OTG_HS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x198</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space avail</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DTXFSTS5</name> - <displayName>OTG_HS_DTXFSTS5</displayName> - <description>OTG_HS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x1B8</addressOffset> - <size>32</size> - <access>read-only</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space avail</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTSIZ1</name> - <displayName>OTG_HS_DIEPTSIZ1</displayName> - <description>OTG_HS device endpoint transfer size register</description> - <addressOffset>0x130</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multi count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTSIZ2</name> - <displayName>OTG_HS_DIEPTSIZ2</displayName> - <description>OTG_HS device endpoint transfer size register</description> - <addressOffset>0x150</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multi count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTSIZ3</name> - <displayName>OTG_HS_DIEPTSIZ3</displayName> - <description>OTG_HS device endpoint transfer size register</description> - <addressOffset>0x170</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multi count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTSIZ4</name> - <displayName>OTG_HS_DIEPTSIZ4</displayName> - <description>OTG_HS device endpoint transfer size register</description> - <addressOffset>0x190</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multi count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTSIZ5</name> - <displayName>OTG_HS_DIEPTSIZ5</displayName> - <description>OTG_HS device endpoint transfer size register</description> - <addressOffset>0x1B0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multi count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPCTL0</name> - <displayName>OTG_HS_DOEPCTL0</displayName> - <description>OTG_HS device control OUT endpoint 0 control register</description> - <addressOffset>0x300</addressOffset> - <size>32</size> - <resetValue>0x00008000</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-only</access> - </field> - <field> - <name>SNPM</name> - <description>Snoop mode</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPCTL1</name> - <displayName>OTG_HS_DOEPCTL1</displayName> - <description>OTG device endpoint-1 control register</description> - <addressOffset>0x320</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even odd frame/Endpoint data PID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>Snoop mode</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID/Set even frame</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPCTL2</name> - <displayName>OTG_HS_DOEPCTL2</displayName> - <description>OTG device endpoint-2 control register</description> - <addressOffset>0x340</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even odd frame/Endpoint data PID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>Snoop mode</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID/Set even frame</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPCTL3</name> - <displayName>OTG_HS_DOEPCTL3</displayName> - <description>OTG device endpoint-3 control register</description> - <addressOffset>0x360</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even odd frame/Endpoint data PID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>Snoop mode</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID/Set even frame</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPINT0</name> - <displayName>OTG_HS_DOEPINT0</displayName> - <description>OTG_HS device endpoint-0 interrupt register</description> - <addressOffset>0x308</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x00000080</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>SETUP phase done</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OUT token received when endpoint disabled</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>B2BSTUP</name> - <description>Back-to-back SETUP packets received</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>NYET interrupt</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPINT1</name> - <displayName>OTG_HS_DOEPINT1</displayName> - <description>OTG_HS device endpoint-1 interrupt register</description> - <addressOffset>0x328</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>SETUP phase done</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OUT token received when endpoint disabled</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>B2BSTUP</name> - <description>Back-to-back SETUP packets received</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>NYET interrupt</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPINT2</name> - <displayName>OTG_HS_DOEPINT2</displayName> - <description>OTG_HS device endpoint-2 interrupt register</description> - <addressOffset>0x348</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>SETUP phase done</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OUT token received when endpoint disabled</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>B2BSTUP</name> - <description>Back-to-back SETUP packets received</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>NYET interrupt</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPINT3</name> - <displayName>OTG_HS_DOEPINT3</displayName> - <description>OTG_HS device endpoint-3 interrupt register</description> - <addressOffset>0x368</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>SETUP phase done</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OUT token received when endpoint disabled</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>B2BSTUP</name> - <description>Back-to-back SETUP packets received</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>NYET interrupt</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPINT4</name> - <displayName>OTG_HS_DOEPINT4</displayName> - <description>OTG_HS device endpoint-4 interrupt register</description> - <addressOffset>0x388</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>SETUP phase done</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OUT token received when endpoint disabled</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>B2BSTUP</name> - <description>Back-to-back SETUP packets received</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>NYET interrupt</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPINT5</name> - <displayName>OTG_HS_DOEPINT5</displayName> - <description>OTG_HS device endpoint-5 interrupt register</description> - <addressOffset>0x3A8</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>SETUP phase done</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OUT token received when endpoint disabled</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>B2BSTUP</name> - <description>Back-to-back SETUP packets received</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>NYET interrupt</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPINT6</name> - <displayName>OTG_HS_DOEPINT6</displayName> - <description>OTG_HS device endpoint-6 interrupt register</description> - <addressOffset>0x3C8</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>SETUP phase done</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OUT token received when endpoint disabled</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>B2BSTUP</name> - <description>Back-to-back SETUP packets received</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>NYET interrupt</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPINT7</name> - <displayName>OTG_HS_DOEPINT7</displayName> - <description>OTG_HS device endpoint-7 interrupt register</description> - <addressOffset>0x3E8</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRC</name> - <description>Transfer completed interrupt</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPDISD</name> - <description>Endpoint disabled interrupt</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUP</name> - <description>SETUP phase done</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OTEPDIS</name> - <description>OUT token received when endpoint disabled</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>B2BSTUP</name> - <description>Back-to-back SETUP packets received</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NYET</name> - <description>NYET interrupt</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPTSIZ0</name> - <displayName>OTG_HS_DOEPTSIZ0</displayName> - <description>OTG_HS device endpoint-0 transfer size register</description> - <addressOffset>0x310</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STUPCNT</name> - <description>SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPTSIZ1</name> - <displayName>OTG_HS_DOEPTSIZ1</displayName> - <description>OTG_HS device endpoint-1 transfer size register</description> - <addressOffset>0x330</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>RXDPID_STUPCNT</name> - <description>Received data PID/SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPTSIZ2</name> - <displayName>OTG_HS_DOEPTSIZ2</displayName> - <description>OTG_HS device endpoint-2 transfer size register</description> - <addressOffset>0x350</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>RXDPID_STUPCNT</name> - <description>Received data PID/SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPTSIZ3</name> - <displayName>OTG_HS_DOEPTSIZ3</displayName> - <description>OTG_HS device endpoint-3 transfer size register</description> - <addressOffset>0x370</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>RXDPID_STUPCNT</name> - <description>Received data PID/SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPTSIZ4</name> - <displayName>OTG_HS_DOEPTSIZ4</displayName> - <description>OTG_HS device endpoint-4 transfer size register</description> - <addressOffset>0x390</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>RXDPID_STUPCNT</name> - <description>Received data PID/SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTSIZ6</name> - <displayName>OTG_HS_DIEPTSIZ6</displayName> - <description>OTG_HS device endpoint transfer size register</description> - <alternateRegister>OTG_HS_DIEPCTL5</alternateRegister> - <addressOffset>0x1A0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multi count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DTXFSTS6</name> - <displayName>OTG_HS_DTXFSTS6</displayName> - <description>OTG_HS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x1A4</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space avail</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DIEPTSIZ7</name> - <displayName>OTG_HS_DIEPTSIZ7</displayName> - <description>OTG_HS device endpoint transfer size register</description> - <alternateRegister>OTG_HS_DIEPINT5</alternateRegister> - <addressOffset>0x1A8</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>MCNT</name> - <description>Multi count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DTXFSTS7</name> - <displayName>OTG_HS_DTXFSTS7</displayName> - <description>OTG_HS device IN endpoint transmit FIFO status register</description> - <addressOffset>0x1AC</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>INEPTFSAV</name> - <description>IN endpoint TxFIFO space avail</description> - <bitOffset>0</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPCTL4</name> - <displayName>OTG_HS_DOEPCTL4</displayName> - <description>OTG device endpoint-4 control register</description> - <addressOffset>0x380</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even odd frame/Endpoint data PID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>Snoop mode</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID/Set even frame</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPCTL5</name> - <displayName>OTG_HS_DOEPCTL5</displayName> - <description>OTG device endpoint-5 control register</description> - <addressOffset>0x3A0</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even odd frame/Endpoint data PID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>Snoop mode</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID/Set even frame</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPCTL6</name> - <displayName>OTG_HS_DOEPCTL6</displayName> - <description>OTG device endpoint-6 control register</description> - <addressOffset>0x3C0</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even odd frame/Endpoint data PID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>Snoop mode</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID/Set even frame</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPCTL7</name> - <displayName>OTG_HS_DOEPCTL7</displayName> - <description>OTG device endpoint-7 control register</description> - <addressOffset>0x3E0</addressOffset> - <size>32</size> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>MPSIZ</name> - <description>Maximum packet size</description> - <bitOffset>0</bitOffset> - <bitWidth>11</bitWidth> - <access>read-write</access> - </field> - <field> - <name>USBAEP</name> - <description>USB active endpoint</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EONUM_DPID</name> - <description>Even odd frame/Endpoint data PID</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>NAKSTS</name> - <description>NAK status</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - <access>read-only</access> - </field> - <field> - <name>EPTYP</name> - <description>Endpoint type</description> - <bitOffset>18</bitOffset> - <bitWidth>2</bitWidth> - <access>read-write</access> - </field> - <field> - <name>SNPM</name> - <description>Snoop mode</description> - <bitOffset>20</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>Stall</name> - <description>STALL handshake</description> - <bitOffset>21</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>CNAK</name> - <description>Clear NAK</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SNAK</name> - <description>Set NAK</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SD0PID_SEVNFRM</name> - <description>Set DATA0 PID/Set even frame</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>SODDFRM</name> - <description>Set odd frame</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - <access>write-only</access> - </field> - <field> - <name>EPDIS</name> - <description>Endpoint disable</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - <field> - <name>EPENA</name> - <description>Endpoint enable</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - <access>read-write</access> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPTSIZ5</name> - <displayName>OTG_HS_DOEPTSIZ5</displayName> - <description>OTG_HS device endpoint-5 transfer size register</description> - <addressOffset>0x3B0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>RXDPID_STUPCNT</name> - <description>Received data PID/SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPTSIZ6</name> - <displayName>OTG_HS_DOEPTSIZ6</displayName> - <description>OTG_HS device endpoint-6 transfer size register</description> - <addressOffset>0x3D0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>RXDPID_STUPCNT</name> - <description>Received data PID/SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - <register> - <name>OTG_HS_DOEPTSIZ7</name> - <displayName>OTG_HS_DOEPTSIZ7</displayName> - <description>OTG_HS device endpoint-7 transfer size register</description> - <addressOffset>0x3F0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>XFRSIZ</name> - <description>Transfer size</description> - <bitOffset>0</bitOffset> - <bitWidth>19</bitWidth> - </field> - <field> - <name>PKTCNT</name> - <description>Packet count</description> - <bitOffset>19</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>RXDPID_STUPCNT</name> - <description>Received data PID/SETUP packet count</description> - <bitOffset>29</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>OTG_HS_PWRCLK</name> - <description>USB on the go high speed</description> - <groupName>USB_OTG_HS</groupName> - <baseAddress>0x40040E00</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x3F200</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>OTG_HS_EP1_OUT</name> - <description>USB On The Go HS End Point 1 Out global - interrupt</description> - <value>74</value> - </interrupt> - <interrupt> - <name>OTG_HS_EP1_IN</name> - <description>USB On The Go HS End Point 1 In global - interrupt</description> - <value>75</value> - </interrupt> - <interrupt> - <name>OTG_HS_WKUP</name> - <description>USB On The Go HS Wakeup through EXTI - interrupt</description> - <value>76</value> - </interrupt> - <interrupt> - <name>OTG_HS</name> - <description>USB On The Go HS global - interrupt</description> - <value>77</value> - </interrupt> - <registers> - <register> - <name>OTG_HS_PCGCR</name> - <displayName>OTG_HS_PCGCR</displayName> - <description>Power and clock gating control register</description> - <addressOffset>0x0</addressOffset> - <size>32</size> - <access>read-write</access> - <resetValue>0x0</resetValue> - <fields> - <field> - <name>STPPCLK</name> - <description>Stop PHY clock</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>GATEHCLK</name> - <description>Gate HCLK</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PHYSUSP</name> - <description>PHY suspended</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>NVIC</name> - <description>Nested Vectored Interrupt Controller</description> - <groupName>NVIC</groupName> - <baseAddress>0xE000E100</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x369</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>ISER0</name> - <displayName>ISER0</displayName> - <description>Interrupt Set-Enable Register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SETENA</name> - <description>SETENA</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ISER1</name> - <displayName>ISER1</displayName> - <description>Interrupt Set-Enable Register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SETENA</name> - <description>SETENA</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ISER2</name> - <displayName>ISER2</displayName> - <description>Interrupt Set-Enable Register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SETENA</name> - <description>SETENA</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ICER0</name> - <displayName>ICER0</displayName> - <description>Interrupt Clear-Enable Register</description> - <addressOffset>0x80</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CLRENA</name> - <description>CLRENA</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ICER1</name> - <displayName>ICER1</displayName> - <description>Interrupt Clear-Enable Register</description> - <addressOffset>0x84</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CLRENA</name> - <description>CLRENA</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ICER2</name> - <displayName>ICER2</displayName> - <description>Interrupt Clear-Enable Register</description> - <addressOffset>0x88</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CLRENA</name> - <description>CLRENA</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ISPR0</name> - <displayName>ISPR0</displayName> - <description>Interrupt Set-Pending Register</description> - <addressOffset>0x100</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SETPEND</name> - <description>SETPEND</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ISPR1</name> - <displayName>ISPR1</displayName> - <description>Interrupt Set-Pending Register</description> - <addressOffset>0x104</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SETPEND</name> - <description>SETPEND</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ISPR2</name> - <displayName>ISPR2</displayName> - <description>Interrupt Set-Pending Register</description> - <addressOffset>0x108</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SETPEND</name> - <description>SETPEND</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ICPR0</name> - <displayName>ICPR0</displayName> - <description>Interrupt Clear-Pending Register</description> - <addressOffset>0x180</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CLRPEND</name> - <description>CLRPEND</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ICPR1</name> - <displayName>ICPR1</displayName> - <description>Interrupt Clear-Pending Register</description> - <addressOffset>0x184</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CLRPEND</name> - <description>CLRPEND</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>ICPR2</name> - <displayName>ICPR2</displayName> - <description>Interrupt Clear-Pending Register</description> - <addressOffset>0x188</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>CLRPEND</name> - <description>CLRPEND</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>IABR0</name> - <displayName>IABR0</displayName> - <description>Interrupt Active Bit Register</description> - <addressOffset>0x200</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ACTIVE</name> - <description>ACTIVE</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>IABR1</name> - <displayName>IABR1</displayName> - <description>Interrupt Active Bit Register</description> - <addressOffset>0x204</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ACTIVE</name> - <description>ACTIVE</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>IABR2</name> - <displayName>IABR2</displayName> - <description>Interrupt Active Bit Register</description> - <addressOffset>0x208</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ACTIVE</name> - <description>ACTIVE</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR0</name> - <displayName>IPR0</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x300</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR1</name> - <displayName>IPR1</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x304</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR2</name> - <displayName>IPR2</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x308</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR3</name> - <displayName>IPR3</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x30C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR4</name> - <displayName>IPR4</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x310</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR5</name> - <displayName>IPR5</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x314</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR6</name> - <displayName>IPR6</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x318</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR7</name> - <displayName>IPR7</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x31C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR8</name> - <displayName>IPR8</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x320</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR9</name> - <displayName>IPR9</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x324</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR10</name> - <displayName>IPR10</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x328</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR11</name> - <displayName>IPR11</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x32C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR12</name> - <displayName>IPR12</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x330</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR13</name> - <displayName>IPR13</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x334</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR14</name> - <displayName>IPR14</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x338</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR15</name> - <displayName>IPR15</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x33C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR16</name> - <displayName>IPR16</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x340</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR17</name> - <displayName>IPR17</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x344</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR18</name> - <displayName>IPR18</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x348</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR19</name> - <displayName>IPR19</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x34C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR20</name> - <displayName>IPR20</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x350</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR21</name> - <displayName>IPR21</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x354</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR22</name> - <displayName>IPR22</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x358</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR23</name> - <displayName>IPR23</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x35C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR24</name> - <displayName>IPR24</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x360</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>IPR25</name> - <displayName>IPR25</displayName> - <description>Interrupt Priority Register</description> - <addressOffset>0x364</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IPR_N0</name> - <description>IPR_N0</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N1</name> - <description>IPR_N1</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N2</name> - <description>IPR_N2</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IPR_N3</name> - <description>IPR_N3</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>MPU</name> - <description>Memory protection unit</description> - <groupName>MPU</groupName> - <baseAddress>0xE000ED90</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x15</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>MPU_TYPER</name> - <displayName>MPU_TYPER</displayName> - <description>MPU type register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0X00000800</resetValue> - <fields> - <field> - <name>SEPARATE</name> - <description>Separate flag</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DREGION</name> - <description>Number of MPU data regions</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>IREGION</name> - <description>Number of MPU instruction regions</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>MPU_CTRL</name> - <displayName>MPU_CTRL</displayName> - <description>MPU control register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>ENABLE</name> - <description>Enables the MPU</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HFNMIENA</name> - <description>Enables the operation of MPU during hard fault</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PRIVDEFENA</name> - <description>Enable priviliged software access to default memory map</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MPU_RNR</name> - <displayName>MPU_RNR</displayName> - <description>MPU region number register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>REGION</name> - <description>MPU region</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>MPU_RBAR</name> - <displayName>MPU_RBAR</displayName> - <description>MPU region base address register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>REGION</name> - <description>MPU region field</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>VALID</name> - <description>MPU region number valid</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ADDR</name> - <description>Region base address field</description> - <bitOffset>5</bitOffset> - <bitWidth>27</bitWidth> - </field> - </fields> - </register> - <register> - <name>MPU_RASR</name> - <displayName>MPU_RASR</displayName> - <description>MPU region attribute and size register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>ENABLE</name> - <description>Region enable bit.</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SIZE</name> - <description>Size of the MPU protection region</description> - <bitOffset>1</bitOffset> - <bitWidth>5</bitWidth> - </field> - <field> - <name>SRD</name> - <description>Subregion disable bits</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>B</name> - <description>memory attribute</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>C</name> - <description>memory attribute</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>S</name> - <description>Shareable memory attribute</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TEX</name> - <description>memory attribute</description> - <bitOffset>19</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>AP</name> - <description>Access permission</description> - <bitOffset>24</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>XN</name> - <description>Instruction access disable bit</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>STK</name> - <description>SysTick timer</description> - <groupName>STK</groupName> - <baseAddress>0xE000E010</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x11</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>CSR</name> - <displayName>CSR</displayName> - <description>SysTick control and status register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>ENABLE</name> - <description>Counter enable</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>TICKINT</name> - <description>SysTick exception request enable</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>CLKSOURCE</name> - <description>Clock source selection</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>COUNTFLAG</name> - <description>COUNTFLAG</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>RVR</name> - <displayName>RVR</displayName> - <description>SysTick reload value register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>RELOAD</name> - <description>RELOAD value</description> - <bitOffset>0</bitOffset> - <bitWidth>24</bitWidth> - </field> - </fields> - </register> - <register> - <name>CVR</name> - <displayName>CVR</displayName> - <description>SysTick current value register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>CURRENT</name> - <description>Current counter value</description> - <bitOffset>0</bitOffset> - <bitWidth>24</bitWidth> - </field> - </fields> - </register> - <register> - <name>CALIB</name> - <displayName>CALIB</displayName> - <description>SysTick calibration value register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>TENMS</name> - <description>Calibration value</description> - <bitOffset>0</bitOffset> - <bitWidth>24</bitWidth> - </field> - <field> - <name>SKEW</name> - <description>SKEW flag: Indicates whether the TENMS value is exact</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NOREF</name> - <description>NOREF flag. Reads as zero</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>NVIC_STIR</name> - <description>Nested vectored interrupt controller</description> - <groupName>NVIC</groupName> - <baseAddress>0xE000EF00</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x5</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>STIR</name> - <displayName>STIR</displayName> - <description>Software trigger interrupt register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>INTID</name> - <description>Software generated interrupt ID</description> - <bitOffset>0</bitOffset> - <bitWidth>9</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>FPU_CPACR</name> - <description>Floating point unit CPACR</description> - <groupName>FPU</groupName> - <baseAddress>0xE000ED88</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x5</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>CPACR</name> - <displayName>CPACR</displayName> - <description>Coprocessor access control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x0000000</resetValue> - <fields> - <field> - <name>CP</name> - <description>CP</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>SCB_ACTRL</name> - <description>System control block ACTLR</description> - <groupName>SCB</groupName> - <baseAddress>0xE000E008</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x5</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>ACTRL</name> - <displayName>ACTRL</displayName> - <description>Auxiliary control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>DISFOLD</name> - <description>DISFOLD</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FPEXCODIS</name> - <description>FPEXCODIS</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DISRAMODE</name> - <description>DISRAMODE</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DISITMATBFLUSH</name> - <description>DISITMATBFLUSH</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>FPU</name> - <description>Floting point unit</description> - <groupName>FPU</groupName> - <baseAddress>0xE000EF34</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0xD</size> - <usage>registers</usage> - </addressBlock> - <interrupt> - <name>FPU</name> - <description>Floating point unit interrupt</description> - <value>81</value> - </interrupt> - <registers> - <register> - <name>FPCCR</name> - <displayName>FPCCR</displayName> - <description>Floating-point context control register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>LSPACT</name> - <description>LSPACT</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USER</name> - <description>USER</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>THREAD</name> - <description>THREAD</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>HFRDY</name> - <description>HFRDY</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MMRDY</name> - <description>MMRDY</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BFRDY</name> - <description>BFRDY</description> - <bitOffset>6</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MONRDY</name> - <description>MONRDY</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSPEN</name> - <description>LSPEN</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ASPEN</name> - <description>ASPEN</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>FPCAR</name> - <displayName>FPCAR</displayName> - <description>Floating-point context address register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ADDRESS</name> - <description>Location of unpopulated floating-point</description> - <bitOffset>3</bitOffset> - <bitWidth>29</bitWidth> - </field> - </fields> - </register> - <register> - <name>FPSCR</name> - <displayName>FPSCR</displayName> - <description>Floating-point status control register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IOC</name> - <description>Invalid operation cumulative exception bit</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DZC</name> - <description>Division by zero cumulative exception bit.</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>OFC</name> - <description>Overflow cumulative exception bit</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UFC</name> - <description>Underflow cumulative exception bit</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IXC</name> - <description>Inexact cumulative exception bit</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IDC</name> - <description>Input denormal cumulative exception bit.</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RMode</name> - <description>Rounding Mode control field</description> - <bitOffset>22</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>FZ</name> - <description>Flush-to-zero mode control bit:</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DN</name> - <description>Default NaN mode control bit</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHP</name> - <description>Alternative half-precision control bit</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>V</name> - <description>Overflow condition code flag</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>C</name> - <description>Carry condition code flag</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>Z</name> - <description>Zero condition code flag</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>N</name> - <description>Negative condition code flag</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>SCB</name> - <description>System control block</description> - <groupName>SCB</groupName> - <baseAddress>0xE000ED00</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x41</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>CPUID</name> - <displayName>CPUID</displayName> - <description>CPUID base register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x410FC241</resetValue> - <fields> - <field> - <name>Revision</name> - <description>Revision number</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>PartNo</name> - <description>Part number of the processor</description> - <bitOffset>4</bitOffset> - <bitWidth>12</bitWidth> - </field> - <field> - <name>Constant</name> - <description>Reads as 0xF</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>Variant</name> - <description>Variant number</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>Implementer</name> - <description>Implementer code</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>ICSR</name> - <displayName>ICSR</displayName> - <description>Interrupt control and state register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>VECTACTIVE</name> - <description>Active vector</description> - <bitOffset>0</bitOffset> - <bitWidth>9</bitWidth> - </field> - <field> - <name>RETTOBASE</name> - <description>Return to base level</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VECTPENDING</name> - <description>Pending vector</description> - <bitOffset>12</bitOffset> - <bitWidth>7</bitWidth> - </field> - <field> - <name>ISRPENDING</name> - <description>Interrupt pending flag</description> - <bitOffset>22</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PENDSTCLR</name> - <description>SysTick exception clear-pending bit</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PENDSTSET</name> - <description>SysTick exception set-pending bit</description> - <bitOffset>26</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PENDSVCLR</name> - <description>PendSV clear-pending bit</description> - <bitOffset>27</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PENDSVSET</name> - <description>PendSV set-pending bit</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NMIPENDSET</name> - <description>NMI set-pending bit.</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>VTOR</name> - <displayName>VTOR</displayName> - <description>Vector table offset register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>TBLOFF</name> - <description>Vector table base offset field</description> - <bitOffset>9</bitOffset> - <bitWidth>21</bitWidth> - </field> - </fields> - </register> - <register> - <name>AIRCR</name> - <displayName>AIRCR</displayName> - <description>Application interrupt and reset control register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>VECTRESET</name> - <description>VECTRESET</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VECTCLRACTIVE</name> - <description>VECTCLRACTIVE</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SYSRESETREQ</name> - <description>SYSRESETREQ</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PRIGROUP</name> - <description>PRIGROUP</description> - <bitOffset>8</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>ENDIANESS</name> - <description>ENDIANESS</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>VECTKEYSTAT</name> - <description>Register key</description> - <bitOffset>16</bitOffset> - <bitWidth>16</bitWidth> - </field> - </fields> - </register> - <register> - <name>SCR</name> - <displayName>SCR</displayName> - <description>System control register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>SLEEPONEXIT</name> - <description>SLEEPONEXIT</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SLEEPDEEP</name> - <description>SLEEPDEEP</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SEVEONPEND</name> - <description>Send Event on Pending bit</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCR</name> - <displayName>CCR</displayName> - <description>Configuration and control register</description> - <addressOffset>0x14</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>NONBASETHRDENA</name> - <description>Configures how the processor enters Thread mode</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USERSETMPEND</name> - <description>USERSETMPEND</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UNALIGN__TRP</name> - <description>UNALIGN_ TRP</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DIV_0_TRP</name> - <description>DIV_0_TRP</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BFHFNMIGN</name> - <description>BFHFNMIGN</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STKALIGN</name> - <description>STKALIGN</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DC</name> - <description>DC</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IC</name> - <description>IC</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BP</name> - <description>BP</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>SHPR1</name> - <displayName>SHPR1</displayName> - <description>System handler priority registers</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PRI_4</name> - <description>Priority of system handler 4</description> - <bitOffset>0</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>PRI_5</name> - <description>Priority of system handler 5</description> - <bitOffset>8</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>PRI_6</name> - <description>Priority of system handler 6</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>SHPR2</name> - <displayName>SHPR2</displayName> - <description>System handler priority registers</description> - <addressOffset>0x1C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PRI_11</name> - <description>Priority of system handler 11</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>SHPR3</name> - <displayName>SHPR3</displayName> - <description>System handler priority registers</description> - <addressOffset>0x20</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>PRI_14</name> - <description>Priority of system handler 14</description> - <bitOffset>16</bitOffset> - <bitWidth>8</bitWidth> - </field> - <field> - <name>PRI_15</name> - <description>Priority of system handler 15</description> - <bitOffset>24</bitOffset> - <bitWidth>8</bitWidth> - </field> - </fields> - </register> - <register> - <name>SHCRS</name> - <displayName>SHCRS</displayName> - <description>System handler control and state register</description> - <addressOffset>0x24</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>MEMFAULTACT</name> - <description>Memory management fault exception active bit</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BUSFAULTACT</name> - <description>Bus fault exception active bit</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USGFAULTACT</name> - <description>Usage fault exception active bit</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SVCALLACT</name> - <description>SVC call active bit</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MONITORACT</name> - <description>Debug monitor active bit</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PENDSVACT</name> - <description>PendSV exception active bit</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SYSTICKACT</name> - <description>SysTick exception active bit</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USGFAULTPENDED</name> - <description>Usage fault exception pending bit</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MEMFAULTPENDED</name> - <description>Memory management fault exception pending bit</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BUSFAULTPENDED</name> - <description>Bus fault exception pending bit</description> - <bitOffset>14</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SVCALLPENDED</name> - <description>SVC call pending bit</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MEMFAULTENA</name> - <description>Memory management fault enable bit</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BUSFAULTENA</name> - <description>Bus fault enable bit</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>USGFAULTENA</name> - <description>Usage fault enable bit</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>CFSR_UFSR_BFSR_MMFSR</name> - <displayName>CFSR_UFSR_BFSR_MMFSR</displayName> - <description>Configurable fault status register</description> - <addressOffset>0x28</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>IACCVIOL</name> - <description>IACCVIOL</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DACCVIOL</name> - <description>DACCVIOL</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MUNSTKERR</name> - <description>MUNSTKERR</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MSTKERR</name> - <description>MSTKERR</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MLSPERR</name> - <description>MLSPERR</description> - <bitOffset>5</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>MMARVALID</name> - <description>MMARVALID</description> - <bitOffset>7</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IBUSERR</name> - <description>Instruction bus error</description> - <bitOffset>8</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>PRECISERR</name> - <description>Precise data bus error</description> - <bitOffset>9</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>IMPRECISERR</name> - <description>Imprecise data bus error</description> - <bitOffset>10</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UNSTKERR</name> - <description>Bus fault on unstacking for a return from exception</description> - <bitOffset>11</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>STKERR</name> - <description>Bus fault on stacking for exception entry</description> - <bitOffset>12</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>LSPERR</name> - <description>Bus fault on floating-point lazy state preservation</description> - <bitOffset>13</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>BFARVALID</name> - <description>Bus Fault Address Register (BFAR) valid flag</description> - <bitOffset>15</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UNDEFINSTR</name> - <description>Undefined instruction usage fault</description> - <bitOffset>16</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>INVSTATE</name> - <description>Invalid state usage fault</description> - <bitOffset>17</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>INVPC</name> - <description>Invalid PC load usage fault</description> - <bitOffset>18</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>NOCP</name> - <description>No coprocessor usage fault.</description> - <bitOffset>19</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>UNALIGNED</name> - <description>Unaligned access usage fault</description> - <bitOffset>24</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DIVBYZERO</name> - <description>Divide by zero usage fault</description> - <bitOffset>25</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>HFSR</name> - <displayName>HFSR</displayName> - <description>Hard fault status register</description> - <addressOffset>0x2C</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>VECTTBL</name> - <description>Vector table hard fault</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FORCED</name> - <description>Forced hard fault</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DEBUG_VT</name> - <description>Reserved for Debug use</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>MMFAR</name> - <displayName>MMFAR</displayName> - <description>Memory management fault address register</description> - <addressOffset>0x34</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ADDRESS</name> - <description>Memory management fault address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - <register> - <name>BFAR</name> - <displayName>BFAR</displayName> - <description>Bus fault address register</description> - <addressOffset>0x38</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0x00000000</resetValue> - <fields> - <field> - <name>ADDRESS</name> - <description>Bus fault address</description> - <bitOffset>0</bitOffset> - <bitWidth>32</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>PF</name> - <description>Processor features</description> - <groupName>PF</groupName> - <baseAddress>0xE000ED78</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0xD</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>CLIDR</name> - <displayName>CLIDR</displayName> - <description>Cache Level ID register</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0x09000003</resetValue> - <fields> - <field> - <name>CL1</name> - <description>CL1</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>CL2</name> - <description>CL2</description> - <bitOffset>3</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>CL3</name> - <description>CL3</description> - <bitOffset>6</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>CL4</name> - <description>CL4</description> - <bitOffset>9</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>CL5</name> - <description>CL5</description> - <bitOffset>12</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>CL6</name> - <description>CL6</description> - <bitOffset>15</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>CL7</name> - <description>CL7</description> - <bitOffset>18</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>LoUIS</name> - <description>LoUIS</description> - <bitOffset>21</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>LoC</name> - <description>LoC</description> - <bitOffset>24</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>LoU</name> - <description>LoU</description> - <bitOffset>27</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>CTR</name> - <displayName>CTR</displayName> - <description>Cache Type register</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0X8303C003</resetValue> - <fields> - <field> - <name>_IminLine</name> - <description>IminLine</description> - <bitOffset>0</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>DMinLine</name> - <description>DMinLine</description> - <bitOffset>16</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>ERG</name> - <description>ERG</description> - <bitOffset>20</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>CWG</name> - <description>CWG</description> - <bitOffset>24</bitOffset> - <bitWidth>4</bitWidth> - </field> - <field> - <name>Format</name> - <description>Format</description> - <bitOffset>29</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>CCSIDR</name> - <displayName>CCSIDR</displayName> - <description>Cache Size ID register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-only</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>LineSize</name> - <description>LineSize</description> - <bitOffset>0</bitOffset> - <bitWidth>3</bitWidth> - </field> - <field> - <name>Associativity</name> - <description>Associativity</description> - <bitOffset>3</bitOffset> - <bitWidth>10</bitWidth> - </field> - <field> - <name>NumSets</name> - <description>NumSets</description> - <bitOffset>13</bitOffset> - <bitWidth>15</bitWidth> - </field> - <field> - <name>WA</name> - <description>WA</description> - <bitOffset>28</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RA</name> - <description>RA</description> - <bitOffset>29</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WB</name> - <description>WB</description> - <bitOffset>30</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>WT</name> - <description>WT</description> - <bitOffset>31</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - <peripheral> - <name>AC</name> - <description>Access control</description> - <groupName>AC</groupName> - <baseAddress>0xE000EF90</baseAddress> - <addressBlock> - <offset>0x0</offset> - <size>0x1D</size> - <usage>registers</usage> - </addressBlock> - <registers> - <register> - <name>ITCMCR</name> - <displayName>ITCMCR</displayName> - <description>Instruction and Data Tightly-Coupled Memory Control Registers</description> - <addressOffset>0x0</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>EN</name> - <description>EN</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RMW</name> - <description>RMW</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RETEN</name> - <description>RETEN</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SZ</name> - <description>SZ</description> - <bitOffset>3</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>DTCMCR</name> - <displayName>DTCMCR</displayName> - <description>Instruction and Data Tightly-Coupled Memory Control Registers</description> - <addressOffset>0x4</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>EN</name> - <description>EN</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RMW</name> - <description>RMW</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>RETEN</name> - <description>RETEN</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SZ</name> - <description>SZ</description> - <bitOffset>3</bitOffset> - <bitWidth>4</bitWidth> - </field> - </fields> - </register> - <register> - <name>AHBPCR</name> - <displayName>AHBPCR</displayName> - <description>AHBP Control register</description> - <addressOffset>0x8</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>EN</name> - <description>EN</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>SZ</name> - <description>SZ</description> - <bitOffset>1</bitOffset> - <bitWidth>3</bitWidth> - </field> - </fields> - </register> - <register> - <name>CACR</name> - <displayName>CACR</displayName> - <description>Auxiliary Cache Control register</description> - <addressOffset>0xC</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>SIWT</name> - <description>SIWT</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>ECCEN</name> - <description>ECCEN</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>FORCEWT</name> - <description>FORCEWT</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - </fields> - </register> - <register> - <name>AHBSCR</name> - <displayName>AHBSCR</displayName> - <description>AHB Slave Control register</description> - <addressOffset>0x10</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>CTL</name> - <description>CTL</description> - <bitOffset>0</bitOffset> - <bitWidth>2</bitWidth> - </field> - <field> - <name>TPRI</name> - <description>TPRI</description> - <bitOffset>2</bitOffset> - <bitWidth>9</bitWidth> - </field> - <field> - <name>INITCOUNT</name> - <description>INITCOUNT</description> - <bitOffset>11</bitOffset> - <bitWidth>5</bitWidth> - </field> - </fields> - </register> - <register> - <name>ABFSR</name> - <displayName>ABFSR</displayName> - <description>Auxiliary Bus Fault Status register</description> - <addressOffset>0x18</addressOffset> - <size>0x20</size> - <access>read-write</access> - <resetValue>0X00000000</resetValue> - <fields> - <field> - <name>ITCM</name> - <description>ITCM</description> - <bitOffset>0</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>DTCM</name> - <description>DTCM</description> - <bitOffset>1</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AHBP</name> - <description>AHBP</description> - <bitOffset>2</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AXIM</name> - <description>AXIM</description> - <bitOffset>3</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>EPPB</name> - <description>EPPB</description> - <bitOffset>4</bitOffset> - <bitWidth>1</bitWidth> - </field> - <field> - <name>AXIMTYPE</name> - <description>AXIMTYPE</description> - <bitOffset>8</bitOffset> - <bitWidth>2</bitWidth> - </field> - </fields> - </register> - </registers> - </peripheral> - </peripherals> -</device> diff --git a/old_examples/entrypoints/anakin/anakin-accel.cpp b/old_examples/entrypoints/anakin/anakin-accel.cpp deleted file mode 100644 index 9d22fa1e89177b093c2aa30dad997e8e5e53e191..0000000000000000000000000000000000000000 --- a/old_examples/entrypoints/anakin/anakin-accel.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Authors: Alain Carlucci, Matteo Piazzolla - * - * 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 <Common.h> -#include <drivers/BusTemplate.h> -#include <sensors/MAX21105.h> -#include <sensors/MPU9250.h> -#include <sensors/iNemo.h> - -using namespace miosix; - -#define SENSOR(NAME, CSPORT, CSPIN) \ - typedef Gpio<GPIO##CSPORT##_BASE, CSPIN> CS_##NAME; \ - typedef ProtocolSPI<busSPI1, CS_##NAME> spi##NAME - -#define READ(NAME, ID) spi##NAME::read(ID) -#define TEST(NAME, REG, REF) test_and_print(#NAME, REG, READ(NAME, REG), REF) - -#define ACCEL_ENDLESS_TEST - -// SPI1 -typedef Gpio<GPIOA_BASE, 5> GpioSck; -typedef Gpio<GPIOA_BASE, 6> GpioMiso; -typedef Gpio<GPIOA_BASE, 7> GpioMosi; -typedef BusSPI<1, GpioMosi, GpioMiso, GpioSck> busSPI1; - -// clang-format off -// Here's the list of SPI sensors that should be tested -// | NAME | CSPORT | CSPIN | -SENSOR(MPU9250, D, 13); -SENSOR(FXAS21002, G, 10); -SENSOR(MAX21105, E, 2); -SENSOR(MAX31856, B, 11); -SENSOR(LSM9DS0_G, G, 9); -SENSOR(LSM9DS0_A, G, 11); -SENSOR(LPS331AP, E, 4); -SENSOR(MS580301BA07, B, 10); -// clang-format on - -static const char mOK[] = "OK"; -static const char mKO[] = "FAIL"; - -int num_ok = 0, num_fail = 0; - -typedef MAX21105<spiMAX21105> max_t; -typedef iNEMOLSM9DS0<spiLSM9DS0_G, spiLSM9DS0_A> lsm_t; -typedef MPU9250<spiMPU9250> mpu_t; -typedef struct -{ - Vec3 v[3]; -} vec_t; - -Vec3 calcMid(vec_t data[5], int j) -{ - Vec3 ret; - - for (int i = 0; i < 5; i++) - ret += Vec3(data[i].v[j]); - - ret *= 1.0 / 5.0; - - return ret; -} - -void calibrate(const vec_t &data[10]) -{ - for (const auto &i : data) - { - for (int j = 0; j < 3; j++) - { - i->v[j].normalize(); - i->v[j] *= EARTH_GRAVITY; - } - } -} - -int main() -{ - vec_t data[5]; - vector<AccelSensor *> accels; - accels.push_back( - new lsm_t(lsm_t::ACC_FS_2G, lsm_t::GYRO_FS_245, lsm_t::COMPASS_FS_2)); - accels.push_back(new mpu_t(mpu_t::ACC_FS_2G, mpu_t::GYRO_FS_250)); - accels.push_back(new max_t(max_t::ACC_FS_2G, max_t::GYRO_FS_250)); - - uint16_t cnt = 0; - - for (auto jj : accels) - jj->init(); - - printf("Wait..\n"); - Thread::sleep(2000); - printf("Calibrating..\n"); - - vec_t caa[10]; - - for (int i = 0; i < 10; i++) - { - for (int j = 0; j < 3; j++) - { - AccelSensor *a = accels[j]; - a->updateParams(); - caa[i].v[j] = a->getAccel(); - } - printf("%02d/10...\r", i + 1); - Thread::sleep(20); - } - - calibrate(caa); - - while (true) - { - printf("%05d ", cnt); - for (int j = 0; j < 3; j++) - { - AccelSensor *i = accels[j]; - i->updateParams(); - data[cnt % 5].v[j] = i->getAccel(); - - Vec3 mid = adjust(data, j); - printf("[%+5.2f,%+5.2f,%+5.2f] ", mid.getX(), mid.getY(), - mid.getZ()); - } - printf(" \r"); - cnt++; - Thread::sleep(10); - } -} diff --git a/old_examples/entrypoints/anakin/anakin-demo-board.cpp b/old_examples/entrypoints/anakin/anakin-demo-board.cpp deleted file mode 100644 index a51bc42a4f8e26ba524224d0399ae31054a08e44..0000000000000000000000000000000000000000 --- a/old_examples/entrypoints/anakin/anakin-demo-board.cpp +++ /dev/null @@ -1,494 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Author: Alain Carlucci - * - * 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 <Common.h> -#include <drivers/BusTemplate.h> -#include <drivers/Leds.h> -#include <drivers/ethernet/UdpManager.h> -#include <drivers/stm32f2_f4_i2c.h> -#include <math/Matrix.h> -#include <math/Vec3.h> -#include <sensors/FXAS21002.h> -#include <sensors/LPS331AP.h> -#include <sensors/MAX21105.h> -#include <sensors/MAX31856.h> -#include <sensors/MPL3115.h> -#include <sensors/MPU9250.h> -#include <sensors/MS580301BA07.h> -#include <sensors/Si7021.h> -#include <sensors/iNemo.h> - -using namespace miosix; -using std::vector; - -//#define ENABLE_ETHERNET -constexpr uint32_t lp_alpha = 250; -constexpr uint32_t hp_beta = 700; - -#define SENSOR(NAME, CSPORT, CSPIN) \ - typedef Gpio<GPIO##CSPORT##_BASE, CSPIN> CS_##NAME; \ - typedef ProtocolSPI<busSPI1, CS_##NAME> spi##NAME - -// SPI1 -typedef Gpio<GPIOA_BASE, 5> GpioSck; -typedef Gpio<GPIOA_BASE, 6> GpioMiso; -typedef Gpio<GPIOA_BASE, 7> GpioMosi; -typedef BusSPI<1, GpioMosi, GpioMiso, GpioSck> busSPI1; - -// clang-format off -// Here's the list of SPI sensors that should be tested -// | NAME | CSPORT | CSPIN | -SENSOR(MPU9250, D, 13); -SENSOR(FXAS21002, G, 10); -SENSOR(MAX21105, E, 2); -SENSOR(MAX31856, B, 11); -SENSOR(LSM9DS0_G, G, 9); -SENSOR(LSM9DS0_A, G, 11); -SENSOR(LPS331AP, E, 4); -SENSOR(MS580301BA07, B, 10); -// clang-format on - -#pragma pack(1) -struct pkt_t -{ - float accel[3]; - float gyro[3]; - float compass[3]; - float temperature; - float humidity; - float pressure; - float orientation[3]; -}; -#pragma pack() - -// Please don't judge me for these lines -#define PUSH(a, b, x) \ - do \ - { \ - sensor_t zz = a, b; \ - sensors.push_back(zz); \ - x.push_back(zz); \ - } while (0) -#define PUSH2(a, b, x, y) \ - do \ - { \ - sensor_t zz = a, b; \ - PUSH(a, b, x); \ - y.push_back(zz); \ - } while (0) -#define PUSH3(a, b, x, y, z) \ - do \ - { \ - sensor_t zz = a, b; \ - PUSH2(a, b, x, y); \ - z.push_back(zz); \ - } while (0) -#define PP(name, func) \ - do \ - { \ - printf("[Sensor] " name " started\n"); \ - func; \ - } while (0) - -class DemoBoard : public Singleton<DemoBoard> -{ - friend class Singleton<DemoBoard>; - -public: - void init() {} - - void update() - { - for (const sensor_t& s : sensors) - (s.sensor)->onSimpleUpdate(); - } - -// Read a float value -#define RFLO(x, y, k, z, w) \ - vector<x> y() const \ - { \ - vector<x> j; \ - for (const sensor_t& i : w) \ - { \ - j.push_back(*((dynamic_cast<z*>(i.sensor))->k())); \ - } \ - return j; \ - } - -// Read a Vec3 value and multiply it by the sensor transform matrix -#define RVEC(x, y, k, z, w) \ - vector<x> y() const \ - { \ - vector<x> j; \ - for (const sensor_t& i : w) \ - { \ - x vec = *(i.transform) * *((dynamic_cast<z*>(i.sensor))->k()); \ - j.push_back(vec); \ - } \ - return j; \ - } - // clang-format off - RVEC(Vec3, getAccel, accelDataPtr, AccelSensor, accel) - RVEC(Vec3, getRotation, gyroDataPtr, GyroSensor, gyro) - RVEC(Vec3, getCompass, compassDataPtr, CompassSensor, compass) - RFLO(float, getTemperature, tempDataPtr, TemperatureSensor, temps) - RFLO(float, getHumidity, humidityDataPtr,HumiditySensor, humidity) - RFLO(float, getPressure, pressureDataPtr,PressureSensor, pressure) - // clang-format on - -#undef RFLO -#undef RVEC -private: - DemoBoard() - { - static const float v_inemo[16] = {0, 1, 0, 0, -1, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 1}; - static const float v_mpu[16] = {-1, 0, 0, 0, 0, -1, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 1}; - static const Mat4 idMat = Mat4(); - static const Mat4 iNemoMat = Mat4(v_inemo); - static const Mat4 mpuMat = Mat4(v_mpu); - - // ----- FXAS21102 ----- - typedef FXAS21002<spiFXAS21002> fx_t; - fx_t* fx = new fx_t(fx_t::DPS500); - if (fx->init()) - PP("FXAS21102", PUSH({fx, &idMat}, gyro)); - else - printf("Cannot start FXAS21102\n"); - - // ----- iNEMO ----- - typedef iNEMOLSM9DS0<spiLSM9DS0_G, spiLSM9DS0_A> pd_inemo_t; - pd_inemo_t* nemo = - new pd_inemo_t(pd_inemo_t::ACC_FS_2G, pd_inemo_t::GYRO_FS_245, - pd_inemo_t::COMPASS_FS_2); - if (nemo->init()) - PP("iNemo", PUSH3({nemo, &iNemoMat}, accel, gyro, compass)); - else - printf("Cannot start iNemo\n"); - - // ----- LPS331AP ----- - typedef LPS331AP<spiLPS331AP> lps_t; - lps_t* lps = new lps_t(lps_t::SS_25HZ); - if (lps->init()) - PP("LPS331AP", PUSH2({lps, &idMat}, pressure, temps)); - else - printf("Cannot start LPS\n"); - - // ----- MAX21105 ----- - typedef MAX21105<spiMAX21105> max21_t; - max21_t* max21 = new max21_t(max21_t::ACC_FS_2G, max21_t::GYRO_FS_500); - if (max21->init()) - PP("MAX21105", PUSH3({max21, &idMat}, accel, gyro, temps)); - else - printf("Cannot start MAX21105\n"); - - // ----- MPL3115 ----- - sensors::sda::mode(Mode::ALTERNATE_OD); - sensors::sda::alternateFunction(4); - sensors::scl::mode(Mode::ALTERNATE_OD); - sensors::scl::alternateFunction(4); - - typedef MPL3115<ProtocolI2C<miosix::I2C1Driver> > mpl_t; - mpl_t* mpl = new mpl_t(); - if (mpl->init()) - PP("MPL3115", PUSH2({mpl, &idMat}, pressure, temps)); - else - printf("Cannot start MPL3115\n"); - - // ----- MPU9250 ----- - typedef MPU9250<spiMPU9250> mpu_t; - mpu_t* mpu = new mpu_t(mpu_t::ACC_FS_2G, mpu_t::GYRO_FS_250); - if (mpu->init()) - PP("MPU9250", PUSH3({mpu, &mpuMat}, accel, compass, temps)); - else - printf("Cannot start MPU9250\n"); - - // ----- MS580301BA07 ----- - typedef MS580301BA07<spiMS580301BA07> ms5_t; - ms5_t* ms5 = new ms5_t(); - if (ms5->init()) - PP("MS580301BA07", PUSH2({ms5, &idMat}, pressure, temps)); - else - printf("Cannot start MS580\n"); - - // ----- Si7021 ----- - typedef Si7021<ProtocolI2C<miosix::I2C1Driver> > si_t; - si_t* si = new si_t(); - if (si->init()) - PP("Si7021", PUSH2({si, &idMat}, humidity, temps)); - else - printf("Cannot start Si7021\n"); - - printf("Loaded %d sensors\n", sensors.size()); - printf(" + %d gyro sensors\n", gyro.size()); - printf(" + %d accel sensors\n", accel.size()); - printf(" + %d compass sensors\n", compass.size()); - printf(" + %d temperature sensors\n", temps.size()); - printf(" + %d humidity sensors\n", humidity.size()); - printf(" + %d pressure sensors\n", pressure.size()); - } - - typedef struct - { - Sensor* sensor; - const Mat4* transform; - } sensor_t; - - vector<sensor_t> sensors; - vector<sensor_t> accel; - vector<sensor_t> gyro; - vector<sensor_t> compass; - vector<sensor_t> temps; - vector<sensor_t> humidity; - vector<sensor_t> pressure; -#define sDemoBoard DemoBoard::getInstance() -}; - -Vec3 averageVec(const vector<Vec3>& in) -{ - Vec3 out; - for (const Vec3& i : in) - out += i; - - if (in.size() > 0) - out *= 1.0f / (float)in.size(); - return out; -} - -float averageFloat(const vector<float>& in) -{ - float out = 0; - for (const float& i : in) - out += i; - if (in.size() > 0) - out *= 1.0f / (float)in.size(); - return out; -} - -template <uint32_t alpha> -class LowPassPolicy -{ -protected: - static float process(uint16_t id, float in) - { - if (id >= storage.size()) - storage.resize(id + 1, 0.0); - - storage[id] += (alpha / 1000.0f) * (in - storage[id]); - return storage[id]; - } - static vector<float> storage; -}; - -template <uint32_t beta> -class HighPassPolicy -{ -protected: - static float process(uint16_t id, float in) - { - if (id >= storage.size()) - { - storage.resize(id + 1, 0.0); - unfiltered.resize(id + 1, 0.0); - } - - storage[id] = (beta / 1000.0f) * (storage[id] + in - unfiltered[id]); - unfiltered[id] = in; - return storage[id]; - } - static vector<float> unfiltered; - static vector<float> storage; -}; - -template <typename FilterPolicy> -class BandFilter : private FilterPolicy -{ -public: - /* For each call, increment id of 3 * data.size() to avoid overlapping */ - static void process(uint16_t id, vector<Vec3>& data) - { - for (size_t i = 0; i < data.size(); i++) - process(id + i * 3, data[i]); - } - - /* For each call, increment id of data.size() to avoid overlapping */ - static void process(uint16_t id, vector<float>& data) - { - for (size_t i = 0; i < data.size(); i++) - FilterPolicy::process(id + i, data[i]); - } - - static void printStorage() - { - printf("Lowpass: ["); - for (const float& f : FilterPolicy::storage) - printf("%5.2f ", f); - printf("]\n"); - } - - static void process(uint16_t id, Vec3& data) - { - data.setX(FilterPolicy::process(id + 0, data.getX())); - data.setY(FilterPolicy::process(id + 1, data.getY())); - data.setZ(FilterPolicy::process(id + 2, data.getZ())); - } -}; - -template <uint32_t alpha> -vector<float> LowPassPolicy<alpha>::storage; -template <uint32_t beta> -vector<float> HighPassPolicy<beta>::storage; -template <uint32_t beta> -vector<float> HighPassPolicy<beta>::unfiltered; - -#define VECARRAY_FILTER(id, array) \ - do \ - { \ - BandFilter<LowPassPolicy<lp_alpha> >::process(id, array); \ - id += array.size() * 3; \ - } while (0) - -#define FLOATARRAY_FILTER(id, array) \ - do \ - { \ - BandFilter<LowPassPolicy<lp_alpha> >::process(id, array); \ - id += array.size(); \ - } while (0) - -#define COPYVEC(arr, v) \ - do \ - { \ - arr[0] = v.getX(); \ - arr[1] = v.getY(); \ - arr[2] = v.getZ(); \ - } while (0) - -int main() -{ - Thread::sleep(100); - sDemoBoard->init(); - - // Ethernet setup -#ifdef ENABLE_ETHERNET - const uint8_t ipAddr[] = {192, 168, 1, 30}; // Device's IP address - const uint8_t mask[] = {255, 255, 255, 0}; // Subnet mask - - const uint8_t destIp[] = {192, 168, 1, 4}; // Destination IP address - const uint16_t destPort = 1234; // Destination port - - printf("[Ethernet] Starting...\n"); - W5200& eth = W5200::instance(); - eth.setIpAddress(ipAddr); - eth.setSubnetMask(mask); - printf("[Ethernet] Got addr\n"); - - // This socket listens on UDP port 2020 - // UdpManager::getInstance().setTxPort(2020); - printf("[Ethernet] Socket ready\n"); -#endif - - Vec3 orientation; - Vec3 angularvel; - int ignore_ctr = 100; - int led_status = 0x200; - - while (1) - { - sDemoBoard->update(); - Thread::sleep(20); - - vector<Vec3> accels = sDemoBoard->getAccel(); - vector<Vec3> rots = sDemoBoard->getRotation(); - vector<Vec3> compsv = sDemoBoard->getCompass(); - vector<float> temps = sDemoBoard->getTemperature(); - vector<float> humid = sDemoBoard->getHumidity(); - vector<float> press = sDemoBoard->getPressure(); - - uint16_t id = 0; - - VECARRAY_FILTER(id, accels); - VECARRAY_FILTER(id, rots); - BandFilter<HighPassPolicy<hp_beta> >::process(0, rots); - VECARRAY_FILTER(id, compsv); - FLOATARRAY_FILTER(id, temps); - FLOATARRAY_FILTER(id, humid); - FLOATARRAY_FILTER(id, press); - - Vec3 acc = averageVec(accels); - Vec3 rot = averageVec(rots); - Vec3 comps = averageVec(compsv); - float tempm = averageFloat(temps); - float humim = averageFloat(humid); - float presm = averageFloat(press); - - pkt_t packet; - COPYVEC(packet.accel, acc); - COPYVEC(packet.gyro, rot); - COPYVEC(packet.compass, comps); - COPYVEC(packet.orientation, orientation); - packet.temperature = tempm; - packet.humidity = humim; - packet.pressure = presm; - - Leds::set(led_status); - if (ignore_ctr == 0) - { - led_status <<= 1; - if (led_status == 0x400) - led_status = 0x04; - angularvel += rot * 0.2f; - orientation += angularvel * 0.2f; - BandFilter<HighPassPolicy<999> >::process(4, orientation); - } - else - { - led_status ^= 0x200; - --ignore_ctr; - if (ignore_ctr == 0) - led_status = 0x04; - } - -#ifdef ENABLE_ETHERNET - sock.sendPacketTo(destIp, destPort, &packet, sizeof(packet)); -#endif - - printf( - "[%5.2f %5.2f %5.2f] " - "[%5.2f %5.2f %5.2f] " - "[%d %5.2f %5.2f %5.2f] " - "[%5.2f %5.2f %5.2f] " - "[%5.2f %5.2f %5.2f] \r", - acc.getX(), acc.getY(), acc.getZ(), rot.getX(), rot.getY(), - rot.getZ(), ignore_ctr, orientation.getX(), orientation.getY(), - orientation.getZ(), comps.getX(), comps.getY(), comps.getZ(), tempm, - humim, presm); - - fflush(stdout); - } - - // Bye. - while (1) - { - Thread::sleep(1000); - } -} diff --git a/old_examples/entrypoints/anakin/anakin-test-canbus.cpp b/old_examples/entrypoints/anakin/anakin-test-canbus.cpp deleted file mode 100644 index e744cbe23e8776572eaa7b6d852601422c61ff52..0000000000000000000000000000000000000000 --- a/old_examples/entrypoints/anakin/anakin-test-canbus.cpp +++ /dev/null @@ -1,104 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Authors: Alain Carlucci, Matteo Piazzolla - * - * 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 <Common.h> -#include <drivers/BusTemplate.h> -#include <drivers/canbus/CanManager.h> -#include <drivers/canbus/CanSocket.h> -#include <drivers/canbus/CanUtils.h> - -using namespace miosix; - -#define DO_ENDLESS_CANBUS_TEST -#ifndef BOARDNAME -#define BOARDNAME "UNKNOWN" -#endif - -static const uint8_t CAN_MYID = 0x49; - -void banner() -{ - printf("****** CAN BUS TEST ROM ******\n"); - printf("My ID: '%s'\n", BOARDNAME); - printf("\n"); -} - -void *test_canbus_recv(void *arg) -{ - printf("[CAN RECV] Thread started\n"); - - CanBus *bus = static_cast<CanBus *>(arg); - CanSocket socket(CAN_MYID); - char buf[16] = {0}; - - printf("[CAN RECV] Opening socket\n"); - socket.open(bus); - - printf("[CAN RECV] Waiting for packets\n"); - while (true) - { - memset(buf, 0, sizeof(buf)); - socket.receive(buf, 16); - printf("[CAN RECV]: %s\n", buf); - } - socket.close(); - return NULL; -} - -void test_canbus_send(CanBus *bus) -{ - printf("[CAN SEND] Starting test...\n"); - while (true) - { - getchar(); - leds::led0::high(); - const char *pkt = BOARDNAME; - bus->send(CAN_MYID, (const uint8_t *)pkt, strlen(pkt)); - Thread::sleep(250); - leds::led0::low(); - } -} - -int main() -{ - /* CAN1 = define di ST */ - CanManager c(CAN1); - - banner(); - - /* */ - canbus_init_t st0 = { - CAN1, Mode::ALTERNATE, 9, {CAN1_RX0_IRQn, CAN1_RX1_IRQn}}; - c.addBus<GPIOA_BASE, 11, 12>(st0); - - canbus_init_t st1 = { - CAN2, Mode::ALTERNATE, 9, {CAN2_RX0_IRQn, CAN2_RX1_IRQn}}; - c.addBus<GPIOB_BASE, 12, 13>(st1); - - // Receive on CAN1 - Thread::create(test_canbus_recv, 1024, 1, static_cast<void *>(c.getBus(0)), - Thread::JOINABLE); - // Send on CAN2 - test_canbus_send(c.getBus(1)); - - return 0; -} diff --git a/old_examples/entrypoints/anakin/anakin-test-dma.cpp b/old_examples/entrypoints/anakin/anakin-test-dma.cpp deleted file mode 100644 index 03815abc7f272b3fea0c471fe82b00508d6650a4..0000000000000000000000000000000000000000 --- a/old_examples/entrypoints/anakin/anakin-test-dma.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* Copyright (c) 2015-2017 Skyward Experimental Rocketry - * Author: Alain Carlucci - * - * 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 <Common.h> -#include <boards/AnakinBoard.h> -#include <diagnostic/CpuMeter.h> -#include <diagnostic/Log.h> -#include <drivers/Leds.h> - -using namespace miosix; - -void fifoQueueSz(void* arg) -{ - const SPIDriver& spi = SPIDriver::instance(); - int tx_accum = 0, rx_accum = 0, sz_ctr = 0; - int qsize_accum = 0; - - sLog->logString("Thread started"); - - while (1) - { - DMAFIFOStatus tx = spi.getTxFIFOStatus(); - DMAFIFOStatus rx = spi.getRxFIFOStatus(); - - if (tx > -1 && rx > -1) - { - tx_accum += tx; - rx_accum += rx; - qsize_accum += sLog->getLogQueueSize(); - if (++sz_ctr == 100) - { - float tx1 = tx_accum / (float)(DFS_100 - DFS_EE + 1) * 255.0f; - float rx1 = rx_accum / (float)(DFS_100 - DFS_EE + 1) * 255.0f; - float qsz = qsize_accum / 100.0f * 255.0f; - tx_accum = rx_accum = sz_ctr = qsize_accum = 0; - sLog->logLimitedInt(17, 0, 255, tx1); - sLog->logLimitedInt(18, 0, 255, rx1); - sLog->logUInt32(19, spi.getFIFOFaultCtr()); - sLog->logUInt32(20, averageCpuUtilization()); - sLog->logLimitedInt(21, 0, 255, qsz); - } - } - Thread::sleep(1); - } -} - -int main() -{ - sLog->start(); - printf("\n"); - Leds::set(0); - Log::getInstance(); - sBoard->init(); - - const std::vector<SingleSensor>& data = sBoard->debugGetSensors(); - int ctr = 0; - - Thread::create(fifoQueueSz, 1024); - while (1) - { - for (const auto& s : data) - { - switch (s.data) - { - case DATA_VEC3: - sLog->logSensorVec3(s.sensor, *(Vec3*)s.value); - break; - case DATA_FLOAT: - sLog->logSensorFloat(s.sensor, *(float*)s.value); - break; - default: - break; - } - } - - Thread::sleep(100); - } - - return 0; -} diff --git a/old_examples/entrypoints/anakin/anakin-test-suite.cpp b/old_examples/entrypoints/anakin/anakin-test-suite.cpp deleted file mode 100644 index 3499646a6d6eb3706432ce5ddd517343fa0dcd60..0000000000000000000000000000000000000000 --- a/old_examples/entrypoints/anakin/anakin-test-suite.cpp +++ /dev/null @@ -1,188 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Authors: Alain Carlucci, Matteo Piazzolla - * - * 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 <Common.h> -#include <drivers/BusTemplate.h> -#include <sensors/FXAS21002.h> -#include <sensors/MAX21105.h> -#include <sensors/MPU9250.h> -#include <sensors/MS580301BA07.h> -//#include <sensors/Si7021.h> - -using namespace miosix; - -#define SENSOR(NAME, CSPORT, CSPIN) \ - typedef Gpio<GPIO##CSPORT##_BASE, CSPIN> CS_##NAME; \ - typedef ProtocolSPI<busSPI1, CS_##NAME> spi##NAME - -#define READ(NAME, ID) spi##NAME::read(ID) -#define TEST(NAME, REG, REF) test_and_print(#NAME, REG, READ(NAME, REG), REF) - -#define ACCEL_ENDLESS_TEST - -// SPI1 -typedef Gpio<GPIOA_BASE, 5> GpioSck; -typedef Gpio<GPIOA_BASE, 6> GpioMiso; -typedef Gpio<GPIOA_BASE, 7> GpioMosi; -typedef BusSPI<1, GpioMosi, GpioMiso, GpioSck> busSPI1; - -// clang-format off -// Here's the list of SPI sensors that should be tested -// | NAME | CSPORT | CSPIN | -SENSOR(MPU9250, D, 13); -SENSOR(FXAS21002, G, 10); -SENSOR(MAX21105, E, 2); -SENSOR(MAX31856, B, 11); -SENSOR(LSM9DS0_G, G, 9); -SENSOR(LSM9DS0_A, G, 11); -SENSOR(LPS331AP, E, 4); -SENSOR(MS580301BA07, B, 10); -// clang-format on - -static const char mOK[] = "OK"; -static const char mKO[] = "FAIL"; - -int num_ok = 0, num_fail = 0; - -void banner() -{ - printf( - "----------------------------------------------------------------------" - "------\n" - "d888888b d88888b .d8888. d888888b .d8888. db db d888888b d888888b " - "d88888b\n" - "`~~88~~' 88' 88' YP `~~88~~' 88' YP 88 88 `88' `~~88~~' " - "88' \n" - " 88 88ooooo `8bo. 88 `8bo. 88 88 88 88 " - "88ooooo\n" - " 88 88~~~~~ `Y8b. 88 `Y8b. 88 88 88 88 " - "88~~~~~\n" - " 88 88. db 8D 88 db 8D 88b d88 .88. 88 " - "88. \n" - " YP Y88888P `8888Y' YP `8888Y' ~Y8888P' Y888888P YP " - "Y88888P\n" - "----------------------------------------------------------------------" - "------\n" - "\n"); -} - -void test_and_print(const char* name, uint8_t reg, uint8_t test, - uint8_t reference) -{ - if (test == reference) - ++num_ok; - else - ++num_fail; - printf("[%13s] [REG 0x%02x]: 0x%02x -> [%s]\n", name, reg, test, - (test == reference) ? mOK : mKO); -} - -void assert_true(const char* name, const char* func, bool value) -{ - if (value) - ++num_ok; - else - ++num_fail; - - printf("[%13s] [FUNC %9s] -> [%s]\n", name, func, (value) ? mOK : mKO); -} - -void test_max31856() -{ - // Check if a bunch of register have the reference value - TEST(MAX31856, 0x00, 0x00); // config 0 - TEST(MAX31856, 0x01, 0x03); // config 1 - TEST(MAX31856, 0x02, 0xFF); // mask - TEST(MAX31856, 0x03, 0x7F); // hi fault - TEST(MAX31856, 0x04, 0xc0); // lo fault - TEST(MAX31856, 0x05, 0x7f); // lol - TEST(MAX31856, 0x0F, 0x00); // fault status reg -} - -void test_altimeter() -{ - MS580301BA07<spiMS580301BA07> altiMS580; - - // Read and check different const registers - TEST(MS580301BA07, 0xA4, READ(MS580301BA07, 0xA4)); - TEST(MS580301BA07, 0xAA, READ(MS580301BA07, 0xAA)); - TEST(MS580301BA07, 0xAC, READ(MS580301BA07, 0xAC)); - assert_true("MS580301BA07", "init()", altiMS580.init()); -} - -int main() -{ - MAX21105<spiMAX21105> max21(MAX21105<spiMAX21105>::ACC_FS_2G, - MAX21105<spiMAX21105>::GYRO_FS_500); - - banner(); - // Pausa per lasciare il tempo ai sensori di accendersi - Thread::sleep(100); - - printf("Polling sensors...\n"); - - // clang-format off - // First check: compare sensors WHO_AM_I against the reference value - TEST(MPU9250, 0x75, 0x71); - TEST(FXAS21002, 0x0c, 0xd7); - TEST(MAX21105, 0x20, 0xb4); - TEST(LSM9DS0_G, 0x0f, 0xd4); - TEST(LSM9DS0_A, 0x0f, 0x49); - TEST(LPS331AP, 0x0f, 0xBB); - // clang-format on - - test_max31856(); - test_altimeter(); - - assert_true("MAX21105", "init()", max21.init()); - - printf("---------------------\n"); - printf( - "NUM TEST OK: %5d\n" - "NUM TEST FAIL:%5d\n\n", - num_ok, num_fail); - -#ifdef ACCEL_ENDLESS_TEST - uint16_t cnt = 0; - const Vec3* a = max21.accelDataPtr(); - const Vec3* g = max21.gyroDataPtr(); - const float* temp = max21.tempDataPtr(); - while (true) - { - max21.onSimpleUpdate(); - - printf( - "%05u[ACC %+5.2f,%+5.2f,%+5.2f] " - "[GYR %+5.2f,%+5.2f,%+5.2f] " - "[TMP %+5.2fC] \r", - (uint16_t)(++cnt), a->getX(), a->getY(), a->getZ(), g->getX(), - g->getY(), g->getZ(), *temp); - Thread::sleep(10); - } -#endif - - // Bye. - while (1) - { - Thread::sleep(1000); - } -} diff --git a/old_examples/entrypoints/anakin/canbus-test.cpp b/old_examples/entrypoints/anakin/canbus-test.cpp deleted file mode 100644 index 32c28396328d7505c5bf75e342e94d0daf0d6aad..0000000000000000000000000000000000000000 --- a/old_examples/entrypoints/anakin/canbus-test.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Authors: Alain Carlucci, Matteo Piazzolla - * - * 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 <Common.h> -#include <drivers/canbus/CanManager.h> -#include <drivers/canbus/CanSocket.h> -#include <drivers/canbus/CanUtils.h> -#include <sensors/MPU9250.h> - -using namespace std; -using namespace miosix; - -#define CAN_PACKETID 0x49 - -int main() -{ - CanManager c(CAN1); - - canbus_init_t st = { - CAN1, Mode::ALTERNATE, 9, {CAN1_RX0_IRQn, CAN1_RX1_IRQn}}; - - c.addBus<GPIOA_BASE, 11, 12>(st); - // canbus_init_t st2= { - // CAN2, Mode::ALTERNATE, 9, {CAN2_RX0_IRQn,CAN2_RX1_IRQn} - //}; - // c.addBus<GPIOB_BASE, 5, 6>(st2); - - CanBus *bus = c.getBus(0); - CanSocket socket(CAN_PACKETID); - char buf[64] = {0}; - socket.open(bus); - - printf("*** Ready ***\n"); - - while (1) - { - const char *pkt = "TestMSG"; - bus->send(CAN_PACKETID, (const uint8_t *)pkt, strlen(pkt)); - socket.receive(buf, 64); - printf("Recv pkt: '%s'\n", buf); - Thread::sleep(250); - } - - socket.close(); -} diff --git a/old_examples/entrypoints/anakin/dma-lowlevel-test.cpp b/old_examples/entrypoints/anakin/dma-lowlevel-test.cpp deleted file mode 100644 index 9baf3ebdb95572bcc3afe9ed4910ede05c3a60db..0000000000000000000000000000000000000000 --- a/old_examples/entrypoints/anakin/dma-lowlevel-test.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (c) 2015-2017 Skyward Experimental Rocketry - * Author: Federico Terraneo - * - * 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 <drivers/spi/SensorSpi.h> -#include <sensors/FXAS21002.h> -#include <sensors/LPS331AP.h> -#include <sensors/MAX21105.h> -#include <sensors/MPU9250.h> -#include <sensors/MS580301BA07.h> -#include <sensors/SensorSampling.h> -#include <sensors/iNemo.h> - -using namespace miosix; - -typedef Gpio<GPIOA_BASE, 5> GpioSck; -typedef Gpio<GPIOA_BASE, 6> GpioMiso; -typedef Gpio<GPIOA_BASE, 7> GpioMosi; -typedef BusSPI<1, GpioMosi, GpioMiso, GpioSck> busSPI1; - -typedef ProtocolSPI<busSPI1, Gpio<GPIOD_BASE, 13>> spiMPU9250; -typedef ProtocolSPI<busSPI1, Gpio<GPIOG_BASE, 11>> spiINEMOA; -typedef ProtocolSPI<busSPI1, Gpio<GPIOG_BASE, 9>> spiINEMOG; - -typedef MPU9250<spiMPU9250> mpu_t; -typedef iNEMOLSM9DS0<spiINEMOG, spiINEMOA> inemo_t; - -int main() -{ - puts("\n\n---"); - spiMPU9250::init(); - spiINEMOA::init(); - spiINEMOG::init(); - auto& spi = SPIDriver::instance(); - - inemo_t inemo(inemo_t::ACC_FS_16G, inemo_t::GYRO_FS_245, - inemo_t::COMPASS_FS_2); - - if (inemo.init() == false) - { - puts("init failed"); - } - - auto req = inemo.buildDMARequest(); - auto sample = [&]() - { - if (spi.transaction(req) == false) - puts("DMA error"); - for (auto& r : req) - { - inemo.onDMAUpdate(r); - printf("ID: %d --> ", r.id()); - auto& resp = r.readResponseFromPeripheral(); - memDump(resp.data(), resp.size()); - } - }; - - for (int i = 0; i < 2; i++) - { - Thread::sleep(20); - sample(); - } - - for (;;) - { - getchar(); - sample(); - } -} diff --git a/old_examples/entrypoints/anakin/test-busfault.cpp b/old_examples/entrypoints/anakin/test-busfault.cpp deleted file mode 100644 index db743d9c73afd3b1234f576965bb78167a3b7af3..0000000000000000000000000000000000000000 --- a/old_examples/entrypoints/anakin/test-busfault.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (c) 2015-2017 Skyward Experimental Rocketry - * Author: Alain Carlucci - * - * 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 <Common.h> - -using namespace miosix; - -void busfault(void *useless) -{ - printf("If you can read this, Mr. BusFault is not here.\n"); -} - -int main() -{ - Thread::create(busfault, 1024, miosix::MAIN_PRIORITY, NULL); - while (1) - Thread::sleep(10); - return 0; -} diff --git a/old_examples/entrypoints/anakin/test-scheduler.cpp b/old_examples/entrypoints/anakin/test-scheduler.cpp deleted file mode 100644 index 713696a53ac6a3952aa7cefda3c18c5c6972842c..0000000000000000000000000000000000000000 --- a/old_examples/entrypoints/anakin/test-scheduler.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Authors: Matteo Piazzolla, Federico Terraneo - * - * 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 <Common.h> -#include <drivers/BusTemplate.h> -#include <drivers/stm32f2_f4_i2c.h> -#include <events/Scheduler.h> - -using namespace miosix; - -template <typename P, unsigned N> -void blinker() -{ - if (P::value()) - P::low(); - else - P::high(); - delayMs(2); -} - -int main() -{ - sEventScheduler->start(); - // Thread *ledTh=Thread::create(supercar,STACK_MIN); - - sEventScheduler->add(blinker<leds::led9, 100>, 100, "task100"); - sEventScheduler->add(blinker<leds::led8, 200>, 200, "task200"); - sEventScheduler->add(blinker<leds::led7, 500>, 500, "task500"); - sEventScheduler->add(blinker<leds::led6, 1000>, 1000, "task1000"); - sEventScheduler->add(blinker<leds::led5, 50>, 50, "task50"); - for (;;) - { - Thread::sleep(1000); - auto result = sEventScheduler->getTaskStats(); - printf("--- begin ---\n"); - printf("%u tasks\n", result.size()); - for (auto& it : result) - printf("Name: %s\n", it.name.c_str()); - printf("--- end ---\n"); - } -} diff --git a/old_examples/entrypoints/anakin/test_ethernet.cpp b/old_examples/entrypoints/anakin/test_ethernet.cpp deleted file mode 100644 index 45b34fad938910ecc4757fd8bc229df703035751..0000000000000000000000000000000000000000 --- a/old_examples/entrypoints/anakin/test_ethernet.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 <Common.h> -#include <drivers/ethernet/UdpManager.h> - -#include <string> - -using namespace miosix; -using namespace std; - -int main() -{ - uint8_t ipAddr[] = {192, 168, 1, 30}; // Device's IP address - uint8_t mask[] = {255, 255, 255, 0}; // Subnet mask - uint8_t destIp[] = {192, 168, 1, 180}; // Destination IP address - - char message[] = "message from the hell...\n"; - - W5200& eth = W5200::instance(); - eth.setIpAddress(ipAddr); - eth.setSubnetMask(mask); - - auto udp = Singleton<UdpManager>::getInstance(); - - udp->setTxPort(1234); - udp->setRxPort(1235); - - int counter = 0; - - while (1) - { - int ncar = sprintf(message, "Hello gumby n° %d!\n", counter); - udp->sendPacketTo(destIp, 2020, (void*)message, ncar); - counter++; - - if (udp->newReceivedPackets()) - { - - size_t pktSiz = udp->recvPacketSize() + 1; - uint8_t buffer[pktSiz]; - memset(buffer, 0x00, pktSiz); - uint8_t sip[4] = {0}; - uint16_t sport = 0; - - udp->readPacket(sip, sport, buffer); - printf("received %s from %d.%d.%d.%d:%d\n\n", buffer, sip[0], - sip[1], sip[2], sip[3], sport); - } - - Thread::sleep(200); - } - - return 0; -} diff --git a/old_examples/entrypoints/anakin/test_i2c.cpp b/old_examples/entrypoints/anakin/test_i2c.cpp deleted file mode 100644 index dc9dcdccdee9073a61746f2a8c3879c488856efc..0000000000000000000000000000000000000000 --- a/old_examples/entrypoints/anakin/test_i2c.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 <Common.h> -#include <drivers/BusTemplate.h> -#include <drivers/Leds.h> -#include <drivers/stm32f2_f4_i2c.h> -#include <sensors/MPL3115.h> -// #include <util/software_i2c.h> - -using namespace miosix; - -int main() -{ - sensors::sda::mode(Mode::ALTERNATE_OD); - sensors::sda::alternateFunction(4); - sensors::scl::mode(Mode::ALTERNATE_OD); - sensors::scl::alternateFunction(4); - - MPL3115<ProtocolI2C<I2C1Driver>> baro; - - printf("%d\n", baro.selfTest() ? 1 : 0); - baro.setMode(baro.MODE_ALTIMETER); - baro.setOversampleRatio(128); - - while (1) - { - baro.onSimpleUpdate(); - printf("press %f, temp %f, alt %f\n", *(baro.pressureDataPtr()), - *(baro.tempDataPtr()), *(baro.altitudeDataPtr())); - - Thread::sleep(1000); - } - - return 0; -} diff --git a/old_examples/shared/Common.h b/old_examples/shared/Common.h deleted file mode 100644 index af1815a12ee74f68f6301d8285ed9157279a4bc7..0000000000000000000000000000000000000000 --- a/old_examples/shared/Common.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Author: Alain Carlucci - * - * 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. - */ - -#pragma once - -#include <drivers/timer/TimestampTimer.h> -#include <interfaces/endianness.h> -#include <kernel/scheduler/scheduler.h> -#include <miosix.h> -#include <pthread.h> -#include <utils/Constants.h> -#include <utils/Debug.h> - -#include <array> -#include <cassert> -#include <cstdint> -#include <cstdio> -#include <cstring> -#include <map> -#include <memory> -#include <set> -#include <vector> - -#define UNUSED(x) (void)(x) diff --git a/old_examples/shared/diagnostic/FaultCounter.h b/old_examples/shared/diagnostic/FaultCounter.h deleted file mode 100644 index 5d552b688052cc1926d43cae9d8ddcfafb85d819..0000000000000000000000000000000000000000 --- a/old_examples/shared/diagnostic/FaultCounter.h +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright (c) 2015-2017 Skyward Experimental Rocketry - * Author: Alain Carlucci - * - * 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. - */ - -#pragma once - -#include <Common.h> -#include <Singleton.h> -#include <diagnostic/FaultCounterData.h> - -namespace Boardcore -{ - -class FaultCounterMgr : public Singleton<FaultCounterMgr> -{ - friend class Singleton<FaultCounterMgr>; - -public: - ~FaultCounterMgr() {} - - void Increment(const Fault id) - { - using FaultCounterData::FaultToCategory; - - miosix::FastInterruptDisableLock dLock; - const uint32_t numId = static_cast<uint32_t>(id); - const uint32_t catId = FaultToCategory[numId]; - mCounters[numId]++; - mCategories[catId]++; - - mFaultTriggered[numId] = 1; - mCategoryTriggered[catId] = 1; - } - - inline std::pair<const uint8_t *, size_t> GetFaultCounters() const - { - return std::make_pair(mCounters, Fault_SIZE); - } - - inline std::pair<const uint8_t *, size_t> GetCategoryCounters() const - { - using FaultCounterData::FaultCategory_SIZE; - return std::make_pair(mCategories, FaultCategory_SIZE); - } - -private: - uint8_t mCounters[Fault_SIZE]; - uint8_t mCategories[FaultCounterData::FaultCategory_SIZE]; - - std::vector<bool> mFaultTriggered; - std::vector<bool> mCategoryTriggered; - - FaultCounterMgr() - { - memset(mCounters, 0, sizeof(mCounters)); - memset(mCategories, 0, sizeof(mCategories)); - - // TODO: static bitmap? - mFaultTriggered.resize(Fault_SIZE); - mCategoryTriggered.resize(FaultCounterData::FaultCategory_SIZE); - } -}; - -#define sFaultCounterMgr FaultCounterMgr::getInstance() - -} // namespace Boardcore diff --git a/old_examples/shared/diagnostic/FaultCounterData.h b/old_examples/shared/diagnostic/FaultCounterData.h deleted file mode 100644 index b5638d43b56f0fee911ea0bce0389ae713061d16..0000000000000000000000000000000000000000 --- a/old_examples/shared/diagnostic/FaultCounterData.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Alain Carlucci - * - * 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. - */ - -/* - ****************************************************************************** - * THIS FILE IS AUTOGENERATED. DO NOT EDIT. * - ****************************************************************************** - */ - -// CSV File: data/fault_list.csv -// SHA1 of CSV File: e9a518af53ac91c2e57142fda140689918338c66 -// Autogen date: 2017-09-16 21:53:44.208079 - -#pragma once - -#include <cstdint> - -namespace Boardcore -{ - -enum class Fault -{ - F_ANAKIN_TEST_FAULT = 0, -}; -const std::size_t Fault_SIZE = 1; - -namespace FaultCounterData -{ - -enum class FaultCategory -{ - ANAKIN = 0, -}; -const std::size_t FaultCategory_SIZE = 1; - -// Usage: categoryID = FaultCounter::FaultToCategory[faultID]; -const uint32_t FaultToCategory[] = { - 0, -}; /* CategoryMapping */ - -} // namespace FaultCounterData - -} // namespace Boardcore diff --git a/old_examples/shared/drivers/AD7994/AD7994.h b/old_examples/shared/drivers/AD7994/AD7994.h deleted file mode 100644 index 0528d948835c925023c213af91cde046254b6b45..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/AD7994/AD7994.h +++ /dev/null @@ -1,220 +0,0 @@ -/* Copyright (c) 2018-2019 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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. - */ - -#pragma once - -#include <miosix.h> -#include <sensors/Sensor.h> -#include <stdint.h> -#include <utils/Debug.h> - -#include "AD7994Data.h" - -/** - * Driver for the AD7994 Analog Digital Converter - * CLASS INVARIANT: The address pointer register points to the conversion result - * register. - * This is done for performance reasons: we don't want to write to the - * address pointer register each time we perform a conversion (eg multiple times - * per second) - */ -template <typename BusI2C, typename BusyPin, typename CONVST> -class AD7994 : public Sensor -{ -public: - enum class Channel : uint8_t - { - CH1 = 1, - CH2, - CH3, - CH4 - }; - - /** - * @brief AD7994 constructor. Invariant is respected as the sensor powers up - * pointing at the conversion result register. - * - * @param i2c_address I2C address of the AD7994 - */ - AD7994(uint8_t i2c_address) - : i2c_address(i2c_address), enabled_channels{0, 0, 0, 0} - { - } - - ~AD7994() {} - - /** - * @brief Initialize the sensor writing the configuration register - * This driver is designed to work in Mode 1 - * The configuration register is set to enable the BUSY pin, I2C filtering - * and no enabled channels. - * @return true If the sensor was configured successfully - */ - bool init() override - { - uint8_t config_reg_value = 0x0A; // 0b00001010 - - // Write the configuration register - BusI2C::write(i2c_address, REG_CONFIG, &config_reg_value, 1); - - uint8_t read_config_reg_value; - - // Read back the value - BusI2C::directRead(i2c_address, &read_config_reg_value, 1); - // BusI2C::read(i2c_address, REG_CONFIG, &read_config_reg_value, 1); - - pointToConversionResult(); - - return read_config_reg_value == config_reg_value; - } - - void enableChannel(Channel channel) - { - uint8_t ch = static_cast<uint8_t>(channel); - enabled_channels[ch - 1] = true; - - uint8_t config_reg_value; - BusI2C::read(i2c_address, REG_CONFIG, &config_reg_value, 1); - - // Update the config register value - uint8_t channel_reg = 0; - for (int i = 0; i < 4; i++) - { - if (enabled_channels[i]) - channel_reg |= 1 << i; - } - config_reg_value = (config_reg_value & 0x0F) | channel_reg << 4; - - BusI2C::write(i2c_address, REG_CONFIG, &config_reg_value, 1); - - pointToConversionResult(); - } - - void disableChannel(Channel channel) - { - uint8_t ch = static_cast<uint8_t>(channel); - enabled_channels[ch - 1] = false; - - uint8_t channel_reg = 0; - for (int i = 0; i < 4; i++) - { - if (enabled_channels[i]) - channel_reg |= 1 << i; - } - - uint8_t config_reg_value; - BusI2C::read(i2c_address, REG_CONFIG, &config_reg_value, 1); - - // Update the config register value - config_reg_value = (config_reg_value & 0x0F) | channel_reg << 4; - - BusI2C::write(i2c_address, REG_CONFIG, &config_reg_value, 1); - - pointToConversionResult(); - } - - /** - * @brief Triggers a new ADC conversion on the enabled channels and reads - * the value of the conversion register. - * TODO: Check how to sample multiple channels. - * @return true If the conversion was successful on all enabled channels - */ - bool onSimpleUpdate() override - { - uint8_t data[2]; - - for (int i = 0; i < 4; i++) - { - if (enabled_channels[i]) - { - // Trigger a conversion - CONVST::high(); - miosix::delayUs(3); - CONVST::low(); - // Wait for the conversion to complete - miosix::delayUs(2); - - BusI2C::directRead(i2c_address, data, 2); - - samples[i] = decodeConversion(data); - samples[i].timestamp = miosix::getTick(); - } - } - - return true; - } - - bool selfTest() { return true; } - - AD7994Sample getLastSample(Channel channel) - { - uint8_t ch = static_cast<uint8_t>(channel); - return samples[ch - 1]; - } - -private: - // Address of the AD7994 on the I2C bus - const uint8_t i2c_address; - - // The 4 LSBs indicate where the corresponding channel is enabled or not. - bool enabled_channels[4]; - - /** - * @brief Writes the conversion register address to the address pointer - * register in order to restore the class invariant. - */ - void pointToConversionResult() - { - uint8_t reg_addr = REG_CONVERSION_RESULT; - BusI2C::directWrite(i2c_address, ®_addr, 1); - } - - /** - * @brief Decodes the 2 bytes of the conversion register into an - * AD7994Sample structure - * - * @param data_ptr Pointer to the first of the 2 bytes of the conversione - * register - * @return AD7994Sample - */ - AD7994Sample decodeConversion(uint8_t* data_ptr) - { - uint16_t conv_reg = - static_cast<uint16_t>((data_ptr[0]) << 8) + data_ptr[1]; - - AD7994Sample out; - out.value = conv_reg & 0x0FFF; - out.channel_id = (static_cast<uint8_t>(conv_reg >> 12) & 0x03) + 1; - out.alert_flag = static_cast<bool>(conv_reg >> 15); - - return out; - } - - enum Registers : uint8_t - { - REG_CONVERSION_RESULT = 0x00, - REG_ALERT_STATUS = 0x01, - REG_CONFIG = 0x02, - }; - - AD7994Sample samples[4]; -}; diff --git a/old_examples/shared/drivers/AD7994/AD7994Data.h b/old_examples/shared/drivers/AD7994/AD7994Data.h deleted file mode 100644 index 4757f68c99a39b0fdbb93d733214a1ce7046cbd9..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/AD7994/AD7994Data.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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. - */ - -#pragma once - -#include <cstdint> -#include <ostream> -#include <string> - -struct AD7994Sample -{ - long long timestamp; - - uint8_t channel_id; // [1-4] - bool alert_flag; - uint16_t value; - - // Functions used to deserialize the binary logs into csv files - - static std::string header() { return "timestamp,ch_id,value,alert_flag\n"; } - - void print(std::ostream& os) const - { - os << timestamp << "," << channel_id << "," << value << "," - << (int)alert_flag << "\n"; - } -}; diff --git a/old_examples/shared/drivers/ISB_protocol/IsbProtocol_serial2.cpp b/old_examples/shared/drivers/ISB_protocol/IsbProtocol_serial2.cpp deleted file mode 100644 index 1554a2c73985b42e113ea6cdfb67173f6df0a765..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ISB_protocol/IsbProtocol_serial2.cpp +++ /dev/null @@ -1,247 +0,0 @@ -/* Copyright (c) 2018 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 "IsbProtocol_serial2.h" - -using namespace std; -using namespace miosix; - -typedef Gpio<GPIOA_BASE, 2> u2tx; -typedef Gpio<GPIOA_BASE, 3> u2rx; -typedef Gpio<GPIOA_BASE, 1> u2rts; - -void __attribute__((weak)) USART2_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z11Serial2_Irqv"); - restoreContext(); -} - -void __attribute__((used)) Serial2_Irq() -{ - auto inst = IsbProtocol_serial2::instance(); - inst.IRQHandler(); -} - -IsbProtocol_serial2::IsbProtocol_serial2() -{ - { - FastInterruptDisableLock dLock; - RCC->APB1ENR |= RCC_APB1ENR_USART2EN; - RCC_SYNC(); - - u2tx::mode(Mode::ALTERNATE); - u2tx::alternateFunction(7); - -#ifdef _ARCH_CORTEXM3_STM32F1 - u2rx::mode(Mode::INPUT); -#else - u2rx::mode(Mode::ALTERNATE); - u2rx::alternateFunction(7); -#endif - - u2rts::mode(Mode::OUTPUT); - u2rts::low(); - } - - /*** USART 2 configuration ***/ - // Enable parity, 9 bit frame length, no parity, - // generate interrupt in case a new byte is received - USART2->CR1 |= USART_CR1_M | USART_CR1_RXNEIE | USART_CR1_TE // enable tx - | USART_CR1_RE; // enable rx - - // CR2 and CR3 registers are left untouched since their default values are - // OK - - NVIC_SetPriority(USART2_IRQn, 15); // Lowest priority for serial - NVIC_ClearPendingIRQ(USART2_IRQn); - NVIC_EnableIRQ(USART2_IRQn); -} - -IsbProtocol_serial2::~IsbProtocol_serial2() -{ - FastInterruptDisableLock dLock; - RCC->APB1ENR &= ~RCC_APB1ENR_USART2EN; - RCC_SYNC(); -} - -void IsbProtocol_serial2::IRQHandler() -{ - if (USART2->SR & USART_SR_RXNE) - { - /* This protocol uses 9 bit long usart frames. - * The STM32's data register is 9 bit long, so the - * lower 8 bits are used to transport the data byte and - * the MSB - the 9th bit - is used to select between - * data or address byte - */ - uint16_t byte = USART->DR; - - uint16_t checkMask = 0x100 | nodeAddress; - if (byte == checkMask) - { - rxStatus.rxIndex = 0; - rxStatus.rxInProgress = true; - rxStatus.dataLenPending = true; - - rxBuf[rxStatus.rxIndex] = byte & 0xFF; // strip away the 9th byte - rxStatus.rxIndex++; - } - else if (rxStatus.rxInProgress) - { - if (rxStatus.dataLenPending) - { - // Second byte in the packet is the data len field. To this - // value we have to add 4 bytes: address, data len and two bytes - // of CRC - rxStatus.packetSize = (byte & 0xFF) + 4; - rxStatus.dataLenPending = false; - } - - rxBuf[rxStatus.rxIndex] = byte & 0xFF; - rxStatus.rxIndex++; - - if (rxStatus.rxIndex >= rxStatus.packetSize) - { - rxStatus.rxInProgress = false; - } - } - } -} - -size_t IsbProtocol_serial2::newDataAvailable() -{ - if ((rxStatus.rxInProgress == true) || (rxStatus.packetSize = 0)) - { - return 0; - } - - // we pass packetSize - 2 in order to avoid including in the CRC calculation - // the CRC value inserted from the sender - uint16_t crc = CRC16(rxBuf, rxStatus.packetSize - 2); - uint16_t pktCrc = - (rxBuf[rxStatus.packetSize - 2] << 8) | rxBuf[rxStatus.packetSize - 1]; - - // Packet length check: the value contained in the second byte must be - // equal to the number of bytes received minus 4 - bool checkLen = (rxBuf[1] == (rxStatus.packetSize - 4)) ? true : false; - - if ((crc != pktCrc) || (!checkLen)) - { - rxStatus.packetSize = 0; // packet is corrupt, discard it - return 0; - } - - // Return length of the data field - return rxBuf[1]; -} - -void IsbProtocol_serial2::getData(uint8_t* buffer) -{ - std::memcpy(buffer, rxBuf[2], rxBuf[1]); -} - -void IsbProtocol_serial2::sendData(uint8_t dstAddr, uint8_t* data, size_t len) -{ - // packet too long - if (len > 0xFF) - { - return; - } - - txBuf[0] = dstAddr; - txBuf[1] = len; - std::memcpy(txBuf[2], data, len); - - // Include in CRC also address and data len field - uint16_t crc = CRC16(txBuf, len + 2); - - size_t crcBegin = len + 2; - txBuf[crcBegin] = crc >> 8; - txBuf[crcBegin + 1] = crc & 0xFF; - - u2rts::high(); - - for (size_t i = 0; i < len + 4; i++) - { - // the first byte is the address, so it has to be sent with the 9th bit - // set to 1 - if (i == 0) - { - USART2->DR = txBuf[i] | 0x100; - } - else - { - USART2->DR = txBuf[i]; - } - - // Wait until tx buffer is empty again - while ((USART2->SR & USART_SR_TXE) == 0) - ; - } - - u2rts::low(); -} - -void IsbProtocol_serial2::setBaud(uint32_t baud) -{ - uint32_t busFreq = SystemCoreClock; - -#ifdef _ARCH_CORTEXM3_STM32F1 - if (RCC->CFGR & RCC_CFGR_PPRE1_2) - { - busFreq /= 1 << (((RCC->CFGR >> 8) & 0x3) + 1); - } -#else - if (RCC->CFGR & RCC_CFGR_PPRE1_2) - { - busFreq /= 1 << (((RCC->CFGR >> 10) & 0x3) + 1); - } -#endif - - uint32_t quot = 2 * busFreq / baud; // 2*freq for round to nearest - USART2->BRR = quot / 2 + (quot & 1); -} - -void IsbProtocol_serial2::setNodeAddress(uint8_t address) -{ - nodeAddress = address; -} - -uint16_t IsbProtocol_serial2::CRC16(uint8_t* data, size_t len) -{ - uint16_t crc = 0xFFFF; - for (size_t i = 0; i < len; i++) - { - uint16_t x = ((crc >> 8) ^ data[i]) & 0xff; - x ^= x >> 4; - crc = (crc << 8) ^ (x << 12) ^ (x << 5) ^ x; - } - - return crc; -} - -IsbProtocol_serial2& IsbProtocol_serial2::instance() -{ - static IsbProtocol_serial2 inst; - return inst; -} diff --git a/old_examples/shared/drivers/ISB_protocol/IsbProtocol_serial2.h b/old_examples/shared/drivers/ISB_protocol/IsbProtocol_serial2.h deleted file mode 100644 index 11e8aff4a7429cf18b02fb3e87b8e4972696f964..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ISB_protocol/IsbProtocol_serial2.h +++ /dev/null @@ -1,153 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <stddef.h> - -#include <cstdint> -#include <cstdio> -#include <cstring> - -#include "miosix.h" - -/* This class is a kind of driver to be used to excange data between the - * stormtrooper master and the other stormtrooper slave boards through the - * RS485 lines. The communication model is this: all the boards are connected - * on the same bus and each board has a unique node address. To avoid conflicts, - * the master is the only device on the bus that can initiate a communication; - * thus, to communicate with a specific slave, the master sends a packet - * containing the targeted slave address and the data and then waits for the - * response (if expected). Owing to this model, if two stormtrooper slaves need - * to exchange data they have to rely on the stormtrooper master acting as a - * router between them. - * - * The packet structure is this: - * - * +------+-----+------+-----+ - * | addr | len | data | CRC | - * +------+-----+------+-----+ - * - * -> addr: target node address, 8 bit - * -> len: lenght of the data field, 8 bit - * -> data: data bytes, up to 255 - * -> CRC: 16 bit field calculated on addr, len and data using the ccitt CRC16 - * formula - * - * On the bus data is sent using 9 bit long frames with one stop bit. If the 9th - * bit is set to 1 means that the byte received is an address byte and so a - * packet is incoming - * - * - * Here is a sample code about this class' usage: - * - * auto comm = IsbProtocol_serial2::instance(); - * - * comm.setBaud(9600); //set baud to 9600 bps - * comm.setNodeAddress(0xAB); //set node ID - * - * // this to check if new data arrived and to copy the bytes into a local - * buffer - * - * uint8_t rx_buf[256]; - * - * if(comm.newDataAvailable() > 0) - * { - * comm.getData(rx_buf); - * } - * - * // this to send data - * - * uint8_t tx_buf[] = "Some data for you! :)"; - * - * comm.sendData(0xE0, tx_buf, sizeof(tx_buf)); - * - */ - -class IsbProtocol_serial2 -{ -public: - /** - * @return singleton intance of the class - */ - static IsbProtocol_serial2& instance(); - - ~IsbProtocol_serial2(); - - /** - * Set the USART baud rate. - * @param baud baud rate to be set - */ - void setBaud(uint32_t baud); - - /** - * Set the node's address in the network - */ - void setNodeAddress(uint8_t address); - - /** - * @return number of payload data bytes received or 0 if none received - */ - size_t newDataAvailable(); - - /** - * Get the latest payload data received. - * @param buffer pointer to buffer in which copy the new data, it must have - * dimension greater than or equal to the value returned by - * newDataAvailable() - */ - void getData(uint8_t* buffer); - - /** - * Send a packet, this function blocks until all data is sent - * - * @param dstAddr destination node address - * @param data pointer to a buffer containing the payload data - * @param len payload size in bytes - */ - void sendData(uint8_t dstAddr, uint8_t* data, size_t len); - - /** - * Interrupt handler. DON'T CALL IT ANYWHERE!! - */ - void IRQHandler(); - -private: - uint8_t rxBuf[300]; - struct R - { - uint16_t packetSize; - uint16_t rxIndex; - bool rxInProgress; - bool dataLenPending; - } rxStatus; - - uint8_t txBuf[300]; - uint8_t nodeAddress; - - uint16_t CRC16(uint8_t* data, size_t len); - - IsbProtocol_serial2(); - IsbProtocol_serial2(const IsbProtocol_serial2& other); - IsbProtocol_serial2& operator=(const IsbProtocol_serial2& other); - bool operator==(const IsbProtocol_serial2& other); -}; diff --git a/old_examples/shared/drivers/ISB_protocol/IsbProtocol_serial3.cpp b/old_examples/shared/drivers/ISB_protocol/IsbProtocol_serial3.cpp deleted file mode 100644 index 68bb3f7905c9876a424a7cc38a1d13a0d52f66dc..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ISB_protocol/IsbProtocol_serial3.cpp +++ /dev/null @@ -1,269 +0,0 @@ -/* - * Inter Stormtrooper Boards communication protocol through STM32's - * USART3 interface - * - * Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 "IsbProtocol_serial3.h" - -using namespace std; -using namespace miosix; - -typedef Gpio<GPIOB_BASE, 10> u3tx; -typedef Gpio<GPIOB_BASE, 11> u3rx; -typedef Gpio<GPIOB_BASE, 14> u3rts; - -void __attribute__((weak)) USART3_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z11Serial3_Irqv"); - restoreContext(); -} - -void __attribute__((used)) Serial3_Irq() -{ - auto inst = IsbProtocol_serial3::instance(); - inst.IRQHandler(); -} - -IsbProtocol_serial3::IsbProtocol_serial3() -{ - { - FastInterruptDisableLock dLock; - RCC->APB1ENR |= RCC_APB1ENR_USART3EN; - RCC_SYNC(); - - u3tx::mode(Mode::ALTERNATE); - u3tx::alternateFunction(7); - -#ifdef _ARCH_CORTEXM3_STM32F1 - u3rx::mode(Mode::INPUT); -#else - u3rx::mode(Mode::ALTERNATE); - u3rx::alternateFunction(7); -#endif - - u3rts::mode(Mode::OUTPUT); - u3rts::low(); - } - - /*** USART 3 configuration ***/ - // Enable parity, 9 bit frame length, no parity, - // generate interrupt in case a new byte is received - USART3->CR1 |= USART_CR1_M | USART_CR1_RXNEIE | USART_CR1_TE // enable tx - | USART_CR1_RE; // enable rx - - // CR2 and CR3 registers are left untouched since their default values are - // OK - - NVIC_SetPriority(USART3_IRQn, 15); // Lowest priority for serial - NVIC_ClearPendingIRQ(USART3_IRQn); - NVIC_EnableIRQ(USART3_IRQn); -} - -IsbProtocol_serial3::~IsbProtocol_serial3() -{ - FastInterruptDisableLock dLock; - RCC->APB1ENR &= ~RCC_APB1ENR_USART3EN; - RCC_SYNC(); -} - -void IsbProtocol_serial3::IRQHandler() -{ - if (USART3->SR & USART_SR_RXNE) - { - /* This protocol uses 9 bit long usart frames. - * The STM32's data register is 9 bit long, so the - * lower 8 bits are used to transport the data byte and - * the MSB - the 9th bit - is used to select between - * data or address byte - */ - uint16_t byte = USART->DR; - - uint16_t checkMask = 0x100 | nodeAddress; - if (byte == checkMask) - { - rxStatus.rxIndex = 0; - rxStatus.rxInProgress = true; - rxStatus.dataLenPending = true; - - rxBuf[rxStatus.rxIndex] = byte & 0xFF; // strip away the 9th byte - rxStatus.rxIndex++; - } - else if (rxStatus.rxInProgress) - { - if (rxStatus.dataLenPending) - { - // Second byte in the packet is the data len field. To this - // value we have to add 4 bytes: address, data len and two bytes - // of CRC - rxStatus.packetSize = (byte & 0xFF) + 4; - rxStatus.dataLenPending = false; - } - - rxBuf[rxStatus.rxIndex] = byte & 0xFF; - rxStatus.rxIndex++; - - if (rxStatus.rxIndex >= rxStatus.packetSize) - { - rxStatus.rxInProgress = false; - } - } - } -} - -size_t IsbProtocol_serial3::newDataAvailable() -{ - if ((rxStatus.rxInProgress == true) || (rxStatus.packetSize = 0)) - { - return 0; - } - - // we pass packetSize - 2 in order to avoid including in the CRC calculation - // the CRC value inserted from the sender - uint16_t crc = CRC16(rxBuf, rxStatus.packetSize - 2); - uint16_t pktCrc = - (rxBuf[rxStatus.packetSize - 2] << 8) | rxBuf[rxStatus.packetSize - 1]; - - // Packet length check: the value contained in the second byte must be - // equal to the number of bytes received minus 4 - bool checkLen = (rxBuf[1] == (rxStatus.packetSize - 4)) ? true : false; - - if ((crc != pktCrc) || (!checkLen)) - { - rxStatus.packetSize = 0; // packet is corrupt, discard it - return 0; - } - - // Return length of the data field - return rxBuf[1]; -} - -void IsbProtocol_serial3::getData(uint8_t* buffer) -{ - std::memcpy(buffer, rxBuf[2], rxBuf[1]); -} - -void IsbProtocol_serial3::sendData(uint8_t dstAddr, uint8_t* data, size_t len) -{ - // packet too long - if (len > 0xFF) - { - return; - } - - txBuf[0] = dstAddr; - txBuf[1] = len; - std::memcpy(txBuf[2], data, len); - - // Include in CRC also address and data len field - uint16_t crc = CRC16(txBuf, len + 2); - - size_t crcBegin = len + 2; - txBuf[crcBegin] = crc >> 8; - txBuf[crcBegin + 1] = crc & 0xFF; - - u3rts::high(); - - for (size_t i = 0; i < len + 4; i++) - { - // the first byte is the address, so it has to be sent with the 9th bit - // set to 1 - if (i == 0) - { - USART3->DR = txBuf[i] | 0x100; - } - else - { - USART3->DR = txBuf[i]; - } - - // Wait until tx buffer is empty again - while ((USART3->SR & USART_SR_TXE) == 0) - ; - } - - u3rts::low(); -} - -void IsbProtocol_serial3::setBaud(uint32_t baud) -{ - uint32_t busFreq = SystemCoreClock; - -#ifdef _ARCH_CORTEXM3_STM32F1 - if (RCC->CFGR & RCC_CFGR_PPRE1_2) - { - busFreq /= 1 << (((RCC->CFGR >> 8) & 0x3) + 1); - } -#else - if (RCC->CFGR & RCC_CFGR_PPRE1_2) - { - busFreq /= 1 << (((RCC->CFGR >> 10) & 0x3) + 1); - } -#endif - - uint32_t quot = 2 * busFreq / baud; // 2*freq for round to nearest - USART3->BRR = quot / 2 + (quot & 1); -} - -void IsbProtocol_serial3::setNodeAddress(uint8_t address) -{ - nodeAddress = address; -} - -uint16_t IsbProtocol_serial3::CRC16(uint8_t* data, size_t len) -{ - uint16_t crc = 0xFFFF; - for (size_t i = 0; i < len; i++) - { - uint16_t x = ((crc >> 8) ^ data[i]) & 0xff; - x ^= x >> 4; - crc = (crc << 8) ^ (x << 12) ^ (x << 5) ^ x; - } - - return crc; -} - -IsbProtocol_serial3& IsbProtocol_serial3::instance() -{ - static IsbProtocol_serial3 inst; - return inst; -} diff --git a/old_examples/shared/drivers/ISB_protocol/IsbProtocol_serial3.h b/old_examples/shared/drivers/ISB_protocol/IsbProtocol_serial3.h deleted file mode 100644 index 4e762fa2c1fb70159245b45d5670983125cbbbff..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ISB_protocol/IsbProtocol_serial3.h +++ /dev/null @@ -1,153 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <stddef.h> - -#include <cstdint> -#include <cstdio> -#include <cstring> - -#include "miosix.h" - -/* This class is a kind of driver to be used to excange data between the - * stormtrooper master and the other stormtrooper slave boards through the - * RS485 lines. The communication model is this: all the boards are connected - * on the same bus and each board has a unique node address. To avoid conflicts, - * the master is the only device on the bus that can initiate a communication; - * thus, to communicate with a specific slave, the master sends a packet - * containing the targeted slave address and the data and then waits for the - * response (if expected). Owing to this model, if two stormtrooper slaves need - * to exchange data they have to rely on the stormtrooper master acting as a - * router between them. - * - * The packet structure is this: - * - * +------+-----+------+-----+ - * | addr | len | data | CRC | - * +------+-----+------+-----+ - * - * -> addr: target node address, 8 bit - * -> len: lenght of the data field, 8 bit - * -> data: data bytes, up to 255 - * -> CRC: 16 bit field calculated on addr, len and data using the ccitt CRC16 - * formula - * - * On the bus data is sent using 9 bit long frames with one stop bit. If the 9th - * bit is set to 1 means that the byte received is an address byte and so a - * packet is incoming - * - * - * Here is a sample code about this class' usage: - * - * auto comm = IsbProtocol_serial2::instance(); - * - * comm.setBaud(9600); //set baud to 9600 bps - * comm.setNodeAddress(0xAB); //set node ID - * - * // this to check if new data arrived and to copy the bytes into a local - * buffer - * - * uint8_t rx_buf[256]; - * - * if(comm.newDataAvailable() > 0) - * { - * comm.getData(rx_buf); - * } - * - * // this to send data - * - * uint8_t tx_buf[] = "Some data for you! :)"; - * - * comm.sendData(0xE0, tx_buf, sizeof(tx_buf)); - * - */ - -class IsbProtocol_serial3 -{ -public: - /** - * @return singleton intance of the class - */ - static IsbProtocol_serial3& instance(); - - ~IsbProtocol_serial3(); - - /** - * Set the USART baud rate. - * @param baud baud rate to be set - */ - void setBaud(uint32_t baud); - - /** - * Set the node's address in the network - */ - void setNodeAddress(uint8_t address); - - /** - * @return number of payload data bytes received or 0 if none received - */ - size_t newDataAvailable(); - - /** - * Get the latest payload data received. - * @param buffer pointer to buffer in which copy the new data, it must have - * dimension greater than or equal to the value returned by - * newDataAvailable() - */ - void getData(uint8_t* buffer); - - /** - * Send a packet, this function blocks until all data is sent - * - * @param dstAddr destination node address - * @param data pointer to a buffer containing the payload data - * @param len payload size in bytes - */ - void sendData(uint8_t dstAddr, uint8_t* data, size_t len); - - /** - * Interrupt handler. DON'T CALL IT ANYWHERE!! - */ - void IRQHandler(); - -private: - uint8_t rxBuf[300]; - struct R - { - uint16_t packetSize; - uint16_t rxIndex; - bool rxInProgress; - bool dataLenPending; - } rxStatus; - - uint8_t txBuf[300]; - uint8_t nodeAddress; - - uint16_t CRC16(uint8_t* data, size_t len); - - IsbProtocol_serial3(); - IsbProtocol_serial3(const IsbProtocol_serial3& other); - IsbProtocol_serial3& operator=(const IsbProtocol_serial3& other); - bool operator==(const IsbProtocol_serial3& other); -}; diff --git a/old_examples/shared/drivers/Leds.cpp b/old_examples/shared/drivers/Leds.cpp deleted file mode 100644 index 2ec4677a10026890df5834c84723b3a37fb45455..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/Leds.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2016-2017 Skyward Experimental Rocketry - * Authors: Alain Carlucci, Federico Terraneo - * - * 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 "Leds.h" - -// Relying on the BSP to provide leds and configure them as output -#define LED(x) miosix::leds::led##x::getPin() -std::array<miosix::GpioPin, Leds::numLeds> Leds::pins{ - {LED(0), LED(1), LED(2), LED(3), LED(4), LED(5), LED(6), LED(7), LED(8), - LED(9)}}; -#undef LED diff --git a/old_examples/shared/drivers/Leds.h b/old_examples/shared/drivers/Leds.h deleted file mode 100644 index 781ffda4aa9c9af79886cd4153138eb9e128bd6b..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/Leds.h +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (c) 2016 Skyward Experimental Rocketry - * Authors: Alain Carlucci, Matteo Piazzolla, Federico Terraneo - * - * 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. - */ - -#pragma once - -#include <Common.h> - -#include <array> - -class Leds -{ -public: - /** - * Turn on/off all leds using a bitmask - * \param leds bitmask specifing which led has to be turned on - */ - static void set(uint16_t leds) - { - for (int i = 0; i < 10; i++) - set(i, (leds & (1 << i)) != 0); - } - - /** - * \param id should be in range [0,10). - */ - static void set(uint8_t id, bool enable) - { - if (id >= pins.size()) - return; - - if (enable) - pins[id].high(); - else - pins[id].low(); - } - -private: - static const int numLeds = 10; - static std::array<miosix::GpioPin, numLeds> pins; - - Leds() = delete; - Leds(const Leds&) = delete; - Leds& operator=(const Leds&) = delete; -}; diff --git a/old_examples/shared/drivers/ethernet/PacketBuffer.cpp b/old_examples/shared/drivers/ethernet/PacketBuffer.cpp deleted file mode 100644 index a487860efa221957c9e7eaef31512a14d6906a11..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ethernet/PacketBuffer.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/* Copyright (c) 2016-2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 "PacketBuffer.h" - -#include <utils/Debug.h> - -using namespace std; -using namespace miosix; - -PacketBuffer::PacketBuffer(size_t storageSize) - : storageSize(storageSize), usedSize(0), writeIndex(0), readIndex(0), - valid(true) -{ -#ifndef __NO_EXCEPTIONS - try - { - buffer = new uint8_t[storageSize]; - } - catch (std::bad_alloc& exc) - { - TRACE("bad alloc!\n"); - valid = false; - } -#else - buffer = new (std::nothrow) uint8_t[storageSize]; - if (buffer == nullptr) - { - valid = false; - } -#endif -} - -PacketBuffer::~PacketBuffer() -{ - if (valid) - delete[] buffer; -} - -bool PacketBuffer::push(packet_header_t& header, const uint8_t* payload) -{ - if (!valid) - return false; - - size_t packetSize = sizeof(packet_header_t) + header.payloadSize; - - // Simple technique to avoid ring buffer writeIndex slip ahead readIndex: - // we keep track of the amount of space used and we reject a new incoming - // packet if usedSize + packetSize is greater that the ring buffer size. - - if (usedSize + packetSize >= storageSize) - return false; - - // to store the packet into the ring buffer first copy the header - // and then copy the payload - { - Lock<FastMutex> l(mutex); - uint8_t* head = reinterpret_cast<uint8_t*>(&header); - - for (unsigned int i = 0; i < sizeof(packet_header_t); i++) - { - buffer[(writeIndex + i) % storageSize] = head[i]; - } - - writeIndex = (writeIndex + sizeof(packet_header_t)) % storageSize; - - for (unsigned int i = 0; i < header.payloadSize; i++) - { - buffer[(writeIndex + i) % storageSize] = payload[i]; - } - - writeIndex = (writeIndex + header.payloadSize) % storageSize; - usedSize += packetSize; - } - - return true; -} - -packet_header_t PacketBuffer::getHeader() -{ - packet_header_t header = {}; - uint8_t* dest = reinterpret_cast<uint8_t*>(&header); - memset(dest, 0x00, sizeof(packet_header_t)); - - if (valid) - { - Lock<FastMutex> l(mutex); - for (unsigned int i = 0; i < sizeof(packet_header_t); i++) - dest[i] = buffer[(readIndex + i) % storageSize]; - } - return header; -} - -void PacketBuffer::getData(uint8_t* data) -{ - if (!valid) - return; - - /* Packet size is stored in header, so first get the payloadSize. - * The data is stored sizeof(packet_header_t) bytes next the read pointer, - * since a packet is stored as header followed by payload, so we have to - * add sizeof(packet_header_t) to the read pointer to reach the first data - * byte - */ - - packet_header_t frontHead = getHeader(); - - { - Lock<FastMutex> l(mutex); - int start = readIndex + sizeof(packet_header_t); - - for (unsigned int i = 0; i < frontHead.payloadSize; i++) - { - data[i] = buffer[(start + i) % storageSize]; - } - } -} - -void PacketBuffer::popFront() -{ - - if ((!valid) || empty()) // this means that list is empty - return; - - /* Popping a packet out of list simply means move the readIndex forward - * of the size of the packet at list's head. - * The size of a packet is made of two parts: a fixed one which is - * constituded by the size of IP address, port and packet length fields - * and a variable one that is the size of the payload. The latter is stored - * into the len field of the packet. - * What we do here is gather the fixed and variable sizes and sum them - * together to obtain the readIndex's needed increment - */ - - packet_header_t head = getHeader(); - size_t packetSize = sizeof(packet_header_t) + head.payloadSize; - - { - Lock<FastMutex> l(mutex); - readIndex = (readIndex + packetSize) % storageSize; - usedSize -= packetSize; - } -} - -bool PacketBuffer::empty() -{ - Lock<FastMutex> l(mutex); - return usedSize == 0; -} diff --git a/old_examples/shared/drivers/ethernet/PacketBuffer.h b/old_examples/shared/drivers/ethernet/PacketBuffer.h deleted file mode 100644 index ee47d5566171d8a21d5818e71cfc159672307d20..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ethernet/PacketBuffer.h +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (c) 2016-2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <Common.h> - -#include "packet.h" - -/** - * Quick and dirty implementation of a ring buffer. All the operations are - * guaranteed to be atomic through the use of a mutex - */ -class PacketBuffer -{ -public: - /** - * @param storageSize: size of internal buffer in bytes - * internal buffer is made of uint8_t - */ - explicit PacketBuffer(size_t storageSize); - - ~PacketBuffer(); - - /** - * Check if internal buffer's allocation succeeded. Call this function - * immediately after constructor and, if it returns false, call the - * destructor. - * @return true on success, false on failure. - */ - bool isValid() { return valid; } - - /** - * Enqueues a packet at list's tail. If it cannot be enqueued is dropped - * @param packet packet to be enqueued descriptor sctructure - * @return true if packet can be enqueued, false otherwise - */ - bool push(packet_header_t& header, const uint8_t* payload); - - packet_header_t getHeader(); - - void getData(uint8_t* data); - - /** - * Removes the packet placed at list's head by avancing it of the - * packet's size - */ - void popFront(); - - /** - * @return true if buffer is empty - */ - bool empty(); - -private: - size_t storageSize; - size_t usedSize; - uint32_t writeIndex; - uint32_t readIndex; - bool valid; - uint8_t* buffer; - - miosix::FastMutex mutex; - - // Copy constructor and copy assignment are not allowed - PacketBuffer(PacketBuffer& other); - PacketBuffer& operator=(const PacketBuffer& other); -}; diff --git a/old_examples/shared/drivers/ethernet/UdpManager.cpp b/old_examples/shared/drivers/ethernet/UdpManager.cpp deleted file mode 100644 index 946ff3c2eb5ce6852eeeeb08f47a65b7801416c0..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ethernet/UdpManager.cpp +++ /dev/null @@ -1,310 +0,0 @@ -/* Copyright (c) 2016-2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 "UdpManager.h" - -using namespace std; -using namespace miosix; - -void __attribute__((naked)) EXTI1_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z13EXTIrqHandlerv"); - restoreContext(); -} - -void __attribute__((used)) EXTIrqHandler() -{ - EXTI->PR |= EXTI_PR_PR1; - Singleton<UdpManager>::getInstance().phyIrqHandler(); -} - -void _evt_mgmt_thread(void* args) -{ - Singleton<UdpManager>::getInstance().evtQueue.run(); -} - -UdpManager::UdpManager() -{ - eth::int1::mode(Mode::INPUT); - - // Configure STM32 to generate an interrupt on - // falling edge of chip's INT line - - { - FastInterruptDisableLock dLock; - RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN; - RCC_SYNC(); - } - - SYSCFG->EXTICR[0] |= SYSCFG_EXTICR1_EXTI1_PC; - EXTI->IMR |= EXTI_IMR_MR1; - EXTI->FTSR |= EXTI_FTSR_TR1; - - NVIC_SetPriority(EXTI1_IRQn, 10); - NVIC_ClearPendingIRQ(EXTI1_IRQn); - NVIC_EnableIRQ(EXTI1_IRQn); - - phy.setModeReg(0x00); - phy.setSocketInterruptMask(0xFF); - - txBuffer = new PacketBuffer(TX_BUF_SIZE); - rxBuffer = new PacketBuffer(RX_BUF_SIZE); - - wdt->setDuration(TX_TIMEOUT); - wdt->setCallback(bind(&UdpManager::wdtIrqHandler, this)); - - if (!txBuffer->isValid() || !rxBuffer->isValid()) - { - // TODO log! - } - else - { - Thread::create(_evt_mgmt_thread, 1024); - } -} - -UdpManager::~UdpManager() -{ - delete txBuffer; - delete rxBuffer; -} - -void UdpManager::setTxPort(uint16_t port) -{ - // Open transmitting socket - phy.setSocketModeReg(PHY_TX_SOCK_NUM, SOCKn_MR_UDP); - phy.setSocketSourcePort(PHY_TX_SOCK_NUM, port); - // Enable timeout & send ok interrupts - phy.setSocketInterruptMaskReg(PHY_TX_SOCK_NUM, 0x18); - phy.setSocketCommandReg(PHY_TX_SOCK_NUM, SOCKn_CR_OPEN); -} - -void UdpManager::setRxPort(uint16_t port) -{ - // Open receiving socket - phy.setSocketModeReg(PHY_RX_SOCK_NUM, SOCKn_MR_UDP); - phy.setSocketSourcePort(PHY_RX_SOCK_NUM, port); - // Enable recv interrupt only - phy.setSocketInterruptMaskReg(PHY_RX_SOCK_NUM, 0x04); - phy.setSocketCommandReg(PHY_RX_SOCK_NUM, SOCKn_CR_OPEN); - phy.setSocketCommandReg(PHY_RX_SOCK_NUM, SOCKn_CR_RECV); -} - -/** Legacy code, uncomment if we want tx @ port and rx @ port+1 **/ - -// void UdpManager::setPort(uint16_t port) { -// -// //Open transmitting socket -// phy.setSocketModeReg(PHY_TX_SOCK_NUM,SOCKn_MR_UDP); -// phy.setSocketSourcePort(PHY_TX_SOCK_NUM,port); -// // Enable timeout & send ok interrupts -// phy.setSocketInterruptMaskReg(PHY_TX_SOCK_NUM,0x18); -// phy.setSocketCommandReg(PHY_TX_SOCK_NUM,SOCKn_CR_OPEN); -// -// //Open receiving socket -// phy.setSocketModeReg(PHY_RX_SOCK_NUM,SOCKn_MR_UDP); -// phy.setSocketSourcePort(PHY_RX_SOCK_NUM,port+1); -// // Enable recv interrupt only -// phy.setSocketInterruptMaskReg(PHY_RX_SOCK_NUM,0x04); -// phy.setSocketCommandReg(PHY_RX_SOCK_NUM,SOCKn_CR_OPEN); -// phy.setSocketCommandReg(PHY_RX_SOCK_NUM,SOCKn_CR_RECV); -// } - -bool UdpManager::newReceivedPackets() { return !rxBuffer->empty(); } - -void UdpManager::sendPacketTo(const uint8_t* ip, const uint16_t port, - const void* data, size_t len) -{ - packet_header_t header; - header.ipAddress = *(reinterpret_cast<const uint32_t*>(ip)); - header.port = port; - header.payloadSize = len; - - bool wasEmpty = txBuffer->empty(); - bool ok = txBuffer->push(header, reinterpret_cast<const uint8_t*>(data)); - - if (!ok) - { - // TODO: better failure logging - puts("UDP->sendPacketTo: failed to enqueue the new packet\n"); - } - else if (wasEmpty) - { - bool pok = - evtQueue.postNonBlocking(bind(&UdpManager::tx_handler, this)); - - if (!pok) - { - // TODO: better failure logging - puts( - "UDP->sendPacketTo: job queue full." - "Failed to post tx_handler.\n"); - } - } -} - -size_t UdpManager::recvPacketSize() -{ - if (rxBuffer->empty()) - return 0; - - packet_header_t hdr = rxBuffer->getHeader(); - return hdr.payloadSize; -} - -void UdpManager::readPacket(uint8_t* ip, uint16_t& port, void* data) -{ - packet_header_t header = rxBuffer->getHeader(); - // IP address is 4 bytes long - memcpy(ip, reinterpret_cast<uint8_t*>(&(header.ipAddress)), 4); - port = header.port; - - // The copy of the exact number of bytes is guaranteed by getData. We only - // have to be sure that the receiving buffer has the right capacity, - // which is given by UdpManager::recvPacketSize() - rxBuffer->getData(reinterpret_cast<uint8_t*>(data)); - rxBuffer->popFront(); -} - -/** Interrupt and event handlers **/ -void UdpManager::phyIrqHandler() -{ - bool hppw = false; - - uint8_t sockInt = phy.readSocketInterruptReg(); - - // TX socket interrupts management - if (sockInt & (0x01 << PHY_TX_SOCK_NUM)) - { - // Stopping watchdog inside an IRQ is safe to do - wdt->stop(); - - uint8_t txFlags = phy.getSocketInterruptReg(PHY_TX_SOCK_NUM); - phy.clearSocketInterruptReg(PHY_TX_SOCK_NUM); - - // Send OK interrupt flag set - if (txFlags & 0x10) - evtQueue.IRQpost(bind(&UdpManager::tx_end_handler, this), hppw); - - // Timeout flag set, problems with ARP - if (txFlags & 0x08) - evtQueue.IRQpost(bind(&UdpManager::timeout_handler, this), hppw); - } - - // RX socket interrupts management - if (sockInt & (0x01 << PHY_RX_SOCK_NUM)) - { - uint8_t rxFlags = phy.getSocketInterruptReg(PHY_RX_SOCK_NUM); - phy.clearSocketInterruptReg(PHY_RX_SOCK_NUM); - - if (rxFlags & 0x04) - evtQueue.IRQpost(bind(&UdpManager::rx_handler, this), hppw); - } - - if (hppw) - Scheduler::IRQfindNextThread(); -} - -void UdpManager::wdtIrqHandler() -{ - bool hppw = false; - evtQueue.IRQpost(bind(&UdpManager::timeout_handler, this), hppw); - - if (hppw) - Scheduler::IRQfindNextThread(); -} - -void UdpManager::tx_handler() -{ - if (txBuffer->empty()) - return; - - packet_header_t header = txBuffer->getHeader(); - uint8_t* addr = reinterpret_cast<uint8_t*>(&header.ipAddress); - - uint8_t payload[header.payloadSize]; - txBuffer->getData(payload); - txBuffer->popFront(); - - phy.setSocketDestIp(PHY_TX_SOCK_NUM, addr); - phy.setSocketDestPort(PHY_TX_SOCK_NUM, header.port); - phy.writeData(PHY_TX_SOCK_NUM, payload, header.payloadSize); - phy.setSocketCommandReg(PHY_TX_SOCK_NUM, SOCKn_CR_SEND); - - wdt->clear(); - wdt->start(); -} - -void UdpManager::tx_end_handler() -{ - if (txBuffer->empty()) - return; - - bool ok = evtQueue.postNonBlocking(bind(&UdpManager::tx_handler, this)); - if (!ok) - { - // TODO: better failure logging - puts("UDP->tx_end_handler:job queue full, failed to post tx_handler"); - } -} - -void UdpManager::timeout_handler() -{ - if (wdt->expired()) - puts("Tx timeout due to watchdog expiration"); - else - puts("Tx timeout due to phy error"); - - bool ok = evtQueue.postNonBlocking(bind(&UdpManager::tx_end_handler, this)); - if (!ok) - puts( - "UDP->timeout_handler: job queue full, " - "failed to post tx_end_handler"); -} - -void UdpManager::rx_handler() -{ - // get new packet len, in bytes - uint16_t len = phy.getReceivedSize(PHY_RX_SOCK_NUM); - uint8_t buffer[len]; - - // read all the packet, that is made of so30urceIp + sourcePort + - // payload len + payload. Since the header length is of 8 bytes, - // the payload length is len - 8 bytes! :-) - phy.readData(PHY_RX_SOCK_NUM, buffer, len); - - // Set back to listening mode - phy.setSocketCommandReg(PHY_RX_SOCK_NUM, SOCKn_CR_RECV); - - packet_header_t header; - - memcpy(reinterpret_cast<uint8_t*>(&(header.ipAddress)), buffer, 4); - header.port = (buffer[4] << 8) | buffer[5]; - header.payloadSize = len - 8; - - bool pushOk = rxBuffer->push(header, &buffer[8]); - - if (!pushOk) - puts( - "rx_handler error: rxBuffer is full," - "cannot enqueue a new packet!"); -} diff --git a/old_examples/shared/drivers/ethernet/UdpManager.h b/old_examples/shared/drivers/ethernet/UdpManager.h deleted file mode 100644 index c89f3ddb08de24b4b51843a8f2a7733341731a25..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ethernet/UdpManager.h +++ /dev/null @@ -1,127 +0,0 @@ -/* Copyright (c) 2016-2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <Common.h> -#include <Singleton.h> -#include <W5200/w5200.h> -#include <e20/e20.h> - -#include "PacketBuffer.h" -#include "WatchdogTimer.h" - -class UdpManager : Singleton<UdpManager> -{ - friend class Singleton<UdpManager>; - -public: - /** - * Open a transmitting UDP socket which source port is @param port - */ - void setTxPort(uint16_t port); - - /** - * Open a receiving UDP socket that will listen on @param port, listening - * starts as soon as this function is called - */ - void setRxPort(uint16_t port); - - /** - * Send an UDP packet. - * @param ip: destination IP address - * @param port: destination port - * @param data: pointer to payload data - * @param len: payload lenght in bytes - */ - void sendPacketTo(const uint8_t* ip, const uint16_t port, const void* data, - size_t len); - - /** - * @return true if there are new packets in the rx buffer - */ - bool newReceivedPackets(); - - /** - * @return payload size of the packet stored at the head of the internal - * buffer, in other words the packet that will be read if readPacket() is - * called. - */ - size_t recvPacketSize(); - - /** - * Read the packet placed at rx buffer's head popping it out of the queue. - * @param ip: source ip address - * @param port: source port - * @param data: pointer to a buffer in which store the payload data. It must - * have a size greater than or equal to that returned by recvPacketSize() - */ - void readPacket(uint8_t* ip, uint16_t& port, void* data); - - /** - * IRQ handler for interrupts coming from the phy interface chip - * WARNING: DON'T call this!! - */ - void phyIrqHandler(); - - /** - * IRQ handler for interrupts coming from the tx watchdog timer - * WARNING: DON'T call this!! - */ - void wdtIrqHandler(); - -private: - // TX timeout time, in ms - static constexpr unsigned int TX_TIMEOUT = 500; // 500ms timeout - - // Size of the event queue, used for event handling - static constexpr unsigned int EVT_QUEUE_SIZE = 20; - - // Size of buffer used to store packets still to be sent, IN BYTES - static constexpr unsigned int TX_BUF_SIZE = 100000; - - // Size of buffer used to store packets received, IN BYTES - static constexpr unsigned int RX_BUF_SIZE = 100000; - - // TX and RX socket number, used by the phy interface - static constexpr uint8_t PHY_TX_SOCK_NUM = 0; - static constexpr uint8_t PHY_RX_SOCK_NUM = 1; - - miosix::FixedEventQueue<EVT_QUEUE_SIZE> evtQueue; - PacketBuffer* txBuffer; - PacketBuffer* rxBuffer; - W5200& phy = W5200::instance(); - WatchdogTimer* wdt = Singleton<WatchdogTimer>::getInstance(); - - // Function used by the event management thread - friend void _evt_mgmt_thread(void* args); - - void tx_handler(); //< Tx event handler function - void tx_end_handler(); //< Tx end event handler function - void rx_handler(); //< New packet Rx handler function - void timeout_handler(); //< Tx timeout handler function - - UdpManager(); - UdpManager(const UdpManager& other); - UdpManager& operator=(const UdpManager& other); - ~UdpManager(); -}; diff --git a/old_examples/shared/drivers/ethernet/W5200/spi_impl.cpp b/old_examples/shared/drivers/ethernet/W5200/spi_impl.cpp deleted file mode 100644 index 5585500554449111b801ff6bcf40b0541961a42d..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ethernet/W5200/spi_impl.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 "spi_impl.h" - -using namespace miosix; - -void Spi_init() -{ - eth::sck::mode(Mode::ALTERNATE); - eth::sck::alternateFunction(5); - - eth::miso::mode(Mode::ALTERNATE); - eth::miso::alternateFunction(5); - - eth::mosi::mode(Mode::ALTERNATE); - eth::mosi::alternateFunction(5); - - eth::cs::mode(Mode::OUTPUT); - - RCC->APB2ENR |= RCC_APB2ENR_SPI5EN; - RCC_SYNC(); - - // APB bus frequency is 90MHz, so leaving the BR[2:0] bits - // in CR1 makes the SPI clock frequency to be 45MHz - - SPI5->CR1 = SPI_CR1_SSM // CS handled in software - | SPI_CR1_SSI // Internal CS high - | SPI_CR1_SPE // SPI enabled - | SPI_CR1_MSTR; // Master mode -} - -unsigned char Spi_sendRecv(unsigned char data) -{ - SPI5->DR = data; - while ((SPI5->SR & SPI_SR_RXNE) == 0) - ; // Wait - return SPI5->DR; -} - -void Spi_CS_high() { eth::cs::high(); } - -void Spi_CS_low() { eth::cs::low(); } diff --git a/old_examples/shared/drivers/ethernet/W5200/spi_impl.h b/old_examples/shared/drivers/ethernet/W5200/spi_impl.h deleted file mode 100644 index 6a771766d1be15a7c3b1619eada82fda9d81f198..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ethernet/W5200/spi_impl.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <Common.h> - -void Spi_init(); - -unsigned char Spi_sendRecv(unsigned char data); - -void Spi_CS_high(); - -void Spi_CS_low(); diff --git a/old_examples/shared/drivers/ethernet/W5200/w5200.cpp b/old_examples/shared/drivers/ethernet/W5200/w5200.cpp deleted file mode 100644 index 18d1fa62eb17c2d3ce08d58a7bfd5cdf1e21976e..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ethernet/W5200/w5200.cpp +++ /dev/null @@ -1,398 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 "w5200.h" - -#include "spi_impl.h" -#include "w5200_defs.h" - -W5200& w5200 = W5200::instance(); - -W5200::W5200() -{ - /* initialize RX and TX buffer size vectors to default value, - which is 2kB */ - - std::fill(txBufSize, txBufSize + MAX_SOCK_NUM, 0x02 << 10); - std::fill(rxBufSize, rxBufSize + MAX_SOCK_NUM, 0x02 << 10); - - Spi_init(); // start SPI bus if needed - setMacAddress(macAddress); -} - -W5200& W5200::instance() -{ - static W5200 instance; - return instance; -} - -void W5200::setMacAddress(const uint8_t* address) -{ - writeRegister(SHAR_BASE, address[0]); - writeRegister(SHAR_BASE + 1, address[1]); - writeRegister(SHAR_BASE + 2, address[2]); - writeRegister(SHAR_BASE + 3, address[3]); - writeRegister(SHAR_BASE + 4, address[4]); - writeRegister(SHAR_BASE + 5, address[5]); -} - -void W5200::setIpAddress(const uint8_t* address) -{ - writeRegister(SIPR_BASE, address[0]); - writeRegister(SIPR_BASE + 1, address[1]); - writeRegister(SIPR_BASE + 2, address[2]); - writeRegister(SIPR_BASE + 3, address[3]); -} - -void W5200::setSubnetMask(const uint8_t* mask) -{ - writeRegister(SUBR_BASE, mask[0]); - writeRegister(SUBR_BASE + 1, mask[1]); - writeRegister(SUBR_BASE + 2, mask[2]); - writeRegister(SUBR_BASE + 3, mask[3]); -} - -void W5200::setGatewayAddress(const uint8_t* address) -{ - writeRegister(GAR_BASE, address[0]); - writeRegister(GAR_BASE + 1, address[1]); - writeRegister(GAR_BASE + 2, address[2]); - writeRegister(GAR_BASE + 3, address[3]); -} - -void W5200::setModeReg(uint8_t value) { writeRegister(MR, value); } - -void W5200::setInterruptMask(uint8_t mask) { writeRegister(IR_MASK, mask); } - -uint8_t W5200::readInterruptReg() const { return readRegister(IR); } - -void W5200::setSocketMSS(SOCKET sockNum, uint16_t value) -{ - writeRegister(SOCKn_MSSR0 + sockNum * SR_SIZE, - static_cast<uint8_t>((value & 0xff00) >> 8)); - writeRegister(SOCKn_MSSR0 + sockNum * SR_SIZE + 1, - static_cast<uint8_t>(value & 0x00ff)); -} - -void W5200::setRetryCount(uint16_t value) { writeRegister(RCR, value); } - -void W5200::setRetryTime(uint16_t value) -{ - writeRegister(RTR_BASE, static_cast<uint8_t>((value & 0xff00) >> 8)); - writeRegister(RTR_BASE + 1, static_cast<uint8_t>(value & 0x00ff)); -} - -void W5200::setSocketModeReg(SOCKET sockNum, uint8_t value) -{ - writeRegister(SOCKn_MR + sockNum * SR_SIZE, value); -} - -uint8_t W5200::getSocketStatusReg(SOCKET sockNum) const -{ - return readRegister(SOCKn_SR + sockNum * SR_SIZE); -} - -uint8_t W5200::getSocketInterruptReg(SOCKET sockNum) const -{ - return readRegister(SOCKn_IR + sockNum * SR_SIZE); -} - -void W5200::clearSocketInterruptReg(SOCKET sockNum) -{ - writeRegister(SOCKn_IR + sockNum * SR_SIZE, 0xFF); -} - -void W5200::setSocketProtocolValue(SOCKET sockNum, uint8_t value) -{ - writeRegister(SOCKn_PROTO + sockNum * SR_SIZE, value); -} - -uint8_t W5200::getPhyStatus() const { return readRegister(PHY); } - -uint8_t W5200::readSocketInterruptReg() const { return readRegister(SOCK_IR); } - -void W5200::setSocketInterruptMask(uint8_t mask) -{ - writeRegister(SOCK_IR_MASK, mask); -} - -void W5200::setSocketInterruptMaskReg(SOCKET sockNum, uint8_t value) -{ - writeRegister(SOCKn_IMR + sockNum * SR_SIZE, value); -} - -void W5200::setSocketCommandReg(SOCKET sockNum, uint8_t value) -{ - writeRegister(SOCKn_CR + sockNum * SR_SIZE, value); -} - -uint8_t W5200::getSocketCommandReg(SOCKET sockNum) const -{ - return readRegister(SOCKn_CR + sockNum * SR_SIZE); -} - -void W5200::setSocketDestIp(SOCKET sockNum, const uint8_t* destIP) -{ - writeRegister(SOCKn_DIPR0 + sockNum * SR_SIZE, destIP[0]); - writeRegister(SOCKn_DIPR0 + sockNum * SR_SIZE + 1, destIP[1]); - writeRegister(SOCKn_DIPR0 + sockNum * SR_SIZE + 2, destIP[2]); - writeRegister(SOCKn_DIPR0 + sockNum * SR_SIZE + 3, destIP[3]); -} - -void W5200::setSocketDestMac(SOCKET sockNum, uint8_t* destMAC) -{ - writeRegister(SOCKn_DHAR0 + sockNum * SR_SIZE, destMAC[0]); - writeRegister(SOCKn_DHAR0 + sockNum * SR_SIZE + 1, destMAC[1]); - writeRegister(SOCKn_DHAR0 + sockNum * SR_SIZE + 2, destMAC[2]); - writeRegister(SOCKn_DHAR0 + sockNum * SR_SIZE + 3, destMAC[3]); - writeRegister(SOCKn_DHAR0 + sockNum * SR_SIZE + 4, destMAC[4]); - writeRegister(SOCKn_DHAR0 + sockNum * SR_SIZE + 5, destMAC[5]); -} - -void W5200::setSocketDestPort(SOCKET sockNum, uint16_t destPort) -{ - writeRegister(SOCKn_DPORT0 + sockNum * SR_SIZE, - static_cast<uint8_t>((destPort & 0xff00) >> 8)); - writeRegister(SOCKn_DPORT0 + sockNum * SR_SIZE + 1, - static_cast<uint8_t>(destPort & 0x00ff)); -} - -void W5200::setSocketSourcePort(SOCKET sockNum, uint16_t port) -{ - writeRegister(SOCKn_SPORT0 + sockNum * SR_SIZE, - static_cast<uint8_t>((port & 0xff00) >> 8)); - writeRegister(SOCKn_SPORT0 + sockNum * SR_SIZE + 1, - static_cast<uint8_t>(port & 0x00ff)); -} - -void W5200::setSocketFragmentValue(SOCKET sockNum, uint16_t value) -{ - writeRegister(SOCKn_FRAG0 + sockNum * SR_SIZE, - static_cast<uint8_t>((value & 0xff00) >> 8)); - writeRegister(SOCKn_FRAG0 + sockNum * SR_SIZE + 1, - static_cast<uint8_t>(value & 0x00ff)); -} - -void W5200::setSocketTos(SOCKET sockNum, uint8_t TOSvalue) -{ - writeRegister(SOCKn_TOS + sockNum * SR_SIZE, TOSvalue); -} - -void W5200::setSocketTtl(SOCKET sockNum, uint8_t TTLvalue) -{ - writeRegister(SOCKn_TTL + sockNum * SR_SIZE, TTLvalue); -} - -void W5200::setSocketRxMemSize(SOCKET sockNum, uint8_t memSize) -{ - writeRegister(SOCKn_RXMEM_SIZE + sockNum * SR_SIZE, memSize); - rxBufSize[sockNum] = memSize << 10; -} - -void W5200::setSocketTxMemSize(SOCKET sockNum, uint8_t memSize) -{ - writeRegister(SOCKn_TXMEM_SIZE + sockNum * SR_SIZE, memSize); - txBufSize[sockNum] = memSize << 10; -} - -uint16_t W5200::getReceivedSize(SOCKET sockNum) const -{ - uint16_t len; - len = readRegister(SOCKn_RX_RSR0 + sockNum * SR_SIZE) << 8; - len += readRegister(SOCKn_RX_RSR0 + sockNum * SR_SIZE + 1); - - return len; -} - -void W5200::readData(SOCKET sockNum, uint8_t* data, uint16_t len) -{ - uint16_t readPtr; - - // Read read pointer's upper byte - readPtr = readRegister(SOCKn_RX_RD0 + sockNum * SR_SIZE) << 8; - // Read read pointer's lower byte - readPtr += readRegister(SOCKn_RX_RD0 + sockNum * SR_SIZE + 1); - - readRxBuf(sockNum, readPtr, data, len); - - readPtr += len; - - // Update read pointer value - writeRegister(SOCKn_RX_RD0 + sockNum * SR_SIZE, - static_cast<uint8_t>((readPtr & 0xFF00) >> 8)); - writeRegister(SOCKn_RX_RD0 + sockNum * SR_SIZE + 1, - static_cast<uint8_t>(readPtr & 0x00FF)); -} - -void W5200::writeData(SOCKET sockNum, const uint8_t* data, uint16_t len) -{ - uint16_t writePtr; - // Read write pointer's upper byte - writePtr = readRegister(SOCKn_TX_WR0 + sockNum * SR_SIZE) << 8; - // Read write pointer's lower byte - writePtr += readRegister(SOCKn_TX_WR0 + sockNum * SR_SIZE + 1); - - writeTxBuf(sockNum, data, writePtr, len); - - writePtr += len; - - // Update write pointer value - writeRegister(SOCKn_TX_WR0 + sockNum * SR_SIZE, - static_cast<uint8_t>((writePtr & 0xFF00) >> 8)); - writeRegister(SOCKn_TX_WR0 + sockNum * SR_SIZE + 1, - static_cast<uint8_t>(writePtr & 0x00FF)); -} - -void W5200::readRxBuf(SOCKET socket, uint16_t src, uint8_t* dst, uint16_t len) -{ - /* Compute socket's buffer base address as a sum of RX_BUF_BASE and - * the sizes of buffers allotted for sockets before this - */ - - uint16_t sockBufBase = RX_BUF_BASE; - - for (int i = 0; i < socket; i++) - sockBufBase += rxBufSize[i]; - - /* The address mask value is equal to socket's size in byte minus one */ - - uint16_t mask = rxBufSize[socket] - 1; - - /* The physical address at which reading process begins is base address - * plus the logical and between src pointer and address mask - */ - - uint16_t startAddress = (src & mask) + sockBufBase; - - if ((src & mask) + len > rxBufSize[socket]) - { - uint16_t size = rxBufSize[socket] - (src & mask); - readBuffer(startAddress, dst, size); - dst += size; - size = len - size; - readBuffer(sockBufBase, dst, size); - } - else - { - readBuffer(startAddress, dst, len); - } -} - -void W5200::writeTxBuf(SOCKET socket, const uint8_t* src, uint16_t dst, - uint16_t len) -{ - /* Compute socket's buffer base address as a sum of RX_BUF_BASE and - * the sizes of buffers allotted for sockets before this - */ - uint16_t sockBufBase = TX_BUF_BASE; - - for (int i = 0; i < socket; i++) - sockBufBase += txBufSize[i]; - - /* The address mask value is equal to socket's size in byte minus one */ - uint16_t mask = txBufSize[socket] - 1; - - /* The physical address at which reading process begins is base address - * plus the logical and between src pointer and address mask - */ - - uint16_t startAddress = (dst & mask) + sockBufBase; - - if ((dst & mask) + len > txBufSize[socket]) - { - uint16_t size = txBufSize[socket] - (dst & mask); - writeBuffer(startAddress, src, size); - src += size; - size = len - size; - writeBuffer(sockBufBase, src, size); - } - else - { - writeBuffer(startAddress, src, len); - } -} - -uint8_t W5200::readRegister(uint16_t address) const -{ - uint8_t data; - - Spi_CS_low(); - - Spi_sendRecv((address & 0xFF00) >> 8); // Address byte 1 - Spi_sendRecv(address & 0x00FF); // Address byte 2 - Spi_sendRecv(0x00); // Data read command and len[0] - Spi_sendRecv(0x01); // Read len[1] - data = Spi_sendRecv(0x00); // Data read - - Spi_CS_high(); - - return data; -} - -void W5200::readBuffer(uint16_t address, uint8_t* data, uint16_t len) -{ - if (len == 0) - return; - - Spi_CS_low(); - - Spi_sendRecv((address & 0xFF00) >> 8); // Address byte 1 - Spi_sendRecv(address & 0x00FF); // Address byte 2 - Spi_sendRecv(0x00 | ((len & 0x7F00) >> 8)); // Write cmd and len[0] - Spi_sendRecv(len & 0x00FF); // Write data len[1] - - for (uint16_t i = 0; i < len; i++) - data[i] = Spi_sendRecv(0x00); - - Spi_CS_high(); -} - -void W5200::writeBuffer(uint16_t address, const uint8_t* data, uint16_t len) -{ - if (len == 0) - return; - - Spi_CS_low(); - - Spi_sendRecv((address & 0xFF00) >> 8); // Address byte 1 - Spi_sendRecv(address & 0x00FF); // Address byte 2 - Spi_sendRecv(0x80 | ((len & 0x7F00) >> 8)); // Write cmd and len[0] - Spi_sendRecv(len & 0x00FF); // Write data len[1] - - for (uint16_t i = 0; i < len; i++) - Spi_sendRecv(data[i]); - - Spi_CS_high(); -} - -void W5200::writeRegister(uint16_t address, uint8_t data) -{ - Spi_CS_low(); - - Spi_sendRecv((address & 0xFF00) >> 8); // Address byte 1 - Spi_sendRecv(address & 0x00FF); // Address byte 2 - Spi_sendRecv(0x80); // Write cmd and len[0] - Spi_sendRecv(0x01); // Write data len[1] - Spi_sendRecv(data); // Data write - - Spi_CS_high(); -} diff --git a/old_examples/shared/drivers/ethernet/W5200/w5200.h b/old_examples/shared/drivers/ethernet/W5200/w5200.h deleted file mode 100644 index d59c6bc817d7ad5eb8381f80af3e669903dc015e..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ethernet/W5200/w5200.h +++ /dev/null @@ -1,320 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include "spi_impl.h" -#include "w5200_defs.h" - -typedef uint8_t SOCKET; - -// extern W5200& w5200; //a W5200 driver class instance - -class W5200 -{ -public: - /** - * \return a singleton instance of W5200 class - */ - static W5200 &instance(); - - /** - * Set chip's MAC address - */ - void setMacAddress(const uint8_t *address); - - /** - * Set chip's IP address - */ - void setIpAddress(const uint8_t *address); - - /** - * Set network's subnet mask - */ - void setSubnetMask(const uint8_t *mask); - - /** - * Set network's gateway IP address - */ - void setGatewayAddress(const uint8_t *address); - - /** - * Set Mode register flags - */ - void setModeReg(uint8_t value); - - /** - * Set retransmission timeout period in units of 100us each - * for example to set timeout period to 400ms you have to set - * this register to 0x4000 - */ - void setRetryTime(uint16_t value); - - /** - * Configures the number of retransmissions - */ - void setRetryCount(uint16_t value); - - /** - * Configures the interrupt mask for socket interrupts - */ - void setInterruptMask(uint8_t mask); - - /** - * \return chip's interrupt register value - */ - uint8_t readInterruptReg() const; - - /** - * \return chip's IR2 register value, please refer to datasheet - */ - uint8_t readSocketInterruptReg() const; - - /** - * Configures chip's IMR2 register, please refer to datasheet - */ - void setSocketInterruptMask(uint8_t mask); - - /** - * \return value of register that indicates chip's - * physical status - */ - uint8_t getPhyStatus() const; - - /** - * Writes socket's mode register - * \param sockNum: socket number, between 0 and 7 - * \param value: value to be written - */ - void setSocketModeReg(SOCKET sockNum, uint8_t value); - - /** - * Used to send a command to a socket through its command register - * \param sockNum: socket number, between 0 and 7 - * \param value: command opcode - */ - void setSocketCommandReg(SOCKET sockNum, uint8_t value); - - /** - * Used to get register's value, as a way to check if a given - * command is completed - * \param sockNum: socket number, between 0 and 7 - * \return register's value - */ - uint8_t getSocketCommandReg(SOCKET sockNum) const; - - /** - * Configures the socket interrupts that will be signalled - * \param sockNum: socket number, between 0 and 7 - * \param value: mask value - */ - void setSocketInterruptMaskReg(SOCKET sockNum, uint8_t value); - - /** - * Reads socket's interrupt register - * \param sockNum: socket number, between 0 and 7 - * \return socket's interrupt register value - */ - uint8_t getSocketInterruptReg(SOCKET sockNum) const; - - /** - * Resets all the socket's interrupt register flags - * \param sockNum: socket number, between 0 and 7 - */ - - void clearSocketInterruptReg(SOCKET sockNum); - - /** - * Reads socket's status register - * \param sockNum: socket number, between 0 and 7 - * \return socket's status register value - */ - uint8_t getSocketStatusReg(SOCKET sockNum) const; - - /** - * Sets socket's source port value, both for TCP and UDP - * \param sockNum: socket number, between 0 and 7 - * \param port: socket's source port number - */ - void setSocketSourcePort(SOCKET sockNum, uint16_t port); - - /** - * Sets socket's destination MAC address - * \param sockNum: socket number, between 0 and 7 - * \param destMAC: socket's destination MAC address - */ - void setSocketDestMac(SOCKET sockNum, uint8_t *destMAC); - - /** - * Sets socket's destination IP address - * \param sockNum: socket number, between 0 and 7 - * \param destIP: socket's destination IP address - */ - void setSocketDestIp(SOCKET sockNum, const uint8_t *destIP); - - /** - * Sets socket's destination port number - * \param sockNum: socket number, between 0 and 7 - * \param value: socket's destination port number - */ - void setSocketDestPort(SOCKET sockNum, uint16_t destPort); - - /** - * Set socket's Maximum Segment Size for TCP mode - * \param sockNum: socket number, between 0 and 7 - * \param value: MSS value - */ - void setSocketMSS(SOCKET sockNum, uint16_t value); - - /** - * Set socket's protocol number when used in IPraw mode - * \param sockNum: socket number, between 0 and 7 - * \param value: protocol number - */ - void setSocketProtocolValue(SOCKET sockNum, uint8_t value); - - /** W5200(); - * Sets Type Of Service field value in socket's IP header - * \param sockNum: socket number, between 0 and 7 - * \param TOSvalue: field value - */ - void setSocketTos(SOCKET sockNum, uint8_t TOSvalue); - - /** - * Sets Time To Live field value in socket's IP header - * \param sockNum: socket number, between 0 and 7 - * \param TTLvalue: field value - */ - void setSocketTtl(SOCKET sockNum, uint8_t TTLvalue); - - /** - * Sets Fragment field value in socket's IP header - * \param sockNum: socket number, between 0 and 7 - * \param value: field value - */ - void setSocketFragmentValue(SOCKET sockNum, uint16_t value); - - /** - * Configures socket's internal RX memory size - * Accepted values are: 0, 1, 2, 4, 8 and 16kB - * \param sockNum: socket number, between 0 and 7 - * \param memSize: desired RX memory size - */ - void setSocketRxMemSize(SOCKET sockNum, uint8_t memSize); - - /** - * Configures socket's internal TX memory size - * Accepted values are: 0, 1, 2, 4, 8 and 16kB - * \param sockNum: socket number, between 0 and 7 - * \param memSize: desired TX memory size - */ - void setSocketTxMemSize(SOCKET sockNum, uint8_t memSize); - - /** - * Writes data into socket TX buffer and updates in-chip pointer - * \param sockNum: socket number, between 0 and 7 - * \param data: pointer to buffer containing data to be written - * \param len: number of bytes to be written - */ - void writeData(SOCKET sockNum, const uint8_t *data, uint16_t len); - - /** - * Reads data from socket RX buffer and updates in-chip pointer - * \param sockNum: socket number, between 0 and 7 - * \param data: pointer to buffer in which write data - * \param len: number of bytes to be read - */ - void readData(SOCKET sockNum, uint8_t *data, uint16_t len); - - /** - * \param sockNum: socket number, between 0 and 7 - * \return the received data size in byte - */ - uint16_t getReceivedSize(SOCKET sockNum) const; - -private: - W5200(); - - /** - * Write one byte into chip's register - * \param address: register's address - * \param data: data to be written - */ - void writeRegister(uint16_t address, uint8_t data); - - /** - * Write multiple bytes into chip's memory - * \param address: writing process start point address - * \param data: pointer to the data to be written - * \param len: number of bytes to be written - */ - void writeBuffer(uint16_t address, const uint8_t *data, uint16_t len); - - /** - * Read one byte from chip's register - * \param address: register's address - * \return data read - */ - uint8_t readRegister(uint16_t address) const; - - /** - * Read multiple bytes into chip's memory - * \param address: reading process start point address - * \param data: pointer to the data to be read - * \param len: number of bytes to be read - */ - void readBuffer(uint16_t address, uint8_t *data, uint16_t len); - - /** - * This function is used to copy data from application buffer to socket's - * in-chip TX buffer - * - * TODO: better description - * - * \param socket: socket number, between 0 and 7 - * \param src: pointer to source buffer - * \param dst: destination buffer start address. - * This start address is referred to chip's buffer!! - * \param len: number of bytes to be copied - */ - void writeTxBuf(SOCKET socket, const uint8_t *src, uint16_t dst, - uint16_t len); - - /** - * This function is used to copy data from socket's in-chip TX buffer - * to application buffer - * - * TODO: better description - * - * \param socket: socket number, between 0 and 7 - * \param src: source buffer start address. - * This start address is referred to chip's buffer!! - * \param dst: pointer to destination buffer - * \param len: number of bytes to be copied - */ - void readRxBuf(SOCKET socket, uint16_t src, uint8_t *dst, uint16_t len); - - uint16_t txBufSize[MAX_SOCK_NUM]; // sockets TX buffer size in byte - uint16_t rxBufSize[MAX_SOCK_NUM]; // sockets RX buffer size in byte - - const uint8_t macAddress[6] = {0xde, 0xad, 0x00, 0x00, 0xbe, 0xef}; -}; diff --git a/old_examples/shared/drivers/ethernet/W5200/w5200_defs.h b/old_examples/shared/drivers/ethernet/W5200/w5200_defs.h deleted file mode 100644 index 32f38f6845e66933a177dcaf07db7ab350e1bfba..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ethernet/W5200/w5200_defs.h +++ /dev/null @@ -1,186 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <Common.h> - -/* Maximum number of sockets managed by the device */ -constexpr uint8_t MAX_SOCK_NUM = 8; - -static constexpr uint32_t COMMON_BASE = 0x0000; - -// TX buffer memory base address -constexpr uint32_t TX_BUF_BASE = COMMON_BASE + 0x8000; - -// RX buffer memory base address -constexpr uint32_t RX_BUF_BASE = COMMON_BASE + 0xC000; - -// clang-format off -/** Common registers **/ -enum eW5200Registers -{ - MR = COMMON_BASE + 0x0000, //mode register address - GAR_BASE = COMMON_BASE + 0x0001, //Gateway IP Register base address - SUBR_BASE = COMMON_BASE + 0x0005, //Subnet mask Register base address - SHAR_BASE = COMMON_BASE + 0x0009, //Source MAC Register base address - SIPR_BASE = COMMON_BASE + 0x000F, //Source IP Register base address - IR = COMMON_BASE + 0x0015, //Interrupt Register address - IR_MASK = COMMON_BASE + 0x0036, //Interrupt mask register - RTR_BASE = COMMON_BASE + 0x0017, //retransmission Timeout register - RCR = COMMON_BASE + 0x0019, //retransmission count register - SOCK_IR = COMMON_BASE + 0x0034, //Socket Interrupt Register - SOCK_IR_MASK = COMMON_BASE + 0x0016, //Socket Interrupt mask register - PHY = COMMON_BASE + 0x0035, //PHY Status Register - VERSION = COMMON_BASE + 0x001F, //chip version number register - PPP_AUTH_REG = COMMON_BASE + 0x001C, //autentication type in PPPoE mode - PPP_TIME_REG = COMMON_BASE + 0x0028, //LCP Request Timer in PPPoE mode - PPP_MAGIC_REG = COMMON_BASE + 0x0029, //PPP LCP Magic number in PPPoE mode - INTLEVEL0 = COMMON_BASE + 0x0030, //set Interrupt LL timer register - INTLEVEL1 = COMMON_BASE + 0x0031, -}; - -/* MODE register values */ -enum eW5200MODERegisters -{ - MR_RST = 0x80, // Reset - MR_PB = 0x10, // Ping block enable - MR_PPPOE = 0x08, // PPPoE enable -}; - -/* IR register values */ -enum eW5200IRRegisters -{ - IR_CONFLICT = 0x80, //IP conflict - IR_PPPoE = 0x20, //PPPoE connection close -}; - -/* Socket registers */ -enum eW5200SockRegisters -{ - SR_BASE = COMMON_BASE + 0x4000, //Socket registers base address - SR_SIZE = 0x100, //Size of each channel register map -}; - -enum eW5200SockNRegisters -{ - SOCKn_MR = SR_BASE + 0x0000, // Mode register - SOCKn_CR = SR_BASE + 0x0001, // Command register - SOCKn_IR = SR_BASE + 0x0002, // Interrupt register - SOCKn_SR = SR_BASE + 0x0003, // Status register - SOCKn_SPORT0 = SR_BASE + 0x0004, // Source port register - SOCKn_DHAR0 = SR_BASE + 0x0006, // Destination MAC address register - SOCKn_DIPR0 = SR_BASE + 0x000C, // Destination IP address register - SOCKn_DPORT0 = SR_BASE + 0x0010, // Destination port register - SOCKn_IMR = SR_BASE + 0x002C, // Interrupt mask register - - SOCKn_MSSR0 = SR_BASE + 0x0012, // MSS in TCP mode - - SOCKn_PROTO = SR_BASE + 0x0014, // Protocol number in IPRAW mode - - SOCKn_TOS = SR_BASE + 0x0015, // IP header ToS field value - SOCKn_TTL = SR_BASE + 0x0016, // IP header TTL field value - SOCKn_FRAG0 = SR_BASE + 0x002D, // IP header Fragment field value - - SOCKn_RXMEM_SIZE = SR_BASE + 0x001E, // RX buffer size register - SOCKn_TXMEM_SIZE = SR_BASE + 0x001F, // TX buffer size register - - SOCKn_TX_FSR0 = SR_BASE + 0x0020, // TX buffer free size register - SOCKn_TX_RD0 = SR_BASE + 0x0022, // TX buffer read pointer address - SOCKn_TX_WR0 = SR_BASE + 0x0024, // TX buffer write pointer address - - SOCKn_RX_RSR0 = SR_BASE + 0x0026, // Received data size register - SOCKn_RX_RD0 = SR_BASE + 0x0028, // RX buffer read pointer address - SOCKn_RX_WR0 = SR_BASE + 0x002A, // RX buffer write pointer address -}; - -/* SOCKn_MR values */ -enum eW5200SockNMRValues -{ - SOCKn_MR_CLOSE = 0x00, // Socket closed - SOCKn_MR_TCP = 0x01, // TCP mode - SOCKn_MR_UDP = 0x02, // UDP mode - SOCKn_MR_IPRAW = 0x03, // IP layer raw socket - SOCKn_MR_MACRAW = 0x04, // MAC layer raw socket - SOCKn_MR_PPPOE = 0x05, // PPPoE mode - SOCKn_MR_ND = 0x20, // No delayed ACK enable - SOCKn_MR_MULTI = 0x80, // Enable multicasting (only in UDP mode) -}; - -/* SOCKn_CR values */ -enum eW5200SockNCRValues -{ - SOCKn_CR_OPEN = 0x01, // Initialize and open socket - SOCKn_CR_LISTEN = 0x02, // Wait conn request in TCP mode (Server mode) - SOCKn_CR_CONNECT = 0x04, // Send conn request in TCP mode (Client mode) - SOCKn_CR_DISCON = 0x08, // Disconnect request in TCP mode - SOCKn_CR_CLOSE = 0x10, // Close socket - SOCKn_CR_SEND = 0x20, // Send all data stored in TX buffer - SOCKn_CR_SEND_MAC = 0x21, // Send data + MAC without ARP (only in UDP mode) - SOCKn_CR_SEND_KEEP = 0x22, // Check if TCP connection is still alive - SOCKn_CR_RECV = 0x40, // Receive data -}; - -/* SOCKn_IR values */ -enum eW5200SockNIRValues -{ - SOCKn_IR_CON = 0x01, // Connection established - SOCKn_IR_DISCON = 0x02, // Disconnected (TCP mode) - SOCKn_IR_RECV = 0x04, // Some data received - SOCKn_IR_TIMEOUT = 0x08, // Timeout occurred in ARP or TCP - SOCKn_IR_SEND_OK = 0x10, // SEND command completed -}; - -/* SOCKn_SR values */ -enum eW5200SockStatus -{ - SOCK_CLOSED = 0x00, // Socket closed - SOCK_INIT = 0x13, // TCP init state - SOCK_LISTEN = 0x14, // TCP server listen for connection state - SOCK_SYNSENT = 0x15, // TCP connection request sent to server - SOCK_SYNRECV = 0x16, // TCP connection request received from client - SOCK_ESTABLISHED = 0x17, // TCP connection established - SOCK_FIN_WAIT = 0x18, // TCP closing state - SOCK_CLOSING = 0x1A, // TCP closing state - SOCK_TIME_WAIT = 0x1B, // TCP closing state - SOCK_CLOSE_WAIT = 0x1C, // TCP closing state - SOCK_LAST_ACK = 0x1D, // TCP closing state - SOCK_UDP = 0x22, // Socket opened in UDP mode - SOCK_IPRAW = 0x32, // Socket opened in IP raw mode - SOCK_MACRAW = 0x42, // Socket opened in MAC raw mode - SOCK_PPPOE = 0x5F, // Socket opened in PPPoE mode -}; - -/* IPProto values */ -enum eW5200IPProtoValues -{ - IPPROTO_IP = 0, // Dummy for IP - IPPROTO_ICMP = 1, // ICMP protocol - IPPROTO_IGMP = 2, // IGMP protocol - IPPROTO_GGP = 3, // GGP protocol - IPPROTO_TCP = 6, // TCP - IPPROTO_PUP = 12, // PUP - IPPROTO_UDP = 17, // UDP - IPPROTO_IDP = 22, // XNS idp - IPPROTO_RAW = 255, // Raw IP packet */ -}; -// clang-format on diff --git a/old_examples/shared/drivers/ethernet/WatchdogTimer.cpp b/old_examples/shared/drivers/ethernet/WatchdogTimer.cpp deleted file mode 100644 index 3868ac03bf142c5462207ef720509bec0d8b5476..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ethernet/WatchdogTimer.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/* Copyright (c) 2016-2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 "WatchdogTimer.h" - -using namespace miosix; -using namespace std; - -void __attribute__((naked)) TIM7_IRQHandler() -{ - - saveContext(); - asm volatile("bl _Z8Irq_implv"); - restoreContext(); -} - -void __attribute__((used)) Irq_impl() -{ - - TIM7->SR = 0; - auto inst = Singleton<WatchdogTimer>::getInstance(); - inst->stop(); - inst->triggered = true; - inst->irqCallback(); -} - -WatchdogTimer::WatchdogTimer() : ms_to_tick(1), triggered(false) -{ - - { - FastInterruptDisableLock dLock; - RCC->APB1ENR |= RCC_APB1ENR_TIM7EN; - RCC_SYNC(); - } - - unsigned int busFreq = SystemCoreClock; // CMSIS defined variable - if (RCC->CFGR & RCC_CFGR_PPRE1_2) - { - busFreq /= (0x01 << ((RCC->CFGR >> 10) & 0x3)); - } - - uint32_t prescaler = busFreq / 1000; // We want a 1ms/tick timer - - // If we obtain a prescaler value upper than 65536 there is a problem: - // since prescaler value can be at most 65536 the counter will run at a - // frequency greater than 1kHz. To obtain a timer with a resolution of - // 1ms we have to determine how many ticks are 1ms. To do this we calculate - // the timer frequency as busFreq/prescaler and then ms_to_tick as - // timer_freq/1000 - - if (prescaler >= 65536) - { - prescaler = 65536; - unsigned int fclock = busFreq / prescaler; - ms_to_tick = static_cast<float>(fclock) / 1000.0f; - } - - TIM7->CNT = 0; - TIM7->ARR = 0; - TIM7->PSC = prescaler - 1; // Set prescaler - TIM7->CR1 |= TIM_CR1_OPM // Enable one pulse mode - | TIM_CR1_URS; // interrupt only on counter overflow - TIM7->DIER |= TIM_DIER_UIE; // Enable interrupt - TIM7->EGR |= TIM_EGR_UG; // Generate update event to preset registers - - NVIC_SetPriority(TIM7_IRQn, 10); - NVIC_ClearPendingIRQ(TIM7_IRQn); - NVIC_EnableIRQ(TIM7_IRQn); -} - -WatchdogTimer::~WatchdogTimer() -{ - - stop(); - - { - FastInterruptDisableLock dLock; - RCC->APB1ENR &= ~RCC_APB1ENR_TIM7EN; - RCC_SYNC(); - } -} - -void WatchdogTimer::clear() -{ - - TIM7->CNT = 0; - triggered = false; -} - -void WatchdogTimer::start() -{ - - triggered = false; - TIM7->CR1 |= TIM_CR1_CEN; -} - -void WatchdogTimer::stop() { TIM7->CR1 &= ~TIM_CR1_CEN; } - -void WatchdogTimer::setDuration(uint16_t duration) -{ - - float ticks = static_cast<float>(duration) * ms_to_tick; - TIM7->ARR = static_cast<uint16_t>(ticks + 0.5f); // round to nearest -} diff --git a/old_examples/shared/drivers/ethernet/WatchdogTimer.h b/old_examples/shared/drivers/ethernet/WatchdogTimer.h deleted file mode 100644 index 35dc5a9e0e9eeb4224ac57a3aa0b63843b5de01f..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ethernet/WatchdogTimer.h +++ /dev/null @@ -1,86 +0,0 @@ -/* Copyright (c) 2016-2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <Common.h> -#include <Singleton.h> - -#include <functional> - -class WatchdogTimer : Singleton<WatchdogTimer> -{ - friend class Singleton<WatchdogTimer>; - -public: - /** - * Start the timer - */ - void start(); - - /** - * Stop the timer - */ - void stop(); - - /** - * Clear timer's internal counter - */ - void clear(); - - /** - * Set timeout period: callback after @param duration milliseconds after - * counter is started - */ - void setDuration(uint16_t duration); - - /** - * Set a function that will be called when timer expires. - * WARNING: the callback will be executed inside an interrupt routine, so - * it must be written properly!! It cannot malloc, printf and other things - * like that - */ - void setCallback(const std::function<void()>& callback) - { - irqCallback = callback; - } - - /** - * @return true if timer expired. Calling start() and clear() reset the - * flag to false - */ - bool expired() { return triggered; } - -private: - WatchdogTimer(); - ~WatchdogTimer(); - - float ms_to_tick; // conversion factor, number of counter ticks in a ms - bool triggered; - std::function<void()> irqCallback; - - friend void Irq_impl(); - - WatchdogTimer(const WatchdogTimer& other); - WatchdogTimer& operator=(const WatchdogTimer& other); - bool operator==(const WatchdogTimer& other); -}; diff --git a/old_examples/shared/drivers/ethernet/packet.h b/old_examples/shared/drivers/ethernet/packet.h deleted file mode 100644 index 54ceb48e5c60f84320a49586944cfbc20bdb33cb..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/ethernet/packet.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2016-2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <cstdint> -#include <cstdio> - -// UDP packet header descriptor -typedef struct __attribute__((packed)) -{ - uint32_t ipAddress; - uint16_t port; - size_t payloadSize; -} packet_header_t; diff --git a/old_examples/shared/drivers/interrupt/InterruptManager.cpp b/old_examples/shared/drivers/interrupt/InterruptManager.cpp deleted file mode 100644 index e85020369072c7ac4da979a8cd24d4bad9ff513c..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/interrupt/InterruptManager.cpp +++ /dev/null @@ -1,207 +0,0 @@ -/* Copyright (c) 2016 Skyward Experimental Rocketry - * Author: Matteo Piazzolla - * - * 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 "InterruptManager.h" - -#include <e20/e20.h> - -#include <iostream> - -#include "miosix.h" - -miosix::FixedEventQueue<5> eq; - -void* thread_eq_interrupt_manager(void*) -{ - eq.run(); - return NULL; -} - -InterruptManager::InterruptManager() : interrupts{NULL} -{ - pthread_t t; - pthread_create(&t, NULL, thread_eq_interrupt_manager, NULL); -} - -void InterruptManager::OnInterruptEvent(unsigned n) -{ - IGenericInterrupt* const ptr = - InterruptManager::getInstance().interrupts[n]; - if (ptr) - ptr->OnReciveInt(); -} - -void __attribute__((naked)) EXTI0_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z20EXTI0_IRQHandlerImplv"); - restoreContext(); -} - -void __attribute__((used)) EXTI0_IRQHandlerImpl() -{ - EXTI->PR = EXTI_PR_PR0; - if (eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 0)) == - false) - ; -} - -void __attribute__((naked)) EXTI1_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z20EXTI1_IRQHandlerImplv"); - restoreContext(); -} - -void __attribute__((used)) EXTI1_IRQHandlerImpl() -{ - EXTI->PR = EXTI_PR_PR1; - if (eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 1)) == - false) - ; -} - -void __attribute__((naked)) EXTI2_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z20EXTI2_IRQHandlerImplv"); - restoreContext(); -} - -void __attribute__((used)) EXTI2_IRQHandlerImpl() -{ - EXTI->PR = EXTI_PR_PR2; - if (eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 2)) == - false) - ; -} - -void __attribute__((naked)) EXTI3_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z20EXTI3_IRQHandlerImplv"); - restoreContext(); -} - -void __attribute__((used)) EXTI3_IRQHandlerImpl() -{ - EXTI->PR = EXTI_PR_PR3; - if (eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 3)) == - false) - ; -} - -void __attribute__((naked)) EXTI4_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z20EXTI4_IRQHandlerImplv"); - restoreContext(); -} - -void __attribute__((used)) EXTI4_IRQHandlerImpl() -{ - EXTI->PR = EXTI_PR_PR4; - if (eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 4)) == - false) - ; -} - -void __attribute__((naked)) EXTI9_5_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z22EXTI9_5_IRQHandlerImplv"); - restoreContext(); -} - -void __attribute__((used)) EXTI9_5_IRQHandlerImpl() -{ - const uint32_t status = EXTI->PR; - EXTI->PR = status; - if (status & GetPendingBitForLine(5) && - eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 5)) == - false) - { - } - if (status & GetPendingBitForLine(6) && - eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 6)) == - false) - { - } - if (status & GetPendingBitForLine(7) && - eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 7)) == - false) - { - } - if (status & GetPendingBitForLine(8) && - eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 8)) == - false) - { - } - if (status & GetPendingBitForLine(9) && - eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 9)) == - false) - { - } -} - -void __attribute__((naked)) EXTI15_10_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z24EXTI15_10_IRQHandlerImplv"); - restoreContext(); -} - -void __attribute__((used)) EXTI15_10_IRQHandlerImpl() -{ - const uint32_t status = EXTI->PR; - EXTI->PR = status; - if (status & GetPendingBitForLine(10) && - eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 10)) == - false) - { - } - if (status & GetPendingBitForLine(11) && - eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 11)) == - false) - { - } - if (status & GetPendingBitForLine(12) && - eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 12)) == - false) - { - } - if (status & GetPendingBitForLine(13) && - eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 13)) == - false) - { - } - if (status & GetPendingBitForLine(14) && - eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 14)) == - false) - { - } - if (status & GetPendingBitForLine(15) && - eq.IRQpost(std::tr1::bind(InterruptManager::OnInterruptEvent, 15)) == - false) - { - } -} diff --git a/old_examples/shared/drivers/memory/FlashController.h b/old_examples/shared/drivers/memory/FlashController.h deleted file mode 100644 index 79f55fae3c78937bf463fb58a4a0b02070729e5b..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/memory/FlashController.h +++ /dev/null @@ -1,678 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Matteo Piazzolla - * - * 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. - */ - -#pragma once - -#include <Singleton.h> -#include <diagnostic/FaultCounter.h> -#include <diagnostic/NewLogger.h> -#include <drivers/memory/FlashDriverInclude.h> -#include <miosix.h> - -using logging::logger; - -// Forward declaration -namespace testing -{ -namespace flashmemorytests -{ -template <typename> -class FlashTest; -} -} // namespace testing - -namespace flashmemory -{ - -/* - 16 pagine da 256 byte - 1000000 pagine in un banco - 62500 sottosettori - */ -static const uint16_t CONTROLLER_VERSION = 1; -static const uint16_t BOARD_ID = 0xAB; // TBD - -// BLOCK_SIZE deve essere un divisore di SUBSECTOR_SIZE -static const uint32_t BLOCK_SIZE = PAGE_SIZE; - -/** Number of flash data blocks that fit in each sector. - * First block of each sector is reserved for the header. - * In the first sector, the entire first subsector is reserved for the header. - */ -static const uint32_t BLOCKS_PER_SECTOR = SECTOR_SIZE / BLOCK_SIZE; -static const uint32_t BLOCKS_NUM = BLOCKS_PER_SECTOR * SECTORS_NUM; - -static const uint32_t FIRST_BOOT_KEY = 0xF135B007; -static const uint32_t READ_ONLY_KEY = 0x3EAD0271; - -// How many sectors should we attempt to write in before we give up? -static const int MAX_SECTOR_ITERATIONS = 50; - -struct FlashHeader -{ - const uint16_t version = CONTROLLER_VERSION; - const uint16_t board_id = BOARD_ID; - - uint32_t first_boot = FIRST_BOOT_KEY; - uint32_t start_index = 0; - uint32_t read_only = 0; - - bool operator==(const FlashHeader& other) const - { - return memcmp(this, &other, sizeof(FlashHeader)) == 0; - } - - bool operator!=(const FlashHeader& other) const - { - return memcmp(this, &other, sizeof(FlashHeader)) != 0; - } -}; - -static const uint8_t SECTOR_EMPTY = 0x55; -static const uint8_t SECTOR_WRITTEN = 0x44; -static const uint8_t SECTOR_CORRUPT = 0x00; - -struct SectorHeader -{ - uint8_t content = SECTOR_CORRUPT; // Either one of SECTOR_EMPTY, - // SECTOR_WRITTEN, SECTOR_CORRUPT - bool operator==(const SectorHeader& other) const - { - return memcmp(this, &other, sizeof(SectorHeader)) == 0; - } -}; - -static const uint32_t FLASH_BUFFER_SIZE = - (BLOCK_SIZE) - (sizeof(uint32_t) * 2 + sizeof(uint16_t)); - -struct FlashDataBlock -{ - uint32_t id; - uint32_t timestamp; - uint8_t buffer[FLASH_BUFFER_SIZE]; - uint16_t crc; - - bool operator==(const FlashDataBlock& other) const - { - return memcmp(this, &other, sizeof(FlashDataBlock)) == 0; - } - - bool operator!=(const FlashDataBlock& other) const - { - return memcmp(this, &other, sizeof(FlashDataBlock)) != 0; - } -}; - -template <typename MemoryBus> -class FlashController : Singleton<FlashController<MemoryBus>> -{ - friend class Singleton<FlashController<MemoryBus>>; - - template <typename> - friend class testing::flashmemorytests::FlashTest; - - typedef FlashController<MemoryBus> FlashControllerType; - typedef FlashDriver<MemoryBus> FlashDriverType; - -public: - enum class Status - { - WRITE_READY = 0, - READ_ONLY = 1, - INITIALIZATION_ERROR = 2, - WRITE_ERROR = 3 - }; - - void init() - { - status_ = Status::INITIALIZATION_ERROR; - block_index_ = SUBSECTOR_SIZE / BLOCK_SIZE; - - FlashHeader header; - - if (!readFlashHeader(&header)) - { - logger.critical(logtag(), "Cannot read flash header."); - sFaultCounterMgr->Increment(Fault::F_MASTER_FLASH_CNTRL_FAULT); - return; - } - - if (header.read_only == READ_ONLY_KEY) - { - flash_->setReadOnly(); - status_ = Status::READ_ONLY; - } - else - { - if (header.first_boot == FIRST_BOOT_KEY) - { - // Update the first boot key - header.first_boot = 0; - - if (!writeFlashHeader(header, false)) - { - logger.critical(logtag(), - "Could not update first boot value."); - sFaultCounterMgr->Increment( - Fault::F_MASTER_FLASH_CNTRL_FAULT); - return; - } - - if (header.start_index >= block_index_) - { - block_index_ = header.start_index; - } - status_ = Status::WRITE_READY; - } - else - { - if (recoverFromReboot()) - { - status_ = Status::WRITE_READY; - } - else - { - logger.critical(logtag(), - "Couldn't find sector to write in."); - sFaultCounterMgr->Increment( - Fault::F_MASTER_FLASH_CNTRL_FAULT); - } - } - } - } - - FlashController::Status getStatus() { return status_; } - - uint32_t getBlockIndex() { return block_index_; } - - /** - * @brief Writes a block onto the flash memory. - * - * @param block The block to be written on the flash - */ - bool writeDataBlock(FlashDataBlock* block_buf) - { - - if (status_ != Status::WRITE_READY) - { - logger.error(logtag(), "Writing is not enabled."); - return false; - } - - if (block_index_ >= BLOCKS_NUM) - { - logger.critical(logtag(), "Memory is full."); - sFaultCounterMgr->Increment(Fault::F_MASTER_FLASH_CNTRL_FAULT); - status_ = Status::WRITE_ERROR; - return false; - } - - // Enforce size <= BLOCK_SIZE - size_t size = sizeof(FlashDataBlock) < BLOCK_SIZE - ? sizeof(FlashDataBlock) - : BLOCK_SIZE; - - // Beginning of a new sector. Check if we can write in it and update its - // header - if (block_index_ % BLOCKS_PER_SECTOR == 0) - { - if (!gotoNewSector()) - { - logger.critical(logtag(), "Could not find sector to write in."); - status_ = Status::WRITE_ERROR; - sFaultCounterMgr->Increment(Fault::F_MASTER_FLASH_CNTRL_FAULT); - return false; - } - } - - uint8_t result; - flash_->write(&result, block_index_ * BLOCK_SIZE, - reinterpret_cast<uint8_t*>(block_buf), size); - block_index_++; - - return result == RESULT_OK; - } - - static bool readFlashHeader(FlashHeader* header) - { - uint8_t result; - FlashDriverType* flash = Singleton<FlashDriverType>::getInstance(); - flash->read(&result, 0, (uint8_t*)header, sizeof(FlashHeader)); - return result == RESULT_OK; - } - - /** - * Saves (and overwrites) the header in the first address on the memory. - * @param header - */ - static bool writeFlashHeader(const FlashHeader& header, bool erase = true) - { - uint8_t result; - FlashDriverType* flash = Singleton<FlashDriverType>::getInstance(); - if (erase) - { - flash->enableErase(); - flash->eraseSubsector(&result, 0); - if (result != OpResultFlags::RESULT_OK) - { - return false; - } - } - uint32_t size = sizeof(FlashHeader) > SUBSECTOR_SIZE - ? SUBSECTOR_SIZE - : sizeof(FlashHeader); - - flash->writeAndCheck(&result, 0, (uint8_t*)(&header), size); - return result == RESULT_OK; - } - - static bool readBlock(uint32_t block_index, uint8_t* buffer) - { - uint8_t result; - FlashDriverType* flash = Singleton<FlashDriverType>::getInstance(); - - flash->read(&result, block_index * BLOCK_SIZE, buffer, BLOCK_SIZE); - return result == RESULT_OK; - } - - static bool readDataBlock(uint32_t block_index, FlashDataBlock* block) - { - // Flash header & sector headers are not *data* blocks. - if (block_index % BLOCKS_PER_SECTOR == 0 || - block_index < SUBSECTOR_SIZE / BLOCK_SIZE) - { - return false; - } - - readBlock(block_index, reinterpret_cast<uint8_t*>(block)); - return true; - } - - /** - * Saves (and overwrites) the header in the first address on the memory. - * @param header - */ - static bool writeSectorHeader(uint32_t sector, const SectorHeader& header) - { - uint8_t result; - FlashDriverType* flash = Singleton<FlashDriverType>::getInstance(); - - uint32_t size = sizeof(SectorHeader) > BLOCK_SIZE - ? BLOCK_SIZE - : sizeof(SectorHeader); - - flash->writeAndCheck(&result, sector * SECTOR_SIZE, (uint8_t*)(&header), - size); - - return result == RESULT_OK; - } - - static bool readSectorHeader(uint32_t sector, SectorHeader* header) - { - return readSectorHeader(sector, (uint8_t*)header); - } - - static bool readSectorHeader(uint32_t sector, uint8_t* header_buff) - { - uint8_t result; - FlashDriverType* flash = Singleton<FlashDriverType>::getInstance(); - flash->read(&result, SECTOR_SIZE * sector, header_buff, - sizeof(SectorHeader)); - return result == RESULT_OK; - } - - static bool format() - { - uint8_t result; - logger.warning(logtag(), "THE MEMORY WILL BE FORMATTED IN 5 SECONDS"); - // Thread::sleep(5000); - logger.info(logtag(), "Erasing..."); - // TODO: Flash leds for a few seconds as a warning - eraseMemory(&result); - if (result != OpResultFlags::RESULT_OK) - { - logger.error(logtag(), "Error: result=", logging::hex(result)); - return false; - } - logger.info(logtag(), "Writing flash header..."); - FlashHeader header = {}; - header.first_boot = FIRST_BOOT_KEY; - // header.magic_word = MAGIC_WORD; - - if (!writeFlashHeader(header, false)) - { - logger.error(logtag(), "Error: result=", logging::hex(result)); - return false; - } - logger.info(logtag(), "Writing sector headers..."); - SectorHeader sheader; - sheader.content = SECTOR_EMPTY; - - for (uint32_t sector = 1; sector < SECTORS_NUM; sector++) - { - if (!writeSectorHeader(sector, sheader)) - { - logger.error(logtag(), "Error: result=", logging::hex(result), - " sector: ", sector); - return false; - } - } - logger.info(logtag(), "Success!"); - - return true; - } - - /** - * @brief Formats the memory. - * Use this only if the filesystem is in a good state: this fuction - * reads every sector header and erases only sector where - * header content != SECTOR_EMPTY - * - * @warning Use this only for testing! - */ - static bool fastFormat() - { - logger.warning(logtag(), "!!!THE MEMORY IS ABOUT TO BE FORMATTED!!!\n"); - - logger.info(logtag(), "Formatting...\n"); - // TODO: Flash leds for a few seconds as a warning - // Always erase the first sector - if (!erase(0, SUBSECTORS_PER_SECTOR)) - { - logger.error(logtag(), "Couldn't erase sector 0"); - return false; - } - - // Then erase only the written/broken sectors - uint32_t s; - for (s = 1; s < SECTORS_NUM; s++) - { - SectorHeader header; - bool read_result = readSectorHeader(s, &header); - if (read_result && header.content != SECTOR_EMPTY) - { - // Erase data in this sector - if (!erase(s * SUBSECTORS_PER_SECTOR, - (s + 1) * SUBSECTORS_PER_SECTOR)) - { - logger.error(logtag(), "Couldn't erase sector ", s); - return false; - } - - // Rewrite the header - SectorHeader sheader; - sheader.content = SECTOR_EMPTY; - if (!writeSectorHeader(s, sheader)) - { - logger.error("Error writing sector header in sector ", s); - return false; - } - } - else if (!read_result) - { - logger.error(logtag(), "Error reading sector header in sector ", - s); - return false; - } - } - - // Format the memory - FlashHeader header{}; - header.first_boot = FIRST_BOOT_KEY; - - if (!writeFlashHeader(header, false)) - { - logger.error(logtag(), "Couldn't write flash header."); - return false; - } - - return true; - } - - static bool eraseMemory(uint8_t* result) - { - return erase(0, SUBSECTORS_NUM); - } - - /** - * Erases the memory between the given subsectors - * Only erases a subsector if data has been written into it, - * to avoid wasting erase cycles. - * - * @brief Erases The memory between the given bounds. - * @param result Erase successful or not - * @param from Address belonging to the first subsector to be erased - * @param to Address belonging to the last subsector to be erased - * @return - */ - static bool erase(uint32_t from_subsector, uint32_t to_subsector) - { - uint8_t result; - FlashDriverType* flash = Singleton<FlashDriverType>::getInstance(); - uint8_t* buffer = new uint8_t[PAGE_SIZE]; - - std::stringstream - stream; // To save strings to write in a single log line - stream << "Erasing subsectors: "; - - // Erase from the start of the subsector corresponding to "from" - uint32_t from_addr = from_subsector * SUBSECTOR_SIZE; - - // To the end of the subsector corresponding to "to". - uint32_t to_addr = to_subsector * SUBSECTOR_SIZE; - - // Read memory in blocks of PAGE_SIZE, if a byte is != 0xFF, erase the - // subsector and start reading again from the next one. - while (from_addr < to_addr) - { - flash->read(&result, from_addr, buffer, PAGE_SIZE); - - if (result == OpResultFlags::RESULT_OK) - { - bool erase = false; - for (uint32_t i = 0; i < PAGE_SIZE; i++) - { - erase = buffer[i] != 0xFF; - - if (erase) - break; - } - - if (erase) - { - stream << from_addr / SUBSECTOR_SIZE << ", "; - - flash->enableErase(); - flash->eraseSubsector(&result, from_addr); - if (result == OpResultFlags::RESULT_OK) - { - // Move to the beginning of the next subsector - from_addr = - (from_addr / SUBSECTOR_SIZE + 1) * SUBSECTOR_SIZE; - } - else - { - logger.error(logtag(), - "Error erasing subsector: result=0x", - logging::hex(result)); - break; - } - } - else - { - from_addr = from_addr + PAGE_SIZE; - } - } - else - { - logger.error(logtag(), "Error reading memory: result=0x", - logging::hex(result)); - break; - } - } - - stream << "--"; - - logger.info(logtag(), stream.str()); - delete buffer; - - return from_addr >= to_addr; - } - - static bool isMemoryClean(uint8_t* result) - { - FlashDriverType* flash = Singleton<FlashDriverType>::getInstance(); - uint8_t buffer[BLOCK_SIZE]; - - // Check from the start of the subsector corresponding to "from" - uint32_t addr = SUBSECTOR_SIZE; - - bool clean = true; - while (addr < MEMORY_SIZE) - { - if (addr % SECTOR_SIZE == 0) - { - SectorHeader header; - bool read_result = - readSectorHeader(addr / SECTOR_SIZE, &header); - if (!read_result || header.content != SECTOR_EMPTY) - { - logger.warning(logtag(), "Wrong sector header @", addr); - clean = false; - } - } - else - { - flash->read(result, addr, buffer, BLOCK_SIZE); - if (*result == OpResultFlags::RESULT_OK) - { - for (uint32_t i = 0; i < BLOCK_SIZE; i++) - { - if (buffer[i] != 0xFF) - { - logger.warning(logtag(), "Dirty block @", addr); - clean = false; - break; - } - } - } - else - { - logger.warning(logtag(), "Error reading at %d\n", addr); - break; - } - } - - addr = addr + BLOCK_SIZE; - } - - if (clean) - { - logger.info(logtag(), "Memory is clean."); - } - return clean; - } - -private: - FlashController() { flash_ = Singleton<FlashDriverType>::getInstance(); } - - /** - * @brief Restores the state after a reboot. - * - * Restores the state after a reboot. - * Sequentially search for the first empty sector and update block_index_ - * accordingly - * - * @return Empty sector found or not - */ - bool recoverFromReboot() - { - // Start from the second sector - uint32_t sector = 1; - SectorHeader header; - - do - { - bool r = readSectorHeader(sector, &header); - if (r && header.content == SECTOR_EMPTY) - { - block_index_ = sector * BLOCKS_PER_SECTOR; - return true; - } - } while (++sector < SECTORS_NUM); - - return false; - } - - /** - * Updates block_index_ to point to the next available sector. - * - * @return True if a new sector is found - */ - bool gotoNewSector() - { - uint32_t sector = block_index_ / BLOCKS_PER_SECTOR; - SectorHeader readHeader, writeHeader; - - // Look for an empty sector - bool read_result; - int i = 0; - do - { - read_result = readSectorHeader(sector, &readHeader); - - } while (((read_result && readHeader.content != SECTOR_EMPTY) || - !read_result) && - ++sector < SECTORS_NUM && ++i < MAX_SECTOR_ITERATIONS); - - block_index_ = sector * BLOCKS_PER_SECTOR; - - if (read_result && readHeader.content == SECTOR_EMPTY) - { - writeHeader.content = SECTOR_WRITTEN; - - if (!writeSectorHeader(sector, writeHeader)) - { - logger.error(logtag(), "Error writing sector header."); - return false; - } - block_index_++; - } - else - { - logger.error(logtag(), - "Error: could not find empty sector to write in."); - return false; - } - - return true; - } - - static std::string logtag() { return "FlashCTRL"; } - - FlashDriverType* flash_; - uint32_t block_index_ = 0; - // Value will be changed if initialization is successful - Status status_ = Status::INITIALIZATION_ERROR; -}; - -} // namespace flashmemory diff --git a/old_examples/shared/drivers/memory/FlashDriver.h b/old_examples/shared/drivers/memory/FlashDriver.h deleted file mode 100644 index 2fedca894523e1f8417085f38a7dcd6e2baaa196..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/memory/FlashDriver.h +++ /dev/null @@ -1,596 +0,0 @@ -/* Copyright (c) 2020 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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. - */ - -#pragma once - -#include <Singleton.h> -#include <diagnostic/NewLogger.h> -#include <miosix.h> - -#include <string> - -using miosix::Mode; -using miosix::Thread; - -using logging::logger; - -namespace flashmemory -{ - -static const uint32_t PAGES_PER_SUBSECTOR = 16U; -static const uint32_t PAGES_PER_SECTOR = 256U; -static const uint32_t SUBSECTORS_PER_SECTOR = 16U; - -static const uint32_t SUBSECTORS_NUM = 16384U; -static const uint32_t SECTORS_NUM = 1024U; -static const uint32_t PAGE_SIZE = 256U; - -static const uint32_t SUBSECTOR_SIZE = PAGE_SIZE * PAGES_PER_SUBSECTOR; -static const uint32_t SECTOR_SIZE = PAGE_SIZE * PAGES_PER_SECTOR; - -static const uint32_t BANK_SIZE = SECTOR_SIZE * SECTORS_NUM / 2; -static const uint32_t MEMORY_SIZE = SECTOR_SIZE * SECTORS_NUM; - -/** - * @brief Definitions for results of various flash operations. - * - * Definitions for result flags of various flash operations. - */ -enum OpResultFlags -{ - RESULT_OK = 0x00, - - RESULT_F_OUT_OF_MEMORY = 0x01, - RESULT_F_CHECK_FAIL = 0x04, - - // Bits reserved for future use - RESULT_F_UNUSED_1 = 0x08, - RESULT_F_UNUSED_2 = 0x40, - RESULT_F_UNUSED_3 = 0x80, - - /** - * These bits are in the same positions of the corresponding bits in the - * FLAG STATUS REGISTER - */ - RESULT_F_PROTECTION_ERROR = 0x02, - RESULT_F_PROGRAM_ERROR = 0x10, - RESULT_F_ERASE_ERROR = 0x20 -}; - -/* - * TODO: - * -Controlla significato bit Vpp nel Flag status register - * -Casi in cui eseguire _write_disable() - * -Velocizzare il clock software per il factory reset - * -Controlla se bisogna davvero leggere due volte il flag_status_register per - * vedere se una scrittura ad un registro e' stata completata - * - */ - -template <typename Bus> -class FlashDriver : Singleton<FlashDriver<Bus>> -{ - typedef Singleton<FlashDriver<Bus>> SingletonType; - - friend class Singleton<FlashDriver<Bus>>; - - template <typename> - friend class FlashDriverTest; - -public: - /** - * @brief Read n bytes into a buffer, starting from the specified address - * - * @param result - * @param address Starting address - * @param buf Buffer to read data into - * @param size Number of bytes to read - */ - void read(uint8_t* result, uint32_t address, uint8_t* buf, uint32_t size) - { - if (address + size > MEMORY_SIZE) - { - *result = RESULT_F_OUT_OF_MEMORY; - return; - } - - uint32_t rsize; - if (address < BANK_SIZE) - rsize = std::min(size, BANK_SIZE - address); - else - rsize = size; - - uint8_t addr_buf[4]; - addrToBuf(addr_buf, address); - - Bus::read(READ, addr_buf, buf, 4, rsize); - - size -= rsize; - - // This means that we reached the end of the first die but we still need - // to read some data. - if (size > 0) - { - address += rsize; - buf += rsize; - - addrToBuf(addr_buf, address); - - // Read the remaining bytes - Bus::read(READ, addr_buf, buf, 4, size); - } - - *result = RESULT_OK; - } - - /** - * @brief Writes data on the flash starting from the specified address. - * - * @param address - * @param data - * @param size - */ - void write(uint8_t* result, uint32_t address, uint8_t* data, uint32_t size) - { - // Do not write outside of the memory - if (address + size > MEMORY_SIZE) - { - *result = RESULT_F_OUT_OF_MEMORY; - return; - } - - uint8_t addr_buf[4], status; - - uint32_t next_page, wsize; - - do - { - next_page = (address / 256) * 256 + 256; - - wsize = std::min(next_page - address, size); - - addrToBuf(addr_buf, address); - writeEnable(); - Bus::write(PROGRAM_PAGE, addr_buf, data, 4, wsize); - - do - { - status = readFlagStatusReg(); - } while ((status & FSR_PRG_ERS_CTRL) == 0); - - data += wsize; - size -= wsize; - address = next_page; - - *result = status & (FSR_PROGRAM | FSR_PROTECTION); - } while (size > 0 && *result == RESULT_OK); - - // Clear flag status register if an error occurred - if (*result != RESULT_OK) - { - clearFlagStatusReg(); - - // Manually reset write_enable latch - if ((*result & RESULT_F_PROTECTION_ERROR) > 0) - { - writeDisable(); - } - } - } - - /** - * @brief Writes data on the flash starting from the specified address, then - * checks if everything was written correctly. - * - * @param address - * @param data - * @param size - */ - void writeAndCheck(uint8_t* result, uint32_t address, uint8_t* data, - uint32_t size) - { // TODO: size_t - write(result, address, data, size); - if (*result == RESULT_OK) - { - uint8_t* check = new uint8_t[size]; - read(result, address, check, size); - for (uint32_t i = 0; i < size; i++) - { - if (*check++ != *data++) - { - // Something was not written/read correctly. - *result = RESULT_F_CHECK_FAIL; - break; - } - } - } - } - - /** - * @brief Writes data on the flash starting from the specified address, only - * if the provided data fits in a single page. - * - * Writes data on the flash starting from the specified address, only - * if the provided data fits in a single page. If too much data is provided - * nothing will be written and result will be set to RESULT_F_OUT_OF_MEMORY - * - * @param result - * @param address - * @param data - * @param size - */ - void programPage(uint8_t* result, uint32_t address, uint8_t* data, - uint32_t size) - { - // Do now wrap around a page and do not try to write outside of the - // memory - uint32_t next_page = (address / 256) * 256 + 256; - if (address + size > next_page || address > MEMORY_SIZE) - { - *result = RESULT_F_OUT_OF_MEMORY; - return; - } - - uint8_t addr_buf[4], status; - addrToBuf(addr_buf, address); - - writeEnable(); - Bus::write(PROGRAM_PAGE, addr_buf, data, 4, size); - - do - { - status = readFlagStatusReg(); - } while ((status & FSR_PRG_ERS_CTRL) == 0); - - *result = status & (FSR_PROGRAM | FSR_PROTECTION); - - // Clear flag status register if an error has been encountered - if (*result != RESULT_OK) - { - clearFlagStatusReg(); - - // Manually reset write_enable latch - if ((*result & RESULT_F_PROTECTION_ERROR) > 0) - { - writeDisable(); - } - } - } - - /** - * @brief Enables or disables read only mode - */ - void setReadOnly(bool readonly = true) { read_only_ = readonly; } - - bool isReadOnly() const { return read_only_; } - - /** - * @brief Enable the next erase operation. Call this before every erase op. - */ - void enableErase() { writeEnable(); } - - /** - * @brief Erases the subsector containing the specified address. For the - * operation to be successful, enable_erase_op must be called before this. - * - * @warning Estimated execution time is slightly less than 1 second. - * - * @param result - * @param address - */ - void eraseSubsector(uint8_t* result, uint32_t address) - { - erase(result, SUBSECTOR_ERASE, address); - } - - /** - * @brief Erases the sector containing the specified address. For the - * operation to be successful, enable_erase_op must be called before this. - * @warning Estimated execution time is about 2 seconds. - * - * @param result - * @param address - */ - void eraseSector(uint8_t* result, uint32_t address) - { - erase(result, SECTOR_ERASE, address); - } - - /** - * @brief Erases the entire die containing the specified address. For the - * operation to be successful, enable_erase_op must be called before this. - * @warning Estimated execution time is more than 4 minutes. - * - * @param result - * @param die: 0 to erase the first die, 1 to erase the second. - */ - void eraseDie(uint8_t* result, uint8_t die) - { - if (die == 0) - { - erase(result, DIE_ERASE, 0); - } - else if (die == 1) - { - erase(result, DIE_ERASE, BANK_SIZE); - } - } - - /** - * Reads id information for this flash memory. - * @param buf Buffer with at least 20 bytes - */ - void readId(uint8_t* buf) { Bus::read(READ_ID, buf, 20); } - - /** - * @brief Software reset for the memory. All volatile bits are set to their - * default value. - */ - void softReset() - { - Bus::write(RESET_ENABLE); - usleep(5); - Bus::write(RESET_MEMORY); - waitUntilReady(); - } - - /** - * If the flash memory is in a bad state and can't be recovered by any - * other means, run this, then set CONFIG_REGISTER to 0xFFFF. - */ - template <class CS, class MOSI, class CLK> - static void factoryReset() - { - { - miosix::FastInterruptDisableLock dLock; - CS::mode(Mode::OUTPUT); - MOSI::mode(Mode::OUTPUT); - CLK::mode(Mode::OUTPUT); - } - MOSI::high(); - Thread::sleep(20); - - factoryResetSequence<CS, CLK>(7); - factoryResetSequence<CS, CLK>(13); - factoryResetSequence<CS, CLK>(17); - factoryResetSequence<CS, CLK>(25); - factoryResetSequence<CS, CLK>(33); - - MOSI::low(); - Thread::sleep(50); - MOSI::high(); - factoryResetSequence<CS, CLK>(8); - - MOSI::low(); - CS::low(); - } - -private: - FlashDriver() - { - waitUntilReady(); - - uint8_t buf[20]; - readId(buf); - - if (buf[0] != 0x20) - { - logger.critical(logtag(), "Wrong id on FlashDriver instantiation"); - } - - writeStatusReg(0x00); - - clearFlagStatusReg(); - - uint16_t config = readConfigReg(); - - // Last bit to 0 to enable 4 byte address mode - if (config != 0xFFFE) - writeConfigReg(0xFFFE); - } - - void erase(uint8_t* result, uint8_t erase_cmd, uint32_t address) - { - if (address > MEMORY_SIZE) - { - *result = RESULT_F_OUT_OF_MEMORY; - return; - } - - uint8_t addr_buf[4], status; - addrToBuf(addr_buf, address); - Bus::write(erase_cmd, addr_buf, 4); - - do - { - status = readFlagStatusReg(); - } while ((status & FSR_PRG_ERS_CTRL) == 0); - - *result = status & (FSR_ERASE | FSR_PROTECTION); - - // Clear flag status register if an error has been encountered - if (*result != RESULT_OK) - { - clearFlagStatusReg(); - - // Manually reset write_enable latch - if ((*result & RESULT_F_PROTECTION_ERROR) > 0) - { - writeDisable(); - } - } - } - - /** - * @brief Checks if a program operation is still in progress. - * @param result - */ - bool isBusy() { return readFlagStatusReg() & FSR_PRG_ERS_CTRL; } - - /** - * @brief Waits until the memory is ready to perform a new write/erase op. - * @param result - */ - void waitUntilReady() - { - while ((readFlagStatusReg() & FSR_PRG_ERS_CTRL) == 0) - { - } - } - - uint8_t readStatusReg() - { - uint8_t ret = Bus::read(READ_STATUS_REG); - return ret; - } - - void writeStatusReg(uint8_t val) - { - writeEnable(); - Bus::write(WRITE_STATUS_REG, val); - writeDisable(); - waitUntilReady(); - } - - uint8_t readFlagStatusReg() - { - uint8_t ret = Bus::read(READ_FLAG_STATUS_REG); - return ret; - } - - void clearFlagStatusReg() { Bus::write(CLEAR_FLAG_STATUS_REG); } - - uint16_t readConfigReg() - { - uint8_t buf[2]; - Bus::read(READ_NV_CONFIG_REG, buf, 2); - - uint16_t res = buf[0] | (buf[1] << 8); - - return res; - } - - void writeConfigReg(uint16_t val) - { - /* - * Mask some of the bits of the config register because - * we don't want to change them by accident. - */ - val = val | 0x0FEC; - - uint8_t buf[2]; - buf[0] = val & 0xFF; - buf[1] = (val >> 8) & 0xFF; - - writeEnable(); - Bus::write(WRITE_NV_CONFIG_REG, buf, 2); - writeDisable(); - waitUntilReady(); - } - - void writeEnable() - { - if (!read_only_) - { - Bus::write(WRITE_ENABLE); - } - } - - void writeDisable() { Bus::write(WRITE_DISABLE); } - - static void addrToBuf(uint8_t* buf, uint32_t addr) - { - for (int i = 0; i < 4; i++) - { - buf[3 - i] = (addr >> 8 * i) & 0xFF; - } - } - - template <class CS, class CLK> - static void factoryResetSequence(int cycles) - { - CS::low(); - Thread::sleep(5); - for (int i = 0; i < cycles; i++) - { - CLK::high(); - Thread::sleep(5); - CLK::low(); - Thread::sleep(5); - } - CS::high(); - Thread::sleep(20); - } - - static std::string logtag() { return "FLASH_DRIVER"; } - - enum Commands - { - READ_ID = 0x9F, - - WRITE_ENABLE = 0x06, - WRITE_DISABLE = 0x04, - - READ_STATUS_REG = 0x05, - WRITE_STATUS_REG = 0x01, - - READ_FLAG_STATUS_REG = 0x70, - CLEAR_FLAG_STATUS_REG = 0x50, - - // non-volatile configuration register - READ_NV_CONFIG_REG = 0xB5, - WRITE_NV_CONFIG_REG = 0xB1, - - // volatile configuration register - WRITE_VOL_CONFIG_REG = 0x85, - READ_VOL_CONFIG_REG = 0x81, - - READ_EXT_ADDRESS_REG = 0xC8, - WRITE_EXT_ADDRESS_REG = 0xC5, - - RESET_ENABLE = 0x66, - RESET_MEMORY = 0x99, - - READ = 0x03, - PROGRAM_PAGE = 0x02, - - SUBSECTOR_ERASE = 0x20, - SECTOR_ERASE = 0xD8, - DIE_ERASE = 0xC4 - }; - - bool read_only_ = false; - - /** - * Flag status register bit definitions - */ - static const uint8_t FSR_ADDRESSING_MODE = 0x01; - static const uint8_t FSR_PROTECTION = 0x02; - static const uint8_t FSR_PROGRAM_SUSPEND = 0x04; - static const uint8_t FSR_VPP = 0x08; - static const uint8_t FSR_PROGRAM = 0x10; - static const uint8_t FSR_ERASE = 0x20; - static const uint8_t FSR_ERASE_SUSPEND = 0x40; - static const uint8_t FSR_PRG_ERS_CTRL = 0x80; -}; - -} // namespace flashmemory diff --git a/old_examples/shared/drivers/memory/FlashDriverInclude.h b/old_examples/shared/drivers/memory/FlashDriverInclude.h deleted file mode 100644 index 79db21e808857c14b16957e1c4b843d8c63c14cc..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/memory/FlashDriverInclude.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2015-2017 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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. - */ - -#pragma once - -#ifdef FLASH_TEST - -#include <flashmemory/mockup/FlashDriver.h> - -#else - -#include <drivers/memory/FlashDriver.h> - -#endif /* FLASH_TEST */ diff --git a/old_examples/shared/drivers/memory/MultiFlashController.cpp b/old_examples/shared/drivers/memory/MultiFlashController.cpp deleted file mode 100644 index cd7f967c195527dc0d18afbaa28459732c52e123..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/memory/MultiFlashController.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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 "MultiFlashController.h" - -#include <Singleton.h> -#include <diagnostic/NewLogger.h> - -using logging::logger; -/* stub crc class */ - -namespace flashmemory -{ -class CRCHelper -{ -public: - static uint16_t calcCRC16(uint8_t* data, uint32_t size) { return 0xABCD; } -}; - -// miosix::Queue<FlashDataBlock,20> MultiFlashController::block_queue_; - -MultiFlashController::MultiFlashController() : ActiveObject::ActiveObject() -{ - flash0_ = Singleton<FlashController<MemoryBus0>>::getInstance(); - - // block_queue_ = new miosix::Queue<FlashDataBlock, 5>(); -} - -MultiFlashController::~MultiFlashController() {} - -/** - * @brief Infinite loop that process the block queue. - */ -void MultiFlashController::run() -{ - FlashDataBlock to_flash; - while (true) - { - block_queue_.waitUntilNotEmpty(); - - block_queue_.get(to_flash); - - bool result = true; - - result = result && flash0_->writeDataBlock(&to_flash); - - // TODO: Also write on 2nd and 3rd flash memory - // result = result && flash1_->writeBlock(&to_flash); - // result = result && flash1_->writeBlock(&to_flash); - - if (!result) - { - logger.error(logtag(), "Error writing blocks!"); - } - } -} - -/** - * @brief Insert into the fixed queue a new FlashDataBlock to save in flash. - * - * @param buffer data do be saved - * @param size the size of the data (must be < FLASH_BUFFER_SIZE) - */ -void MultiFlashController::addData(const uint8_t* buffer, size_t size) -{ - /* limit data to FLASH_BUFFER_SIZE */ - uint16_t safe_size = (size <= FLASH_BUFFER_SIZE ? size : FLASH_BUFFER_SIZE); - FlashDataBlock to_save = {}; - - // create the Flash Data Block. - to_save.id = block_counter++; - to_save.timestamp = miosix::getTick(); - memcpy((uint8_t*)to_save.buffer, (uint8_t*)buffer, safe_size); - - // TODO crc of the whole block with toSave.crc = 0x0000? - to_save.crc = CRCHelper::calcCRC16((uint8_t*)to_save.buffer, safe_size); - - block_queue_.put(to_save); -} - -} // namespace flashmemory diff --git a/old_examples/shared/drivers/memory/MultiFlashController.h b/old_examples/shared/drivers/memory/MultiFlashController.h deleted file mode 100644 index a309f14fc67bbab6dfc5ddfc4651fc891bb07d8b..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/memory/MultiFlashController.h +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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. - */ - -#pragma once - -#include <ActiveObject.h> -#include <Common.h> -#include <drivers/BusTemplate.h> - -#include "FlashController.h" - -using miosix::Gpio; - -// Forward declaration -namespace testing -{ -namespace flashmemorytests -{ -template <typename> -class FlashTest; -} -} // namespace testing - -namespace flashmemory -{ - -class MultiFlashController : public Singleton<MultiFlashController>, - ActiveObject -{ - friend class Singleton<MultiFlashController>; - - template <typename> - friend class testing::flashmemorytests::FlashTest; - - typedef Gpio<GPIOA_BASE, 5> GpioSck; - typedef Gpio<GPIOA_BASE, 6> GpioMiso; - typedef Gpio<GPIOA_BASE, 7> GpioMosi; - typedef BusSPI<1, GpioMosi, GpioMiso, GpioSck> bus; - - typedef Gpio<GPIOC_BASE, 15> CS_FLASH0; - -public: - typedef ProtocolSPI<bus, CS_FLASH0> MemoryBus0; - - virtual ~MultiFlashController(); - - void addData(const uint8_t* buffer, size_t size); - -protected: - void run() override; - -private: - MultiFlashController(); - - static std::string logtag() { return "MultiFlashCTRL"; } - - uint32_t block_counter = 0; - miosix::Queue<FlashDataBlock, 20> block_queue_; - - FlashController<MemoryBus0>* flash0_; - // FlashController<spi_flash0> flash1; //Change to spi_flash1 - // FlashController<spi_flash0> flash2; //Change to spi_flash2 -}; - -} // namespace flashmemory diff --git a/old_examples/shared/drivers/modbus/ExceptionCodes.h b/old_examples/shared/drivers/modbus/ExceptionCodes.h deleted file mode 100644 index 8818055b8af3201e0842ee7a413060c9850b14b3..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/ExceptionCodes.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include "Common.h" - -namespace modbus -{ -static constexpr uint8_t EXC_ILLEGAL_FUN = 0x01; ///< Illegal function -static constexpr uint8_t EXC_ILLEGAL_ADDR = 0x02; ///< Illegal data address -static constexpr uint8_t EXC_ILLEGAL_VAL = 0x03; ///< Illegal data value -static constexpr uint8_t EXC_SLAVE_FAILURE = 0x04; ///< Slave internal failure -static constexpr uint8_t ACKNOWLEDGE = 0x05; ///< Acknowledge -static constexpr uint8_t SLAVE_BUSY = 0x06; ///< Slave busy -static constexpr uint8_t EXC_MEM_PARITY = 0x08; ///< Memory parity error -} // namespace modbus diff --git a/old_examples/shared/drivers/modbus/HooksInterface.h b/old_examples/shared/drivers/modbus/HooksInterface.h deleted file mode 100644 index d7c691b8b0f56f05bae04e288a30745677810184..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/HooksInterface.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -/* Class that provides an interface made by a set of function interface used by - * Modbus slave engine to handle the server requests. - * By default the functions will return the error code "function unsupported", - * user must provide a correct implementation by subclassing this class - */ - -#pragma once - -#include "Common.h" -#include "ExceptionCodes.h" - -class HooksInterface -{ -public: - HooksInterface() {} - - ~HooksInterface() {} - - virtual uint8_t ReadCoil(bool& value, uint16_t addr) - { - return modbus::EXC_ILLEGAL_FUN; - } - - virtual uint8_t WriteCoil(bool value, uint16_t addr) - { - return modbus::EXC_ILLEGAL_FUN; - } - - virtual uint8_t ReadRegister(uint16_t& value, uint16_t addr) - { - return modbus::EXC_ILLEGAL_FUN; - } - - virtual uint8_t WriteRegister(uint16_t value, uint16_t addr) - { - return modbus::EXC_ILLEGAL_FUN; - } - -private: - HooksInterface(const HooksInterface& other) = delete; - HooksInterface& operator=(const HooksInterface& other) = delete; - bool operator==(const HooksInterface& other) = delete; -}; diff --git a/old_examples/shared/drivers/modbus/Modbus.h b/old_examples/shared/drivers/modbus/Modbus.h deleted file mode 100644 index 02d7070e89987894b5bcdabdac618fef58774456..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/Modbus.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <slave/SlaveEngine.h> -#include <slave/SlaveInterface.h> - -#include "ExceptionCodes.h" -#include "PDU.h" diff --git a/old_examples/shared/drivers/modbus/PDU.cpp b/old_examples/shared/drivers/modbus/PDU.cpp deleted file mode 100644 index b04742dbb6b74588bd941e88f9d8b0c1e36b26cc..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/PDU.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 "PDU.h" - -PDU::PDU() : fuCode(0), pSize(0), pData(nullptr) {} - -PDU::PDU(uint8_t fCode, const uint8_t* data, uint8_t dataSize) - : fuCode(fCode), pSize(dataSize) -{ - -#ifndef __NO_EXCEPTIONS - try - { - pData = new uint8_t[pSize]; - } - catch (std::bad_alloc& exc) - { - std::cout << "bad alloc! " << exc.what() << std::endl; - pData = nullptr; - } -#else - pData = new (std::nothrow) uint8_t[pSize]; -#endif - - std::memcpy(pData, data, pSize); -} - -PDU::~PDU() -{ - - if (pData != nullptr) - { - delete[] pData; - } -} - -uint8_t PDU::funcCode() const { return fuCode; } - -std::pair<uint8_t, uint8_t const*> PDU::data() const -{ - - return std::pair<uint8_t, const uint8_t*>(pSize, pData); -} diff --git a/old_examples/shared/drivers/modbus/PDU.h b/old_examples/shared/drivers/modbus/PDU.h deleted file mode 100644 index 5450371ce81cff907ff6f5598f8a081dcab4b8cd..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/PDU.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <stddef.h> - -#include "Common.h" - -class PDU -{ -public: - /** - * Create a new PDU structure - * @param fCode: PDU's function code - * @param data: pointer to data to be put into PDU's data field - * @param dataSize: size of PDU's data field - */ - PDU(uint8_t fCode, const uint8_t const* data, uint8_t dataSize); - - /** - * Default constructor does nothing - */ - PDU(); - ~PDU(); - - /** - * @return PDU's function code - */ - uint8_t funcCode() const; - - /** - * @return std::pair: first field is data size, the second one is - * a uint8_t const* to internal data. - */ - std::pair<uint8_t, uint8_t const*> data() const; - -private: - uint8_t fuCode; - uint8_t pSize; - uint8_t* pData; - - PDU(const PDU& other); - PDU& operator=(const PDU& other); - bool operator==(const PDU& other); -}; diff --git a/old_examples/shared/drivers/modbus/slave/RtuSlave.cpp b/old_examples/shared/drivers/modbus/slave/RtuSlave.cpp deleted file mode 100644 index 293108d3966bb87fcf18e6714f84437779fe8e8f..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/slave/RtuSlave.cpp +++ /dev/null @@ -1,309 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 "RtuSlave.h" - -using namespace std; -using namespace miosix; - -typedef Gpio<GPIOA_BASE, 2> u2tx; -typedef Gpio<GPIOA_BASE, 3> u2rx; -typedef Gpio<GPIOA_BASE, 1> u2rts; - -typedef Gpio<GPIOB_BASE, 10> u3tx; -typedef Gpio<GPIOB_BASE, 11> u3rx; -typedef Gpio<GPIOB_BASE, 14> u3rts; - -void __attribute__((naked)) TIM1_BRK_TIM9_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z13TimIRQHandlerv"); - restoreContext(); -} - -void __attribute__((weak)) USART2_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z14Ser2IRQHandlerv"); - restoreContext(); -} - -void __attribute__((weak)) USART3_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z14Ser3IRQHandlerv"); - restoreContext(); -} - -void __attribute__((used)) TimIRQHandler() -{ - - auto inst = Singleton<RtuSlave>::getInstance(); - inst->IRQTimerInterrupt(); -} - -void __attribute__((used)) Ser2IRQHandler() -{ - - auto inst = Singleton<RtuSlave>::getInstance(); - inst->IRQSerial2Interrupt(); -} - -void __attribute__((used)) Ser3IRQHandler() -{ - - auto inst = Singleton<RtuSlave>::getInstance(); - inst->IRQSerial3Interrupt(); -} - -RtuSlave::RtuSlave() : timer_k(1.0f) -{ - memset(serial2_data.rxBuffer, 0, 256); - serial2_data.rxWriteIndx = 0; - serial2_data.lastEvent = 0; - serial2_data.rxInProgress = false; - - memset(serial2_data.txBuffer, 0, 256); - serial2_data.txReadIndx = 0; - serial2_data.txSize = 0; - - memset(serial3_data.rxBuffer, 0, 256); - serial3_data.rxWriteIndx = 0; - serial3_data.lastEvent = 0; - serial3_data.rxInProgress = false; - - memset(serial3_data.txBuffer, 0, 256); - serial3_data.txReadIndx = 0; - serial3_data.txSize = 0; - - { - FastInterruptDisableLock dLock; - RCC->APB1ENR |= RCC_APB1ENR_USART2EN; - RCC->APB1ENR |= RCC_APB1ENR_USART3EN; - RCC->APB2ENR |= RCC_APB2ENR_TIM9EN; - RCC_SYNC(); - - u2tx::mode(Mode::ALTERNATE); - u2rx::mode(Mode::ALTERNATE); - u2tx::alternateFunction(7); - u2rx::alternateFunction(7); - u2rts::mode(Mode::OUTPUT); - u2rts::low(); - - u3tx::mode(Mode::ALTERNATE); - u3rx::mode(Mode::ALTERNATE); - u3tx::alternateFunction(7); - u3rx::alternateFunction(7); - u3rts::mode(Mode::OUTPUT); - u3rts::low(); - } - - /*** USART 2 configuration ***/ - // Enable parity, 9 bit frame length (9th bit is the parity one), - // use even parity, generate interrupt in case of parity error, tx end, - // new byte received - USART2->CR1 |= USART_CR1_M | USART_CR1_PCE | USART_CR1_PEIE | - USART_CR1_TXEIE | USART_CR1_RXNEIE | - USART_CR1_TE // enable tx - | USART_CR1_RE; // enable rx - - // CR2 register is left untouched since its default values are OK - - USART2->CR3 |= USART_CR3_ONEBIT; - - NVIC_SetPriority(USART2_IRQn, 15); // Lowest priority for serial - NVIC_ClearPendingIRQ(USART2_IRQn); - NVIC_EnableIRQ(USART2_IRQn); - - /*** USART 3 configuration, same as USART 2 ***/ - USART3->CR1 |= USART_CR1_M | USART_CR1_PCE | USART_CR1_PEIE | - USART_CR1_TXEIE | USART_CR1_RXNEIE | - USART_CR1_TE // enable tx - | USART_CR1_RE; // enable rx - - USART3->CR3 |= USART_CR3_ONEBIT; - - NVIC_SetPriority(USART3_IRQn, 15); // Lowest priority for serial - NVIC_ClearPendingIRQ(USART3_IRQn); - NVIC_EnableIRQ(USART3_IRQn); -} - -RtuSlave::~RtuSlave() -{ - FastInterruptDisableLock dLock; - - TIM9->CR1 &= ~TIM_CR1_CEN; - - RCC->APB1ENR &= ~RCC_APB1ENR_USART2EN; - RCC->APB1ENR &= ~RCC_APB1ENR_USART3EN; - RCC->APB2ENR &= ~RCC_APB2ENR_TIM9EN; - RCC_SYNC(); -} - -void RtuSlave::setBaud(uint32_t baud) -{ - uint32_t busFreq = SystemCoreClock; - if (RCC->CFGR & RCC_CFGR_PPRE1_2) - { - busFreq /= 1 << (((RCC->CFGR >> 10) & 0x3) + 1); - } - - uint32_t quot = 2 * busFreq / baud; // 2*freq for round to nearest - USART2->BRR = quot / 2 + (quot & 1); - USART3->BRR = quot / 2 + (quot & 1); - - timerInit(baud); -} - -bool RtuSlave::newDataReceived(uint8_t interface) -{ - if (interface == 1) - { - if (!(serial2_data.rxInProgress) && (serial2_data.rxWriteIndx > 0)) - { - return true; - } - } - - if (interface == 2) - { - if (!(serial3_data.rxInProgress) && (serial3_data.rxWriteIndx > 0)) - { - return true; - } - } - - return false; -} - -pair<uint8_t, unique_ptr<PDU> > RtuSlave::readData(uint8_t fromInterface) -{ - // uint8_t address = TODO incomplete? -} - -void RtuSlave::timerInit() -{ - TIM9->DIER |= TIM_DIER_CC1IE | TIM_DIER_CC2IE; - TIM9->ARR = 0xFFFF; - TIM9->CCMR1 = 0; - TIM9->CCMR2 = 0; - TIM9->CNT = 0; - - NVIC_SetPriority(TIM9_IRQn, 15); // Lowest priority for serial - NVIC_ClearPendingIRQ(TIM9_IRQn); - NVIC_EnableIRQ(TIM9_IRQn); - - uint32_t busFreq = SystemCoreClock; - if (RCC->CFGR & RCC_CFGR_PPRE2_2) - { - busFreq /= 1 << (((RCC->CFGR >> 13) & 0x3) + 1); - } - - /* Here we calculate the prescaler value based on baud rate value. - * From the modbus RTU specification we have that, if the baud is greater - * than 19200, the t1.5 and t3.5 are fixed as the baud is 19200. - * The timer is set up to accept values multiple of t1.5. Its exact value is - * given by the formula (1.5 * 11) / baud, since a modbus RTU character is - * 11 bit long. Here we use an aproximate one (17/baud instead of 16.5/baud) - * because we do all the calculations with ints. - * The prescaler value is given by busFreq * t1.5, that is - * (busFreq * 17) / baud. If this value falls above 65536, the maximum - * acceptable for the prescaler, the latter is set to 0xFFFF and a suitable - * value for the correction factor k is computed. - */ - uint32_t prescaler = (busFreq / min(baud, 19200)) * 17; - if (prescaler > 65536) - { - TIM9->PSC = 0xFFFF; - timer_k = (static_cast<float>(busFreq) * 17.0f); - timer_k /= (65536.0f * static_cast<float>(baud)); - } - else - { - TIM9->PSC = prescaler - 1; - timer_k = 1.0f; - } - - TIM9->EGR |= TIM_EGR_UG; // generate update event to load values - TIM9->CR1 |= TIM_CR1_CEN; -} - -void RtuSlave::setNewTimeout(uint8_t channel, uint8_t ticks) -{ - uint16_t incr = static_cast<uint16_t>((ticks * timer_k) + 0.5f); - switch (channel) - { - case 1: - TIM9->CCMR1 += incr; - break; - - case 2: - TIM9->CCMR2 += incr; - break; - - default: - break; - } -} - -void RtuSlave::IRQTimerInterrupt() -{ - if (TIM9->SR | TIM_SR_CC1IF) - { - TIM9->SR &= ~TIM_SR_CC1IF; - serial2_data.rxInProgress = false; - } - - if (TIM9->SR | TIM_SR_CC2IF) - { - TIM9->SR &= ~TIM_SR_CC2IF; - serial3_data.rxInProgress = false; - } -} - -void RtuSlave::IRQSerial2Interrupt() -{ - if (USART2->SR & USART_SR_RXNE) - { - if (!serial2_data.rxInProgress && serial2_data.rxWriteIndx == 0) - { - serial2_data.rxInProgress = true; - } - - if (serial2_data.rxInProgress) - { - serial2_data.rxBuffer[serial2_data.rxWriteIndx] = USART2->DR; - serial2_data.rxWriteIndx++; - // new character has to be received in 1.5*character_time instants - setNewTimeout(1, 1); - } - } - - if (USART2->SR & USART_SR_TXE) - { - if (serial2_data.txReadIndx < serial2_data.txSize) - { - USART->DR = serial2_data.txBuffer[serial2_data.txReadIndx]; - serial2_data.txReadIndx++; - } - } -} diff --git a/old_examples/shared/drivers/modbus/slave/RtuSlave.h b/old_examples/shared/drivers/modbus/slave/RtuSlave.h deleted file mode 100644 index 9c38eb66ee1fb25a644adbeb998effd0cca02827..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/slave/RtuSlave.h +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <memory> - -#include "../../Common.h" -#include "../PDU.h" -#include "Timer.h" - -class RtuSlave : public Singleton<RtuSlave> -{ - - friend class Singleton<RtuSlave>; - -public: - ~RtuSlave(); - - void setBaud(uint32_t baud) throw(); - - void sendReply(std::unique_ptr<PDU>& data, uint8_t fromInterface); - - bool newDataReceived(uint8_t interface); - - std::pair<uint8_t, std::unique_ptr<PDU>> readData(uint8_t fromInterface); - - void IRQSerial2Interrupt(); - void IRQSerial3Interrupt(); - void IRQTimerInterrupt(); - -private: - RtuSlave(); - - void timerInit(); - void setNewTimeout(uint8_t channel, uint8_t ticks); - - typedef struct - { - uint8_t rxBuffer[256]; - uint8_t rxWriteIndx; - uint16_t lastEvent; - bool rxInProgress; - - uint8_t txBuffer[256]; - uint8_t txReadIndx; - uint8_t txSize; - - } interf_data; - - interf_data serial2_data; - interf_data serial3_data; - - float timer_k; - - RtuSlave(const RtuSlave& other) = delete; - RtuSlave& operator=(const RtuSlave& other) = delete; - bool operator==(const RtuSlave& other) = delete; -}; diff --git a/old_examples/shared/drivers/modbus/slave/SlaveEngine.cpp b/old_examples/shared/drivers/modbus/slave/SlaveEngine.cpp deleted file mode 100644 index c79dc182c07314069ee6cc4ef2a8fa7f49e8deae..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/slave/SlaveEngine.cpp +++ /dev/null @@ -1,321 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 "SlaveEngine.h" - -using namespace std; - -SlaveEngine::SlaveEngine(HooksInterface* hook) -{ - if (hook == nullptr) - { - handlers = new HooksInterface(); - } - else - { - handlers = hook; - } -} - -SlaveEngine::~SlaveEngine() { delete handlers; } - -unique_ptr<PDU> SlaveEngine::ProcessRequest(unique_ptr<PDU> request) -{ - PDU* response = nullptr; - uint8_t* data = (request->data()).second; - - switch (request->funcCode()) - { - // read multiple coils - case 0x01: - response = DoReadCoils(data); - break; - - // write single coil - case 0x05: - response = DoWriteCoil(data); - break; - - // write multiple coils - case 0x0F: - response = DoWriteMultipleCoils(data); - break; - - // read holding registers - case 0x03: - response = DoReadRegisters(data); - break; - - // write single register - case 0x06: - response = DoWriteRegister(data); - break; - - // write multiple registers - case 0x10: - response = DoWriteMultipleRegisters(data); - break; - - default: - // If we arrived here means that the function is not supported, so - // reply with an exception packet - uint8_t errc = modbus::EXC_ILLEGAL_FUN; - uint8_t exceptCode = request->funcCode() + 0x80; - response = new PDU(exceptCode, &errc, 1); - } - - return unique_ptr<PDU>(response); -} - -PDU* SlaveEngine::DoReadCoils(uint8_t* data) -{ - /* In this case the packet is made of two fields, each 16 bit long. - * So, its safe to cast data to uint16_t* and access it as a two element - * array of uint16_t - */ - uint16_t* ptr = reinterpret_cast<uint16_t*>(data); - uint16_t startAddr = toLittleEndian16(ptr[0]) - 1; - uint16_t coilsNum = toLittleEndian16(ptr[1]); - - if (coilsNum == 0 || coilsNum > 0x07D0) - { - uint8_t excCode = modbus::EXC_ILLEGAL_VAL; - return new PDU(0x81, &excCode, 1); - } - - bool result[coilsNum] = {false}; - uint8_t retVal = 0; - for (uint16_t i = 0; i < coilsNum; i++) - { - retVal = handlers->ReadCoil(result[i], startAddr + i); - if (retVal != 0) - { - break; - } - } - - // Bad things happened inside ReadCoil, report problem using and exception - // packet - if (retVal != 0) - { - return new PDU(0x81, &retVal, 1); - } - - // Success, prepare a suitable response. For info about packing process - // see the specification - uint8_t byteCnt = coilsNum / 8 + 1; - uint8_t reply[byteCnt + 1] = {0}; - reply[0] = byteCnt; - - for (uint16_t i = 0; i < coilsNum; i++) - { - uint8_t chunk = i / 8; - uint8_t shift = i % 8; - reply[chunk + 1] |= (result[i] ? 0x01 : 0x00) << shift; - } - - return new PDU(0x01, &reply, byteCnt + 1); -} - -PDU* SlaveEngine::DoWriteCoil(uint8_t* data) -{ - /* In this case the packet is made of two fields, each 16 bit long. - * So, its safe to cast data to uint16_t* and access it as a two element - * array of uint16_t - */ - uint16_t* ptr = reinterpret_cast<uint16_t*>(data); - uint16_t address = toLittleEndian16(ptr[0]) - 1; - uint16_t value = toLittleEndian16(ptr[1]); - - // value can be either 0x0000 or 0x00FF, other values are illegal. - if ((value != 0x0000) && (value != 0x00FF)) - { - uint8_t except = modbus::EXC_ILLEGAL_VAL; - return new PDU(0x85, &except, 1); - } - - // doing this is safe, because here we can have only 0x0000 or 0x00FF - bool val = (value == 0x00FF) ? true : false; - uint8_t retVal = handlers->WriteCoil(val, address); - - if (retVal != 0) - { - return new PDU(0x85, &retVal, 1); - } - - // Success, return response - return new PDU(0x05, data, 4); -} - -PDU* SlaveEngine::DoWriteMultipleCoils(uint8_t* data) -{ - /* Packet structure: - * -> 2 bytes for starting address (data[0] and data[1]) - * -> 2 bytes for outputs quantity (data[2] and data[3]) - * -> 1 byte for byte count (data [4]) - * -> N bytes for outputs' values - */ - uint16_t* ptr = reinterpret_cast<uint16_t*>(data); - uint16_t startAddr = toLittleEndian16(ptr[0]) - 1; - uint16_t outpCount = toLittleEndian16(ptr[1]); - uint8_t byteCount = ptr[4]; - - if (outpCount == 0x00 || outpCount > 0x07B0) - { - uint8_t excCode = modbus::EXC_ILLEGAL_VAL; - return new PDU(0x8F, &excCode, 1); - } - - uint8_t retVal = 0; - for (uint16_t i = 0; i < outpCount; i++) - { - uint8_t chunk = i / 8; - uint8_t mask = i % 8; - - // This is really bad: overflow - if (chunk > byteCount) - { - retVal = modbus::EXC_ILLEGAL_VAL; - break; - } - - uint8_t elem = data[5 + chunk] & mask; - bool val = (elem != 0) ? true : false; - retVal = handlers->WriteCoil(val, startAddr + i); - - if (retVal != 0) - { - break; - } - } - - if (retVal != 0) - { - return new PDU(0x8F, &retVal, 1); - } - - // success, return start address and output count - return new PDU(0x0F, data, 4); -} - -PDU* SlaveEngine::DoReadRegisters(uint8_t* data) -{ - /* In this case the packet is made of two fields, each 16 bit long. - * So, its safe to cast data to uint16_t* and access it as a two element - * array of uint16_t - */ - uint16_t* ptr = reinterpret_cast<uint16_t*>(data); - uint16_t startAddr = toLittleEndian16(ptr[0]) - 1; - uint16_t regsNum = toLittleEndian16(ptr[1]); - - if (regsNum == 0 || regsNum > 0x007D) - { - uint8_t excCode = modbus::EXC_ILLEGAL_VAL; - return new PDU(0x83, &excCode, 1); - } - - uint16_t result[regsNum] = {0}; - uint8_t retVal = 0; - - for (uint16_t i = 0; i < regsNum; i++) - { - uint16_t temp = 0; - retVal = handlers->ReadRegister(temp, startAddr + i); - result[i] = toBigEndian16(temp); - - if (retVal != 0) - { - break; - } - } - - if (retVal != 0) - { - return new PDU(0x83, &retVal, 1); - } - - return new PDU(0x03, reinterpret_cast<uint8_t*>(&result), 2 * regsNum); -} - -PDU* SlaveEngine::DoWriteRegister(uint8_t* data) -{ - /* In this case the packet is made of two fields, each 16 bit long. - * So, its safe to cast data to uint16_t* and access it as a two element - * array of uint16_t - */ - uint16_t* ptr = reinterpret_cast<uint16_t*>(data); - uint16_t address = toLittleEndian16(ptr[0]) - 1; - uint16_t value = toLittleEndian16(ptr[1]); - - uint8_t retVal = handlers->WriteRegister(value, address); - - if (retVal != 0) - { - return new PDU(0x86, &retVal, 1); - } - - return new PDU(0x06, data, 4); -} - -PDU* SlaveEngine::DoWriteMultipleRegisters(uint8_t* data) -{ - /* Packet structure: - * -> 2 bytes for starting address (data[0] and data[1]) - * -> 2 bytes for registers quantity (data[2] and data[2]) - * -> 1 byte for byte count (data [4]) - * -> 2*N bytes for registers' values - */ - uint16_t* ptr = reinterpret_cast<uint16_t*>(data); - uint16_t startAddr = toLittleEndian16(ptr[0]) - 1; - uint16_t regsNum = toLittleEndian16(ptr[1]); - uint8_t byteCount = ptr[4]; - - bool outRange = (regsNum == 0x00 || regsNum > 0x07B); - bool mismatch = ((byteCount / 2) != regsNum); - - if (outRange || mismatch) - { - uint8_t excCode = modbus::EXC_ILLEGAL_VAL; - return new PDU(0x90, &excCode, 1); - } - - // Data values begin from the 5th byte and are all 16 bit values, so this - // conversion is safe - uint16_t* values = reinterpret_cast<uint16_t*>(data + 5); - uint8_t retVal = 0; - - for (uint16_t i = 0; i < byteCount; i++) - { - retVal = handlers->WriteRegister(values[i], startAddr + i); - if (retVal != 0) - { - break; - } - } - - if (retVal != 0) - { - return new PDU(0x90, &retVal, 1); - } - - return new PDU(0x10, data, 4); -} diff --git a/old_examples/shared/drivers/modbus/slave/SlaveEngine.h b/old_examples/shared/drivers/modbus/slave/SlaveEngine.h deleted file mode 100644 index da8988392ff3a4aece3eeafb15c23ad3339f6cc8..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/slave/SlaveEngine.h +++ /dev/null @@ -1,70 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <interfaces/endianness.h> - -#include <memory> - -#include "../HooksInterface.h" -#include "../PDU.h" -#include "Common.h" - -class SlaveEngine -{ -public: - /** - * Creates an instance of the engine - * @param hook pointer to an instance of a HooksInterface class, if not - * provided the SlaveEngine will use a default instance of HooksInterface - * class. - * The instance pointed by @param hook will be deleted when the destructor - * of SlaveEngine is called - */ - explicit SlaveEngine(HooksInterface* hook = nullptr); - - ~SlaveEngine(); - - /** - * Process a request received from the master. - * @param request PDU that contains the master's request - * @return a PDU with the either the response or the exception message - */ - std::unique_ptr<PDU> ProcessRequest(std::unique_ptr<PDU> request); - -private: - HooksInterface* handlers; ///< pointer to the handlers' class - - // Helper functions, one for each function code supported - PDU* DoReadCoils(uint8_t* data); - PDU* DoWriteCoil(uint8_t* data); - PDU* DoWriteMultipleCoils(uint8_t* data); - PDU* DoReadRegisters(uint8_t* data); - PDU* DoWriteRegister(uint8_t* data); - PDU* DoWriteMultipleRegisters(uint8_t* data); - - // Unsupported functions - SlaveEngine(const SlaveEngine& other) = delete; - SlaveEngine& operator=(const SlaveEngine& other) = delete; - bool operator==(const SlaveEngine& other) = delete; -}; diff --git a/old_examples/shared/drivers/modbus/slave/old/SlaveInterface.cpp b/old_examples/shared/drivers/modbus/slave/old/SlaveInterface.cpp deleted file mode 100644 index da061518689b1ed3d9c60e844a7c8e4f8d65cced..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/slave/old/SlaveInterface.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 "SlaveInterface.h" - -using namespace std; -using namespace miosix; - -SlaveInterface::SlaveInterface(miosix::STM32Serial* phy, miosix::gpioPin* rxEn, - uint8_t addr) - : phy(phy), rxEn(rxEn), addr(addr) -{ - - if (addr == 0 || addr > 247) - { -#ifndef __NO_EXCEPTIONS - throw invalid_argument("Slave address out of range!"); -#else - puts("Slave address out of range!"); -#endif - } - - rxEn->mode(Mode::OUTPUT); - rxEn->low(); -} - -void SlaveInterface::receive() -{ - - /* The packet is structured as follows: - * -------------------------------------------------- - * | slave addr | func code | data len | data | CRC | - * -------------------------------------------------- - */ - - uint8_t head[3] = {0}; // first of all get the header - if (phy->readBlock(head, 3, 0) != 0) - { - - size_t size = head[2]; - uint8_t payload[size + 2] = {0}; // payload size + 2 bytes of CRC - phy->readBlock(payload, size + 2, 0); - - /* Here we have the first important check: is the packet addressed to - * this slave? The check is done here in order to flush away the rx - * buffer in case the packet is not for this slave - */ - if (head[0] != addr) - { - return; // not for this slave, return - } - - /* Since CRC is calculated on data len + data we have to pack all the - * bytes in a suitable chunk on which calculate the CRC - */ - uint8_t chunk[size + 1] = {0}; - chunk[0] = size; - memcpy(&chunk[1], payload, size); - - // The CRC of the received packet is stored into the last two bytes of - // the payload buffer, indexed at size and size + 1 - uint16_t pktCrc = *(reinterpret_cast<uint16_t*>(&payload[size])); - if (pktCrc == CRC16(chunk, size + 1)) - { - received.reset(PDU(head[1], payload, size)); - } - } -} - -unique_ptr<PDU> SlaveInterface::getPacket() { return move(received); } - -void SlaveInterface::sendReply(unique_ptr<PDU> reply) -{ - - auto payload = reply->data(); - size_t pktSize = payload.first + 4; - - uint8_t packet[pktSize] = {0}; - packet[0] = reply->funcCode(); - packet[1] = payload.first; // length of the data field - - std::memcpy(&packet[2], payload.second, payload.first); - uint16_t crc = CRC16(&packet[1], payload.first + 1); - packet[pktSize - 2] = static_cast<uint8_t>((crc >> 8) & 0xFF); - packet[pktSize - 1] = static_cast<uint8_t>(crc & 0xFF); - - rxEn->high(); - phy->writeBlock(packet, pktSize, 0); - rxEn->low(); -} - -uint16_t SlaveInterface::CRC16(uint8_t* data, size_t len) -{ - - uint16_t crc = 0xFFFF; - for (size_t i = 0; i < len; i++) - { - - crc ^= static_cast<uint16_t>(data[i]); - for (int j = 0; j < 8; j++) - { - - if (crc & 0x0001) - { - crc >>= 1; - crc ^= 0xA001; - } - else - { - crc >>= 1; - } - } - } - return crc; -} diff --git a/old_examples/shared/drivers/modbus/slave/old/SlaveInterface.h b/old_examples/shared/drivers/modbus/slave/old/SlaveInterface.h deleted file mode 100644 index 607e923a65bb5c3b7ea5e85928dd742f7973aa69..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/slave/old/SlaveInterface.h +++ /dev/null @@ -1,99 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <drivers/serial_stm32.h> - -#include <memory> -#include <stdexcept> - -#include "../PDU.h" -#include "Common.h" - -#if defined SERIAL_2_DMA -#error Serial 2 has DMA enabled, modbus RTU interface requires it to be disabled -#elif defined SERIAL_3_DMA -#error Serial 3 has DMA enabled, modbus RTU interface requires it to be disabled -#endif - -/** - * This class provides an interface for Modbus RTU slave devices. The physical - * interface is handled by using the STM32Serial driver class, so only USART 1 - * USART 2 and USART 3 are supported. - * NOTE: this interface currently DOESN'T SUPPORT BROADCAST messages; any - * message of this type will be ignored. - */ - -class SlaveInterface -{ -public: - /** - * Constructor needs these parameters: - * @param phy pointer to an STM32Serial class instance that manages the - * serial port used for the communication - * @param rxEn pointer to a GpioPin class that manages the pin used for - * RS485 transceiver's RX/TX switching. - * @param addr address assigned to the slave, must be in the range 1 - 247 - * otherwise a std::invalid_argument exception is thrown - */ - SlaveInterface(miosix::STM32Serial *phy, miosix::gpioPin *rxEn, - uint8_t addr); - ~SlaveInterface(); - - /** - * Send a reply message to a server's request - * @param reply std::unique_ptr to a PDU class that contains the body of - * the message - */ - void sendReply(std::unique_ptr<PDU> reply); - - /** - * Check if new messages for this slave are arrived. User shoul periodically - * call this function - */ - void receive(); - - /** - * Get the latest packet received. If there is no new packet a nullptr is - * returned. - * @return std::unique_ptr to a PDU class contains the message's body - */ - std::unique_ptr<PDU> getPacket(); - - // Unused functions - SlaveInterface(const SlaveInterface &other) = delete; - SlaveInterface &operator=(const SlaveInterface &other) = delete; - bool operator==(const SlaveInterface &other) = delete; - -private: - std::unique_ptr<PDU> received; ///< last packet received - uint8_t addr; ///< address of this slave - miosix::STM32Serial *phy; - miosix::gpioPin *rxEn; - - /** - * This function calculates the CRC accordingly to the Modbus RTU - * specification. - */ - uint16_t CRC16(uint8_t *data, size_t len); -}; diff --git a/old_examples/shared/drivers/modbus/slave/old/Timer.cpp b/old_examples/shared/drivers/modbus/slave/old/Timer.cpp deleted file mode 100644 index 643fed3af7a520dc742400fb10ae2b2ce09816ce..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/slave/old/Timer.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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 "Timer.h" - -using namespace std; -using namespace miosix; - -void __attribute__((naked)) TIM1_BRK_TIM9_IRQHandler() -{ - saveContext(); - asm volatile("bl _Z10IRQHandlerv"); - restoreContext(); -} - -void __attribute__((used)) IRQHandler() -{ - - auto inst = Singleton<Timer>::getInstance(); - - if (TIM9->SR | TIM_SR_CC1IF) - { - TIM9->SR &= ~TIM_SR_CC1IF; - inst->expFlags[0] = true; - } - - if (TIM9->SR | TIM_SR_CC2IF) - { - TIM9->SR &= ~TIM_SR_CC2IF; - inst->expFlags[1] = true; - } -} - -Timer::Timer() : k(1.0f) -{ - { - FastInterruptDisableLock dLock; - RCC->APB2ENR |= RCC_APB2ENR_TIM9EN; - RCC_SYNC(); - } - - TIM9->DIER |= TIM_DIER_CC1IE | TIM_DIER_CC2IE; - TIM9->ARR = 0xFFFF; - TIM9->CCMR1 = 0; - TIM9->CCMR2 = 0; - TIM9->CNT = 0; - TIM9->EGR |= TIM_EGR_UG; // generate update event to load values - - NVIC_SetPriority(TIM9_IRQn, 15); // Lowest priority for serial - NVIC_ClearPendingIRQ(TIM9_IRQn); - NVIC_EnableIRQ(TIM9_IRQn); -} - -Timer::~Timer() -{ - stop(); - { - FastInterruptDisableLock dLock; - RCC->APB2ENR |= RCC_APB2ENR_TIM9EN; - RCC_SYNC(); - } -} - -void Timer::start() { TIM9->CR1 |= TIM_CR1_CEN; } - -void Timer::stop() { TIM9->CR1 &= ~TIM_CR1_CEN; } - -void Timer::init(uint32_t refBaud) -{ - uint32_t busFreq = SystemCoreClock; - if (RCC->CFGR & RCC_CFGR_PPRE2_2) - { - busFreq /= 1 << (((RCC->CFGR >> 13) & 0x3) + 1); - } - - /* Here we calculate the prescaler value based on baud rate value. - * From the modbus RTU specification we have that, if the baud is greater - * than 19200, the t1.5 and t3.5 are fixed as the baud is 19200. - * The timer is set up to accept values multiple of t1.5. Its exact value is - * given by the formula (1.5 * 11) / baud, since a modbus RTU character is - * 11 bit long. Here we use an aproximate one (17/baud instead of 16.5/baud) - * because we do all the calculations with ints. - * The prescaler value is given by busFreq * t1.5, that is - * (busFreq * 17) / baud. If this value falls above 65536, the maximum - * acceptable for the prescaler, the latter is set to 0xFFFF and a suitable - * value for the correction factor k is computed. - */ - uint32_t prescaler = (busFreq / min(refBaud, 19200)) * 17; - if (prescaler > 65536) - { - TIM9->PSC = 0xFFFF; - k = (static_cast<float>(busFreq) * 17.0f); - k /= (65536.0f * static_cast<float>(refBaud)); - } - else - { - TIM9->PSC = prescaler - 1; - k = 1.0f; - } - - TIM9->EGR |= TIM_EGR_UG; // generate update event to load values -} - -bool Timer::expired(uint8_t channel) -{ - bool temp = expFlags[channel]; - expFlags[channel] = false; - return temp; -} - -void Timer::newSetpoint(uint8_t channel, uint8_t ticks) -{ - uint16_t incr = static_cast<uint16_t>((ticks * k) + 0.5f); - switch (channel) - { - case 1: - TIM9->CCMR1 += incr; - break; - - case 2: - TIM9->CCMR2 += incr; - break; - - default: - break; - } -} diff --git a/old_examples/shared/drivers/modbus/slave/old/Timer.h b/old_examples/shared/drivers/modbus/slave/old/Timer.h deleted file mode 100644 index 7453fc3e07767fd4fe5b82a4a1e011294a327fde..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/modbus/slave/old/Timer.h +++ /dev/null @@ -1,77 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <algorithm> - -#include "Common.h" - -class Timer : public Singleton<Timer> -{ - - friend class Singleton<Timer>; - -public: - ~Timer(); - - /** - * Initialize the timer prescaler in order to have a counter tick equals, - * in time terms, to the time needed to send 1.5 11 bit long characters at - * the speed specified by @param refBaud - */ - void init(uint32_t refBaud); - - /** - * Start the timer - */ - void start(); - - /** - * Stop the timer - */ - void stop(); - - /** - * Set a new expiring setpoint @param ticks ahead from now for channel - * specified by @param channel - */ - void newSetpoint(uint8_t channel, uint8_t ticks); - - /** - * @return true if the timer's @param channel expired, calling this - * function will reset to fals the internal flag. - */ - bool expired(uint8_t channel); - -private: - Timer(); - - friend void IRQHandler(); ///< timer IRQ handler - - bool expFlags[2] = {false}; - float k; ///< conversion factor internally used, see implementation - - Timer(const Timer& other) = delete; - Timer& operator=(const Timer& other) = delete; - bool operator==(const Timer& other) = delete; -}; diff --git a/old_examples/shared/drivers/piksi/piksi.cpp b/old_examples/shared/drivers/piksi/piksi.cpp deleted file mode 100644 index 1ca1a7cc75c60d5c1911ecaed2d384ff8b8797b3..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/piksi/piksi.cpp +++ /dev/null @@ -1,285 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Federico Terraneo - * - * 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 "piksi.h" - -#include <diagnostic/SkywardStack.h> -#include <diagnostic/StackLogger.h> -#include <fcntl.h> -#include <sys/stat.h> -#include <sys/types.h> -#include <termios.h> -#include <time.h> -#include <unistd.h> -#include <utils/Debug.h> - -#include <algorithm> -#include <cmath> - -using namespace std; - -#ifdef _MIOSIX - -#include <miosix.h> - -using namespace miosix; - -#endif //_MIOSIX - -/* - * Contrary to the standard CCITT CRC that starts from 0xffff, the Piksi - * people decided to start from 0. So we need a special CRC16 just for them - */ - -static inline void crc16piksiUpdate(unsigned short &crc, unsigned char data) -{ - unsigned short x = ((crc >> 8) ^ data) & 0xff; - x ^= x >> 4; - crc = (crc << 8) ^ (x << 12) ^ (x << 5) ^ x; -} - -static unsigned short crc16piksi(const void *message, unsigned int length) -{ - const unsigned char *m = reinterpret_cast<const unsigned char *>(message); - unsigned short result = 0; - for (unsigned int i = 0; i < length; i++) - crc16piksiUpdate(result, m[i]); - return result; -} - -// -// class Piksi -// - -Piksi::Piksi(const char *serialPath) -{ - // cppcheck-suppress memsetClassFloat - memset(&data, 0, sizeof(PiksiGPSData)); - // cppcheck-suppress memsetClassFloat - memset(&partialData, 0, sizeof(PiksiGPSData)); - - fd = open(serialPath, O_RDWR); - if (fd < 0) - throw runtime_error(string("Cannot open ") + serialPath); - if (isatty(fd)) - { - termios t; - tcgetattr(fd, &t); - t.c_lflag &= ~(ISIG | ICANON | ECHO); -#ifndef _MIOSIX - cfsetospeed(&t, B115200); - cfsetispeed(&t, B115200); -#endif //_MIOSIX - tcsetattr(fd, TCSANOW, &t); - } - pthread_attr_t attr; - pthread_attr_init(&attr); - pthread_attr_setstacksize(&attr, skywardStack(STACK_DEFAULT_FOR_PTHREAD)); - - pthread_create(&thread, &attr, &threadLauncher, this); - - pthread_attr_destroy(&attr); - - pthread_mutex_init(&mutex, NULL); - pthread_cond_init(&cond, NULL); -} - -PiksiGPSData Piksi::getGpsData() -{ - PiksiGPSData result; - pthread_mutex_lock(&mutex); - result = data; - - if (!firstFixReceived) - { - pthread_mutex_unlock(&mutex); - throw runtime_error("No fix"); - } - - pthread_mutex_unlock(&mutex); - return result; -} - -PiksiGPSData Piksi::waitForGpsData() -{ - PiksiGPSData result; - pthread_mutex_lock(&mutex); - pthread_cond_wait(&cond, &mutex); - result = data; - pthread_mutex_unlock(&mutex); - return result; -} - -Piksi::~Piksi() -{ - quit = true; - pthread_join(thread, NULL); - pthread_mutex_destroy(&mutex); - pthread_cond_destroy(&cond); - close(fd); -} - -void *Piksi::threadLauncher(void *arg) -{ - reinterpret_cast<Piksi *>(arg)->run(); - return nullptr; -} - -void Piksi::run() -{ - do - { - bytes.added(readData(bytes.addEnd(), bytes.availableToAdd())); - bytes.removed( - lookForMessages(bytes.removeEnd(), bytes.availableToRemove())); - - StackLogger::getInstance().updateStack(THID_PIKSI); - - } while (quit == false); -} - -unsigned int Piksi::readData(unsigned char *buffer, unsigned int size) -{ - int result = read(fd, buffer, size); - if (result > 0) - return result; - usleep(10000); // We want to retry but avoid 100% CPU utilization - return 0; // To go to a loop of run() and notice the quit flag -} - -unsigned int Piksi::lookForMessages(uint8_t *buffer, unsigned int size) -{ - const uint8_t preamble = 0x55; - unsigned int consumed = 0; - auto consume = [&](unsigned int n) - { - consumed += n; - buffer += n; - size -= n; - }; - for (;;) - { - uint8_t *index = find(buffer, buffer + size, preamble); - consume(index - buffer); // Consume eventual characters between - // messages - - if (size < sizeof(Header)) - return consumed; // We don't have the header - auto header = reinterpret_cast<Header *>(buffer); - unsigned int messageSize = sizeof(Header) + header->length + crcSize; - if (messageSize > size) - return consumed; // We don't have the entire message - - uint16_t crc; - memcpy(&crc, buffer + messageSize - crcSize, sizeof(crc)); - - if (crc16piksi(buffer + 1, messageSize - crcSize - 1) == crc) - { - processValidMessage(buffer, messageSize); - consume(messageSize); - } - else - { - // TODO: fault counter? - consume(1); // Consume the preamble of the invalid message - } - } -} - -void Piksi::processValidMessage(uint8_t *buffer, unsigned int size) -{ - Header *header = reinterpret_cast<Header *>(buffer); - switch (header->type) - { - case MSG_POS_LLH: - if (size < sizeof(MsgPosLlh)) /* TODO: fault counter? */ - ; - else - processPosLlh(reinterpret_cast<MsgPosLlh *>(buffer)); - break; - case MSG_VEL_NED: - if (size < sizeof(MsgVelNed)) /* TODO: fault counter? */ - ; - else - processVelNed(reinterpret_cast<MsgVelNed *>(buffer)); - break; - default: - // A valid message we're not interested in - break; - } -} - -void Piksi::processPosLlh(Piksi::MsgPosLlh *msg) -{ - partialData.latitude = msg->lat; - partialData.longitude = msg->lon; - partialData.height = msg->height; - partialData.numSatellites = msg->n_sats; -#ifdef _MIOSIX - partialData.timestamp = getTick(); -#else //_MIOSIX - partialData.timestamp = clock() / (CLOCKS_PER_SEC / 1000); -#endif //_MIOSIX - - if (vel && gpsTimestamp == msg->ms) - { - vel = pos = false; - - pthread_mutex_lock(&mutex); - data = partialData; - firstFixReceived = true; - pthread_cond_broadcast(&cond); - pthread_mutex_unlock(&mutex); - } - else - { - pos = true; - gpsTimestamp = msg->ms; - } -} - -void Piksi::processVelNed(Piksi::MsgVelNed *msg) -{ - partialData.velocityNorth = static_cast<float>(msg->n) / 1000.f; - partialData.velocityEast = static_cast<float>(msg->e) / 1000.f; - partialData.velocityDown = static_cast<float>(msg->d) / 1000.f; - - partialData.speed = sqrtf(powf(partialData.velocityNorth, 2) + - powf(partialData.velocityEast, 2) + - powf(partialData.velocityDown, 2)); - - if (pos && gpsTimestamp == msg->ms) - { - vel = pos = false; - - pthread_mutex_lock(&mutex); - data = partialData; - firstFixReceived = true; - pthread_cond_broadcast(&cond); - pthread_mutex_unlock(&mutex); - } - else - { - vel = true; - gpsTimestamp = msg->ms; - } -} diff --git a/old_examples/shared/drivers/piksi/piksi.h b/old_examples/shared/drivers/piksi/piksi.h deleted file mode 100644 index 5c7eda3e0551017c034c3e3e4ddf479eea7a9fb3..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/piksi/piksi.h +++ /dev/null @@ -1,174 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Federico Terraneo - * - * 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. - */ - -#pragma once - -#include <pthread.h> -#include <utils/collections/contiguous_queue.h> - -#include "piksi_data.h" - -/** - * Class to access the Piksi GPS. - * - * Should be connected to the Piksi UARTB configured as - * MODE SBP - * SBP message mask 65280 - * telemetry radio on boot False - * baudrate 115200 - */ -class Piksi -{ -public: - /** - * Constructor - * \param serialPath path to the device file of the Piksi serial port - * \throws runtime_error if the serial port cannot be opened - */ - explicit Piksi(const char *serialPath); - - /** - * \return the latest GPS data, or throws if the GPS has not yet got a fix. - * If the GPS has lost the fix, the same data is returned repeatedly, - * use the timestamp field of the GPSData struct to know this. - * \throws runtime_error is no data is available - */ - PiksiGPSData getGpsData(); - - /** - * \return the latest GPS data. If the GPS has yet got a fix or has lost - * the fix, this function will block until the fix is regained - */ - PiksiGPSData waitForGpsData(); - - /** - * Destructor - */ - ~Piksi(); - -private: - Piksi(const Piksi &) = delete; - Piksi &operator=(const Piksi &) = delete; - - struct __attribute__((packed)) Header - { - uint8_t preamble; - uint16_t type; - uint16_t sender; - uint8_t length; - }; - - static const unsigned int crcSize = 2; - - static const uint16_t MSG_POS_LLH = 0x0201; - - struct __attribute__((packed)) MsgPosLlh - { - Header header; - uint32_t ms; // [ms] - double lat; // [deg] - double lon; // [deg] - double height; // [m] - uint16_t h_accuracy; // Piksi says unimplemented - uint16_t v_accuracy; // Piksi says unimplemented - uint8_t n_sats; - uint8_t flags; - }; - - static const uint16_t MSG_VEL_NED = 0x0205; - - struct __attribute__((packed)) MsgVelNed - { - Header header; - uint32_t ms; // [ms] - int32_t n; // [mm/s] - int32_t e; // [mm/s] - int32_t d; // [mm/s] - uint16_t h_accuracy; // Piksi says unimplemented - uint16_t v_accuracy; // Piksi says unimplemented - uint8_t n_sats; - uint8_t flags; - }; - - /** - * Launches run() from the background thread - * \param arg this - */ - static void *threadLauncher(void *arg); - - /** - * Piksi main processing loop - */ - void run(); - - /** - * Fill a buffer from the serial port where the piksi is connected - * \param buffer where to store read data - * \param size how many bytes to read - */ - unsigned int readData(unsigned char *buffer, unsigned int size); - - /** - * Tries to find one or more piksi message in the buffer. There are no - * alignment requirements, the given buffer can begin and end in the middle - * of a packet. - * \param buffer buffer read from the serial port - * \param size buffer size - * \return the number of consumed characters. the last size-consumed bytes - * of the buffer are not processed yet, most likely because they contain an - * incomplete message, and must be prepended to the buffer given at the - * next call in order not to miss some packets. - */ - unsigned int lookForMessages(uint8_t *buffer, unsigned int size); - - /** - * Called on a message that has already passed the CRC check. - * \param buffer pointer to the first message byte (0x55) - * \param size message size - */ - void processValidMessage(uint8_t *buffer, unsigned int size); - - /** - * Processes a POS_LLH message - * \param msg the message - */ - void processPosLlh(MsgPosLlh *msg); - - /** - * Processes a VEL_NED message - * \param msg the message - */ - void processVelNed(MsgVelNed *msg); - - // The queue should be large enough to contain the largest message (256+8) - ContiguousQueue<uint8_t, 384> bytes; - int fd; - pthread_t thread; - pthread_mutex_t mutex; - pthread_cond_t cond; - PiksiGPSData data, partialData; - uint32_t gpsTimestamp = 0; - bool pos = false; - bool vel = false; - bool firstFixReceived = false; - volatile bool quit = false; -}; diff --git a/old_examples/shared/drivers/piksi/piksi_data.h b/old_examples/shared/drivers/piksi/piksi_data.h deleted file mode 100644 index 66af60cdc24cf6a42d903ff7b17a56b815fb6cd8..0000000000000000000000000000000000000000 --- a/old_examples/shared/drivers/piksi/piksi_data.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2017-2019 Skyward Experimental Rocketry - * Author: Federico Terraneo - * - * 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. - */ - -#pragma once - -/** - * The GPS information - */ -struct PiksiGPSData -{ - /// timestamp in ms (anakin time, not GPS time). getTick()-timestamp tells - /// you how "old" the data is. - long long timestamp; - - double latitude; ///< [deg] //TODO: cast to float?? - double longitude; ///< [deg] //TODO: cast to float?? - double height; ///< [m] //TODO: cast to float?? - float velocityNorth; ///< [m/s] - float velocityEast; ///< [m/s] - float velocityDown; ///< [m/s] - float speed; ///< [m/s] - int numSatellites; ///< [1] -}; diff --git a/old_examples/shared/math/Matrix.cpp b/old_examples/shared/math/Matrix.cpp deleted file mode 100644 index f8c67103ff945cec302b78cbe6e6959206440056..0000000000000000000000000000000000000000 --- a/old_examples/shared/math/Matrix.cpp +++ /dev/null @@ -1,213 +0,0 @@ -/* Copyright (c) 2016 Skyward Experimental Rocketry - * Author: Alain Carlucci - * - * 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 "Matrix.h" - -namespace Boardcore -{ - -/** Identity matrix constructor */ -Mat4::Mat4() -{ - memset(d, 0, sizeof(d)); - d[0] = d[5] = d[10] = d[15] = 1; -} - -/** Initialize from 4*4 float array */ -Mat4::Mat4(const float v[16]) { memcpy(d, v, 16 * sizeof(float)); } - -Vec3 Mat4::operator*(const Vec3 &vector) const -{ - return Vec3(vector.x * d[0] + vector.y * d[1] + vector.z * d[2] + d[3], - - vector.x * d[4] + vector.y * d[5] + vector.z * d[6] + d[7], - - vector.x * d[8] + vector.y * d[9] + vector.z * d[10] + d[11]); -} - -Mat4 Mat4::operator*(const Mat4 &o) const -{ - /** Every Mat4 is supposed to be like - * | r1 r2 r3 t1 | - * | r4 r5 r6 t2 | - * | r7 r8 r9 t3 | - * | 0 0 0 1 | - */ - Mat4 r; - r.d[0] = (d[0] * o.d[0]) + (d[1] * o.d[4]) + (d[2] * o.d[8]); - r.d[4] = (d[4] * o.d[0]) + (d[5] * o.d[4]) + (d[6] * o.d[8]); - r.d[8] = (d[8] * o.d[0]) + (d[9] * o.d[4]) + (d[10] * o.d[8]); - - r.d[1] = (d[0] * o.d[1]) + (d[1] * o.d[5]) + (d[2] * o.d[9]); - r.d[5] = (d[4] * o.d[1]) + (d[5] * o.d[5]) + (d[6] * o.d[9]); - r.d[9] = (d[8] * o.d[1]) + (d[9] * o.d[5]) + (d[10] * o.d[9]); - - r.d[2] = (d[0] * o.d[2]) + (d[1] * o.d[6]) + (d[2] * o.d[10]); - r.d[6] = (d[4] * o.d[2]) + (d[5] * o.d[6]) + (d[6] * o.d[10]); - r.d[10] = (d[8] * o.d[2]) + (d[9] * o.d[6]) + (d[10] * o.d[10]); - - r.d[3] = (d[0] * o.d[3]) + (d[1] * o.d[7]) + (d[2] * o.d[11]) + d[3]; - r.d[7] = (d[4] * o.d[3]) + (d[5] * o.d[7]) + (d[6] * o.d[11]) + d[7]; - r.d[11] = (d[8] * o.d[3]) + (d[9] * o.d[7]) + (d[10] * o.d[11]) + d[11]; - - return r; -} - -Vec3 Mat4::transform(const Vec3 &vec) const { return (*this) * vec; } - -Vec3 Mat4::transformInverse(const Vec3 &vec) const -{ - Mat4 temp; - Vec3 tmp = vec; - - // Subtract the translation vector - tmp.x -= d[3]; - tmp.y -= d[7]; - tmp.z -= d[11]; - - // Multiply - return Vec3(tmp.x * d[0] + tmp.y * d[4] + tmp.z * d[8], - - tmp.x * d[1] + tmp.y * d[5] + tmp.z * d[9], - - tmp.x * d[2] + tmp.y * d[6] + tmp.z * d[10]); -} - -float Mat4::determinant() const -{ - return -d[8] * d[5] * d[2] + d[4] * d[9] * d[2] + d[8] * d[1] * d[6] - - d[0] * d[9] * d[6] - d[4] * d[1] * d[10] + d[0] * d[5] * d[10]; -} - -void Mat4::setInverse(const Mat4 &m) -{ - float det = m.determinant(); - if (det == 0) - return; - - det = ((float)1.0) / det; - - d[0] = (-m.d[9] * m.d[6] + m.d[5] * m.d[10]) * det; - d[4] = (m.d[8] * m.d[6] - m.d[4] * m.d[10]) * det; - d[8] = (-m.d[8] * m.d[5] + m.d[4] * m.d[9]) * det; - - d[1] = (m.d[9] * m.d[2] - m.d[1] * m.d[10]) * det; - d[5] = (-m.d[8] * m.d[2] + m.d[0] * m.d[10]) * det; - d[9] = (m.d[8] * m.d[1] - m.d[0] * m.d[9]) * det; - - d[2] = (-m.d[5] * m.d[2] + m.d[1] * m.d[6]) * det; - d[6] = (+m.d[4] * m.d[2] - m.d[0] * m.d[6]) * det; - d[10] = (-m.d[4] * m.d[1] + m.d[0] * m.d[5]) * det; - - d[3] = (m.d[9] * m.d[6] * m.d[3] - m.d[5] * m.d[10] * m.d[3] - - m.d[9] * m.d[2] * m.d[7] + m.d[1] * m.d[10] * m.d[7] + - m.d[5] * m.d[2] * m.d[11] - m.d[1] * m.d[6] * m.d[11]) * - det; - - d[7] = (-m.d[8] * m.d[6] * m.d[3] + m.d[4] * m.d[10] * m.d[3] + - m.d[8] * m.d[2] * m.d[7] - m.d[0] * m.d[10] * m.d[7] - - m.d[4] * m.d[2] * m.d[11] + m.d[0] * m.d[6] * m.d[11]) * - det; - - d[11] = (m.d[8] * m.d[5] * m.d[3] - m.d[4] * m.d[9] * m.d[3] - - m.d[8] * m.d[1] * m.d[7] + m.d[0] * m.d[9] * m.d[7] + - m.d[4] * m.d[1] * m.d[11] - m.d[0] * m.d[5] * m.d[11]) * - det; -} - -Mat3::Mat3() -{ - memset(d, 0, sizeof(d)); - d[0] = d[4] = d[8] = 1; -} - -Mat3::Mat3(const float v[9]) { memcpy(d, v, 9 * sizeof(float)); } - -Mat3 Mat3::operator*(const Mat3 &o) const -{ - Mat3 r; - r.d[0] = d[0] * o.d[0] + d[1] * o.d[3] + d[2] * o.d[6]; - r.d[1] = d[0] * o.d[1] + d[1] * o.d[4] + d[2] * o.d[7]; - r.d[2] = d[0] * o.d[2] + d[1] * o.d[5] + d[2] * o.d[8]; - - r.d[3] = d[3] * o.d[0] + d[4] * o.d[3] + d[5] * o.d[6]; - r.d[4] = d[3] * o.d[1] + d[4] * o.d[4] + d[5] * o.d[7]; - r.d[5] = d[3] * o.d[2] + d[4] * o.d[5] + d[5] * o.d[8]; - - r.d[6] = d[6] * o.d[0] + d[7] * o.d[3] + d[8] * o.d[6]; - r.d[7] = d[6] * o.d[1] + d[7] * o.d[4] + d[8] * o.d[7]; - r.d[8] = d[6] * o.d[2] + d[7] * o.d[5] + d[8] * o.d[8]; - return r; -} - -Vec3 Mat3::operator*(const Vec3 &vector) const -{ - return Vec3(vector.x * d[0] + vector.y * d[1] + vector.z * d[2], - vector.x * d[3] + vector.y * d[4] + vector.z * d[5], - vector.x * d[6] + vector.y * d[7] + vector.z * d[8]); -} - -Vec3 Mat3::transform(const Vec3 &vec) const { return (*this) * vec; } - -void Mat3::setInverse(const Mat3 &m) -{ - float t4 = m.d[0] * m.d[4]; - float t6 = m.d[0] * m.d[5]; - float t8 = m.d[1] * m.d[3]; - float t10 = m.d[2] * m.d[3]; - float t12 = m.d[1] * m.d[6]; - float t14 = m.d[2] * m.d[6]; - - // Calculate the determinant - float t16 = (t4 * m.d[8] - t6 * m.d[7] - t8 * m.d[8] + t10 * m.d[7] + - t12 * m.d[5] - t14 * m.d[4]); - - // Make sure the determinant is non-zero. - if (t16 == (float)0.0f) - return; - float t17 = 1 / t16; - - d[0] = (m.d[4] * m.d[8] - m.d[5] * m.d[7]) * t17; - d[1] = -(m.d[1] * m.d[8] - m.d[2] * m.d[7]) * t17; - d[2] = (m.d[1] * m.d[5] - m.d[2] * m.d[4]) * t17; - d[3] = -(m.d[3] * m.d[8] - m.d[5] * m.d[6]) * t17; - d[4] = (m.d[0] * m.d[8] - t14) * t17; - d[5] = -(t6 - t10) * t17; - d[6] = (m.d[3] * m.d[7] - m.d[4] * m.d[6]) * t17; - d[7] = -(m.d[0] * m.d[7] - t12) * t17; - d[8] = (t4 - t8) * t17; -} - -void Mat3::setTranspose(const Mat3 &m) -{ - d[0] = m.d[0]; - d[1] = m.d[3]; - d[2] = m.d[6]; - d[3] = m.d[1]; - d[4] = m.d[4]; - d[5] = m.d[7]; - d[6] = m.d[2]; - d[7] = m.d[5]; - d[8] = m.d[8]; -} - -} // namespace Boardcore diff --git a/old_examples/shared/math/Matrix.h b/old_examples/shared/math/Matrix.h deleted file mode 100644 index 817eac9c77ae09dc3dd2f2e9f33b09673c33a421..0000000000000000000000000000000000000000 --- a/old_examples/shared/math/Matrix.h +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright (c) 2016 Skyward Experimental Rocketry - * Author: Alain Carlucci - * - * 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. - */ - -#pragma once - -#include <cstring> - -#include "Vec3.h" - -namespace Boardcore -{ - -/* TODO: double and triple check routines in these classes!!! - * - * This class works with matrices having the following pattern: - * | a11 a12 a13 a14 | - * | a21 a22 a23 a24 | - * | a31 a32 a33 a34 | - * | 0 0 0 1 | - * - * Remember that [Vec3] = [Mat4 * Vec3]; - * Where multiplication converts the Vec3 to a Vec4 like this: [x y z 1] - */ - -class Mat4 -{ -public: - Mat4(); - explicit Mat4(const float v[16]); - - Mat4 operator*(const Mat4 &o) const; - - Vec3 operator*(const Vec3 &vector) const; - Vec3 transform(const Vec3 &vec) const; - Vec3 transformInverse(const Vec3 &vec) const; - - float determinant() const; - void setInverse(const Mat4 &m); - - float d[16]; -}; - -class Mat3 -{ -public: - Mat3(); - explicit Mat3(const float v[9]); - - Mat3 operator*(const Mat3 &o) const; - - Vec3 operator*(const Vec3 &vector) const; - Vec3 transform(const Vec3 &vec) const; - - void setInverse(const Mat3 &m); - void setTranspose(const Mat3 &m); - - void setVertComponents(const Vec3 &f, const Vec3 &s, const Vec3 &t); - - float d[9]; -}; - -} // namespace Boardcore diff --git a/old_examples/shared/math/Vec3.h b/old_examples/shared/math/Vec3.h deleted file mode 100644 index bd942277f005e953ee556b266715c5374176670a..0000000000000000000000000000000000000000 --- a/old_examples/shared/math/Vec3.h +++ /dev/null @@ -1,140 +0,0 @@ -/* Copyright (c) 2016 Skyward Experimental Rocketry - * Author: Alain Carlucci - * - * 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. - */ - -#pragma once - -#include <cmath> - -namespace Boardcore -{ - -class Vec3 -{ - friend class Mat4; - friend class Mat3; - -public: - Vec3() { clear(); } - - Vec3(const Vec3 &rhs) - { - x = rhs.x; - y = rhs.y; - z = rhs.z; - } - - Vec3(float x, float y, float z) - { - this->x = x; - this->y = y; - this->z = z; - } - - float getX() const { return x; } - float getY() const { return y; } - float getZ() const { return z; } - - void setX(float value) { x = value; } - void setY(float value) { y = value; } - void setZ(float value) { z = value; } - - void clear() { x = y = z = 0.0f; } - - float magnitude() const { return sqrt(dot(*this)); } - - bool normalize() - { - float l = magnitude(); - if (l <= 0) - return false; - - (*this) *= 1.0f / l; - return true; - } - - void operator=(const Vec3 &rhs) - { - x = rhs.x; - y = rhs.y; - z = rhs.z; - } - - void operator*=(float value) - { - x *= value; - y *= value; - z *= value; - } - - void operator/=(float value) - { - x /= value; - y /= value; - z /= value; - } - - void operator+=(const Vec3 &v) - { - x += v.getX(); - y += v.getY(); - z += v.getZ(); - } - - void operator-=(const Vec3 &v) - { - x -= v.getX(); - y -= v.getY(); - z -= v.getZ(); - } - - Vec3 operator*(float t) const { return Vec3(x * t, y * t, z * t); } - - Vec3 operator/(float t) const { return Vec3(x / t, y / t, z / t); } - - Vec3 operator+(const Vec3 &v) const - { - return Vec3(x + v.getX(), y + v.getY(), z + v.getZ()); - } - - Vec3 operator-(const Vec3 &v) const - { - return Vec3(x - v.getX(), y - v.getY(), z - v.getZ()); - } - - Vec3 operator-() const { return Vec3(-x, -y, -z); } - - float dot(const Vec3 &v) const - { - return x * v.getX() + y * v.getY() + z * v.getZ(); - } - - Vec3 cross(const Vec3 &v) const - { - return Vec3(y * v.getZ() - z * v.getY(), z * v.getX() - x * v.getZ(), - x * v.getY() - y * v.getX()); - } - -private: - float x, y, z; -}; - -} // namespace Boardcore diff --git a/old_examples/shared/sensors/ADIS16405/ADIS16405.h b/old_examples/shared/sensors/ADIS16405/ADIS16405.h deleted file mode 100644 index 9c075f79039fc74c8bb4b21add8fc8e87e9aacff..0000000000000000000000000000000000000000 --- a/old_examples/shared/sensors/ADIS16405/ADIS16405.h +++ /dev/null @@ -1,354 +0,0 @@ -/* Copyright (c) 2018-2019 Skyward Experimental Rocketry - * Author: Nuno Barcellos - * - * 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. - */ - -#pragma once - -#include <drivers/BusTemplate.h> -#include <sensors/Sensor.h> -#include <utils/Debug.h> - -#include "ADIS16405Data.h" - -template <typename BusSPI, typename rstPin> -class ADIS16405 : public AccelSensor, - public GyroSensor, - public CompassSensor, - public TemperatureSensor -{ -public: - ADIS16405(uint8_t gyroFullScale) { gyroFS = gyroFullScale; } - virtual ~ADIS16405() {} - - std::vector<SPIRequest> buildDMARequest() override - { - // clang-format off - std::vector<uint8_t> v = - { - ADIS_GLOB_CMD, 0, // System command - 0,0, // Power supply measurement - 0,0, // X-axis gyroscope output - 0,0, // Y-axis gyroscope output - 0,0, // Z-axis gyroscope output - 0,0, // X-axis accelerometer output - 0,0, // Y-axis accelerometer output - 0,0, // Z-axis accelerometer output - 0,0, // X-axis magnetometer measurement - 0,0, // Y-axis magnetometer measurement - 0,0, // Z-axis magnetometer measurement - 0,0, // Temperature output - 0,0, // Auxiliary ADC measurement - }; - // clang-format on - - return {SPIRequest(0, BusSPI::getCSPin(), v)}; - } - - bool init() override - { - // Ensure right SPI frequency - // Burst mode SPI < 1 MHz - // Low power mode SPI < 300 kHz - - rstPin::mode(miosix::Mode::OUTPUT); - rstPin::high(); // Turn on the device - - miosix::delayMs(220); // 220 ms start-up time - - uint16_t product_id = readReg(ADIS_PRODUCT_ID); - if (product_id != product_id_value) - { - last_error = ERR_NOT_ME; - return false; - } - - // TODO: test it -- config the dynamic range - uint16_t sensorAvg = readReg(ADIS_SENS_AVG); - writeReg(ADIS_SENS_AVG, sensorAvg | (1 << (8 + gyroFS))); - - return true; - } - - void readTest() - { - // uint16_t product_id = readReg(ADIS_PRODUCT_ID); - // TRACE("product_id: %d\n", product_id); - - // float accel = normalizeAccel(signExtend(readReg(ADIS_YACCL_OUT) & - // 0x3FFF, 14)); TRACE("temperature: %f\n", accel); - - // float temperature = normalizeTemp(signExtend(readReg(ADIS_TEMP_OUT) & - // 0x0FFF, 12)); TRACE("temperature: %f\n", temperature); - - // float voltage = normalizePower(readReg(ADIS_SUPPLY_OUT) & 0x3FFF); - // TRACE("voltage: %f\n", voltage); - - // writewriteReg(ADIS_ZMAGN_SIF,0x0800); - // miosix::delayMs(1); - // uint16_t reg_value = readReg(ADIS_ZMAGN_SIF); - // TRACE("reg value: %d\n", reg_value); - // miosix::delayMs(200); - } - - void burstTest() - { - ADIS16405Data burstData; - burstDataCollect(&burstData); - // TRACE("%f\t",normalizeSupply(burstData.supply_out)); - // TRACE("%f\t",normalizeGyro(burstData.xgyro_out)); - // TRACE("%f\t",normalizeGyro(burstData.ygyro_out)); - TRACE("%f\t", normalizeGyro(burstData.zgyro_out)); - // TRACE("%f\t",normalizeAccel(burstData.xaccl_out)); - // TRACE("%f\t",normalizeAccel(burstData.yaccl_out)); - // TRACE("%f\t",normalizeAccel(burstData.zaccl_out)); - // TRACE("%f\t",normalizeMagneto(burstData.xmagn_out)); - // TRACE("%f\t",normalizeMagneto(burstData.ymagn_out)); - // TRACE("%f\t",normalizeMagneto(burstData.zmagn_out)); - // TRACE("%f\t",normalizeTemp(burstData.temp_out)); - // TRACE("%f\t",normalizeADC(burstData.aux_adc)); - TRACE("\n"); - } - - // Exercises all inertial sensors, measures each response, - // makes pass/fail decisions, and reports them to error flags - // in the DIAG_STAT register - bool selfTest() override - { - // DIAG_STAT clears after each read so we read to clear it - uint16_t diagstat = readReg(ADIS_DIAG_STAT); - - uint16_t msc = readReg(ADIS_MSC_CTRL); - writeReg(ADIS_MSC_CTRL, msc | 1 << 10); - // msc = readReg(ADIS_MSC_CTRL); - - // writeReg(ADIS_MSC_CTRL, 0x3504); // Config and start self test - - // MSC_CTRL[10] resets itself to 0 after completing the self test - // routine - do - { - msc = readReg(ADIS_MSC_CTRL); - } while (msc & 1 << 10); - - diagstat = readReg(ADIS_DIAG_STAT); - return (diagstat == - 0); // All bits are cleared if the test was successful - } - - void onDMAUpdate(const SPIRequest& req) override - { - const std::vector<uint8_t>& r = req.readResponseFromPeripheral(); - - uint8_t raw_data[sizeof(ADIS16405Data)]; - memcpy(&raw_data, &(r[2]), sizeof(ADIS16405Data)); - - for (uint8_t i = 0; i < sizeof(ADIS16405Data); i++) - raw_data[i] = fromBigEndian16(raw_data[i]); - - ADIS16405Data data; - parseBurstData(raw_data, &data); - - mLastGyro.setX(normalizeGyro(data.xgyro_out)); - mLastGyro.setY(normalizeGyro(data.ygyro_out)); - mLastGyro.setZ(normalizeGyro(data.zgyro_out)); - - mLastAccel.setX(normalizeAccel(data.xaccl_out)); - mLastAccel.setY(normalizeAccel(data.yaccl_out)); - mLastAccel.setZ(normalizeAccel(data.zaccl_out)); - - mLastCompass.setX(normalizeMagneto(data.xmagn_out)); - mLastCompass.setY(normalizeMagneto(data.ymagn_out)); - mLastCompass.setZ(normalizeMagneto(data.zmagn_out)); - - mLastTemp = normalizeTemp(data.temp_out); - } - - bool onSimpleUpdate() override - { - ADIS16405Data data; - burstDataCollect(&data); - - mLastGyro.setX(normalizeGyro(data.xgyro_out)); - mLastGyro.setY(normalizeGyro(data.ygyro_out)); - mLastGyro.setZ(normalizeGyro(data.zgyro_out)); - - mLastAccel.setX(normalizeAccel(data.xaccl_out)); - mLastAccel.setY(normalizeAccel(data.yaccl_out)); - mLastAccel.setZ(normalizeAccel(data.zaccl_out)); - - mLastCompass.setX(normalizeMagneto(data.xmagn_out)); - mLastCompass.setY(normalizeMagneto(data.ymagn_out)); - mLastCompass.setZ(normalizeMagneto(data.zmagn_out)); - - mLastTemp = normalizeTemp(data.temp_out); - - return true; - } - - enum gyroFullScale - { - GYRO_FS_75 = 0, // 75°/sec - GYRO_FS_150 = 1, // 150°/sec - GYRO_FS_300 = 2 // 300°/sec (default condition) - }; - -private: - // There's a typo in the datasheet saying the value is 0x4105, - // when it's 0x4015 (== 16405) - constexpr static uint16_t product_id_value = 0x4015; - - constexpr static float gyroFSMAP[] = {0.25, 0.5, 1}; - - uint8_t gyroFS; - - // ADIS Register map - enum adis_regaddr : uint8_t - { - // clang-format off - // Name address default function - ADIS_FLASH_CNT = 0x00, // N/A Flash memory write count - ADIS_SUPPLY_OUT = 0x02, // N/A Power supply measurement - ADIS_XGYRO_OUT = 0x04, // N/A X-axis gyroscope output - ADIS_YGYRO_OUT = 0x06, // N/A Y-axis gyroscope output - ADIS_ZGYRO_OUT = 0x08, // N/A Z-axis gyroscope output - ADIS_XACCL_OUT = 0x0A, // N/A X-axis accelerometer output - ADIS_YACCL_OUT = 0x0C, // N/A Y-axis accelerometer output - ADIS_ZACCL_OUT = 0x0E, // N/A Z-axis accelerometer output - ADIS_XMAGN_OUT = 0x10, // N/A X-axis magnetometer measurement - ADIS_YMAGN_OUT = 0x12, // N/A Y-axis magnetometer measurement - ADIS_ZMAGN_OUT = 0x14, // N/A Z-axis magnetometer measurement - ADIS_TEMP_OUT = 0x16, // N/A Temperature output - ADIS_AUX_ADC = 0x18, // N/A Auxiliary ADC measurement - ADIS_XGYRO_OFF = 0x1A, // 0x0000 X-axis gyroscope bias offset factor - ADIS_YGYRO_OFF = 0x1C, // 0x0000 Y-axis gyroscope bias offset factor - ADIS_ZGYRO_OFF = 0x1E, // 0x0000 Z-axis gyroscope bias offset factor - ADIS_XACCL_OFF = 0x20, // 0x0000 X-axis acceleration bias offset factor - ADIS_YACCL_OFF = 0x22, // 0x0000 Y-axis acceleration bias offset factor - ADIS_ZACCL_OFF = 0x24, // 0x0000 Z-axis acceleration bias offset factor - ADIS_XMAGN_HIF = 0x26, // 0x0000 X-axis magnetometer, hard-iron factor - ADIS_YMAGN_HIF = 0x28, // 0x0000 Y-axis magnetometer, hard-iron factor - ADIS_ZMAGN_HIF = 0x2A, // 0x0000 Z-axis magnetometer, hard-iron factor - ADIS_XMAGN_SIF = 0x2C, // 0x0800 X-axis magnetometer, soft-iron factor - ADIS_YMAGN_SIF = 0x2E, // 0x0800 Y-axis magnetometer, soft-iron factor - ADIS_ZMAGN_SIF = 0x30, // 0x0800 Z-axis magnetometer, soft-iron factor - ADIS_GPIO_CTRL = 0x32, // 0x0000 Auxiliary digital input/output control - ADIS_MSC_CTRL = 0x34, // 0x0006 Miscellaneous control - ADIS_SMPL_PRD = 0x36, // 0x0001 Internal sample period (rate) control - ADIS_SENS_AVG = 0x38, // 0x0402 Dynamic range and digital filter control - ADIS_SLP_CNT = 0x3A, // 0x0000 Sleep mode control - ADIS_DIAG_STAT = 0x3C, // 0x0000 System status - ADIS_GLOB_CMD = 0x3E, // 0x0000 System command - ADIS_ALM_MAG1 = 0x40, // 0x0000 Alarm 1 amplitude threshold - ADIS_ALM_MAG2 = 0x42, // 0x0000 Alarm spi_master_xact_data* caller, - // spi_master_xact_data* spi_xact, void* - // data2 amplitude threshold - ADIS_ALM_SMPL1 = 0x44, // 0x0000 Alarm 1 sample size - ADIS_ALM_SMPL2 = 0x46, // 0x0000 Alarm 2 sample size - ADIS_ALM_CTRL = 0x48, // 0x0000 Alarm control - ADIS_AUX_DAC = 0x4A, // 0x0000 Auxiliary DAC data - // = 0x4C to 0x55 Reserved - ADIS_PRODUCT_ID = 0x56 // 0x4015 Product identifier - // clang-format on - }; - - uint16_t readReg(adis_regaddr addr) - { - uint8_t rxbuf[2]; - BusSPI::write(addr, 0); - miosix::delayUs(9); // This delay should be 75 us for low power mode - BusSPI::read(rxbuf, 2); - miosix::delayUs(9); // This delay should be 75 us for low power mode - return rxbuf[0] << 8 | rxbuf[1]; - } - - void writeReg(adis_regaddr addr, uint16_t value) - { - BusSPI::write((addr + 1) | 0x80, (uint8_t)(value >> 8)); - BusSPI::write(addr | 0x80, (uint8_t)value); - } - - void burstDataCollect(ADIS16405Data* data) - { - uint8_t raw_data[sizeof(ADIS16405Data)]; - BusSPI::read16((ADIS_GLOB_CMD) << 8, raw_data, sizeof(ADIS16405Data)); - parseBurstData(raw_data, data); - } - - void parseBurstData(uint8_t* raw, ADIS16405Data* data) - { - // TODO: check nd and ea bits - data->supply_out = (raw[0] << 8 | raw[1]) & 0x3FFF; - data->xgyro_out = signExtend((raw[2] << 8 | raw[3]) & 0x3FFF, 14); - data->ygyro_out = signExtend((raw[4] << 8 | raw[5]) & 0x3FFF, 14); - data->zgyro_out = signExtend((raw[6] << 8 | raw[7]) & 0x3FFF, 14); - data->xaccl_out = signExtend((raw[8] << 8 | raw[9]) & 0x3FFF, 14); - data->yaccl_out = signExtend((raw[10] << 8 | raw[11]) & 0x3FFF, 14); - data->zaccl_out = signExtend((raw[12] << 8 | raw[13]) & 0x3FFF, 14); - data->xmagn_out = signExtend((raw[14] << 8 | raw[15]) & 0x3FFF, 14); - data->ymagn_out = signExtend((raw[16] << 8 | raw[17]) & 0x3FFF, 14); - data->zmagn_out = signExtend((raw[18] << 8 | raw[19]) & 0x3FFF, 14); - data->temp_out = signExtend((raw[20] << 8 | raw[21]) & 0x0FFF, 12); - data->aux_adc = (raw[22] << 8 | raw[23]) & 0x0FFF; - } - - int16_t signExtend(uint16_t val, uint8_t bits) - { - if ((val & (1 << (bits - 1))) != 0) - { - val = val - (1 << bits); - } - return val; - } - - inline float normalizeSupply(uint16_t val) - { - return static_cast<float>(val) * 2.418e-3f; // [V] - } - - inline float normalizeAccel(int16_t val) - { - return static_cast<float>(val) * 3.33e-3f * EARTH_GRAVITY; // [g] - } - - inline float normalizeGyro(int16_t val) - { - return static_cast<float>(val) * 0.05f * gyroFSMAP[gyroFS] * - DEGREES_TO_RADIANS; // [rad/s] - } - - inline float normalizeMagneto(int16_t val) - { - return static_cast<float>(val) * 0.5e-3f; // [gausss] - } - - inline float normalizeTemp(int16_t val) - { - return static_cast<float>((val)*0.14f + 25); // [C deg] - } - - inline float normalizeADC(uint16_t val) - { - return static_cast<float>(val) * 0.806e-6f; // [V] - } -}; - -template <typename BusSPI, typename rstPin> -constexpr float ADIS16405<BusSPI, rstPin>::gyroFSMAP[]; diff --git a/old_examples/shared/sensors/ADIS16405/ADIS16405Data.h b/old_examples/shared/sensors/ADIS16405/ADIS16405Data.h deleted file mode 100644 index c9e2e1ab4cfe3a428d584b3f843349037eac24ec..0000000000000000000000000000000000000000 --- a/old_examples/shared/sensors/ADIS16405/ADIS16405Data.h +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Nuno Barcellos - * - * 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. - */ - -#pragma once - -#include <cstdint> -#include <ostream> -#include <string> - -/* - * Burst data collection. This establishes right datatype for - * the registers because trying to work with 12 or 14 bit twos - * complement that doesn't sign extend to 16 bits is unpleasant. - */ -#pragma pack(1) -struct ADIS16405Data -{ - uint16_t supply_out; // Power supply measurement - int16_t xgyro_out; // X-axis gyroscope output - int16_t ygyro_out; // Y-axis gyroscope output - int16_t zgyro_out; // Z-axis gyroscope output - int16_t xaccl_out; // X-axis accelerometer output - int16_t yaccl_out; // Y-axis accelerometer output - int16_t zaccl_out; // Z-axis accelerometer output - int16_t xmagn_out; // X-axis magnetometer measurement - int16_t ymagn_out; // Y-axis magnetometer measurement - int16_t zmagn_out; // Z-axis magnetometer measurement - int16_t temp_out; // Temperature output - uint16_t aux_adc; // Auxiliary ADC measurement - - static std::string header() - { - return "supply_out,xgyro_out,ygyro_out,zgyro_out,xaccl_out,yaccl_out," - "zaccl_out,xmagn_out,ymagn_out,zmagn_out,temp_out,aux_adc\n"; - } - - void print(std::ostream& os) const - { - os << supply_out << "," << xgyro_out << "," << ygyro_out << "," - << zgyro_out << "," << xaccl_out << "," << yaccl_out << "," - << zaccl_out << "," << xmagn_out << "," << ymagn_out << "," - << zmagn_out << "," << temp_out << "," << aux_adc << "\n"; - } -}; -#pragma pack() diff --git a/old_examples/shared/sensors/FXAS21002.h b/old_examples/shared/sensors/FXAS21002.h deleted file mode 100644 index 6eddc14cf97123848f31e1e5f67aaa2189fe4b6d..0000000000000000000000000000000000000000 --- a/old_examples/shared/sensors/FXAS21002.h +++ /dev/null @@ -1,283 +0,0 @@ -/* Copyright (c) 2016 Skyward Experimental Rocketry - * Authors: Alain Carlucci, Matteo Piazzolla, Silvano Seva - * - * 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. - */ - -#pragma once - -#include <drivers/BusTemplate.h> - -#include "Sensor.h" - -template <typename Bus> -class FXAS21002 : public GyroSensor -{ -public: - FXAS21002(uint8_t curScale) : mCurScale(curScale & 0x03) {} - - bool init() override - { - uint8_t whoami = Bus::read(REG_WHO_AM_I); - - if (whoami != who_am_i_value) - { - last_error = ERR_NOT_ME; - return false; - } - - Bus::write(REG_CTRL1, 0b01000000); - uint8_t timeout = 20; - while ((Bus::read(REG_CTRL1) & 0b01000000) && --timeout > 0) - { - miosix::Thread::sleep(1); - } - - if (timeout == 0) - { - last_error = ERR_RESET_TIMEOUT; - return false; - } - - // Set current scale - Bus::write(REG_CTRL0, mCurScale); - - // Datarate 100HZ + Enable READY bit - Bus::write(REG_CTRL1, (DR_100HZ << 2) | 0x02); - - // Enable data ready interrupt and set as active high - Bus::write(REG_CTRL2, 0b00000110); - - // Enable wrap to one function - // Auto increment rolls back from z_axis_lsb to x_axis_msb - Bus::write(REG_CTRL3, Bus::read(REG_CTRL3) | 0b00001000); - - // Wait until boot is completed - timeout = 20; - while (!(Bus::read(REG_INT_SRC_FLAG) & 0b00001000) && --timeout > 0) - { - miosix::Thread::sleep(1); - } - - if (timeout == 0) - { - last_error = ERR_RESET_TIMEOUT; - return false; - } - - return true; - } - - // Performs a device self test, see datasheet for further details - bool selfTest() override - { - // Trigger a self test - Bus::write(REG_CTRL1, Bus::read(REG_CTRL1) | 0b00010000); - - int16_t xAxis = - (Bus::read(REG_OUT_X_MSB) << 8) | Bus::read(REG_OUT_X_LSB); - int16_t yAxis = - (Bus::read(REG_OUT_Y_MSB) << 8) | Bus::read(REG_OUT_Y_LSB); - int16_t zAxis = - (Bus::read(REG_OUT_Z_MSB) << 8) | Bus::read(REG_OUT_Z_LSB); - - if (xAxis < 7000 || xAxis > 25000) - { - last_error = ERR_X_SELFTEST_FAIL; - return false; - } - - if (yAxis < 7000 || yAxis > 25000) - { - last_error = ERR_Y_SELFTEST_FAIL; - return false; - } - - if (zAxis < 7000 || zAxis > 25000) - { - last_error = ERR_Z_SELFTEST_FAIL; - return false; - } - - return true; - } - - std::vector<SPIRequest> buildDMARequest() override - { - std::vector<uint8_t> data = {REG_OUT_X_MSB | 0x80, 0, 0, 0, 0, 0, 0}; - - return {SPIRequest(0, Bus::getCSPin(), data)}; - } - - void onDMAUpdate(const SPIRequest& req) override - { - const auto& r = req.readResponseFromPeripheral(); - int16_t data[3]; - memcpy(data, &r[1], sizeof(data)); - - for (int i = 0; i < 3; i++) - data[i] = fromBigEndian16(data[i]); - - mLastGyro.setX(normalizeGyro(data[0])); - mLastGyro.setY(normalizeGyro(data[1])); - mLastGyro.setZ(normalizeGyro(data[2])); - } - - bool onSimpleUpdate() override { return false; } - - /* UNUSED CODE - - // Set operating mode. Modes available are: STANDBY, READY, ACTIVE - void setPowerMode(uint8_t mode) - { - uint8_t regCtrl1 = Bus::read(REG_CTRL1); - - regCtrl1 &= ~0x03; //clear last two bits - regCtrl1 |= mode; //set mode - - Bus::write(REG_CTRL1, regCtrl1); - } - - void setSampleRate(uint8_t rate) - { - uint8_t regCtrl1 = Bus::read(REG_CTRL1); - - regCtrl1 &= ~0b00011100; //clear sample rate bits - regCtrl1 |= rate; //set rate - - Bus::write(REG_CTRL1, regCtrl1); - } - - void setFullScaleRange(uint8_t range) - { - uint8_t regCtrl0 = Bus::read(REG_CTRL0); - range &= 0x03; - - regCtrl0 &= ~(0x03); //clear full scale range bits - regCtrl0 |= range; //set range - - mCurScale = range; - Bus::write(REG_CTRL0, regCtrl0); - } - - // Set internal low pass filter bandwidth. - // See datasheet at page 39 for further details - void setBandwidth(uint8_t bandwidth) - { - uint8_t regCtrl0 = Bus::read(REG_CTRL0); - - regCtrl0 &= ~0b11000000; //clear bandwidth bits - regCtrl0 |= bandwidth; //set range - - Bus::write(REG_CTRL0, regCtrl0); - } - - // Set internal high pass filter bandwidth. - // See datasheet at page 39 for further details - void setHiPassFreq(uint8_t freq) - { - uint8_t regCtrl0 = Bus::read(REG_CTRL0); - - regCtrl0 &= ~0b00011000; //clear full hi pass freq bits - regCtrl0 |= freq; //set freq - - Bus::write(REG_CTRL0, regCtrl0); - } - - void enableHiPassFiter() - { - Bus::write(REG_CTRL0, Bus::read(REG_CTRL0) | 0b00000100); - } - - void disableHiPassFiter() - { - Bus::write(REG_CTRL0, Bus::read(REG_CTRL0) & (~0b00000100)); - } - */ - - // clang-format off - enum dataRates - { - DR_800HZ = 0, - DR_400HZ = 1, - DR_200HZ = 2, - DR_100HZ = 3, - DR_50HZ = 4, - DR_25HZ = 5, - DR_12_5HZ = 6 - }; - - enum opModes - { - STANDBY = 0x00, - READY = 0x01, - ACTIVE = 0x02 - }; - - enum gyroFullScale - { - DPS2000 = 0x00, - DPS1000 = 0x01, - DPS500 = 0x02, - DPS250 = 0x03 - }; - // clang-format on - -private: - constexpr static uint8_t who_am_i_value = 0xD7; - constexpr static float gyroFSMAP[] = {2000, 1000, 500, 250}; - uint8_t mCurScale; - - // clang-format off - enum regMap - { - REG_STATUS = 0x00, - REG_OUT_X_MSB = 0x01, - REG_OUT_X_LSB = 0x02, - REG_OUT_Y_MSB = 0x03, - REG_OUT_Y_LSB = 0x04, - REG_OUT_Z_MSB = 0x05, - REG_OUT_Z_LSB = 0x06, - REG_DR_STATUS = 0x07, - REG_FIFO_STATUS = 0x08, - REG_FIFO_SETUP = 0x09, - REG_FIFO_EVENT = 0x0A, - REG_INT_SRC_FLAG = 0x0B, - REG_WHO_AM_I = 0x0C, - REG_CTRL0 = 0x0D, - REG_RT_CFG = 0x0E, - REG_RT_SRC = 0x0F, - REG_RT_THF = 0x10, - REG_RT_CNT = 0x11, - REG_TEMP = 0x12, - REG_CTRL1 = 0x13, - REG_CTRL2 = 0x14, - REG_CTRL3 = 0x15 - }; - // clang-format on - - inline constexpr float normalizeGyro(int16_t val) - { - return static_cast<float>(val) / 32768.0f * gyroFSMAP[mCurScale] * - DEGREES_TO_RADIANS; - } -}; - -template <typename Bus> -constexpr float FXAS21002<Bus>::gyroFSMAP[]; diff --git a/old_examples/shared/sensors/LM75B.h b/old_examples/shared/sensors/LM75B.h deleted file mode 100644 index 4643fcf0d36eb48e9479d768b3cbfbc6c67cfbe4..0000000000000000000000000000000000000000 --- a/old_examples/shared/sensors/LM75B.h +++ /dev/null @@ -1,228 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Alessio Galluccio - * - * 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. - */ - -// TODO sistemare la codifica di {0x80, 0x00}, che -// per qualche ragione, diventa positiva - -#pragma once - -#include <math/Stats.h> - -#include "Sensor.h" - -template <typename BusType> -class LM75B : public TemperatureSensor -{ -public: - // @param slaveAddr address of the sensor you want to use - LM75B(uint8_t slaveAddr) : slave_addr(static_cast<uint8_t>(slaveAddr)) - { - mLastTemp = 7; - } - - bool selfTest() override - { - bool flag_self_test = 1; // 1 if test are passed, 0 if not - - // TEST: reading default value of THYST register - uint8_t value_thyst; - BusType::read(slave_addr, REG_THYST, &value_thyst, sizeof(uint8_t)); - if (value_thyst == default_value_thyst) - { - TRACE("\nReading correct value of THYST register in LM75B"); - } - else - { - TRACE("\nWarning: reading wrong value of THYST register in LM75B"); - flag_self_test = 0; - } - - // TEST: reading default value of TOS register - uint8_t value_tos; - BusType::read(slave_addr, REG_TOS, &value_tos, sizeof(uint8_t)); - if (value_tos == default_value_tos) - { - TRACE("\nReading correct value of TOS register in LM75B"); - } - else - { - TRACE("\nWarning: reading wrong value of TOS register in LM75B"); - flag_self_test = 0; - } - - // TEST: standard deviation of temperature value - float stdev; - Stats calc_stats; - - for (int i = 0; i < SELF_TEST_NUM_SAMPLES; i++) - { - onSimpleUpdate(); - sample[i] = mLastTemp; - } - - for (int i = 0; i < SELF_TEST_NUM_SAMPLES; i++) - { - // temperature can't be out of range of sensor - if (sample[i] < -125.0 && sample[i] > 125.0) - { - return false; - } - } - - for (int i = 0; i < SELF_TEST_NUM_SAMPLES; i++) - { - calc_stats.add(sample[i]); - } - stdev = calc_stats.getStats().stdev; - - if (stdev < MAX_STDEV_VALUE) - { - TRACE("\nStandard deviation of temperature is correct in LM75B"); - } - else - { - TRACE( - "\nWarning: Standard deviation of temparature is out of range " - "in LM75B"); - flag_self_test = 0; - } - - if (flag_self_test == 1) - { - return 1; - } - else - { - return 0; - } - } - - bool init() override - { - uint8_t conf = static_cast<uint8_t>(CONF_NORM); - BusType::write(slave_addr, REG_CONF, &conf, sizeof(uint8_t)); - - // Check if the register was set correctly - BusType::read(slave_addr, REG_CONF, &conf, sizeof(uint8_t)); - bool conf_ok = (conf == static_cast<uint8_t>(CONF_NORM)); - - return conf_ok; - } - - bool onSimpleUpdate() override - { - mLastTemp = updateTemp(); - return true; - } - - float getTemp() { return mLastTemp; } - - enum SlaveAddress : uint8_t - { - ADDR_1 = 0x48, // first TempSensor - ADDR_2 = 0x49, // second TempSensor - ADDR_3 = 0x50 // third TempSensor (not in Rocksanne) - }; - -private: - static constexpr int SELF_TEST_NUM_SAMPLES = 10; - const uint8_t slave_addr; - uint8_t temp_array[2] = {0, 0}; - - enum Registers - { - REG_CONF = 0x01, // R/W - REG_TEMP = 0x00, // R only - REG_TOS = 0x03, // R/W - REG_THYST = 0x02 // R/W - }; - - enum ConfCommands - { - CONF_NORM = 0x00 - }; - - // for testing - const uint8_t default_value_thyst = 75; - const uint8_t default_value_tos = 80; - const float MAX_STDEV_VALUE = - 100; // max Standard deviation value accepted for temperature samples - float sample[SELF_TEST_NUM_SAMPLES]; - - float updateTemp() - { - BusType::read(slave_addr, REG_TEMP, temp_array, sizeof(uint16_t)); - // TRACE("Read: %x %x\n", temp_array[0], temp_array[1]); - return computeTemp(temp_array); - } - - // the temperature is saved in two bytes of the temp register - // they must be swapped, concatenated and shifted right by 5 bits. - // The resulting value must be multiplicated by 0.125 - float computeTemp(uint8_t *temp_array) - { - bool isNegative = false; - - // if most significant bit is 1, temperature is negative - constexpr int MS_BIT_VALUE = 0x80; - if (temp_array[0] >= MS_BIT_VALUE) - { - isNegative = true; - } - - // they must be swapped, because the software reads the LSByte before - // MSByte - uint8_t temp_for_swap; - temp_for_swap = temp_array[0]; - temp_array[0] = temp_array[1]; - temp_array[1] = temp_for_swap; - - int16_t temp; - - // TRACE("After swap: %x %x\n", temp_array[0], temp_array[1]); - memcpy(&temp, temp_array, sizeof(int16_t)); - // TRACE("UINT16: %x\n", temp); - - if (isNegative) - { - // Two's complement - temp = ~(temp); - temp += 1; - } - - // the five least significant bits must be eliminated - uint16_t rightShift; - constexpr int16_t RIGHT_SHIFT_5 = 0x20; - - rightShift = temp / RIGHT_SHIFT_5; - // TRACE("After right shift: %x, %d\n", rightShift, rightShift); - if (isNegative) - { - // TRACE("negative value returned"); - return -float(int16_t(rightShift)) * 0.125; - } - else - { - return float(int16_t(rightShift)) * 0.125; - } - } -}; diff --git a/old_examples/shared/sensors/LPS331AP.h b/old_examples/shared/sensors/LPS331AP.h deleted file mode 100644 index 69fd700f76dd55d2b27a5ca49b2c7f06564c0906..0000000000000000000000000000000000000000 --- a/old_examples/shared/sensors/LPS331AP.h +++ /dev/null @@ -1,130 +0,0 @@ -/* Copyright (c) 2016 Skyward Experimental Rocketry - * Author: Alain Carlucci - * - * 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. - */ - -#pragma once - -#include <drivers/BusTemplate.h> - -#include "Sensor.h" - -template <typename Bus> -class LPS331AP : public PressureSensor, public TemperatureSensor -{ - struct data_t - { - int32_t press; - int16_t temp; - }; - -public: - LPS331AP(uint8_t samplingSpeed) - { - mLastPressure = 0.0f; - mLastTemp = 0.0f; - mHighSpeed = (samplingSpeed == SS_25HZ); - } - - bool init() - { - uint8_t whoami = Bus::read(REG_WHO_AM_I); - - if (whoami != who_am_i_value) - { - last_error = ERR_NOT_ME; - return false; - } - - uint8_t reg1 = mHighSpeed ? 0xf0 : 0xe0; - uint8_t reg2 = mHighSpeed ? 0x69 : 0x7a; - Bus::write(REG_CTRL1, reg1); // Power on, 3-wire SPI - Bus::write(REG_RES_CONF, reg2); // AVG_P: 384, AVG_T: 64 - - return true; - } - - bool selfTest() { return false; } - - std::vector<SPIRequest> buildDMARequest() override - { - return { - SPIRequest(0, Bus::getCSPin(), - { - REG_STATUS | 0xc0, 0, 0, 0, 0, // pressure (int32_t) - 0, 0 // temperature (int16_t) - })}; - } - - void onDMAUpdate(const SPIRequest& req) override - { - const auto& r = req.readResponseFromPeripheral(); - const data_t* data = (const data_t*)&r[1]; - - // Remove status and realign bytes - int32_t pressure = data->press >> 8; - - mLastPressure = normalizePressure(pressure); - mLastTemp = normalizeTemp(data->temp); - } - - bool onSimpleUpdate() override { return false; } - - // clang-format off - enum samplingSpeed - { - SS_25HZ = 0, // 25Hz - SS_12HZ5 = 1, // 12.5Hz - }; - // clang-format on - -private: - constexpr static uint8_t who_am_i_value = 0xbb; - uint8_t mHighSpeed; - - inline constexpr float normalizePressure(int32_t val) - { - // Page 28 @ Datasheet - return static_cast<float>(val) / 4096.0f; - } - - inline constexpr float normalizeTemp(int16_t val) - { - // Page 29 @ Datasheet - return static_cast<float>(val) / 480.0f + 42.5f; - } - - // clang-format off - enum regMap { - REG_WHO_AM_I = 0x0f, - REG_RES_CONF = 0x10, - - REG_CTRL1 = 0x20, - REG_CTRL2 = 0x21, - REG_CTRL3 = 0x22, - REG_INT_CFG = 0x23, - - REG_STATUS = 0x27, - - REG_PRESS_OUT = 0x28, - REG_TEMP_OUT = 0x2b, - }; - // clang-format on -}; diff --git a/old_examples/shared/sensors/LSM6DS3H/LSM6DS3H.h b/old_examples/shared/sensors/LSM6DS3H/LSM6DS3H.h deleted file mode 100644 index d36bf2a582f7598efa6d358a5ecb342cd91d8069..0000000000000000000000000000000000000000 --- a/old_examples/shared/sensors/LSM6DS3H/LSM6DS3H.h +++ /dev/null @@ -1,217 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Nuno Barcellos - * - * 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. - */ - -#pragma once - -#include <drivers/BusTemplate.h> -#include <utils/Debug.h> - -#include "../Sensor.h" -#include "Common.h" -#include "miosix.h" - -/** ********ATTENTION*********** - * @warning Once upon a time, this driver was working, but due to hardware - * problems we were unable to confirm it and test it properly. If you need this, - * you should test it a bit before using it in production code. - */ - -template <typename Bus> -class LSM6DS3H : public GyroSensor, - public AccelSensor, - public CompassSensor, - public TemperatureSensor -{ -#pragma pack(1) - // __extension__ is needed to prevent compiler warnings for anonymous - // structs - typedef union - { - __extension__ struct - { - int16_t temp; - int16_t gyro[3]; - int16_t accel[3]; - }; - int16_t buf[8]; - } lsmData_t; - -#pragma pack() - -public: - LSM6DS3H(uint8_t accelFullScale, uint16_t gyroFullScale) - { - accelFS = accelFullScale; - gyroFS = gyroFullScale; - } - - bool init() override - { - // SPI clock frequency up to 10 MHz - // The device is compatible with SPI modes 0 and 3 - - uint8_t whoami = Bus::read(RegMap::WHO_AM_I); - TRACE("[LSM] expected: %x actual: %x\n", whoami_value, whoami); - if (whoami != whoami_value) - { - last_error = ERR_NOT_ME; - return false; - } - - // Reset device - uint8_t reg = Bus::read(RegMap::CTRL3_C); - Bus::write(reg | 0x01); - - miosix::Thread::sleep(100); - - // clang-format off - uint8_t init_data[][2] = - { - {RegMap::CTRL3_C, 0x44}, // Register address automatically incremented during a multiple - // byte access with a serial interface; LSB @ lower address; - // SPI 4 wire; Output registers not updated until MSB and LSB - // have been read - {RegMap::CTRL1_XL, (uint8_t) (0x70 | (accelFS << 2))}, // Accel ODR to 833 Hz, - // Anti-aliasing filter to 400 hz - // {RegMap::CTRL5_C, 0x60}, // Rounding read enabled for both accel and gyro - {RegMap::CTRL2_G, (uint8_t) (0x70 | (gyroFS << 2))}, // Gyro ODR to 833 Hz - }; - // clang-format on - - for (size_t i = 0; i < sizeof(init_data) / sizeof(init_data[0]); i++) - Bus::write(init_data[i][0], init_data[i][1]); - - return true; - } - - bool selfTest() override { return true; } - - bool onSimpleUpdate() - { - lsmData_t raw_data; - uint8_t buf[20]; - - // Read temp, gyro, accel - Bus::read(RegMap::OUT_TEMP_L, buf, 14); - memcpy(&raw_data.buf, buf, 14); - - mLastTemp = normalizeTemp(raw_data.temp); - - mLastGyro.setX(normalizeGyro(raw_data.gyro[0])); - mLastGyro.setY(normalizeGyro(raw_data.gyro[1])); - mLastGyro.setZ(normalizeGyro(raw_data.gyro[2])); - - mLastAccel.setX(normalizeAccel(raw_data.accel[0])); - mLastAccel.setY(normalizeAccel(raw_data.accel[1])); - mLastAccel.setZ(normalizeAccel(raw_data.accel[2])); - - return true; - } - - // clang-format off - enum gyroFullScale - { - GYRO_FS_250 = 0, - GYRO_FS_500 = 1, - GYRO_FS_1000 = 2, - GYRO_FS_2000 = 3 - }; - - enum accelFullScale - { - ACC_FS_2G = 0, // Do not change this sequence - ACC_FS_4G = 2, - ACC_FS_8G = 3, - ACC_FS_16G = 1 - }; - // clang-format on - -private: - constexpr static uint8_t whoami_value = 0x69; - constexpr static float accelFSMAP[4] = {0.061, 0.488, 0.122, 0.244}; - constexpr static float gyroFSMAP[4] = {8.75, 17.50, 35.0, 70.0}; - uint8_t accelFS; - uint16_t gyroFS; - - inline float normalizeAccel(int16_t val) - { - return static_cast<float>(val) / 1000.0f * accelFSMAP[accelFS] * - EARTH_GRAVITY; // [m/ss] - } - - inline float normalizeGyro(int16_t val) - { - return static_cast<float>(val) / 1000.0f * gyroFSMAP[gyroFS] * - DEGREES_TO_RADIANS; // [rad/s] - } - - inline float normalizeTemp(int16_t val) - { - return static_cast<float>(val) / 16.0f + 25.0f; // [deg C] - } - - enum RegMap - { - WHO_AM_I = 0x0F, // default value - - // Accelerometer and gyroscope control registers - CTRL1_XL = 0x10, - CTRL2_G = 0x11, - CTRL3_C = 0x12, - CTRL4_C = 0x13, - CTRL5_C = 0x14, - CTRL6_C = 0x15, - CTRL7_G = 0x16, - CTRL8_XL = 0x17, - CTRL9_XL = 0x18, - CTRL10_C = 0x19, - - // Temperature output registers - OUT_TEMP_L = 0x20, - OUT_TEMP_H = 0x21, - - // Gyro data registers - OUT_X_L_G = 0x22, - OUT_X_H_G = 0x23, - OUT_Y_L_G = 0x24, - OUT_Y_H_G = 0x25, - OUT_Z_L_G = 0x26, - OUT_Z_H_G = 0x27, - - // Accelerometer output registers - OUT_X_L_XL = 0x28, - OUT_X_H_XL = 0x29, - OUT_Y_L_XL = 0x2A, - OUT_Y_H_XL = 0x2B, - OUT_Z_L_XL = 0x2C, - OUT_Z_H_XL = 0x2D, - - // STATUS register - STATUS_REG = 0X1E - }; -}; - -template <typename Bus> -constexpr float LSM6DS3H<Bus>::accelFSMAP[]; - -template <typename Bus> -constexpr float LSM6DS3H<Bus>::gyroFSMAP[]; diff --git a/old_examples/shared/sensors/LSM6DS3H/LSM6DS3HData.h b/old_examples/shared/sensors/LSM6DS3H/LSM6DS3HData.h deleted file mode 100644 index 128707df272bcdda304895018fa35f71c28b5cea..0000000000000000000000000000000000000000 --- a/old_examples/shared/sensors/LSM6DS3H/LSM6DS3HData.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Nuno Barcellos - * - * 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. - */ - -#pragma once - -#include <math/Vec3.h> - -#include <ostream> - -struct LSM6DS3HData -{ - long long timestamp; - Vec3 accel; - Vec3 gyro; - float temp; - - static std::string header() - { - return "timestamp,acc_x,acc_y,acc_z,angularSpeedX,angularSpeedY," - "angularSpeedZ\n"; - } - - void print(std::ostream& os) const - { - os << timestamp << "," << accel.getX() << "," << accel.getY() << "," - << accel.getZ() << "," << gyro.getX() << "," << gyro.getY() << "," - << gyro.getZ() << "\n"; - } -}; diff --git a/old_examples/shared/sensors/MAX21105.h b/old_examples/shared/sensors/MAX21105.h deleted file mode 100644 index e8fe63d01f021c2bbbdeee23944c7f6157d0ac57..0000000000000000000000000000000000000000 --- a/old_examples/shared/sensors/MAX21105.h +++ /dev/null @@ -1,316 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Authors: Matteo Piazzolla, Alain Carlucci - * - * 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. - */ - -#pragma once - -#include <drivers/BusTemplate.h> -#include <interfaces/endianness.h> - -#include "Sensor.h" - -template <class Bus> -class MAX21105 : public AccelSensor, public GyroSensor, public TemperatureSensor -{ -#pragma pack(1) - union rawdata_t - { - __extension__ struct - { - int16_t gyro[3]; - int16_t accel[3]; - int16_t temp; - }; - int16_t raw[7]; - }; -#pragma pack() -public: - MAX21105(uint8_t accelFullScale, uint8_t gyroFullScale) - { - accelFS = accelFullScale & 0x03; - gyroFS = gyroFullScale & 0x03; - mLastTemp = 0.0f; - } - - ~MAX21105() {} - - bool init() override - { - uint8_t who_am_i = Bus::read(WHO_AM_I); - - if (who_am_i != who_am_i_value) - { - last_error = ERR_NOT_ME; - return false; - } - - // Init this sensor - uint8_t init_data[][2] = { - {MIF_CFG, 0x29}, // SPI 4 wire, I2C OFF (important!) - {EXT_STATUS, 0x00}, // Choose the bank 0 - {SET_PWR, 0x00}, // Power down - - // Gyro: 2kHz BW - {SNS_CFG_1, (uint8_t)(0x20 | gyroFS)}, - {SNS_CFG_2, 0x10}, - - // Accel: Set scale & no self test - {SET_ACC_PWR, (uint8_t)(0x00 | (accelFS << 6))}, - {ACC_CFG_1, 0x02}, // 400Hz - {ACC_CFG_2, 0x00}, // Low pass filter - {SET_PWR, 0x78}, // Power up (Accel + Gyro) Low-Noise - }; - - for (size_t i = 0; i < sizeof(init_data) / sizeof(init_data[0]); i++) - { - Bus::write(init_data[i][0], init_data[i][1]); - miosix::Thread::sleep(1); - } - - return true; - } - - bool selfTest() override - { - /* - if(!SelfTestAcc()) { - last_error = ERR_ACCEL_SELFTEST; - return false; - } - if(!SelfTestGyro()) { - last_error = ERR_GYRO_SELFTEST; - return false; - } - return true; - */ - return false; - } - - std::vector<SPIRequest> buildDMARequest() override - { - return {SPIRequest(0, Bus::getCSPin(), - { - (GYRO_X_H | 0x80), 0, 0, 0, 0, 0, 0, // gyro - 0, 0, // accel - 0, 0, 0, 0, 0, 0, // temp - })}; - } - - void onDMAUpdate(const SPIRequest& req) override - { - const auto& r = req.readResponseFromPeripheral(); - const int16_t* ptr = (const int16_t*)&r[1]; - rawdata_t raw_data; - - constexpr size_t dSize = 7; // 3 (gyro) + 3 (accel) + 1 (temp) - for (size_t i = 0; i < dSize; i++) - raw_data.raw[i] = fromBigEndian16(ptr[i]); - - mLastAccel.setX(normalizeAccel(raw_data.accel[0])); - mLastAccel.setY(normalizeAccel(raw_data.accel[1])); - mLastAccel.setZ(normalizeAccel(raw_data.accel[2])); - - mLastGyro.setX(normalizeGyro(raw_data.gyro[0])); - mLastGyro.setY(normalizeGyro(raw_data.gyro[1])); - mLastGyro.setZ(normalizeGyro(raw_data.gyro[2])); - - mLastTemp = normalizeTemp(raw_data.temp); - } - - bool onSimpleUpdate() override { return false; } - - // clang-format off - enum accelFullScale - { - ACC_FS_16G = 0, - ACC_FS_8G = 1, - ACC_FS_4G = 2, - ACC_FS_2G = 3, - }; - - enum gyroFullScale - { - GYRO_FS_2000 = 0, - GYRO_FS_1000 = 1, - GYRO_FS_500 = 2, - GYRO_FS_250 = 3, - }; - // clang-format on - -private: - uint8_t accelFS, gyroFS; - - static constexpr const uint8_t who_am_i_value = 0xb4; - static constexpr const float accelFSMAP[] = {16.0, 8.0, 4.0, 2.0}; - static constexpr const float gyroFSMAP[] = {2000, 1000, 500, 250}; - - inline constexpr float normalizeAccel(int16_t val) - { - return static_cast<float>(val) / 32768.0f * accelFSMAP[accelFS] * - EARTH_GRAVITY; - } - - inline constexpr float normalizeGyro(int16_t val) - { - return static_cast<float>(val) / 32768.0f * gyroFSMAP[gyroFS] * - DEGREES_TO_RADIANS; - } - - inline constexpr float normalizeTemp(int16_t val) - { - return static_cast<float>(val) / 256.0f; - } - - // clang-format off - enum regMap - { - SET_PWR = 0x00, - SNS_CFG_1 = 0x01, - SNS_CFG_2 = 0x02, - SNS_CFG_3 = 0x03, - SET_ACC_PWR = 0x04, - ACC_CFG_1 = 0x05, - ACC_CFG_2 = 0x06, - SET_TEMP_DR = 0x13, - MIF_CFG = 0x16, - OTP_STS_CFG = 0x1C, - - WHO_AM_I = 0x20, - EXT_STATUS = 0x22, - - GYRO_X_H = 0x24, - GYRO_X_L = 0x25, - GYRO_Y_H = 0x26, - GYRO_Y_L = 0x27, - GYRO_Z_H = 0x28, - GYRO_Z_L = 0x29, - ACCE_X_H = 0x2A, - ACCE_X_L = 0x2B, - ACCE_Y_H = 0x2C, - ACCE_Y_L = 0x2D, - ACCE_Z_H = 0x2E, - ACCE_Z_L = 0x2F, - TEMP_H = 0x30, - TEMP_L = 0x31, - - TRM_BNK_REG = 0x38, - FIFO_COUNT = 0x3C, - FIFO_STATUS = 0x3D, - FIFO_DATA = 0x3E, - RST_REG = 0x3F - }; - // clang-format on - - // -------------------- the hell down here - - // TODO: capire se ha senso - /* - Self Test del Gyroscopio, - Prendo 5 campioni del giroscopio e ne faccio la media, - imposto la modalità self test e ne prendo altri 5 facendone nuovamente la - media. Se la distanza è maggiore di quella nel datasheet o non passa la - condizione X>0, Y<0, Z>0 il test fallisce e ritorna falso - */ - /* - bool SelfTestGyro() { - constexpr uint8_t min_x = 8; - constexpr uint8_t min_y = -50; - constexpr uint8_t min_z = 8; - constexpr uint8_t max_x = 50; - constexpr uint8_t max_y = -8; - constexpr uint8_t max_z = 50; - - // Self Test Gyroscopio - float Ax_no_test=0; - float Ay_no_test=0; - float Az_no_test=0; - - for(int i=0;i<5;++i){ - //sleep - Ax_no_test+=readGyroX(); - Ay_no_test+=readGyroY(); - Az_no_test+=readGyroZ(); - } - - Ax_no_test=Ax_no_test/5; - Ay_no_test=Ay_no_test/5; - Az_no_test=Az_no_test/5; - - //seleziono il bank 0 dei registri - writeReg(EXT_STATUS,0x00); - //Power Down - writeReg(SET_PWR,0x78); - // Gyro: 2kHz BW, 1000dps FS - //Testing Positive sign {+X, -Y, +Z} - writeReg(SNS_CFG_1,0x7c); - writeReg(SNS_CFG_2,0x10); - // Acc Low-Noise + Gyro Low-Noise - writeReg(SET_PWR,0x78); - //sleep - - float Ax_test=0; - float Ay_test=0; - float Az_test=0; - - for(int i=0;i<5;++i){ - Ax_test+=readGyroX(); - Ay_test+=readGyroY(); - Az_test+=readGyroZ(); - } - - Ax_test=Ax_test/5; - Ay_test=Ay_test/5; - Az_test=Az_test/5; - - float deltaX,deltaY,deltaZ; - deltaX = std::abs(Ax_test - Ax_no_test); - deltaY = -std::abs(Ay_test - Ay_no_test); - deltaZ = std::abs(Az_test - Az_no_test); - - if ((min_x <= deltaX && deltaX <= max_x) && - (min_y <= deltaY && deltaY <= max_y) && - (min_z <= deltaZ && deltaZ <= max_z)) - return true; - return false; - } - - Vec3 readGyro() { - return Vec3(readGyroX(), readGyroY(), readGyroZ()); - } - - Vec3 readAccelerometer() { - return Vec3(readAccX(), readAccY(), readAccZ()); - } - - bool SelfTestAcc(){ - //16g X positive force - writeReg(SET_ACC_PWR,0x8); - //TODO: test acc - return true; - } - */ -}; - -template <typename Bus> -constexpr float MAX21105<Bus>::accelFSMAP[]; - -template <typename Bus> -constexpr float MAX21105<Bus>::gyroFSMAP[]; diff --git a/old_examples/shared/sensors/MAX31856.h b/old_examples/shared/sensors/MAX31856.h deleted file mode 100644 index 6dc77071c4adc9b82c1a1b29c7d8e94e9dcd9d85..0000000000000000000000000000000000000000 --- a/old_examples/shared/sensors/MAX31856.h +++ /dev/null @@ -1,238 +0,0 @@ -/* Copyright (c) 2015-2016 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <drivers/BusTemplate.h> - -#include "Sensor.h" - -/** This is a thermocouple reading chip */ - -template <class BusType> -class MAX31856 : public TemperatureSensor -{ -public: - MAX31856() : lastTemperature(0.0f), cjEnabled(true) {} - - bool init() - { - - // NOTE: this sensor seems doesn't have a WHOAMI register - - uint8_t cr0val = bus.read(REG_CR0); // get CR0 register actual value - - cr0val |= 0x01; // select 50Hz noise rejection - - bus.write(REG_CR0, cr0val); - - return true; - } - - /* The only self test that can be performed is checking if any - * fault condition has occurred, this is done simply verifyng - * that fault status register is nonzero - */ - bool selfTest() - { - uint8_t status = bus.read(REG_SR); - - return (status == 0); - } - - bool onSimpleUpdate() - { - requestConversion(); - lastTemperature = getColdJunctionTemp() + getThermocoupleTemp(); - - return true; - } - - // ----------- BELOW THERMOCOUPLE TUNING FUNCTIONS. ------------ - - /** - * @param mode true to set auto conversion mode, that stands - * for continuous conversion, one every 100ms - */ - void setConversionMode(bool mode) - { - uint8_t regVal = bus.read(REG_CR0); - - if (mode) - regVal |= 0x80; // conversion mode is the 8-th bit of CR0 register - else - regVal &= ~0x80; - - bus.write(REG_CR0, regVal); - } - - /** - * @param mode true to enable internal cold junction temperature - * sensor, false to disable it - */ - void enableCjSensor(bool mode) - { - uint8_t regVal = bus.read(REG_CR0); - - if (mode) - { - regVal |= 0x08; // CJ temp. sensor is the 4-th bit of CR0 register - cjEnabled = true; - } - else - { - regVal &= ~0x08; - cjEnabled = false; - } - - bus.write(REG_CR0, regVal); - } - - /** - * Trigger a one-shot conversion - */ - void requestConversion() - { - uint8_t regVal = bus.read(REG_CR0); - - // conversion trigger is the 7-th bit of CR0 register - bus.write(REG_CR0, regVal | 0x40); - } - - /** - * Set the number of samples that are averaged in order to - * achieve one masure - * @param samplesNum number of samples, that are: 1,2,4,8,16 - */ - void setSamples(uint8_t samplesNum) - { - uint8_t regVal = bus.read(REG_CR1); - regVal &= 0x8F; // clear bits from 7-th to 5-th - - switch (samplesNum) - { - // 1: do nothing, since single conversion - // is set writing 000 to the register - case 1: - break; - case 2: - regVal |= 0b00000001 << 4; - break; - case 4: - regVal |= 00000010 << 4; - break; - case 8: - regVal |= 00000011 << 4; - break; - case 16: - regVal |= 00000100 << 4; - break; - default: - break; - } - bus.write(REG_CR1, regVal); - } - - /** - * Set Thermocouple type - */ - void setThermoType(uint8_t type) - { - uint8_t regVal = bus.read(REG_CR1); - bus.write(REG_CR1, regVal | type); - } - - /** - * @return cold junction temperature - */ - float getColdJunctionTemp() - { - int16_t temp = (bus.read(REG_CJTH) << 8) | bus.read(REG_CJTL); - return static_cast<float>(temp) * 0.015625; - } - - /** - * Set cold junction temperature, this is possible - * only if internal cold junction temperature sensor is disabled - */ - void setColdJunctionTemp(float temp) - { - if (!cjEnabled) - { - int16_t setTemp = static_cast<int16_t>(temp / 0.015625); - bus.write(REG_CJTH, (setTemp & 0xFF00) >> 16); - bus.write(REG_CJTL, setTemp & 0x00FF); - } - } - - /** - * @return thermocouple temperature value, 19 bit right-aligned - */ - float getThermocoupleTemp() - { - int32_t temp = (bus.read(REG_LTCBH) << 16) | - (bus.read(REG_LTCBM) << 8) | bus.read(REG_LTCBL); - return static_cast<float>(temp) * 0.0078125; - } - -private: - float lastTemperature; - BusType bus; - - // clang-format off - enum eRegMap - { - REG_CR0 = 0x00, - REG_CR1 = 0x01, - REG_MASK = 0x02, - REG_CJHF = 0x03, - REG_CJLF = 0x04, - REG_LTHFTH = 0x05, - REG_LTHFTL = 0x06, - REG_LTLFTH = 0x07, - REG_LTLFTL = 0x08, - REG_CJTO = 0x09, - REG_CJTH = 0x0A, - REG_CJTL = 0x0B, - REG_LTCBH = 0x0C, - REG_LTCBM = 0x0D, - REG_LTCBL = 0x0E, - REG_SR = 0x0F, - }; - - enum eTypes - { - TH_B = 0x00, - TH_E = 0x01, - TH_J = 0x02, - TH_K = 0x03, - TH_N = 0x04, - TH_R = 0x05, - TH_S = 0x06, - TH_T = 0x07, - }; - // clang-format on - - // flag to determine if internal cold junction temp sensor is enabled, - // by default is enabled - bool cjEnabled; -}; diff --git a/old_examples/shared/sensors/MPL3115.h b/old_examples/shared/sensors/MPL3115.h deleted file mode 100644 index 2ebd88f3bbec3afe874d90c52f220d7eb68037a5..0000000000000000000000000000000000000000 --- a/old_examples/shared/sensors/MPL3115.h +++ /dev/null @@ -1,301 +0,0 @@ -/* Copyright (c) 2016 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <drivers/BusTemplate.h> - -#include "Sensor.h" - -template <typename BusType> -class MPL3115 : public PressureSensor, - public TemperatureSensor, - public AltitudeSensor -{ - -public: - MPL3115() - { - mLastPressure = 0.0f; - mLastTemp = 0.0f; - mLastAltitude = 0.0f; - } - - bool init() - { - setMode(MODE_BAROMETER); - - // raise and event flag on new pressure/altitude - // data and on new temperature data - uint8_t value = 0x03; - BusType::write(devAddr, PT_DATA_CFG, &value, 1); - - return true; - } - - bool selfTest() - { - uint8_t value = 0; - BusType::read(devAddr, WHO_AM_I, &value, 1); - - if (value == 0xC4) - return true; - - last_error = ERR_NOT_ME; - return false; - } - - bool onSimpleUpdate() - { - /* To start a new one-shot conversion we have to set OST bit whith - * SBYB bit cleared; these bit are, respectively, the second and - * first bits from right in control register 1. - * After having done this, we poll data register status register - * checking if PDR and TDR bits are set, meaning that we have new data - * both for pressure / altitude and for temperature. - * PDR bit is the second from right, while TDR is the first one - */ - - uint8_t temp; - - BusType::read(devAddr, CTRL_REG1, &temp, 1); - temp &= ~0x03; // clear first and second bits - temp |= 0x02; // set second bit - BusType::write(devAddr, CTRL_REG1, &temp, 1); - - do - { - BusType::read(devAddr, CTRL_REG1, &temp, 1); - miosix::Thread::sleep(6); // minimum sample time is 6 ms - } while (!(temp & 0x02)); - - /* This device supports register pointer auto-increment when reading - * registers from 0x00 to 0x05, so with one read of 6 bytes we get - * status, pressure and temperature registers values - */ - - /* FIXME: this below is NOT A MISTAKE! Due to a strange quirk present - * in hardware i2c driver when working in non DMA mode, reading the - * exact number of bytes (5) causes the temperature MSB to be read as - * zero. Reading 7 or more bytes seems to avoid the problem, so, until - * the problem is fixed at his roots DON'T MODIFY the index below !!!! - */ - - uint8_t data[7]; - BusType::read(devAddr, OUT_P_MSB, data, 7); - - if (sensorMode == MODE_BAROMETER) - { - - // See datasheet at page 21 for more informations about - // calculations below - uint32_t press = (static_cast<uint32_t>(data[0]) << 16) | - (static_cast<uint32_t>(data[1]) << 8) | - static_cast<uint32_t>(data[2]); - mLastPressure = static_cast<float>(press) / 64; - } - - if (sensorMode == MODE_ALTIMETER) - { - uint32_t altitude = (static_cast<uint32_t>(data[0]) << 24) | - (static_cast<uint32_t>(data[1]) << 16) | - (static_cast<uint32_t>(data[2]) << 8); - mLastAltitude = static_cast<float>(altitude) / 65536; - } - - uint16_t temperature = (static_cast<uint16_t>(data[3]) << 8) | - static_cast<uint16_t>(data[4]); - mLastTemp = static_cast<float>(temperature) / 256; - - return true; - } - - /** - * Set sensor mode: altimeter or barometer - * true is returned in case of success, false if - * the value passed in @param mode was not recognized - */ - bool setMode(uint8_t mode) - { - if (sensorMode == mode) - return true; - - uint8_t temp; - BusType::read(devAddr, CTRL_REG1, &temp, 1); - - if (mode == MODE_ALTIMETER) - temp |= 0x80; - else if (mode == MODE_BAROMETER) - temp &= ~0x80; - else - return false; - - BusType::write(devAddr, CTRL_REG1, &temp, 1); - sensorMode = mode; - return true; - } - - /** - * Correction factor used to trim temperature output value - * @param offset offset trim value as 8 bit two's complement number. - * Range is from -8 to +7.9375°C, 0.0625°C per LSB - */ - void setTempOffset(int8_t offset) - { - BusType::write(devAddr, TEMP_OFFSET, &offset, 1); - } - - /** - * Correction factor used to trim pressure output value - * @param offset offset trim value as 8 bit two's complement number. - * Range is from -512 to +508 Pa, 4 Pa per LSB - */ - void setPressOffset(int8_t offset) - { - BusType::write(devAddr, PRESS_OFFSET, &offset, 1); - } - - /** - * Correction factor used to trim altitude output value - * @param offset offset trim value as 8 bit two's complement number. - * The range of values are from -128 to +127 meters - */ - void setAltOffset(int8_t offset) - { - BusType::write(devAddr, ALTIT_OFFSET, &offset, 1); - } - - /** - * Set oversampling ratio. Allowed values are: 1,2,4,8,16,32,64,128 - * Higher the oversample ratio, lower the sample rate allowed. - * For further informations about minimum time between samples and its - * relation with oversampling ratio see datasheet at page 31 - */ - void setOversampleRatio(uint8_t ratio) - { - uint8_t temp, osr = 0; - - BusType::read(devAddr, CTRL_REG1, &temp, 1); - temp &= ~0b00111000; // oversample ratio bits are 4th to 6th - - switch (ratio) - { - case 1: - osr = 0x00; - break; - case 2: - osr = 0x01; - break; - case 4: - osr = 0x02; - break; - case 8: - osr = 0x03; - break; - case 16: - osr = 0x04; - break; - case 32: - osr = 0x05; - break; - case 64: - osr = 0x06; - break; - case 128: - osr = 0x07; - break; - default: - break; - } - - temp |= osr << 3; - BusType::write(devAddr, CTRL_REG1, &temp, 1); - } - - // clang-format off - enum sensMode - { - MODE_BAROMETER = 0x01, - MODE_ALTIMETER = 0x02 - }; - // clang-format on - -private: - static constexpr uint8_t devAddr = 0xC0; - - uint8_t sensorMode; - float lastTemp; - float lastPress; - float lastAlt; - - //clang-format off - enum registers - { - STATUS = 0x00, - OUT_P_MSB = 0x01, - OUT_P_CSB = 0x02, - OUT_P_LSB = 0x03, - OUT_T_MSB = 0x04, - OUT_T_LSB = 0x05, - DR_STATUS = 0x06, - OUT_P_DELTA_MSB = 0x07, - OUT_P_DELTA_CSB = 0x08, - OUT_P_DELTA_LSB = 0x09, - OUT_T_DELTA_MSB = 0x0A, - OUT_T_DELTA_LSB = 0x0B, - WHO_AM_I = 0x0C, - FIFO_STATUS = 0x0D, - FIFO_DATA = 0x0E, - FIFO_SETUP = 0x0F, - TIME_DELAY = 0x10, - SYSMOD = 0x11, - INT_SOURCE = 0x12, - PT_DATA_CFG = 0x13, - BARO_IN_MSB = 0x14, - BARO_IN_LSB = 0x15, - P_TGT_MSB = 0x16, - P_TGT_LSB = 0x17, - T_TGT = 0x18, - P_WND_MSB = 0x19, - P_WND_LSB = 0x1A, - T_WND = 0x1B, - P_MIN_MSB = 0x1C, - P_MIN_CSB = 0x1D, - P_MIN_LSB = 0x1E, - T_MIN_MSB = 0x1F, - T_MIN_LSB = 0x20, - P_MAX_MSB = 0x21, - P_MAX_CSB = 0x22, - P_MAX_LSB = 0x23, - T_MAX_MSB = 0x24, - T_MAX_LSB = 0x25, - CTRL_REG1 = 0x26, - CTRL_REG2 = 0x27, - CTRL_REG3 = 0x28, - CTRL_REG4 = 0x29, - CTRL_REG5 = 0x2A, - PRESS_OFFSET = 0x2B, - TEMP_OFFSET = 0x2C, - ALTIT_OFFSET = 0x2D - }; - //clang-format on -}; diff --git a/old_examples/shared/sensors/Si7021.h b/old_examples/shared/sensors/Si7021.h deleted file mode 100644 index 33e74d2dbfbaac25d61f9b641eed3097e52272f2..0000000000000000000000000000000000000000 --- a/old_examples/shared/sensors/Si7021.h +++ /dev/null @@ -1,171 +0,0 @@ -/* Copyright (c) 2016 Skyward Experimental Rocketry - * Author: Silvano Seva - * - * 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. - */ - -#pragma once - -#include <drivers/BusTemplate.h> - -#include "Sensor.h" - -template <typename BusType> -class Si7021 : public HumiditySensor, public TemperatureSensor -{ - -public: - Si7021() - { - mLastHumidity = 0; - mLastTemp = 0; - } - - bool init() { return true; } - - bool selfTest() - { - - // test the whoami value - uint8_t buf[6]; - - /* To get the second serial number we have to - * send CMD_READ_ID1_2 and CMD_READ_ID2_2, so we - * set the first as register address and the second - * as payload data and then we send them */ - - buf[0] = CMD_READ_ID2_2; - - BusType::write(slaveAddr, CMD_READ_ID2_1, buf, 1); - BusType::read(slaveAddr, 0, buf, 6); - - // if(buf[0] != 0x15) { - // last_error = ERR_NOT_ME; - // return false; - // } - - return true; - } - - bool onSimpleUpdate() - { - - uint8_t buf[2]; - BusType::read(slaveAddr, CMD_MEAS_HUM, buf, 2); - mLastHumidity = - ((static_cast<float>((buf[0] << 8) | buf[1]) * 125) / 65536) - 6; - - BusType::read(slaveAddr, CMD_MEAS_TEMP_PREV_HUM, buf, 2); - mLastTemp = - ((static_cast<float>((buf[0] << 8) | buf[1]) * 175.72) / 65536) - - 46.85; - - return true; - } - - /** - * \return temperature measurement made along the previous - * humidity measurement. - * \code - * getHumidity(); //reads current humidity - * getTempRh(); //returns temperature reading made along - * the humidity reading - * \endcode - */ - float getTempRh() - { - - uint8_t buf[2]; - BusType::read(CMD_MEAS_TEMP_PREV_HUM, buf, 2); - - uint16_t retVal = (buf[0] << 8) | buf[1]; - - float temp = (172.72 * retVal) / 65535; - return temp - 46.85; - } - - void heaterOn() - { - - uint8_t regValue; - BusType::read(slaveAddr, CMD_READ_USR1, ®Value, 1); - - regValue |= 0b00000100; - - BusType::write(slaveAddr, CMD_WRITE_USR1, ®Value, 1); - } - - void heaterOff() - { - - uint8_t regValue; - BusType::read(slaveAddr, CMD_READ_USR1, ®Value, 1); - - regValue &= ~0b00000100; - - BusType::write(slaveAddr, CMD_WRITE_USR1, ®Value, 1); - } - - /** - * Set internal heater draw current value, it also can be used to - * turn on/off the internal heater - * - * @param level current draw level, between 0 and 16: - * 0 -> heater off, 16 -> heater at max power - */ - void setHeaterLevel(uint8_t level) - { - - if (level == 0) - heaterOff(); - else if (level <= 16) - { - heaterOn(); - uint8_t lvl = level - 1; - - BusType::write(slaveAddr, CMD_WRITE_HEAT_CTL, &lvl, 1); - } - } - -private: - static constexpr uint8_t slaveAddr = 0x40 << 1; - - float temperature; - float humidity; - - // clang-format off - enum eCommands - { - CMD_MEAS_HUM = 0xE5, - CMD_MEAS_TEMP = 0xE3, - CMD_MEAS_TEMP_PREV_HUM = 0xE0, // Read temperature value from - // previous RH measurement - CMR_RESET = 0xFE, - CMD_WRITE_USR1 = 0xE6, - CMD_READ_USR1 = 0xE7, - CMD_WRITE_HEAT_CTL = 0x51, - CMD_READ_HEAT_CTL = 0x11, - CMD_READ_ID1_1 = 0xFA, - CMD_READ_ID1_2 = 0x0F, - CMD_READ_ID2_1 = 0xFC, - CMD_READ_ID2_2 = 0xC9, - CMD_READ_FW_REV = 0x84, - }; - // clang-format on -}; diff --git a/old_examples/shared/sensors/iNemo.h b/old_examples/shared/sensors/iNemo.h deleted file mode 100644 index d264ca7be2340f696c515d3f5e7cd8c06d8a59d4..0000000000000000000000000000000000000000 --- a/old_examples/shared/sensors/iNemo.h +++ /dev/null @@ -1,283 +0,0 @@ -/* Copyright (c) 2016-2017 Skyward Experimental Rocketry - * Authors: Matteo Piazzolla, Alain Carlucci - * - * 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. - */ - -#pragma once - -#include <drivers/BusTemplate.h> - -#include "Common.h" -#include "Sensor.h" - -template <typename BusG, typename BusXM> -class iNEMOLSM9DS0 : public GyroSensor, - public AccelSensor, - public CompassSensor, - public TemperatureSensor -{ - -public: - iNEMOLSM9DS0(uint8_t accelFullScale, uint8_t gyroFullScale, - uint8_t compassFullScale) - { - accelFS = accelFullScale & 0x07; - gyroFS = gyroFullScale & 0x03; - compassFS = compassFullScale & 0x03; - mLastTemp = 0.0f; - } - - bool init() - { - uint8_t whoami_g = BusG::read(RegMap::WHO_AM_I_G); - uint8_t whoami_xm = BusXM::read(RegMap::WHO_AM_I_XM); - - if ((whoami_g != whoami_g_value) || (whoami_xm != whoami_xm_value)) - { - last_error = ERR_NOT_ME; - return false; - } - - // gyro configuration - // 95 ODR 25 cutoff normal mode, xyz enabled - BusG::write(CTRL_REG1_G, 0x0F); - BusG::write(CTRL_REG2_G, 0x00); - - // TODO: CTRL_REG2_G - // INT_G pin interrupt enable Fifo overrun interrupt - BusG::write(CTRL_REG3_G, 0x88); - - //[5:4] scale - //(00: 245 dps; 01: 500 dps; 10: 2000 dps; 11: 2000 dps) - // continuous update, 2000dps - BusG::write(CTRL_REG4_G, 0x00 | (gyroFS << 4)); - - // FIFO enabled, get data after the first low pass filter - BusG::write(CTRL_REG5_G, 0x00); - - // accelerometer configuration - // reset internal memory - BusXM::write(CTRL_REG0_XM, 0x80); - - uint8_t timeout = 10; - - while (BusXM::read(CTRL_REG0_XM) != 0x00 && --timeout > 0) - miosix::Thread::sleep(1); - - if (timeout == 0) - { - last_error = ERR_RESET_TIMEOUT; - return false; - } - - // 100Hz data rate, continuous update, xyz enabled - BusXM::write(CTRL_REG1_XM, 0x67); - // antialias filter 773 Hz, normal mode no test - BusXM::write(CTRL_REG2_XM, (0x01 << 6) | (accelFS << 3)); - - // interrupt not enabled - BusXM::write(CTRL_REG3_XM, 0x00); - BusXM::write(CTRL_REG4_XM, 0x00); - - // temperature sensor enabled, 50hz magnetic data rate, 2 gauss - BusXM::write(CTRL_REG5_XM, 0xF0); - - // 2 gauss - BusXM::write(CTRL_REG6_XM, 0x00 | (compassFS << 5)); - BusXM::write(CTRL_REG7_XM, 0x80); - - return true; - } - - bool selfTest() { return false; } - - std::vector<SPIRequest> buildDMARequest() override - { - return { - SPIRequest(DMA_GYRO, BusG::getCSPin(), - {OUT_X_L_G | 0xc0, 0, 0, 0, 0, 0, 0}), - SPIRequest(DMA_ACC, BusXM::getCSPin(), - {OUT_X_L_A | 0xc0, 0, 0, 0, 0, 0, 0}), - SPIRequest(DMA_COMP, BusXM::getCSPin(), - {OUT_X_L_M | 0xc0, 0, 0, 0, 0, 0, 0}), - SPIRequest(DMA_TEMP, BusXM::getCSPin(), - {OUT_TEMP_L_XM | 0xc0, 0, 0}), - }; - } - - void onDMAUpdate(const SPIRequest& req) override - { - const auto& r = req.readResponseFromPeripheral(); - - int16_t data[3] = {0}; - memcpy(data, &r[1], r.size() - 1); - - switch (req.id()) - { - case DMA_GYRO: - mLastGyro.setX(normalizeGyro(data[0])); - mLastGyro.setY(normalizeGyro(data[1])); - mLastGyro.setZ(normalizeGyro(data[2])); - break; - case DMA_ACC: - mLastAccel.setX(normalizeAccel(data[0])); - mLastAccel.setY(normalizeAccel(data[1])); - mLastAccel.setZ(normalizeAccel(data[2])); - break; - case DMA_COMP: - mLastCompass.setX(normalizeCompass(data[0])); - mLastCompass.setY(normalizeCompass(data[1])); - mLastCompass.setZ(normalizeCompass(data[2])); - break; - case DMA_TEMP: - mLastTemp = static_cast<float>(data[0]) / 8.0f + 21.0f; - break; - } - } - - bool onSimpleUpdate() { return false; } - - // clang-format off - enum DMAType - { - DMA_GYRO = 0, - DMA_ACC = 1, - DMA_COMP = 2, - DMA_TEMP = 3 - }; - - enum accelFullScale - { - ACC_FS_16G = 4, - ACC_FS_8G = 3, - ACC_FS_6G = 2, - ACC_FS_4G = 1, - ACC_FS_2G = 0, - }; - - enum gyroFullScale - { - GYRO_FS_245 = 0, - GYRO_FS_500 = 1, - GYRO_FS_2000 = 2, - }; - - enum compassFullScale - { - COMPASS_FS_12 = 0, - COMPASS_FS_8 = 1, - COMPASS_FS_4 = 2, - COMPASS_FS_2 = 3, - }; - // clang-format on - -private: - uint8_t accelFS, gyroFS, compassFS; - - constexpr static uint8_t whoami_g_value = 0xD4; - constexpr static uint8_t whoami_xm_value = 0x49; - - static constexpr const float accelFSMAP[] = {2.0, 4.0, 6.0, 8.0, 16.0}; - static constexpr const float compassFSMAP[] = {12.0, 8.0, 4.0, 2.0}; - static constexpr const float gyroFSMAP[] = {245, 500, 2000}; - - inline constexpr float normalizeAccel(int16_t val) - { - return static_cast<float>(val) * (accelFSMAP[accelFS] / 32768.0f) * - EARTH_GRAVITY; - } - - inline constexpr float normalizeGyro(int16_t val) - { - return static_cast<float>(val) * (gyroFSMAP[gyroFS] / 32768.0f) * - DEGREES_TO_RADIANS; - } - - inline constexpr float normalizeCompass(int16_t val) - { - return static_cast<float>(val) * (compassFSMAP[compassFS] / 32768.0f); - } - - inline constexpr float normalizeTemp(int16_t val) - { - return static_cast<float>(val) / 256.0f; - } - - // clang-format off - enum RegMap - { - WHO_AM_I_G = 0x0F, // default value 0xD4, - CTRL_REG1_G = 0x20, - CTRL_REG2_G = 0x21, - CTRL_REG3_G = 0x22, - CTRL_REG4_G = 0x23, - CTRL_REG5_G = 0x24, - STATUS_REG_G = 0x27, - - // magnetic data registers - OUT_X_L_M = 0x08, - OUT_X_H_M = 0x09, - OUT_Y_L_M = 0x0A, - OUT_Y_H_M = 0x0B, - OUT_Z_L_M = 0x0C, - OUT_Z_H_M = 0x0D, - - WHO_AM_I_XM = 0x0F, // default value = 0x49 - - OUT_TEMP_L_XM = 0x05, - OUT_TEMP_H_XM = 0x06, - - // gyro data registers - OUT_X_L_G = 0x28, - OUT_X_H_G = 0x29, - OUT_Y_L_G = 0x2A, - OUT_Y_H_G = 0x2B, - OUT_Z_L_G = 0x2C, - OUT_Z_H_G = 0x2D, - - // accelerometer control registers - CTRL_REG0_XM = 0x1F, - CTRL_REG1_XM = 0x20, - CTRL_REG2_XM = 0x21, - CTRL_REG3_XM = 0x22, - CTRL_REG4_XM = 0x23, - CTRL_REG5_XM = 0x24, - CTRL_REG6_XM = 0x25, - CTRL_REG7_XM = 0x26, - - // accelerometer data registers - OUT_X_L_A = 0x28, - OUT_X_H_A = 0x29, - OUT_Y_L_A = 0x2A, - OUT_Y_H_A = 0x2B, - OUT_Z_L_A = 0x2C, - OUT_Z_H_A = 0x2D - }; - // clang-format on -}; - -template <typename BusG, typename BusXM> -constexpr float iNEMOLSM9DS0<BusG, BusXM>::accelFSMAP[]; - -template <typename BusG, typename BusXM> -constexpr float iNEMOLSM9DS0<BusG, BusXM>::gyroFSMAP[]; - -template <typename BusG, typename BusXM> -constexpr float iNEMOLSM9DS0<BusG, BusXM>::compassFSMAP[]; diff --git a/old_examples/tests/catch/example-test-fsm.cpp b/old_examples/tests/catch/example-test-fsm.cpp deleted file mode 100644 index 9c69e2b3000ca19754a076f3c52b379bb12e66b1..0000000000000000000000000000000000000000 --- a/old_examples/tests/catch/example-test-fsm.cpp +++ /dev/null @@ -1,196 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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. - */ - -// Define STANDALONE_CATCH1_TEST in sbs.conf if you want to run this test alone -// Otherwise, include this file in the sources and compile the -// catch1-tests-entry.cpp entrypoint. This test will be run automatically -// togheter with all the others. Learn more on the skyward-boardcore wiki at: -// https://git.skywarder.eu/r2a/skyward-boardcore/wikis/Testing -#ifdef STANDALONE_CATCH1_TEST -#include "catch-tests-entry.cpp" -#endif - -// We need access to the handleEvent(...) function in state machines in order to -// test them synchronously -#define protected public - -#include <miosix.h> -#include <utils/TestUtils/TestHelper.h> - -#include <catch2/catch.hpp> - -#include "example-test-fsm.h" - -using miosix::Thread; - -TEST_CASE("Testing S1 transitions") -{ - FSMExample fsm; - - SECTION("S1 -> EV_A -> S2") - { - REQUIRE(testFSMTransition(fsm, Event{EV_A}, &FSMExample::state_S2)); - } - - SECTION("S1 -> EV_A -> S4 if we go to S3 before") - { - // Go to S3 and then back to S1 - REQUIRE(testFSMTransition(fsm, Event{EV_A}, &FSMExample::state_S2)); - REQUIRE(testFSMTransition(fsm, Event{EV_C}, &FSMExample::state_S3)); - REQUIRE(testFSMTransition(fsm, Event{EV_D}, &FSMExample::state_S1)); - - // Test if EV_A now puts us in S4 - REQUIRE(testFSMTransition(fsm, Event{EV_A}, &FSMExample::state_S4)); - } -} - -TEST_CASE("Testing S2 Transitions") -{ - // These lines are repeated every time we enter a "SECTION". This means that - // the state machine will be in state S2 at the beginning of every section. - FSMExample fsm; - // Move to S2 before testing - REQUIRE(testFSMTransition(fsm, Event{EV_A}, &FSMExample::state_S2)); - - // Test S2 to S3 - SECTION("S2 -> EV_C -> S3") - { - REQUIRE(testFSMTransition(fsm, Event{EV_C}, &FSMExample::state_S3)); - } -} - -TEST_CASE("Testing S3 transitions") -{ - // First move to S3 - FSMExample fsm; - REQUIRE(testFSMTransition(fsm, Event{EV_A}, &FSMExample::state_S2)); - REQUIRE(testFSMTransition(fsm, Event{EV_C}, &FSMExample::state_S3)); - - // Then test S3 transitions - - SECTION("S3 -> EV_D -> S1") - { - REQUIRE(testFSMTransition(fsm, Event{EV_D}, &FSMExample::state_S1)); - } - - SECTION("S3 -> EV_A -> S3") - { - REQUIRE(testFSMTransition(fsm, Event{EV_A}, &FSMExample::state_S3)); - } -} - -TEST_CASE("Testing S4 transitions") -{ - // First move to S4 - FSMExample fsm; - REQUIRE(testFSMTransition(fsm, Event{EV_A}, &FSMExample::state_S2)); - REQUIRE(testFSMTransition(fsm, Event{EV_C}, &FSMExample::state_S3)); - REQUIRE(testFSMTransition(fsm, Event{EV_D}, &FSMExample::state_S1)); - REQUIRE(testFSMTransition(fsm, Event{EV_A}, &FSMExample::state_S4)); - - // Then test S4 transitions - - SECTION("S4 -> EV_D -> S3") - { - REQUIRE(testFSMTransition(fsm, Event{EV_D}, &FSMExample::state_S3)); - } - - SECTION("S4 -> EV_A -> S1 (Should not happen)") - { - REQUIRE_FALSE( - testFSMTransition(fsm, Event{EV_A}, &FSMExample::state_S1)); - } -} - -/** - * @brief Test fixture to perform creation / termination of the FSMExample - * thread, RAII style - */ -class FSMTestFixture -{ -public: - // Start the thread in the constructor - FSMTestFixture() - { - EventBroker::getInstance().start(); - fsm.start(); - } - // Stop the thread in the destructor - ~FSMTestFixture() { fsm.stop(); } - -protected: - FSMExample fsm; -}; - -// Incredibly, this method is part of a class derived from the "FSMTestFixture" -// class. So it can access all its protected members. For each section in this -// method, the class is created and destroyed, so all sections start exactly at -// the same state. -TEST_CASE_METHOD(FSMTestFixture, "Testing async transitions") -{ - REQUIRE(testFSMAsyncTransition(fsm, Event{EV_A}, TOPIC_T1, - &FSMExample::state_S2)); - - REQUIRE(testFSMAsyncTransition(fsm, Event{EV_C}, TOPIC_T1, - &FSMExample::state_S3)); - SECTION("Automatic transition") - { - SECTION("S3 --> S1 after 1 seconds") - { - // Should automatically move to S1 after 1 second. - Thread::sleep(995); - // Transition should not have occured yet - REQUIRE(fsm.testState(&FSMExample::state_S3)); - - Thread::sleep(10); - // Now it should - REQUIRE(fsm.testState(&FSMExample::state_S1)); - } - - SECTION("S3 --> S4 if EV_B. Delayed event should be removed") - { - EventCounter counter{*EventBroker::getInstance()}; - - // Post EV_B before EV_D fires. should move to S4 and remove EV_D - // from the delayed events - REQUIRE(testFSMAsyncTransition(fsm, Event{EV_B}, TOPIC_T1, - &FSMExample::state_S4)); - - // Subscribe the counter to TOPIC_1 to see if EV_D still fires - counter.subscribe(TOPIC_T1); - - // Wait for EV_D to fire - Thread::sleep(1005); - - // Should not have received EV_D, since S3 should have removed the - // delayed event on exit. Spoiler: S3 didn't remove it, and the - // check will fail (CHECK works just like REQUIRE, but it will not - // stop the execution of the test in case it fails) - CHECK(counter.getCount(EV_D) == 0); - - // Since S3 did not remove the delyaed event on exit, the event is - // fired when we are in S4, causing an unexpected transition back to - // S3, failing this test - REQUIRE(fsm.testState(&FSMExample::state_S4)); - } - } -} diff --git a/old_examples/tests/catch/example-test-fsm.h b/old_examples/tests/catch/example-test-fsm.h deleted file mode 100644 index 03f46222db911c7304992b33a1ee525771567b5e..0000000000000000000000000000000000000000 --- a/old_examples/tests/catch/example-test-fsm.h +++ /dev/null @@ -1,274 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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. - */ - -/** - * Basic State Machine example. Explaination of this example and a graphical - * representation of the state machine can be found on the Skyward Boardcore - * Wiki on Gitlab: - * https://git.skywarder.eu/r2a/skyward-boardcore/blob/master/src/entrypoints/examples/state-machines-examples.md - * - * https://git.skywarder.eu/r2a/skyward-boardcore/wikis/State-Machines-Examples-and-Best-Practices - */ - -#pragma once - -#include <events/EventBroker.h> -#include <events/FSM.h> - -/* - * Enum containing custom events definitions - */ -enum ExampleEvents : uint8_t -{ - EV_A = EV_FIRST_CUSTOM, // The first event must always have value - // EV_FIRST_CUSTOM - EV_B, // Values for the following event can be manually specified or - // assigned automatically - EV_C, - EV_D, - EV_E -}; - -enum ExampleTopics : uint8_t -{ - TOPIC_T1 -}; - -/** - * @brief Logs every event received by the state machine - * This function can be expanded to log every event / transition of the state - * machine for later analysis, and as an aid for testing the state machine. - * - * @param state Current state of the state machine - * @param ev The event being handled - */ -void traceState(uint8_t state, const Event& ev) -{ - // Do not output anything for this test - /* switch (ev.sig) - { - case EV_ENTRY: - { - printf("(S%d) Entering state\n", state); - break; - } - case EV_EXIT: - { - printf("(S%d) Exiting state\n", state); - break; - } - default: - { - printf("(S%d) Received event %d\n", state, ev.sig); - break; - } - }*/ -} - -/* - * Simple State machine definition - * - * The class inherits publicly from the FSM class, and must pass itself as a - * template argument to the parent class. - */ -class FSMExample : public FSM<FSMExample> -{ -public: - enum States : uint8_t - { - STATE_S1 = 1, - STATE_S2, - STATE_S3, - STATE_S4 - }; - - /* - * FSMExample constructor. The initial state of the state machine is passed - * to the FSM superclass via the member initializer list. - * - * Initial conditions are also applied here. In this example, v is set to 0 - */ - FSMExample() : FSM(&FSMExample::state_S1), v(0) - { - // Subscribe for events posted on TOPIC_T1 - EventBroker::getInstance().subscribe(this, TOPIC_T1); - } - - ~FSMExample() { EventBroker::getInstance().unsubscribe(this); } - - /* - * State function definitions. - * EV_ENTRY and EV_EXIT are automatically dispatched by the state machine - * when a transition occurs, and must be always handled even in the case of - * no-op - */ - - void state_S1(const Event& ev) - { - // Print every event we receive in order to see the behaviour of the - // state machine on the terminal. - traceState(STATE_S1, ev); - - switch (ev.sig) - { - // It's always good to add braces to every single case statement, to - // avoid problems - case EV_ENTRY: - { - // no-op - break; - } - case EV_EXIT: - { - // no-op - break; - } - case EV_A: - { - if (v == 0) - { - // perform a state transition to S2 when receiving EV_A and - // v == 0 - transition(&FSMExample::state_S2); - } - else - { - // else, transition to S4 - transition(&FSMExample::state_S4); - } - break; - } - default: - { - break; - } - } - } - - void state_S2(const Event& ev) - { - traceState(STATE_S2, ev); - - switch (ev.sig) - { - case EV_ENTRY: - { - break; - } - case EV_EXIT: - { - break; - } - case EV_C: // perform a state transition to S3 when receiving EV_C - { - transition(&FSMExample::state_S3); - break; - } - case EV_E: // print hello world when receiving EV_E - { - printf("Hello world!\n"); - break; - } - default: - { - break; - } - } - } - - void state_S3(const Event& ev) - { - traceState(STATE_S3, ev); - - switch (ev.sig) - { - case EV_ENTRY: - { - // Set v = 1 - v = 1; - - // Post EV_D to itself in 1 seconds - delayed_ev_id = EventBroker::getInstance().postDelayed( - Event{EV_D}, TOPIC_T1, 1000); - - break; - } - case EV_EXIT: - { - // Remove the delayed event in case it has not fired yet - // !!! This line is commented to show what can happen if we - // don't remove a delayed event. This is an error! Uncomment to - // fix, see the wiki for further information !!! - - // EventBroker::getInstance().removeDelayed(delayed_ev_id); - break; - } - case EV_B: - { - transition(&FSMExample::state_S4); - break; - } - case EV_D: // We will receive this event 1 second after entering - // this state. - { - transition(&FSMExample::state_S1); - break; - } - default: - { - break; - } - } - } - - // Final state: No outbound transitions, so the state machine cannot exit - // this state - void state_S4(const Event& ev) - { - traceState(STATE_S4, ev); - - switch (ev.sig) - { - case EV_ENTRY: - { - break; - } - case EV_EXIT: - { - break; - } - case EV_D: - { - transition(&FSMExample::state_S3); - break; - } - default: - { - break; - } - } - } - -public: - uint16_t delayed_ev_id; - int v; -}; diff --git a/old_examples/tests/catch/misc/xbee-bitrate.cpp b/old_examples/tests/catch/misc/xbee-bitrate.cpp deleted file mode 100644 index 47f40a10fce5ea70e4060026333041251e2c4db4..0000000000000000000000000000000000000000 --- a/old_examples/tests/catch/misc/xbee-bitrate.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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 <drivers/spi/SPIDriver.h> -#include <interfaces-impl/hwmapping.h> -#include <miosix.h> -#include <radio/Xbee/Xbee.h> -#include <utils/Stats/Stats.h> - -#include <cstdio> -#include <iostream> -#include <string> - -using std::cin; -using std::cout; -using std::string; - -static constexpr int MAX_PKT_SIZE = 255; -static constexpr int PKT_NUM = 100; - -using namespace miosix; -using namespace interfaces; - -// WARNING: If flashing on stm32f49 discovery board (with screen removed) use -// SPI1 as the 2nd isnt working. - -// Discovery -SPIBus bus{SPI1}; -GpioPin cs = sensors::lsm6ds3h::cs::getPin(); -GpioPin attn = xbee::attn::getPin(); -GpioPin rst = xbee::reset::getPin(); - -// Death stack -// SPIBus bus{SPI2}; -// GpioPin cs = xbee::cs::getPin(); -// GpioPin attn = xbee::attn::getPin(); -// GpioPin rst = xbee::reset::getPin(); - -Xbee::Xbee* xbee_transceiver; - -void __attribute__((used)) EXTI10_IRQHandlerImpl() -{ - Xbee::handleATTNInterrupt(); -} - -void enableXbeeInterrupt() -{ - { - FastInterruptDisableLock l; - RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN; - } - // Refer to the datasheet for a detailed description on the procedure and - // interrupt registers - - // Clear the mask on the wanted line - EXTI->IMR |= EXTI_IMR_MR10; - - // Trigger the interrupt on a falling edge - EXTI->FTSR |= EXTI_FTSR_TR10; - - // Trigger the interrupt on a rising edge - // EXTI->RTSR |= EXTI_RTSR_TR0; - - EXTI->PR |= EXTI_PR_PR10; // Reset pending register - - // Enable interrupt on PF10 in SYSCFG - SYSCFG->EXTICR[2] = 0x5U << 8; - - // Enable the interrput in the interrupt controller - NVIC_EnableIRQ(EXTI15_10_IRQn); - NVIC_SetPriority(EXTI15_10_IRQn, 15); -} - -uint8_t snd_buf[MAX_PKT_SIZE]; -int snd_cntr = 0; - -bool sendPacket(uint8_t size) -{ - snd_buf[0] = '{'; - snd_buf[size - 1] = '}'; - - for (int i = 0; i < size - 2; i++) - { - snd_buf[i + 1] = ((snd_cntr + i) % 75) + 48; // ASCII char from 0 to z - } - ++snd_cntr; - - if (!xbee_transceiver->send(snd_buf, size)) - { - return false; - } - return true; -} - -void resetXBee() -{ - xbee::reset::low(); - delayUs(500); - xbee::reset::high(); -} - -int main() -{ - enableXbeeInterrupt(); - xbee_transceiver = new Xbee::Xbee(bus, cs, attn, rst); - - xbee_transceiver->start(); - resetXBee(); - - printf("XBee bitrate measurement\n"); - printf( - "Send 100 packets of a certain size (from 16 to 256, step 16) and " - "reporting send time.\n"); - printf("Press enter to start\n"); - string s; - std::getline(cin, s); - - int pkt_size = 16; - while (pkt_size <= MAX_PKT_SIZE) - { - printf("Testing %d byte packets:\n", pkt_size); - long long results[PKT_NUM]; - - for (int i = 0; i < PKT_NUM; i++) - { - long long start = getTick(); - if (!sendPacket(pkt_size)) - { - printf("Error sending packet %d (size: %d)\n", i, pkt_size); - goto end; - } - results[i] = getTick() - start; - } - printf("Results for %d byte packet size:\n", pkt_size); - for (int i = 0; i < PKT_NUM; i++) - { - printf("%d\n", (int)results[i]); - } - pkt_size += 16; - if (pkt_size == 256) - pkt_size = 255; // Max we can send is 255 - } - -end: - printf("End\n"); - for (;;) - Thread::sleep(1000); - return 0; -} diff --git a/old_examples/tests/catch/misc/xbee-send-rcv.cpp b/old_examples/tests/catch/misc/xbee-send-rcv.cpp deleted file mode 100644 index 87c8c8335961362424518bfb8cdf842bca50d559..0000000000000000000000000000000000000000 --- a/old_examples/tests/catch/misc/xbee-send-rcv.cpp +++ /dev/null @@ -1,184 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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 <drivers/spi/SPIDriver.h> -#include <interfaces-impl/hwmapping.h> -#include <miosix.h> -#include <radio/Xbee/Xbee.h> -#include <utils/Stats/Stats.h> - -#include <cstdio> -#include <iostream> -#include <string> - -using std::cin; -using std::cout; -using std::string; - -static const unsigned int PKT_SIZE = 128; - -using namespace miosix; -using namespace interfaces; - -// WARNING: If flashing on stm32f49 discovery board (with screen removed) use -// SPI1 as the 2nd isnt working. - -// Discovery -SPIBus bus{SPI1}; -GpioPin cs = sensors::lsm6ds3h::cs::getPin(); -GpioPin attn = xbee::attn::getPin(); -GpioPin rst = xbee::reset::getPin(); - -// Death stack -// SPIBus bus{SPI2}; -// GpioPin cs = xbee::cs::getPin(); -// GpioPin attn = xbee::attn::getPin(); -// GpioPin rst = xbee::reset::getPin(); - -Xbee::Xbee* xbee_transceiver; - -void __attribute__((used)) EXTI10_IRQHandlerImpl() -{ - Xbee::handleATTNInterrupt(); -} - -void enableXbeeInterrupt() -{ - { - FastInterruptDisableLock l; - RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN; - } - // Refer to the datasheet for a detailed description on the procedure and - // interrupt registers - - // Clear the mask on the wanted line - EXTI->IMR |= EXTI_IMR_MR10; - - // Trigger the interrupt on a falling edge - EXTI->FTSR |= EXTI_FTSR_TR10; - - // Trigger the interrupt on a rising edge - // EXTI->RTSR |= EXTI_RTSR_TR0; - - EXTI->PR |= EXTI_PR_PR10; // Reset pending register - - // Enable interrupt on PF10 in SYSCFG - SYSCFG->EXTICR[2] = 0x5U << 8; - - // Enable the interrput in the interrupt controller - NVIC_EnableIRQ(EXTI15_10_IRQn); - NVIC_SetPriority(EXTI15_10_IRQn, 15); -} - -void send() -{ - uint8_t buf[PKT_SIZE]; - buf[0] = '/'; - buf[PKT_SIZE - 1] = '\\'; - - int fail = 0; - char c = 48; - for (;;) - { - memset(buf + 1, c++, PKT_SIZE - 2); - if (c > 122) - { - c = 48; - } - - if (!xbee_transceiver->send(buf, PKT_SIZE)) - { - printf("[%d] Send error %d\n", (int)getTick(), ++fail); - } - else - { - if (c % 5 == 0) - { - printf("Send ok.\n"); - } - } - - Thread::sleep(1000); - } -} - -void receive(void*) -{ - uint8_t buf[512]; - for (;;) - { - ssize_t len = xbee_transceiver->receive(buf, 512); - if (len <= 0) - { - printf("Receive failed.\n"); - } - else - { - for (ssize_t i = 0; i < len; i++) - { - // Only print displayable ascii chars - if (buf[i] >= 32 && buf[i] <= 126) - { - printf("%c", buf[i]); - } - } - printf("\n"); - for (ssize_t i = 0; i < len; i++) - { - printf("%02X ", buf[0]); - } - printf("\n\n"); - } - } -} - -void resetx() -{ - xbee::reset::mode(Mode::OPEN_DRAIN); - xbee::reset::low(); - delayUs(500); - xbee::reset::high(); - // xbee::reset::mode(Mode::INPUT); -} - -int main() -{ - enableXbeeInterrupt(); - resetx(); - - // xbee::sleep_req::mode(Mode::OUTPUT); - // xbee::sleep_req::low(); - - // reset(); - - xbee_transceiver = new Xbee::Xbee(bus, cs, attn, rst); - - xbee_transceiver->start(); - - // Send & receive - Thread::create(receive, 2048); - // for(;;) - // Thread::sleep(1000); - send(); - - return 0; -} diff --git a/old_examples/tests/catch/misc/xbee-time-to-send.cpp b/old_examples/tests/catch/misc/xbee-time-to-send.cpp deleted file mode 100644 index eb08047f3087a7fe5b9aa00aaaecaaf006836e79..0000000000000000000000000000000000000000 --- a/old_examples/tests/catch/misc/xbee-time-to-send.cpp +++ /dev/null @@ -1,177 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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 <drivers/BusTemplate.h> -#include <interfaces-impl/hwmapping.h> -#include <miosix.h> -#include <radio/Xbee/Xbee.h> -#include <utils/Stats/Stats.h> - -#include <cstdio> -#include <iostream> -#include <string> - -using std::cin; -using std::cout; -using std::string; - -static constexpr int PKT_SIZE = 108; -static constexpr int WITH_LR_PKT_SIZE = PKT_SIZE + 45; -static constexpr int PKTS_PER_SECOND = 4; - -using namespace miosix; -using namespace interfaces; - -// WARNING: If flashing on stm32f49 discovery board (with screen removed) use -// SPI1 as the 2nd isnt working. - -// Discovery -SPIBus bus{SPI1}; -GpioPin cs = sensors::lsm6ds3h::cs::getPin(); -GpioPin attn = xbee::attn::getPin(); -GpioPin rst = xbee::reset::getPin(); - -// Death stack -// SPIBus bus{SPI2}; -// GpioPin cs = xbee::cs::getPin(); -// GpioPin attn = xbee::attn::getPin(); -// GpioPin rst = xbee::reset::getPin(); - -Xbee::Xbee* xbee_transceiver; - -void __attribute__((used)) EXTI10_IRQHandlerImpl() -{ - Xbee::handleATTNInterrupt(); -} - -void enableXbeeInterrupt() -{ - { - FastInterruptDisableLock l; - RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN; - } - // Refer to the datasheet for a detailed description on the procedure and - // interrupt registers - - // Clear the mask on the wanted line - EXTI->IMR |= EXTI_IMR_MR10; - - // Trigger the interrupt on a falling edge - EXTI->FTSR |= EXTI_FTSR_TR10; - - // Trigger the interrupt on a rising edge - // EXTI->RTSR |= EXTI_RTSR_TR0; - - EXTI->PR |= EXTI_PR_PR10; // Reset pending register - - // Enable interrupt on PF10 in SYSCFG - SYSCFG->EXTICR[2] = 0x5U << 8; - - // Enable the interrput in the interrupt controller - NVIC_EnableIRQ(EXTI15_10_IRQn); - NVIC_SetPriority(EXTI15_10_IRQn, 15); -} - -uint8_t snd_buf[255]; -int snd_cntr = 0; - -bool sendPacket(uint8_t size) -{ - snd_buf[0] = '{'; - snd_buf[size - 1] = '}'; - - for (int i = 0; i < size - 2; i++) - { - snd_buf[i + 1] = ((snd_cntr + i) % 75) + 48; // ASCII char from 0 to z - } - ++snd_cntr; - - if (!xbee_transceiver->send(snd_buf, size)) - { - return false; - } - return true; -} - -int main() -{ - enableXbeeInterrupt(); - - xbee_transceiver = new Xbee::Xbee(bus, cs, attn, rst); - - xbee_transceiver->start(); - - printf("XBee time-to-send-measurement\n"); - printf( - "Send N packets per second with the specified size. See if it is " - "possible to send them in a timely manner. (must not take more than 1 " - "sec to send)\n"); - printf("Press enter to start\n"); - string s; - std::getline(cin, s); - - for (;;) - { - long long cycle_start = getTick(); - long long cycle_silence = 0; - - for (int i = 0; i < PKTS_PER_SECOND; i++) - { - printf("T: %d\n", (int)(getTick() - cycle_start)); - if (i == PKTS_PER_SECOND - 1) - { - // One every PKTS_PER_SECOND packets is bigger (for example if - // LR_TM is added to the packet) - if (!sendPacket(WITH_LR_PKT_SIZE)) - { - printf("Error sending packet(size: %d)\n", PKT_SIZE); - goto end; - } - } - else - { - if (!sendPacket(PKT_SIZE)) - { - printf("Error sending packet(size: %d)\n", PKT_SIZE); - goto end; - } - } - - long long silence_start = getTick(); - Thread::sleepUntil(cycle_start + - (i + 1) * (1000 / PKTS_PER_SECOND)); - cycle_silence += (getTick() - silence_start); - } - - long long cycle_time = getTick() - cycle_start; - - printf("Cycle time: %d, Silence: %d, Duty: %.2f\n", (int)cycle_time, - (int)cycle_silence, - (1.0f - (cycle_silence * 1.0f / cycle_time)) * 100); - } - -end: - printf("End\n"); - for (;;) - Thread::sleep(1000); - return 0; -} diff --git a/old_examples/tests/catch/spidriver/test-spidriver.cpp b/old_examples/tests/catch/spidriver/test-spidriver.cpp deleted file mode 100644 index 35041ec450fb6e12b998d74d1bf00067df3c357e..0000000000000000000000000000000000000000 --- a/old_examples/tests/catch/spidriver/test-spidriver.cpp +++ /dev/null @@ -1,548 +0,0 @@ -/* Copyright (c) 2020 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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. - */ - -#ifdef STANDALONE_CATCH1_TEST -#include "../catch-tests-entry.cpp" -#endif - -#ifndef USE_MOCK_PERIPHERALS -#error \ - "This test requires SpiBusInterface built with MockGpioPin (-DUSE_MOCK_PERIPHERALS)" -#endif - -#include <drivers/spi/SPIBus.h> -#include <drivers/spi/SPIDriver.h> -#include <drivers/spi/test/FakeSpiTypedef.h> -#include <drivers/spi/test/MockSPIBus.h> - -#include <catch2/catch.hpp> - -template <typename T1, typename T2> -bool bufcmp(T1* buf1, T2* buf2, size_t size) -{ - for (size_t i = 0; i < size; i++) - { - if (*buf1 != *buf2) - return false; - - buf1++; - buf2++; - } - return true; -} - -TEST_CASE("SPIBus - Bus Configuration") -{ - FakeSpiTypedef spi; - - SPIBus bus{&spi}; - - REQUIRE(spi.CR1 == 0); - - SECTION("Configure & check CR1") - { - SPIBusConfig config; - REQUIRE(spi.CR1 == 0); - - SECTION("Mode") - { - config.mode = SPI::Mode::MODE_0; - uint32_t expected_CR1 = 0x0344; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - - config.mode = SPI::Mode::MODE_1; - expected_CR1 = 0x0345; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - - config.mode = SPI::Mode::MODE_2; - expected_CR1 = 0x0346; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - - config.mode = SPI::Mode::MODE_3; - expected_CR1 = 0x0347; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - } - - SECTION("Clock Divider") - { - config.clockDivider = SPI::ClockDivider::DIV_2; - uint32_t expected_CR1 = 0x0344; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - - config.clockDivider = SPI::ClockDivider::DIV_4; - expected_CR1 = 0x034C; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - - config.clockDivider = SPI::ClockDivider::DIV_8; - expected_CR1 = 0x0354; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - - config.clockDivider = SPI::ClockDivider::DIV_16; - expected_CR1 = 0x035C; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - - config.clockDivider = SPI::ClockDivider::DIV_32; - expected_CR1 = 0x0364; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - - config.clockDivider = SPI::ClockDivider::DIV_64; - expected_CR1 = 0x036C; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - - config.clockDivider = SPI::ClockDivider::DIV_128; - expected_CR1 = 0x0374; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - - config.clockDivider = SPI::ClockDivider::DIV_256; - expected_CR1 = 0x037C; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - } - - SECTION("Bit order") - { - config.bit_order = SPIBitOrder::MSB_FIRST; - uint32_t expected_CR1 = 0x0344; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - - config.bit_order = SPIBitOrder::LSB_FIRST; - expected_CR1 = 0x03C4; - bus.acquire(config); - REQUIRE(spi.CR1 == expected_CR1); - bus.release(); - } - } - - SECTION("Disable configuration") - { - SPIBusConfig config; - config.clockDivider = SPI::ClockDivider::DIV_16; - - config.mode = SPI::Mode::MODE_3; - config.bit_order = SPIBitOrder::LSB_FIRST; - - bus.disableBusConfiguration(); - bus.acquire(config); - REQUIRE(spi.CR1 == 0); - bus.release(); - } -} - -TEST_CASE("SPIBus - Chip select") -{ - FakeSpiTypedef spi; - - SPIBus bus{&spi}; - - REQUIRE(spi.cs.value() == 1); - - bus.select(spi.cs); - REQUIRE(spi.cs.value() == 0); - - bus.deselect(spi.cs); - REQUIRE(spi.cs.value() == 1); -} - -TEST_CASE("SPIBus - One byte operations") -{ - FakeSpiTypedef spi; - - spi.DR.in_buf = {1, 2, 3, 4, 5, 6, 7, 8, 9}; - spi.CR1_expected = 0x03DF; - - SPIBus bus{&spi}; - - SPIBusConfig config; - config.clockDivider = SPI::ClockDivider::DIV_16; - - config.mode = SPI::Mode::MODE_3; - config.bit_order = SPIBitOrder::LSB_FIRST; - - bus.acquire(config); - bus.select(spi.cs); - - SECTION("Write") - { - bus.write(1); - REQUIRE(spi.DR.out_buf.back() == 1); - REQUIRE(spi.DR.out_buf.size() == 1); - - bus.write(2); - REQUIRE(spi.DR.out_buf.back() == 2); - REQUIRE(spi.DR.out_buf.size() == 2); - } - SECTION("Read") - { - REQUIRE(bus.read() == spi.DR.in_buf[0]); - REQUIRE(spi.DR.out_buf.size() == 1); - REQUIRE(spi.DR.out_buf.back() == 0); - - REQUIRE(bus.read() == spi.DR.in_buf[1]); - REQUIRE(spi.DR.out_buf.size() == 2); - REQUIRE(spi.DR.out_buf.back() == 0); - } - - SECTION("Transfer") - { - REQUIRE(bus.transfer(55) == spi.DR.in_buf[0]); - REQUIRE(spi.DR.out_buf.back() == 55); - REQUIRE(spi.DR.out_buf.size() == 1); - - REQUIRE(bus.transfer(255) == spi.DR.in_buf[1]); - REQUIRE(spi.DR.out_buf.back() == 255); - REQUIRE(spi.DR.out_buf.size() == 2); - } - - bus.deselect(spi.cs); - bus.release(); -} - -TEST_CASE("SPIBus - Multi byte operations") -{ - FakeSpiTypedef spi; - - spi.DR.in_buf = {100, 101, 102, 103, 104, 105, 106, 107, 108}; - spi.CR1_expected = 0x03DF; - - SPIBus bus{&spi}; - - SPIBusConfig config; - config.clockDivider = SPI::ClockDivider::DIV_16; - - config.mode = SPI::Mode::MODE_3; - config.bit_order = SPIBitOrder::LSB_FIRST; - - bus.acquire(config); - bus.select(spi.cs); - - // 2 identical buffers - uint8_t buf[] = {5, 4, 3, 2, 1}; - uint8_t bufc[] = {5, 4, 3, 2, 1}; - - SECTION("Write") - { - bus.write(buf, 0); - REQUIRE(spi.DR.out_buf.size() == 0); - - bus.write(buf, 1); - REQUIRE(spi.DR.out_buf.size() == 1); - REQUIRE(spi.DR.out_buf.back() == bufc[0]); - - bus.write(buf, 4); - REQUIRE(spi.DR.out_buf.size() == 5); - REQUIRE(bufcmp(bufc, spi.DR.out_buf.data() + 1, 4)); - } - - SECTION("Read") - { - bus.read(buf, 0); - // Nothing read - REQUIRE(bufcmp(bufc, buf, 5)); - - bus.read(buf, 1); - REQUIRE(bufcmp(buf, spi.DR.in_buf.data(), 1)); - // No overflows - REQUIRE(bufcmp(bufc + 1, buf + 1, 4)); - - bus.read(buf, 4); - REQUIRE(bufcmp(buf, spi.DR.in_buf.data() + 1, 4)); - // No overflows - REQUIRE(bufcmp(bufc + 4, buf + 4, 1)); - } - - SECTION("Transfer") - { - bus.transfer(buf, 0); - // Nothing read - REQUIRE(bufcmp(bufc, buf, 4)); - // Nothing written - REQUIRE(spi.DR.out_buf.size() == 0); - - bus.transfer(buf, 1); - REQUIRE(spi.DR.out_buf.size() == 1); - REQUIRE(bufcmp(bufc, spi.DR.out_buf.data(), 1)); - REQUIRE(bufcmp(buf, spi.DR.in_buf.data(), 1)); - // No overflows - REQUIRE(bufcmp(bufc + 1, buf + 1, 4)); - - bus.transfer(buf + 1, 3); - REQUIRE(spi.DR.out_buf.size() == 4); - REQUIRE(bufcmp(bufc + 1, spi.DR.out_buf.data() + 1, 3)); - REQUIRE(bufcmp(buf + 1, spi.DR.in_buf.data() + 1, 3)); - // No overflows - REQUIRE(bufcmp(bufc + 4, buf + 4, 1)); - } - - bus.deselect(spi.cs); - bus.release(); -} - -TEST_CASE("SPITransaction - writes") -{ - SPIBusConfig config1{}; - - config1.mode = SPI::Mode::MODE_1; - config1.clockDivider = SPI::ClockDivider::DIV_32; - - MockSPIBus bus(config1); - MockGpioPin cs; - - SECTION("Transaction") - { - SPITransaction spi(bus, cs, config1); - - REQUIRE(bus.getOutBuf().size() == 0); - - SECTION("cmd write") - { - spi.write(9); - REQUIRE_FALSE(bus.isSelected()); - REQUIRE(bus.getOutBuf().size() == 1); - REQUIRE(bus.getOutBuf().back() == 9); - } - - SECTION("1 byte reg write") - { - spi.write(10, 77); - REQUIRE_FALSE(bus.isSelected()); - - REQUIRE(bus.getOutBuf().size() == 2); - REQUIRE(bus.getOutBuf()[0] == 10); - REQUIRE(bus.getOutBuf()[1] == 77); - } - - SECTION("multi byte reg write") - { - uint8_t buf[] = {1, 2, 3, 4, 5, 6}; - - SECTION("0 size write") - { - spi.write(10, buf, 0); - REQUIRE_FALSE(bus.isSelected()); - - REQUIRE(bus.getOutBuf().size() == 1); - REQUIRE(bus.getOutBuf()[0] == 10); - } - - SECTION("2 writes") - { - spi.write(10, buf, 4); - REQUIRE_FALSE(bus.isSelected()); - - REQUIRE(bus.getOutBuf().size() == 5); - - REQUIRE(bus.getOutBuf()[0] == 10); - REQUIRE(bufcmp(buf, bus.getOutBuf().data() + 1, 4)); - - spi.write(99, buf, 6); - REQUIRE_FALSE(bus.isSelected()); - - REQUIRE(bus.getOutBuf().size() == 12); - - REQUIRE(bus.getOutBuf()[5] == 99); - REQUIRE(bufcmp(buf, bus.getOutBuf().data() + 6, 6)); - } - } - - SECTION("raw write") - { - uint8_t buf[] = {1, 2, 3, 4, 5, 6}; - - spi.write(buf, 0); - REQUIRE_FALSE(bus.isSelected()); - - REQUIRE(bus.getOutBuf().size() == 0); - - spi.write(buf, 4); - REQUIRE_FALSE(bus.isSelected()); - - REQUIRE(bus.getOutBuf().size() == 4); - - REQUIRE(bufcmp(buf, bus.getOutBuf().data(), 4)); - - spi.write(buf, 6); - REQUIRE_FALSE(bus.isSelected()); - - REQUIRE(bus.getOutBuf().size() == 10); - - REQUIRE(bufcmp(buf, bus.getOutBuf().data() + 4, 6)); - } - } -} - -TEST_CASE("SPITransaction - reads") -{ - SPIBusConfig config1; - - config1.mode = SPI::Mode::MODE_1; - config1.clockDivider = SPI::ClockDivider::DIV_32; - - MockSPIBus bus(config1); - MockGpioPin cs; - - uint8_t in_data[10] = {100, 101, 102, 103, 104, 105, 106, 107, 108, 109}; - bus.push(in_data, 10); - - SECTION("Transaction") - { - SPISlave slave(bus, cs, config1); - SPITransaction spi(slave); - - REQUIRE(bus.getOutBuf().size() == 0); - - SECTION("1 byte reg read") - { - - REQUIRE(spi.read(0x05) == in_data[0]); - REQUIRE_FALSE(bus.isSelected()); - - REQUIRE(bus.getOutBuf().size() == 1); - REQUIRE(bus.getOutBuf().back() == 0x85); - - REQUIRE(spi.read(0x05, true) == in_data[1]); - REQUIRE_FALSE(bus.isSelected()); - - REQUIRE(bus.getOutBuf().size() == 2); - REQUIRE(bus.getOutBuf().back() == 0x85); - - REQUIRE(spi.read(0x05, false) == in_data[2]); - REQUIRE_FALSE(bus.isSelected()); - - REQUIRE(bus.getOutBuf().size() == 3); - REQUIRE(bus.getOutBuf().back() == 0x05); - } - - SECTION("multi byte reg read") - { - const int buf_size = 7; - uint8_t buf[] = {1, 2, 3, 4, 5, 6, 7}; - uint8_t cmp[] = {1, 2, 3, 4, 5, 6, 7}; - - spi.read(0x05, buf, 0); - REQUIRE_FALSE(bus.isSelected()); - REQUIRE(bus.getOutBuf().size() == 1); - REQUIRE(bus.getOutBuf().back() == 0x85); - REQUIRE(bufcmp(buf, cmp, buf_size)); - - spi.read(0x05, buf, 3); - REQUIRE_FALSE(bus.isSelected()); - REQUIRE(bus.getOutBuf().size() == 2); - REQUIRE(bus.getOutBuf().back() == 0x85); - REQUIRE(bufcmp(buf, &in_data[0], 3)); - REQUIRE(bufcmp(buf + 3, cmp + 3, buf_size - 3)); - - spi.read(0x05, buf, 3, true); - REQUIRE_FALSE(bus.isSelected()); - REQUIRE(bus.getOutBuf().size() == 3); - REQUIRE(bus.getOutBuf().back() == 0x85); - REQUIRE(bufcmp(buf, &in_data[3], 3)); - REQUIRE(bufcmp(buf + 3, cmp + 3, buf_size - 3)); - - spi.read(0x05, buf, 4, false); - REQUIRE_FALSE(bus.isSelected()); - REQUIRE(bus.getOutBuf().size() == 4); - REQUIRE(bus.getOutBuf().back() == 0x05); - REQUIRE(bufcmp(buf, &in_data[6], 4)); - REQUIRE(bufcmp(buf + 4, cmp + 4, buf_size - 4)); - } - - SECTION("multi byte raw read") - { - const int buf_size = 7; - uint8_t buf[] = {1, 2, 3, 4, 5, 6, 7}; - uint8_t cmp[] = {1, 2, 3, 4, 5, 6, 7}; - - spi.read(buf, 0); - REQUIRE_FALSE(bus.isSelected()); - REQUIRE(bus.getOutBuf().size() == 0); - REQUIRE(bufcmp(buf, cmp, buf_size)); - - spi.read(buf, 3); - REQUIRE_FALSE(bus.isSelected()); - REQUIRE(bus.getOutBuf().size() == 0); - REQUIRE(bufcmp(buf, &in_data[0], 3)); - REQUIRE(bufcmp(buf + 3, cmp + 3, buf_size - 3)); - } - } -} - -TEST_CASE("SPITransaction - transfer") -{ - SPIBusConfig config1; - - config1.mode = SPI::Mode::MODE_1; - config1.clockDivider = SPI::ClockDivider::DIV_32; - - MockSPIBus bus(config1); - MockGpioPin cs; - - uint8_t data[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; - - bus.push(data, 10); - - SECTION("Transaction") - { - SPISlave slave(bus, cs, config1); - SPITransaction spi(slave); - - const int buf_size = 7; - uint8_t buf[] = {1, 2, 3, 4, 5, 6, 7}; - uint8_t cmp[] = {1, 2, 3, 4, 5, 6, 7}; - - spi.transfer(buf, 0); - REQUIRE_FALSE(bus.isSelected()); - REQUIRE(bus.getOutBuf().size() == 0); - REQUIRE(bufcmp(buf, cmp, buf_size)); - - spi.transfer(buf, 4); - REQUIRE_FALSE(bus.isSelected()); - REQUIRE(bus.getOutBuf().size() == 4); - REQUIRE(bufcmp(buf, &data[0], 4)); - REQUIRE(bufcmp(cmp, bus.getOutBuf().data(), 4)); - REQUIRE(bufcmp(buf + 4, cmp + 4, buf_size - 4)); - } -} diff --git a/old_examples/tests/catch/test-xbee.cpp b/old_examples/tests/catch/test-xbee.cpp deleted file mode 100644 index 3ec81dfba6464ce558d983edec75abb2cbde0d2c..0000000000000000000000000000000000000000 --- a/old_examples/tests/catch/test-xbee.cpp +++ /dev/null @@ -1,327 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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. - */ - -#ifdef STANDALONE_CATCH1_TEST -#include "catch-tests-entry.cpp" -#endif - -#include <catch2/catch.hpp> -#include <vector> - -#define private public - -#include <radio/Xbee/Xbee.h> -#include <utils/TestUtils/BusTemplateMock.h> - -using std::vector; - -// No-op GPIO mock -class GpioMock -{ -public: - static int value() { return 0; } - - static void high() { (void)0; } - - static void low() { (void)0; } -}; - -typedef Xbee::Xbee<BusSPIMock, GpioMock, GpioMock> xbee_t; - -class XbeeTestFixture -{ -public: - XbeeTestFixture() {} - - ~XbeeTestFixture() { BusSPIMock::getInstance().restoreState(); } - -protected: - BusSPIMock& spi = *BusSPIMock::getInstance(); - xbee_t xbee; -}; - -void buildRxPacket(vector<uint8_t>& packet, const vector<uint8_t>& payload) -{ - using namespace Xbee; - packet.reserve(API_HEADER_SIZE + RX_FRAME_HEADER_SIZE + payload.size() + 1); - - packet.push_back(START_DELIMITER); - uint16_t frame_size = RX_FRAME_HEADER_SIZE + payload.size(); - packet.push_back((frame_size & 0xFF00) >> 8); - packet.push_back(frame_size & 0xFF); - - packet.push_back(xbee_t::FRAMETYPE_RX_PACKET); - uint64_t address = 0xFFFF; - - for (int i = 7; i >= 0; i--) - { - packet.push_back((address >> i * 8) & 0xFF); - } - - packet.push_back(0xFF); - packet.push_back(0xFE); - packet.push_back(0x40); - - packet.insert(packet.end(), payload.begin(), payload.end()); - - uint8_t checksum = 0; - for (auto it = packet.begin() + 3; it != packet.end(); it++) - { - checksum += *it; - } - packet.push_back(0xFF - checksum); -} - -TEST_CASE_METHOD(XbeeTestFixture, "[Xbee] Receive with transferData()") -{ - SECTION("Test single receive") - { - vector<uint8_t> packet, payload; - payload.resize(25, 0x55); - buildRxPacket(packet, payload); - - REQUIRE(spi.getMOSI().size() == 0); - - spi.addMISO(packet); - - xbee.transferData(); - - REQUIRE(spi.getMOSI().size() == packet.size()); - - vector<uint8_t> xbee_payload; - - xbee_payload.insert(xbee_payload.end(), xbee.rx_frame.begin(), - xbee.rx_frame.end()); - - REQUIRE(xbee_payload == payload); - } - - /* SECTION("Test single receive with no payload") - { - vector<uint8_t> packet, payload; - buildRxPacket(packet, payload); - - REQUIRE(spi.getMOSI().size() == 0); - - spi.addMISO(packet); - - xbee.transferData(); - - REQUIRE(spi.getMOSI().size() == packet.size()); - - REQUIRE(xbee.rx_frame.size() == 0); - } - - SECTION("Test double consecutive receive") - { - vector<uint8_t> packet, payload; - payload.resize(25, 0x55); - buildRxPacket(packet, payload); - - REQUIRE(spi.getMOSI().size() == 0); - - spi.addMISO(packet); - spi.addMISO(packet); - - xbee.transferData(); - xbee.transferData(); - - REQUIRE(spi.getMOSI().size() == packet.size() * 2); - - vector<uint8_t> xbee_payload; - - xbee_payload.insert(xbee_payload.end(), xbee.rx_frame.begin(), - xbee.rx_frame.end()); - - REQUIRE(xbee_payload == payload); - } - } - - TEST_CASE_METHOD(XbeeTestFixture, "[Xbee] Full duplex with transferData()") - { - SECTION("Simple transmit") - { - vector<uint8_t> out(20, 0x55); - REQUIRE(xbee.tx_buf.size() == 0); - - xbee.setTxBuf(out.data(), out.size()); - REQUIRE(xbee.tx_buf.size() == out.size()); - - xbee.transferData(); - REQUIRE(xbee.tx_buf.size() == 0); - - REQUIRE(spi.getMOSI() == out); - } - - SECTION("Transmit + Smaller receive starting at the same time") - { - vector<uint8_t> out(40, 0x44); - xbee.setTxBuf(out.data(), out.size()); - - vector<uint8_t> packet, payload; - payload.resize(5, 0x55); - buildRxPacket(packet, payload); - - spi.addMISO(packet); - - xbee.transferData(); - - REQUIRE(spi.getMOSI() == out); - - vector<uint8_t> xbee_payload; - - xbee_payload.insert(xbee_payload.end(), xbee.rx_frame.begin(), - xbee.rx_frame.end()); - - REQUIRE(xbee_payload == payload); - } - - SECTION("Transmit + 2 receives") - { - vector<uint8_t> out(40, 0x44); - xbee.setTxBuf(out.data(), out.size()); - - vector<uint8_t> packet, payload; - payload.resize(5, 0x55); - buildRxPacket(packet, payload); - - spi.addMISO(packet); - - xbee.transferData(); - - REQUIRE(spi.getMOSI() == out); - - vector<uint8_t> xbee_payload; - - xbee_payload.insert(xbee_payload.end(), xbee.rx_frame.begin(), - xbee.rx_frame.end()); - - REQUIRE(xbee_payload == payload); - - // Receive 2 - - // Expcted output - spi.restoreState(); - xbee_payload.clear(); - - vector<uint8_t> expectedMOSI(packet.size(), 0x00); - - spi.addMISO(packet); - - xbee.transferData(); - - REQUIRE(spi.getMOSI() == expectedMOSI); - - xbee_payload.insert(xbee_payload.end(), xbee.rx_frame.begin(), - xbee.rx_frame.end()); - - REQUIRE(xbee_payload == payload); - } - - SECTION("Transmit + Bigger receive starting at the same time") - { - vector<uint8_t> out(20, 0x44); - xbee.setTxBuf(out.data(), out.size()); - - vector<uint8_t> packet, payload; - payload.resize(20, 0x55); - buildRxPacket(packet, payload); - - spi.addMISO(packet); - - xbee.transferData(); - - out.resize(packet.size(), 0); - REQUIRE(spi.getMOSI() == out); - - vector<uint8_t> xbee_payload; - - xbee_payload.insert(xbee_payload.end(), xbee.rx_frame.begin(), - xbee.rx_frame.end()); - - REQUIRE(xbee_payload == payload); - } - - SECTION("Transmit + Bigger receive starting later") - { - vector<uint8_t> out(20, 0x44); - xbee.setTxBuf(out.data(), out.size()); - - vector<uint8_t> packet, payload; - payload.resize(20, 0x55); - buildRxPacket(packet, payload); - packet.insert(packet.begin(), 10, 0x00); - - spi.addMISO(packet); - - xbee.transferData(); - - out.resize(packet.size(), 0); - REQUIRE(spi.getMOSI() == out); - - vector<uint8_t> xbee_payload; - - xbee_payload.insert(xbee_payload.end(), xbee.rx_frame.begin(), - xbee.rx_frame.end()); - - REQUIRE(xbee_payload == payload); - } - - SECTION("Transmit + Receive starting at incrementing bytes later") - { - for (int i = 0; i <= 20; i++) - { - vector<uint8_t> out(20, 0x44); - xbee.setTxBuf(out.data(), out.size()); - - vector<uint8_t> packet, payload; - payload.resize(2, 0x55); - - buildRxPacket(packet, payload); - - packet.insert(packet.begin(), i, 0x00); - spi.addMISO(packet); - - xbee.transferData(); - if(i == 20) - { - xbee.transferData(); - } - - if (out.size() < packet.size()) - { - out.resize(packet.size(), 0x00); - } - - REQUIRE(spi.getMOSI() == out); - - vector<uint8_t> xbee_payload; - - xbee_payload.insert(xbee_payload.end(), xbee.rx_frame.begin(), - xbee.rx_frame.end()); - - REQUIRE(xbee_payload == payload); - - spi.restoreState(); - } - }*/ -} diff --git a/old_examples/tests/catch/xbee/test-xbee-driver.cpp b/old_examples/tests/catch/xbee/test-xbee-driver.cpp deleted file mode 100644 index f6ccad0ccc1cdf050be6baa3988429dd2184e0e8..0000000000000000000000000000000000000000 --- a/old_examples/tests/catch/xbee/test-xbee-driver.cpp +++ /dev/null @@ -1,421 +0,0 @@ -/* Copyright (c) 2021 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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. - */ - -#ifdef STANDALONE_CATCH1_TEST -#include "../catch-tests-entry.cpp" -#endif -#include <drivers/spi/SPIDriver.h> -#include <radio/Xbee/Xbee.h> - -#include <catch2/catch.hpp> -#include <ctime> -#include <future> -#include <memory> - -#include "MockXbeeSPIBus.h" - -using namespace Xbee; -using std::async; -using std::unique_ptr; - -using uint8_ptr = unique_ptr<uint8_t>; - -/** - * @brief Generates a sequence of incremental bytes - */ -uint8_ptr incrementalBytes(size_t length, uint8_t start_from = 0) -{ - uint8_ptr bytes(new uint8_t[length]); - - for (size_t i = 0; i < length; i++) - { - bytes.get()[i] = (start_from + i) % 256; - } - - return bytes; -} - -class XbeeWrapper -{ -public: - XbeeWrapper(unsigned int tx_timeout) - : bus(new MockXbeeSPIBus(xbee_cfg, attn)), - xbee(new Xbee::Xbee(*bus.get(), xbee_cfg, cs, attn, rst, tx_timeout)) - { - attn.high(); - } - - MockGpioPin cs; - MockGpioPin attn; - - MockGpioPin rst; - - SPIBusConfig xbee_cfg{}; - - unique_ptr<MockXbeeSPIBus> bus; - unique_ptr<Xbee::Xbee> xbee; -}; - -TEST_CASE("[Xbee] Test xbee.send(...) by itself") -{ - uint8_ptr pkt = incrementalBytes(Xbee::MAX_PACKET_PAYLOAD_LENGTH + 1); - uint8_ptr pkt_orig = incrementalBytes(Xbee::MAX_PACKET_PAYLOAD_LENGTH + 1); - - XbeeWrapper wrap(DEFAULT_TX_TIMEOUT); - - SECTION("Middle payload length") - { - REQUIRE(wrap.xbee->send(pkt.get(), 128)); - REQUIRE(wrap.bus->getParsedFrames().size() > 0); - - REQUIRE(wrap.bus->getParsedFrames().front().frame_type == - Xbee::FTYPE_TX_REQUEST); - - TXRequestFrame tx_req = *wrap.bus->getParsedFrames() - .front() - .toFrameType<Xbee::TXRequestFrame>(); - - REQUIRE(tx_req.getRFDataLength() == 128); - REQUIRE(memcmp(tx_req.getRFDataPointer(), pkt_orig.get(), 128) == 0); - } - - SECTION("Max payload length") - { - REQUIRE(wrap.xbee->send(pkt.get(), Xbee::MAX_PACKET_PAYLOAD_LENGTH)); - REQUIRE(wrap.bus->getParsedFrames().size() > 0); - - REQUIRE(wrap.bus->getParsedFrames().front().frame_type == - Xbee::FTYPE_TX_REQUEST); - - TXRequestFrame tx_req = *wrap.bus->getParsedFrames() - .front() - .toFrameType<Xbee::TXRequestFrame>(); - - REQUIRE(tx_req.getRFDataLength() == Xbee::MAX_PACKET_PAYLOAD_LENGTH); - REQUIRE(memcmp(tx_req.getRFDataPointer(), pkt_orig.get(), - Xbee::MAX_PACKET_PAYLOAD_LENGTH) == 0); - } - - SECTION("Oversize payload") - { - REQUIRE_FALSE( - wrap.xbee->send(pkt.get(), Xbee::MAX_PACKET_PAYLOAD_LENGTH + 1)); - REQUIRE(wrap.bus->getParsedFrames().size() == 0); - } - - SECTION("No payload") - { - REQUIRE_FALSE(wrap.xbee->send(pkt.get(), 0)); - REQUIRE(wrap.bus->getParsedFrames().size() == 0); - } - - SECTION("Send error") - { - wrap.bus->setRespondWithTxStatus(true, DELS_NO_SPECTRUM_AVAILABLE); - - REQUIRE_FALSE( - wrap.xbee->send(pkt.get(), Xbee::MAX_PACKET_PAYLOAD_LENGTH)); - } - - SECTION("TX status timeout") - { - wrap.bus->setRespondWithTxStatus(false); - - long long start = miosix::getTick(); - - REQUIRE_FALSE( - wrap.xbee->send(pkt.get(), Xbee::MAX_PACKET_PAYLOAD_LENGTH)); - - // Should not have returned until the timeout has expired - REQUIRE(miosix::getTick() >= start + DEFAULT_TX_TIMEOUT); - } -} - -TEST_CASE("[Xbee] Test xbee.receive(...) by itself") -{ - uint8_ptr rx_buf(new uint8_t[MAX_PACKET_PAYLOAD_LENGTH]); - - uint8_ptr pkt = incrementalBytes(Xbee::MAX_PACKET_PAYLOAD_LENGTH); - - XbeeWrapper wrap(DEFAULT_TX_TIMEOUT); - - RXPacketFrame rx; - rx.setRXDataLength(MAX_PACKET_PAYLOAD_LENGTH); - memcpy(rx.getRXDataPointer(), pkt.get(), MAX_PACKET_PAYLOAD_LENGTH); - rx.setReceiveOptions(RO_POINT_MULTIPOINT); - rx.setSourceAddress(0x1122334455667788); - - SECTION("RX buffer bigger than RX packet payload") - { - rx.setRXDataLength(50); - rx.calcChecksum(); - - wrap.bus->pushApiFrame(rx); - - REQUIRE(wrap.xbee->receive(rx_buf.get(), MAX_PACKET_PAYLOAD_LENGTH) == - 50); - - REQUIRE(memcmp(rx_buf.get(), pkt.get(), 50) == 0); - } - - SECTION("RX buffer smaller than RX packet payload") - { - rx.setRXDataLength(130); - rx.calcChecksum(); - - wrap.bus->pushApiFrame(rx); - - REQUIRE(wrap.xbee->receive(rx_buf.get(), 50) == 50); - REQUIRE(wrap.xbee->receive(rx_buf.get() + 50, 50) == 50); - REQUIRE(wrap.xbee->receive(rx_buf.get() + 100, 50) == 30); - - REQUIRE(memcmp(rx_buf.get(), pkt.get(), 130) == 0); - } - - SECTION("RX buffer == 1") - { - rx.setRXDataLength(30); - rx.calcChecksum(); - - wrap.bus->pushApiFrame(rx); - - for (int i = 0; i < 30; i++) - { - REQUIRE(wrap.xbee->receive(rx_buf.get() + i, 1) == 1); - } - - REQUIRE(memcmp(rx_buf.get(), pkt.get(), 30) == 0); - } - - SECTION("RX packet with wrong checksum") - { - rx.setRXDataLength(20); - rx.calcChecksum(); - wrap.bus->pushApiFrame(rx); - - rx.setRXDataLength(21); - rx.calcChecksum(); - rx.setRXDataLength(20); // Now the checksum is wrong - wrap.bus->pushApiFrame(rx); - - // Only receive one of the two frames - REQUIRE(wrap.xbee->receive(rx_buf.get(), 50) == 20); - - auto dont_care = async(std::launch::async, - [&]() - { - miosix::Thread::sleep(1000); - wrap.xbee->wakeReceiver(true); - }); - - // This should block until we force it to return - REQUIRE(wrap.xbee->receive(rx_buf.get(), 50) == -1); - } - - SECTION("receive() blocks until an interrupt is received") - { - rx.setRXDataLength(20); - rx.calcChecksum(); - - // Send an rx frame in one second - auto dont_care = async(std::launch::async, - [&]() - { - miosix::Thread::sleep(1000); - wrap.bus->pushApiFrame(rx); - wrap.xbee->wakeReceiver(); - }); - - long long start = miosix::getTick(); - REQUIRE(wrap.xbee->receive(rx_buf.get(), 50) == 20); - - // Should not have returned before we sent the rx frame - REQUIRE(miosix::getTick() >= start + 1000); - } -} - -TEST_CASE("[Xbee] Receive while sending") -{ - uint8_ptr rx_buf(new uint8_t[MAX_PACKET_PAYLOAD_LENGTH]); - - uint8_ptr pkt_rx = incrementalBytes(Xbee::MAX_PACKET_PAYLOAD_LENGTH); - uint8_ptr pkt_tx = incrementalBytes(Xbee::MAX_PACKET_PAYLOAD_LENGTH); - - XbeeWrapper wrap(1000); - wrap.bus->setRespondWithTxStatus(true, 0); - - RXPacketFrame rx; - rx.setRXDataLength(MAX_PACKET_PAYLOAD_LENGTH); - memcpy(rx.getRXDataPointer(), pkt_rx.get(), MAX_PACKET_PAYLOAD_LENGTH); - rx.setReceiveOptions(RO_POINT_MULTIPOINT); - rx.setSourceAddress(0x1122334455667788); - - int num_rx_while_tx = 0; - - wrap.xbee->setOnFrameReceivedListener( - [&](APIFrame& api) - { - if (api.frame_type == FTYPE_RX_PACKET_FRAME) - { - ++num_rx_while_tx; - } - }); - - SECTION("2 RX packet smaller than one TX packet") - { - rx.setRXDataLength(50); - rx.calcChecksum(); - - wrap.bus->pushApiFrame(rx); - wrap.bus->pushApiFrame(rx); - - REQUIRE(wrap.xbee->send(pkt_tx.get(), 150)); - - REQUIRE(num_rx_while_tx == 2); - - size_t rx_len = 0; - while (rx_len < 100) - { - rx_len += wrap.xbee->receive(rx_buf.get() + rx_len, 200); - } - - REQUIRE(rx_len == 100); - REQUIRE(memcmp(rx_buf.get(), pkt_rx.get(), 50) == 0); - REQUIRE(memcmp(rx_buf.get() + 50, pkt_rx.get(), 50) == 0); - } - - SECTION("More RX packets than buffer size: drop the oldest") - { - rx.setRXDataLength(10); - - // 1 packet too many - unsigned int numpkts = RX_FRAMES_BUF_SIZE + 1; - for (unsigned int i = 0; i < numpkts; i++) - { - memcpy(rx.getRXDataPointer(), pkt_rx.get() + i, 10); - rx.calcChecksum(); - wrap.bus->pushApiFrame(rx); - } - - // Should receive all the packets while sending - REQUIRE(wrap.xbee->send(pkt_tx.get(), MAX_PACKET_PAYLOAD_LENGTH)); - - REQUIRE(num_rx_while_tx == numpkts); - - // Only receive the last three packets - size_t rx_len = 0; - while (rx_len < (numpkts - 1) * 10) - { - rx_len += wrap.xbee->receive(rx_buf.get() + rx_len, 200); - } - - REQUIRE(rx_len == (numpkts - 1) * 10); - - for (unsigned int i = 0; i < numpkts - 1; i++) - { - REQUIRE(memcmp(rx_buf.get() + i * 10, pkt_rx.get() + i + 1, 10) == - 0); - } - } - - SECTION("2 RX packet smaller than one TX packet, 1 byte receive") - { - rx.setRXDataLength(50); - rx.calcChecksum(); - - wrap.bus->pushApiFrame(rx); - wrap.bus->pushApiFrame(rx); - - REQUIRE(wrap.xbee->send(pkt_tx.get(), 150)); - - REQUIRE(num_rx_while_tx == 2); - - for (int i = 0; i < 50; i++) - { - REQUIRE(wrap.xbee->receive(rx_buf.get() + i, 1) == 1); - } - REQUIRE(memcmp(rx_buf.get(), pkt_rx.get(), 50) == 0); - - for (int i = 0; i < 50; i++) - { - REQUIRE(wrap.xbee->receive(rx_buf.get() + i, 1) == 1); - } - REQUIRE(memcmp(rx_buf.get(), pkt_rx.get(), 50) == 0); - } -} - -TEST_CASE("[Xbee] Test Xbee::sendAtCommand(...)") -{ - XbeeWrapper wrap(DEFAULT_TX_TIMEOUT); - - SECTION("AT Command, no response required") - { - wrap.xbee->sendATCommand("AB"); - - REQUIRE(wrap.bus->getParsedFrames().size() > 0); - REQUIRE(wrap.bus->getParsedFrames()[0].frame_type == FTYPE_AT_COMMAND); - } - - SECTION("AT Command, response required but not received") - { - ATCommandResponseFrame response; - long long start = miosix::getTick(); - REQUIRE_FALSE( - wrap.xbee->sendATCommand("AB", &response, nullptr, 0, 1000)); - REQUIRE(miosix::getTick() >= start + 1000); - - REQUIRE(wrap.bus->getParsedFrames().size() > 0); - REQUIRE(wrap.bus->getParsedFrames()[0].frame_type == FTYPE_AT_COMMAND); - } - - SECTION("AT Command, response required and received") - { - // Padding required in order to not receive the ATCommandResponse - // frame too early in testing - RXPacketFrame padding; - padding.setRXDataLength(50); - padding.calcChecksum(); - - ATCommandResponseFrame resp; - resp.setATCommand("AB"); - resp.setFrameID(1); - resp.setCommandDataSize(1); - resp.getCommandDataPointer()[0] = 0xAB; - resp.calcChecksum(); - - wrap.bus->pushApiFrame(padding); - wrap.bus->pushApiFrame(resp); - - ATCommandResponseFrame received_response; - long long start = miosix::getTick(); - - REQUIRE(wrap.xbee->sendATCommand("AB", &received_response, nullptr, 0, - 1000)); - REQUIRE(miosix::getTick() < start + 1000); - - REQUIRE(wrap.bus->getParsedFrames().size() > 0); - REQUIRE(wrap.bus->getParsedFrames()[0].frame_type == FTYPE_AT_COMMAND); - - REQUIRE(received_response.getCommandDataLength() == 1); - REQUIRE(received_response.getCommandDataPointer()[0] == 0xAB); - } -} diff --git a/old_examples/tests/drivers/flashmemory/mockup/FlashDriver.h b/old_examples/tests/drivers/flashmemory/mockup/FlashDriver.h deleted file mode 100644 index 0d6b1462087c25c60653527443d5266446690cec..0000000000000000000000000000000000000000 --- a/old_examples/tests/drivers/flashmemory/mockup/FlashDriver.h +++ /dev/null @@ -1,598 +0,0 @@ -/* Copyright (c) 2020 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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. - */ - -#pragma once - -#include <Singleton.h> -#include <diagnostic/NewLogger.h> -#include <miosix.h> - -using logging::logger; -using miosix::Mode; -using miosix::Thread; - -// Forward declaration -namespace testing -{ -namespace flashmemorytests -{ -template <typename> -class FlashTest; -} -} // namespace testing - -namespace flashmemory -{ - -static const uint32_t PAGES_PER_SUBSECTOR = 4U; -static const uint32_t PAGES_PER_SECTOR = 16U; -static const uint32_t SUBSECTORS_PER_SECTOR = 4U; - -static const uint32_t SUBSECTORS_NUM = 48U; -static const uint32_t SECTORS_NUM = 12U; -static const uint32_t PAGE_SIZE = 256U; - -static const uint32_t SUBSECTOR_SIZE = PAGE_SIZE * PAGES_PER_SUBSECTOR; -static const uint32_t SECTOR_SIZE = PAGE_SIZE * PAGES_PER_SECTOR; - -static const uint32_t BANK_SIZE = SECTOR_SIZE * SECTORS_NUM / 2; -static const uint32_t MEMORY_SIZE = SECTOR_SIZE * SECTORS_NUM; - -/** - * @brief Definitions for results of various flash operations. - * - * Definitions for result flags of various flash operations. - */ - -enum OpResultFlags -{ - RESULT_OK = 0x00, - - RESULT_F_OUT_OF_MEMORY = 0x01, - RESULT_F_CHECK_FAIL = 0x04, - - // Bits reserved for future use - RESULT_F_UNUSED_1 = 0x08, - RESULT_F_UNUSED_2 = 0x40, - RESULT_F_UNUSED_3 = 0x80, - - /** - * These bits are in the same positions of the corresponding bits in the - * FLAG STATUS REGISTER - */ - RESULT_F_PROTECTION_ERROR = 0x02, - RESULT_F_PROGRAM_ERROR = 0x10, - RESULT_F_ERASE_ERROR = 0x20 -}; - -template <typename Bus> -class FlashDriver : Singleton<FlashDriver<Bus>> -{ - typedef Singleton<FlashDriver<Bus>> SingletonType; - - friend class Singleton<FlashDriver<Bus>>; - - template <typename> - friend class FlashDriverTest; - - template <typename> - friend class testing::flashmemorytests::FlashTest; - -public: - ~FlashDriver() { delete fake_memory_; } - - /** - * @brief Read n bytes into a buffer, starting from the specified address - * - * @param result - * @param address Starting address - * @param buf Buffer to read data into - * @param size Number of bytes to read - */ - void read(uint8_t* result, uint32_t address, uint8_t* buf, uint32_t size) - { - if (address + size > MEMORY_SIZE) - { - logger.error(logtag(), - "Read outside of memory bounds addr + size: ", - address + size, " MEMSIZE: ", MEMORY_SIZE); - *result = RESULT_F_OUT_OF_MEMORY; - return; - } - - uint32_t rsize; - if (address < BANK_SIZE) - rsize = std::min(size, BANK_SIZE - address); - else - rsize = size; - - // uint8_t addr_buf[4]; - // addr_to_buf(addr_buf, address); - - fakeRead(address, buf, rsize); - // Bus::read(READ, addr_buf, buf, 4, rsize); - - size -= rsize; - - // This means that we reached the end of the first die but we still need - // to read some data. - if (size > 0) - { - address += rsize; - buf += rsize; - - // addr_to_buf(addr_buf, address); - - // Read the remaining bytes - fakeRead(address, buf, size); - // Bus::read(READ, addr_buf, buf, 4, size); - } - - *result = RESULT_OK; - } - - /** - * @brief Writes data on the flash starting from the specified address. - * - * @param address - * @param data - * @param size - */ - void write(uint8_t* result, uint32_t address, uint8_t* data, uint32_t size) - { - // Do not write outside of the memory - if (address + size > MEMORY_SIZE) - { - *result = RESULT_F_OUT_OF_MEMORY; - return; - } - - *result = RESULT_OK; - - // uint8_t addr_buf[4], status; - - uint32_t next_page, wsize; - - do - { - next_page = (address / 256) * 256 + 256; - - wsize = std::min(next_page - address, size); - - // addr_to_buf(addr_buf, address); - //_write_enable(); - - fakeWrite(address, data, wsize); - /*Bus::write(PROGRAM_PAGE, addr_buf, data, 4, wsize); - - do { - status = _read_flag_status_reg(); - }while((status & FSR_PRG_ERS_CTRL) == 0);*/ - - data += wsize; - size -= wsize; - address = next_page; - - } while (size > 0 && *result == RESULT_OK); - - /*//Clear flag status register if an error occurred - if(*result != RESULT_OK) - { - _clear_flag_status_reg(); - - //Manually reset write_enable latch - if((*result & RESULT_PROTECTION_ERROR) > 0) - { - _write_disable(); - } - }*/ - } - - /** - * @brief Writes data on the flash starting from the specified address, then - * checks if everything was written correctly. - * - * @param address - * @param data - * @param size - */ - void writeAndCheck(uint8_t* result, uint32_t address, uint8_t* data, - uint32_t size) - { // TODO: size_t - write(result, address, data, size); - if (*result == RESULT_OK) - { - uint8_t* check = new uint8_t[size]; - read(result, address, check, size); - for (uint32_t i = 0; i < size; i++) - { - if (*check++ != *data++) - { - // Something was not written/read correctly. - *result = RESULT_F_CHECK_FAIL; - break; - } - } - } - } - - /** - * @brief Writes data on the flash starting from the specified address, only - * if the provided data fits in a single page. - * - * Writes data on the flash starting from the specified address, only - * if the provided data fits in a single page. If too much data is provided - * nothing will be written and result will be set to FLASH_OUT_OF_RANGE. - * - * @param result - * @param address - * @param data - * @param size - */ - void programPage(uint8_t* result, uint32_t address, uint8_t* data, - uint32_t size) - { - /*//Do now wrap around a page and do not try to write outside of the - memory uint32_t next_page = (address / 256)*256 + 256; if(address + - size > next_page || address > MEMORY_SIZE) - { - *result = RESULT_OUT_OF_RNG; - return; - } - - uint8_t addr_buf[4], status; - addr_to_buf(addr_buf, address); - - _write_enable(); - Bus::write(PROGRAM_PAGE, addr_buf, data, 4, size); - - do { - status = _read_flag_status_reg(); - }while((status & FSR_PRG_ERS_CTRL) == 0); - - *result = status & (FSR_PROGRAM | FSR_PROTECTION); - - //Clear flag status register if an error has been encountered - if(*result != RESULT_OK) - { - _clear_flag_status_reg(); - - //Manually reset write_enable latch - if((*result & RESULT_PROTECTION_ERROR) > 0) - { - _write_disable(); - } - }*/ - } - - /** - * @brief Enables or disables read only mode - */ - void setReadOnly(bool readonly = true) { read_only_ = readonly; } - - bool isReadOnly() const { return read_only_; } - - /** - * @brief Enable the next erase operation. Call this before every erase op. - */ - void enableErase() { m_erase_enable_ = true; } - - /** - * @brief Erases the subsector containing the specified address. For the - * operation to be successful, enable_erase_op must be called before this. - * - * @warning Estimated execution time is slightly less than 1 second. - * - * @param result - * @param address - */ - void eraseSubsector(uint8_t* result, uint32_t address) - { - erase(result, SUBSECTOR_ERASE, address); - } - - /** - * @brief Erases the sector containing the specified address. For the - * operation to be successful, enable_erase_op must be called before this. - * @warning Estimated execution time is about 2 seconds. - * - * @param result - * @param address - */ - void eraseSector(uint8_t* result, uint32_t address) - { - erase(result, SECTOR_ERASE, address); - } - - /** - * @brief Erases the entire die containing the specified address. For the - * operation to be successful, enable_erase_op must be called before this. - * @warning Estimated execution time is more than 4 minutes. - * - * @param result - * @param die: 0 to erase the first die, 1 to erase the second. - */ - void eraseDie(uint8_t* result, uint8_t die) - { - if (die == 0) - { - erase(result, DIE_ERASE, 0); - } - else if (die == 1) - { - erase(result, DIE_ERASE, BANK_SIZE); - } - } - - /** - * Reads id information for this flash memory. - * @param buf Buffer with at least 20 bytes - */ - void readId(uint8_t* buf) - { - // Bus::read(READ_ID, buf, 20); - } - - /** - * @brief Software reset for the memory. All volatile bits are set to their - * default value. - */ - void softReset() - { - /*Bus::write(RESET_ENABLE); - usleep(5); - Bus::write(RESET_MEMORY); - _wait_until_ready();*/ - } - -private: - FlashDriver() - { - printf("Mock memory size: %d\n", (int)MEMORY_SIZE); - memset((void*)(fake_memory_), 0xFF, MEMORY_SIZE); - } - - void erase(uint8_t* result, uint8_t erase_cmd, uint32_t address) - { - if (address > MEMORY_SIZE) - { - *result = RESULT_F_OUT_OF_MEMORY; - return; - } - - if (!m_erase_enable_) - { - *result = RESULT_F_ERASE_ERROR; - return; - } - - // uint8_t addr_buf[4], status; - // addr_to_buf(addr_buf, address); - *result = RESULT_OK; - switch (erase_cmd) - { - case SUBSECTOR_ERASE: - address = address / SUBSECTOR_SIZE * SUBSECTOR_SIZE; - fakeErase(address, SUBSECTOR_SIZE); - break; - case SECTOR_ERASE: - address = address / SECTOR_SIZE * SECTOR_SIZE; - fakeErase(address, SECTOR_SIZE); - break; - case DIE_ERASE: - address = address / BANK_SIZE * BANK_SIZE; - fakeErase(address, BANK_SIZE); - break; - default: - *result = RESULT_F_ERASE_ERROR; - } - - m_erase_enable_ = false; - } - - /** - * @brief Checks if a program operation is still in progress. - * @param result - */ - bool isBusy() - { - return false; //_read_flag_status_reg() & FSR_PRG_ERS_CTRL; - } - - /** - * @brief Waits until the memory is ready to perform a new write/erase op. - * @param result - */ - void waitUntilReady() - { - /*while((_read_flag_status_reg() & FSR_PRG_ERS_CTRL) == 0) - { - - }*/ - } - - uint8_t readStatusReg() - { - return 0; - /*uint8_t ret = Bus::read(READ_STATUS_REG); - return ret;*/ - } - - void writeStatusReg(uint8_t val) - { - /*_write_enable(); - Bus::write(WRITE_STATUS_REG, val); - _write_disable(); - _wait_until_ready();*/ - } - - uint8_t readFlagStatusReg() - { - /*uint8_t ret = Bus::read(READ_FLAG_STATUS_REG); - return ret;*/ - return 0; - } - - void clearFlagStatusReg() - { - // Bus::write(CLEAR_FLAG_STATUS_REG); - } - - uint16_t readConfigReg() - { - /*uint8_t buf[2]; - Bus::read(READ_NV_CONFIG_REG, buf, 2); - - uint16_t res = buf[0] | (buf[1] << 8);*/ - - return 0; - } - - void writeConfigReg(uint16_t val) - { - /* - * Mask some of the bits of the config register because - * we don't want to change them by accident. - */ - /*val = val | 0x0FEC; - - uint8_t buf[2]; - buf[0] = val & 0xFF; - buf[1] = (val >> 8) & 0xFF; - - _write_enable(); - Bus::write(WRITE_NV_CONFIG_REG, buf, 2); - _write_disable(); - _wait_until_ready();*/ - } - - void writeEnable() - { - /*if(!m_read_only) { - Bus::write(WRITE_ENABLE); - }*/ - } - - void writeDisable() - { - // Bus::write(WRITE_DISABLE); - } - - static void addrToBuf(uint8_t* buf, uint32_t addr) - { - for (int i = 0; i < 4; i++) - { - buf[3 - i] = (addr >> 8 * i) & 0xFF; - } - } - - void fakeRead(uint32_t address, uint8_t* data, uint32_t size) - { - // printf("Reading %d bytes from %d \n", (int)size, (int)address); - if (address + size > MEMORY_SIZE) - { - return; - } - - memcpy((void*)(data), (void*)(fake_memory_ + address), size); - } - - void fakeWrite(uint32_t address, uint8_t* data, uint32_t size) - { - if (address + size > MEMORY_SIZE) - { - return; - } - - for (uint32_t i = 0; i < size; i++) - { - fake_memory_[address + i] &= data[i]; - } - - // memcpy((void*)(fake_memory_ + address), (void*)(data), size); - } - - void fakeErase(uint32_t address, uint32_t size) - { - if (address + size > MEMORY_SIZE) - { - return; - } - - memset((void*)(fake_memory_ + address), 0xFF, size); - } - - static std::string logtag() { return "FlashDriver"; } - - enum Commands - { - READ_ID = 0x9F, - - WRITE_ENABLE = 0x06, - WRITE_DISABLE = 0x04, - - READ_STATUS_REG = 0x05, - WRITE_STATUS_REG = 0x01, - - READ_FLAG_STATUS_REG = 0x70, - CLEAR_FLAG_STATUS_REG = 0x50, - - // non-volatile configuration register - READ_NV_CONFIG_REG = 0xB5, - WRITE_NV_CONFIG_REG = 0xB1, - - // volatile configuration register - WRITE_VOL_CONFIG_REG = 0x85, - READ_VOL_CONFIG_REG = 0x81, - - READ_EXT_ADDRESS_REG = 0xC8, - WRITE_EXT_ADDRESS_REG = 0xC5, - - RESET_ENABLE = 0x66, - RESET_MEMORY = 0x99, - - READ = 0x03, - PROGRAM_PAGE = 0x02, - - SUBSECTOR_ERASE = 0x20, - SECTOR_ERASE = 0xD8, - DIE_ERASE = 0xC4 - }; - - uint8_t* fake_memory_ = new uint8_t[MEMORY_SIZE]; - bool read_only_ = false; - bool m_erase_enable_ = false; - - /** - * Flag status register bit definitions - */ - static const uint8_t FSR_ADDRESSING_MODE = 0x01; - static const uint8_t FSR_PROTECTION = 0x02; - static const uint8_t FSR_PROGRAM_SUSPEND = 0x04; - static const uint8_t FSR_VPP = 0x08; - static const uint8_t FSR_PROGRAM = 0x10; - static const uint8_t FSR_ERASE = 0x20; - static const uint8_t FSR_ERASE_SUSPEND = 0x40; - static const uint8_t FSR_PRG_ERS_CTRL = 0x80; -}; - -} // namespace flashmemory diff --git a/old_examples/tests/drivers/test-ad7994-bare.cpp b/old_examples/tests/drivers/test-ad7994-bare.cpp deleted file mode 100644 index fddbddef2d6e50f91dbd1f4098c047cfa249e7be..0000000000000000000000000000000000000000 --- a/old_examples/tests/drivers/test-ad7994-bare.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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 <drivers/BusTemplate.h> -#include <miosix.h> - -#include <cstdint> -#include <cstdio> - -using namespace miosix; - -const uint8_t ADDRESS = 0x22 << 1; -const uint8_t REG_CONFIG = 0x02; -const uint8_t DEFAULT_CONFIG = 0x08; - -typedef ProtocolI2C<I2C1Driver> my_i2c1; - -int main() -{ - // soft_i2c::init(); - my_i2c1::init(); - - uint8_t reg_config = REG_CONFIG; - uint8_t config_val = 0x0A; - uint8_t config_read_val; - for (;;) - { - // Read default value - my_i2c1::directWrite(ADDRESS, ®_config, 1); - my_i2c1::directRead(ADDRESS, &config_read_val, 1); - - if (config_read_val == DEFAULT_CONFIG) - { - printf("1. Read ok.\n"); - } - else - { - printf("1. ERROR. read: %d\n", config_read_val); - } - Thread::sleep(200); - // Write custom value and read back. - my_i2c1::write(ADDRESS, REG_CONFIG, &config_val, 1); - my_i2c1::directRead(ADDRESS, &config_read_val, 1); - - if (config_read_val == config_val) - { - printf("2. Read ok.\n"); - } - else - { - printf("2. ERROR. read: %d\n", config_read_val); - } - - Thread::sleep(200); - // Read back the wrong way - config_read_val = 0; - my_i2c1::read(ADDRESS, REG_CONFIG, &config_read_val, 1); - - if (config_read_val != config_val) - { - printf("3. OK. Reading the wrong way doesn't work as expected\n"); - } - else - { - printf("3. ERROR. Succesfully read when it should't\n"); - } - printf("\n\n"); - Thread::sleep(1500); - } -} diff --git a/old_examples/tests/drivers/test-ad7994.cpp b/old_examples/tests/drivers/test-ad7994.cpp deleted file mode 100644 index 4875e22d6a38c05e7cb69f93defff678243086e1..0000000000000000000000000000000000000000 --- a/old_examples/tests/drivers/test-ad7994.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Authors: Luca Erbetta, Nuno Barcellos - * - * 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 <drivers/BusTemplate.h> -#include <drivers/adc/AD7994.h> -#include <miosix.h> - -using namespace miosix; - -// Homeone and deathstack already define pins -#include <interfaces-impl/hwmapping.h> -using I2CProtocol = ProtocolI2C<miosix::I2C1Driver>; - -using convst = miosix::sensors::ad7994::nconvst; -using busy = miosix::sensors::ad7994::ab; -static constexpr uint8_t addr = miosix::sensors::ad7994::addr; - -typedef AD7994<I2CProtocol, busy, convst> AD7994_t; - -int main() -{ - convst::mode(Mode::OUTPUT); - - AD7994_t ad{addr}; - if (ad.init()) - printf("Init succeeded\n"); - else - printf("Init failed\n"); - - ad.enableChannel(AD7994_t::Channel::CH1); - ad.enableChannel(AD7994_t::Channel::CH2); - ad.enableChannel(AD7994_t::Channel::CH3); - ad.enableChannel(AD7994_t::Channel::CH4); - - AD7994Sample sample1, sample2, sample3, sample4; - - for (;;) - { - if (ad.onSimpleUpdate()) - { - sample1 = ad.getLastSample(AD7994_t::Channel::CH1); - sample2 = ad.getLastSample(AD7994_t::Channel::CH2); - sample3 = ad.getLastSample(AD7994_t::Channel::CH3); - sample4 = ad.getLastSample(AD7994_t::Channel::CH4); - printf("timestamp: %d value: %d\n", (int)sample1.timestamp, - (int)sample1.value); - printf("timestamp: %d value: %d\n", (int)sample2.timestamp, - (int)sample2.value); - printf("timestamp: %d value: %d\n", (int)sample3.timestamp, - (int)sample3.value); - printf("timestamp: %d value: %d\n\n", (int)sample4.timestamp, - (int)sample4.value); - } - - Thread::sleep(1000); - } -} diff --git a/old_examples/tests/drivers/test-i2c-mpu9255.cpp b/old_examples/tests/drivers/test-i2c-mpu9255.cpp deleted file mode 100644 index fdb4778f69f71b563748d914971a94c65a96a51f..0000000000000000000000000000000000000000 --- a/old_examples/tests/drivers/test-i2c-mpu9255.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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 <drivers/BusTemplate.h> -#include <miosix.h> -#include <util/software_i2c.h> - -#include <cstdint> -#include <cstdio> - -using namespace miosix; - -const uint8_t ADDRESS = 0x68 << 1; -const uint8_t WHO_AM_I = 0x73; -const uint8_t REG_WHO_AM_I = 117; // Register 117 - -typedef ProtocolI2C<I2C1Driver> my_i2c1; - -typedef Gpio<GPIOB_BASE, 8> scl; -typedef Gpio<GPIOB_BASE, 9> sda; - -using soft_i2c = SoftwareI2C<sda, scl>; - -void masterRead(uint8_t bit7_address, uint8_t reg_address, uint8_t *data, - int len) -{ - int i = 0; - soft_i2c::sendStart(); - soft_i2c::send((bit7_address)); - soft_i2c::send(reg_address); - soft_i2c::sendRepeatedStart(); - soft_i2c::send((bit7_address) + 1); - - for (i = 0; i < (len - 1); i++) - data[i] = soft_i2c::recvWithAck(); - - data[len - 1] = soft_i2c::recvWithNack(); - - soft_i2c::sendStop(); -} - -int main() -{ - // soft_i2c::init(); - - my_i2c1::init(); - - uint8_t who_am_i; - for (;;) - { - long long s = miosix::getTick(); - my_i2c1::read(ADDRESS, REG_WHO_AM_I, &who_am_i, 1); - long long d = miosix::getTick() - s; - - if (who_am_i == WHO_AM_I) - { - printf("Read ok. (%d)\n", (int)d); - } - else - { - printf("ERROR. read: %d\n", who_am_i); - } - Thread::sleep(1500); - } -} diff --git a/old_examples/tests/drivers/test-imu-adis.cpp b/old_examples/tests/drivers/test-imu-adis.cpp deleted file mode 100644 index 777c33d8f60da0d7f638fdaaf3ec229f54af6a4e..0000000000000000000000000000000000000000 --- a/old_examples/tests/drivers/test-imu-adis.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/* Copyright (c) 2018 Skyward Experimental Rocketry - * Author: Nuno Barcellos - * - * 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 <Common.h> -#include <diagnostic/CpuMeter.h> -#include <drivers/BusTemplate.h> -#include <drivers/spi/SensorSpi.h> -#include <interfaces-impl/hwmapping.h> -#include <sensors/ADIS16405/ADIS16405.h> -#include <sensors/SensorSampler.h> -#include <utils/Stats/Stats.h> - -using namespace miosix; -using namespace miosix::interfaces; - -// Reset pin -typedef Gpio<GPIOD_BASE, 5> rstPin; // PD5 for the HomeoneBoard - -// SPI1 binding to the sensor -typedef BusSPI<1, spi1::mosi, spi1::miso, spi1::sck> busSPI1; // Create SPI1 -typedef ProtocolSPI<busSPI1, miosix::sensors::adis16405::cs> - spiADIS16405; // La lego al Chip Select 1 per la IMU 1 - -int main() -{ - spiADIS16405::init(); - - Thread::sleep(1000); - ADIS16405<spiADIS16405, rstPin>* adis = - new ADIS16405<spiADIS16405, rstPin>(adis->GYRO_FS_300); - - if (adis->init()) - printf("[ADIS16405] Init succeeded\n"); - else - printf("[ADIS16405] Init failed\n"); - - if (adis->selfTest()) - printf("[ADIS16405] Self test succeeded\n"); - else - printf("[ADIS16405] Self test failed\n"); - - SimpleSensorSampler sampler(250, 1); - sampler.addSensor(adis, std::bind([&]() {})); - - StatsResult statResult; - Stats stats; - - int counter = 0; - - while (true) - { - sampler.sampleAndCallback(); - - stats.add(averageCpuUtilization()); - - if (counter == 2500) - { - statResult = stats.getStats(); - printf("CPU usage: %f\n", statResult.mean); - counter = 0; - - const Vec3* last_data = adis->accelDataPtr(); - printf("%f %f %f\n", last_data->getX(), last_data->getY(), - last_data->getZ()); - } - counter++; - - Thread::sleep(100); - } -} diff --git a/old_examples/tests/drivers/test-lsm.cpp b/old_examples/tests/drivers/test-lsm.cpp deleted file mode 100644 index 6f0dbc430be8d67b25d945007e6c9519df8647b5..0000000000000000000000000000000000000000 --- a/old_examples/tests/drivers/test-lsm.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Nuno Barcellos - * - * 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 <Common.h> -#include <diagnostic/CpuMeter.h> -#include <drivers/BusTemplate.h> -#include <drivers/spi/SensorSpi.h> -#include <interfaces-impl/hwmapping.h> -#include <sensors/LSM6DS3H/LSM6DS3H.h> -#include <sensors/SensorSampler.h> -#include <utils/Stats/Stats.h> - -using namespace miosix; -using namespace miosix::interfaces; - -/* SPI1 binding to the sensor */ -typedef BusSPI<1, spi1::mosi, spi1::miso, spi1::sck> busSPI1; -typedef ProtocolSPI<busSPI1, sensors::lsm6ds3h::cs> spiLSM6DS3H0_a; - -int main() -{ - SimpleSensorSampler sampler(250, 1); - spiLSM6DS3H0_a::init(); - - LSM6DS3H<spiLSM6DS3H0_a>* lsm6ds3h = new LSM6DS3H<spiLSM6DS3H0_a>(3, 3); - - if (lsm6ds3h->init()) - { - printf("[LSM6DS3H] Init succeeded\n"); - sampler.addSensor(lsm6ds3h, std::bind([&]() {})); - } - else - { - printf("[LSM6DS3H] Init failed\n"); - - while (!lsm6ds3h->init()) - { - printf("[LSM6DS3H] Init failed\n"); - Thread::sleep(1000); - } - } - - while (true) - { - sampler.sampleAndCallback(); - - // const Vec3* last_data = lsm6ds3h->gyroDataPtr(); - // printf("%f %f %f\n", last_data->getX(), last_data->getY(), - // last_data->getZ()); - - const Vec3* last_data = lsm6ds3h->accelDataPtr(); - printf("%f %f %f\n", last_data->getX(), last_data->getY(), - last_data->getZ()); - - // const float* last_temp = lsm6ds3h->tempDataPtr(); - // printf("temp: %f\n", *last_temp); - - Thread::sleep(100); - } -} diff --git a/old_examples/tests/drivers/test-piksi.cpp b/old_examples/tests/drivers/test-piksi.cpp deleted file mode 100644 index a850afdf7e4ffaad156d80beece2cc11c4334775..0000000000000000000000000000000000000000 --- a/old_examples/tests/drivers/test-piksi.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* Copyright (c) 2017 Skyward Experimental Rocketry - * Author: Federico Terraneo - * - * 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 <drivers/old_examples/piksi/piksi.h> -#include <time.h> - -#include <iostream> -using namespace std; - -#ifdef _MIOSIX - -#include <miosix.h> -using namespace miosix; - -#endif //_MIOSIX - -// Polling test, usng getGpsData() - -int main() -{ -#ifdef _MIOSIX - - Piksi piksi("/dev/gps"); -#else //_MIOSIX - Piksi piksi("/dev/ttyUSB0"); -#endif //_MIOSIX - for (;;) - { - Thread::sleep(200); - try - { - auto gps = piksi.getGpsData(); -#ifdef _MIOSIX - long long now = getTick(); -#else //_MIOSIX - long long now = clock() / (CLOCKS_PER_SEC / 1000); -#endif //_MIOSIX - cout << " t: " << gps.timestamp << " lat: " << gps.latitude - << " lon: " << gps.longitude << " h: " << gps.height - << " vn: " << gps.velocityNorth << " ve: " << gps.velocityEast - << " vd: " << gps.velocityDown << " ns: " << gps.numSatellites - << " now: " << now; - } - catch (...) - { - cout << "---" << endl; - } - } -} - -// Blocking wait test, using waitForGpsData() - -// int main() -// { -// #ifdef _MIOSIX -// Piksi piksi("/dev/gps"); -// #else //_MIOSIX -// Piksi piksi("/dev/ttyUSB0"); -// #endif //_MIOSIX -// -// for(;;) -// { -// auto gps=piksi.waitForGpsData(); -// #ifdef _MIOSIX -// long long now=getTick(); -// #else //_MIOSIX -// long long now=clock()/(CLOCKS_PER_SEC/1000); -// #endif //_MIOSIX -// cout<<" t: "<<now-gps.timestamp -// <<" lat: "<<gps.latitude -// <<" lon: "<<gps.longitude -// <<" h: "<<gps.height -// <<" vn: "<<gps.velocityNorth -// <<" ve: "<<gps.velocityEast -// <<" vd: "<<gps.velocityDown -// <<" ns: "<<gps.numSatellites<<endl; -// } -// } diff --git a/old_examples/tests/drivers/test-spi2.cpp b/old_examples/tests/drivers/test-spi2.cpp deleted file mode 100644 index 95a32075ac9c0d3848f3a97d7a9f5bd3695c68c3..0000000000000000000000000000000000000000 --- a/old_examples/tests/drivers/test-spi2.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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 <drivers/BusTemplate.h> -#include <interfaces-impl/hwmapping.h> - -using namespace miosix; -using namespace interfaces; - -typedef BusSPI<2, spi2::mosi, spi2::miso, spi2::sck> busSPI2; // Creo la SPI2 -typedef ProtocolSPI<busSPI2, xbee::cs> pspi2; - -int main() -{ - pspi2::init(); - Thread::sleep(200); - for (;;) - { - pspi2::write(0x45); - uint8_t r = pspi2::read(0xF6); - printf("%d\n", r); - - Thread::sleep(500); - } -} diff --git a/old_examples/tests/drivers/test-tempSensor.cpp b/old_examples/tests/drivers/test-tempSensor.cpp deleted file mode 100644 index dda827a51484229a9a420b2b97a6478e0e63f81e..0000000000000000000000000000000000000000 --- a/old_examples/tests/drivers/test-tempSensor.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Alessio Galluccio - * - * 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 <Common.h> -#include <drivers/BusTemplate.h> -#include <sensors/LM75B.h> - -using namespace miosix; - -#include <interfaces-impl/hwmapping.h> -using I2CProtocol = ProtocolI2C<miosix::I2C1Driver>; - -uint8_t addr1 = 0x48 << 1; -uint8_t addr2 = 0x49 << 1; - -typedef LM75B<I2CProtocol> LM75BType; -int main() -{ - LM75BType temp1{addr1}; - LM75BType temp2{addr2}; - Thread::sleep(500); - - while (true) - { - bool result1 = temp1.selfTest(); - bool result2 = temp2.selfTest(); - - miosix::ledOn(); - TRACE("LM75B self test result: temp1=%d temp2=%d\n", result1, result2); - Thread::sleep(500); - miosix::ledOff(); - Thread::sleep(500); - TRACE("LM75B (1) temperature: %f\n", temp1.getTemp()); - TRACE("LM75B (2) temperature: %f\n", temp2.getTemp()); - } -} diff --git a/old_examples/tests/drivers/test-unit-LM75B.cpp b/old_examples/tests/drivers/test-unit-LM75B.cpp deleted file mode 100644 index 01b7efb14f93ef220d202fdf4afa9eaba825ab6a..0000000000000000000000000000000000000000 --- a/old_examples/tests/drivers/test-unit-LM75B.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright (c) 2019 Skyward Experimental Rocketry - * Author: Luca Erbetta - * - * 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. - */ - -#define private public - -#ifdef STANDALONE_CATCH1_TEST -#include "catch-tests-entry.cpp" -#endif - -#include <Common.h> -#include <sensors/LM75B.h> - -#include <catch2/catch.hpp> - -using namespace miosix; - -#include <interfaces-impl/hwmapping.h> -using I2CProtocol = ProtocolI2C<miosix::I2C1Driver>; -typedef LM75B<I2CProtocol> LM75BType; - -// TODO sistemare la codifica di {0x80, 0x00}, che -// per qualche ragione, diventa positiva -TEST_CASE("[LM75B] temperature") -{ - uint8_t addr1 = 0x48 << 1; - LM75BType temp1{addr1}; - - SECTION("[LM75B] positive temperature") - { - uint8_t temp_array[2] = {0x10, 0x10}; - REQUIRE(temp1.computeTemp(temp_array) == Approx(16.0).epsilon(0.001)); - } - - SECTION("[LM75B] negative temperature") - { - uint8_t temp_array[2] = {0x80, 0x10}; - REQUIRE(temp1.computeTemp(temp_array) == - Approx(-127.875).epsilon(0.001)); - } - - SECTION("[LM75B] zero temperature") - { - uint8_t temp_array[2] = {0x00, 0x00}; - REQUIRE(temp1.computeTemp(temp_array) == Approx(0).epsilon(0.001)); - } - - SECTION("[LM75B] max temperature") - { - uint8_t temp_array[2] = {0x7F, 0xFF}; - REQUIRE(temp1.computeTemp(temp_array) == - Approx(127.875).epsilon(0.001)); - } - - SECTION("[LM75B] min temperature") - { - uint8_t temp_array[2] = {0x80, 0x01}; - REQUIRE(temp1.computeTemp(temp_array) == - Approx(-127.875).epsilon(0.001)); - } -}