<?xml version="1.0" encoding="UTF-8"?>
<device schemaVersion="1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_1.xsd">
  <name>STM32F301</name>
  <version>1.9</version>
  <description>STM32F301</description>
  <cpu>
    <name>CM4</name>
    <revision>r1p0</revision>
    <endian>little</endian>
    <mpuPresent>true</mpuPresent>
    <fpuPresent>true</fpuPresent>
    <nvicPrioBits>4</nvicPrioBits>
    <vendorSystickConfig>false</vendorSystickConfig>
  </cpu>
  <addressUnitBits>8</addressUnitBits>
  <width>32</width>
  <size>0x20</size>
  <resetValue>0x00000000</resetValue>
  <resetMask>0xFFFFFFFF</resetMask>
  <peripherals>
    <peripheral>
      <name>GPIOA</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x48000000</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>
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>MODER%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>Mode</name>
                <enumeratedValue>
                  <name>Input</name>
                  <description>Input mode (reset state)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Output</name>
                  <description>General purpose output mode</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Alternate</name>
                  <description>Alternate function mode</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Analog</name>
                  <description>Analog mode</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>OT%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OutputType</name>
                <enumeratedValue>
                  <name>PushPull</name>
                  <description>Output push-pull (reset state)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OpenDrain</name>
                  <description>Output open-drain</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>OSPEEDR</name>
          <displayName>OSPEEDR</displayName>
          <description>GPIO port output speed
          register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x0C000000</resetValue>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>OSPEEDR%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>OutputSpeed</name>
                <enumeratedValue>
                  <name>LowSpeed</name>
                  <description>Low speed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MediumSpeed</name>
                  <description>Medium speed</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HighSpeed</name>
                  <description>High speed</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>PUPDR%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>Pull</name>
                <enumeratedValue>
                  <name>Floating</name>
                  <description>No pull-up, pull-down</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PullUp</name>
                  <description>Pull-up</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PullDown</name>
                  <description>Pull-down</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>IDR%s</name>
              <description>Port input data pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>InputData</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Input is logic low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>Input is logic high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>ODR%s</name>
              <description>Port output data pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OutputData</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Set output to logic low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>Set output to logic high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>BR%s</name>
              <description>Port x reset pin %s</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BitReset</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Resets the corresponding ODRx bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>BS%s</name>
              <description>Port x set pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BitSet</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>Sets the corresponding ODRx bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>Lok Key</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LockKey</name>
                <enumeratedValue>
                  <name>NotActive</name>
                  <description>Port configuration lock key not active</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Active</name>
                  <description>Port configuration lock key active</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>LCK%s</name>
              <description>Port x lock pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>Lock</name>
                <enumeratedValue>
                  <name>Unlocked</name>
                  <description>Port configuration not locked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Locked</name>
                  <description>Port configuration locked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>L0,L1,L2,L3,L4,L5,L6,L7</dimIndex>
              <name>AFR%s</name>
              <description>Alternate function selection for port x
              bit y (y = 0..7)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>AlternateFunction</name>
                <enumeratedValue>
                  <name>AF0</name>
                  <description>AF0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF1</name>
                  <description>AF1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF2</name>
                  <description>AF2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF3</name>
                  <description>AF3</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF4</name>
                  <description>AF4</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF5</name>
                  <description>AF5</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF6</name>
                  <description>AF6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF7</name>
                  <description>AF7</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF8</name>
                  <description>AF8</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF9</name>
                  <description>AF9</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF10</name>
                  <description>AF10</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF11</name>
                  <description>AF11</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF12</name>
                  <description>AF12</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF13</name>
                  <description>AF13</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF14</name>
                  <description>AF14</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AF15</name>
                  <description>AF15</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </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 derivedFrom="GPIOA.AFRL.AFR%s">
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>H8,H9,H10,H11,H12,H13,H14,H15</dimIndex>
              <name>AFR%s</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>Port bit reset register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>16</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>BR%s</name>
              <description>Port x reset pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BitReset</name>
                <enumeratedValue>
                  <name>NoAction</name>
                  <description>No action on the corresponding ODx bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the ODx bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>GPIOB</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x48000400</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 derivedFrom="GPIOA.MODER.MODER%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>MODER%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
        <register derivedFrom="GPIOA.OTYPER">
          <name>OTYPER</name>
          <displayName>OTYPER</displayName>
          <description>GPIO port output type register</description>
          <addressOffset>0x4</addressOffset>
        </register>
        <register>
          <name>OSPEEDR</name>
          <displayName>OSPEEDR</displayName>
          <description>GPIO port output speed
          register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x000000C0</resetValue>
          <fields>
            <field derivedFrom="GPIOA.OSPEEDR.OSPEEDR%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>OSPEEDR%s</name>
              <description>Port x configuration pin %s</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 derivedFrom="GPIOA.PUPDR.PUPDR%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>PUPDR%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
        <register derivedFrom="GPIOA.IDR">
          <name>IDR</name>
          <displayName>IDR</displayName>
          <description>GPIO port input data register</description>
          <addressOffset>0x10</addressOffset>
        </register>
        <register derivedFrom="GPIOA.ODR">
          <name>ODR</name>
          <displayName>ODR</displayName>
          <description>GPIO port output data register</description>
          <addressOffset>0x14</addressOffset>
        </register>
        <register derivedFrom="GPIOA.BSRR">
          <name>BSRR</name>
          <displayName>BSRR</displayName>
          <description>GPIO port bit set/reset
          register</description>
          <addressOffset>0x18</addressOffset>
        </register>
        <register derivedFrom="GPIOA.LCKR">
          <name>LCKR</name>
          <displayName>LCKR</displayName>
          <description>GPIO port configuration lock
          register</description>
          <addressOffset>0x1C</addressOffset>
        </register>
        <register derivedFrom="GPIOA.AFRL">
          <name>AFRL</name>
          <displayName>AFRL</displayName>
          <description>GPIO alternate function low
          register</description>
          <addressOffset>0x20</addressOffset>
        </register>
        <register derivedFrom="GPIOA.AFRH">
          <name>AFRH</name>
          <displayName>AFRH</displayName>
          <description>GPIO alternate function high
          register</description>
          <addressOffset>0x24</addressOffset>
        </register>
        <register derivedFrom="GPIOA.BRR">
          <name>BRR</name>
          <displayName>BRR</displayName>
          <description>Port bit reset register</description>
          <addressOffset>0x28</addressOffset>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>GPIOC</name>
      <description>General-purpose I/Os</description>
      <groupName>GPIO</groupName>
      <baseAddress>0x48000800</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 derivedFrom="GPIOA.MODER.MODER%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>MODER%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
        <register derivedFrom="GPIOA.OTYPER">
          <name>OTYPER</name>
          <displayName>OTYPER</displayName>
          <description>GPIO port output type register</description>
          <addressOffset>0x4</addressOffset>
        </register>
        <register>
          <name>OSPEEDR</name>
          <displayName>OSPEEDR</displayName>
          <description>GPIO port output speed
          register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="GPIOA.OSPEEDR.OSPEEDR%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>OSPEEDR%s</name>
              <description>Port x configuration pin %s</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>0x0C000000</resetValue>
          <fields>
            <field derivedFrom="GPIOA.PUPDR.PUPDR%s">
              <dim>16</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>0-15</dimIndex>
              <name>PUPDR%s</name>
              <description>Port x configuration pin %s</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
        <register derivedFrom="GPIOA.IDR">
          <name>IDR</name>
          <displayName>IDR</displayName>
          <description>GPIO port input data register</description>
          <addressOffset>0x10</addressOffset>
        </register>
        <register derivedFrom="GPIOA.ODR">
          <name>ODR</name>
          <displayName>ODR</displayName>
          <description>GPIO port output data register</description>
          <addressOffset>0x14</addressOffset>
        </register>
        <register derivedFrom="GPIOA.BSRR">
          <name>BSRR</name>
          <displayName>BSRR</displayName>
          <description>GPIO port bit set/reset
          register</description>
          <addressOffset>0x18</addressOffset>
        </register>
        <register derivedFrom="GPIOA.LCKR">
          <name>LCKR</name>
          <displayName>LCKR</displayName>
          <description>GPIO port configuration lock
          register</description>
          <addressOffset>0x1C</addressOffset>
        </register>
        <register derivedFrom="GPIOA.AFRL">
          <name>AFRL</name>
          <displayName>AFRL</displayName>
          <description>GPIO alternate function low
          register</description>
          <addressOffset>0x20</addressOffset>
        </register>
        <register derivedFrom="GPIOA.AFRH">
          <name>AFRH</name>
          <displayName>AFRH</displayName>
          <description>GPIO alternate function high
          register</description>
          <addressOffset>0x24</addressOffset>
        </register>
        <register derivedFrom="GPIOA.BRR">
          <name>BRR</name>
          <displayName>BRR</displayName>
          <description>Port bit reset register</description>
          <addressOffset>0x28</addressOffset>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="GPIOC">
      <name>GPIOD</name>
      <baseAddress>0x48000C00</baseAddress>
    </peripheral>
    <peripheral derivedFrom="GPIOC">
      <name>GPIOF</name>
      <baseAddress>0x48001400</baseAddress>
    </peripheral>
    <peripheral>
      <name>TSC</name>
      <description>Touch sensing controller</description>
      <groupName>TSC</groupName>
      <baseAddress>0x40024000</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>CTPH</name>
              <description>Charge transfer pulse high</description>
              <bitOffset>28</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>CTPL</name>
              <description>Charge transfer pulse low</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>SSD</name>
              <description>Spread spectrum deviation</description>
              <bitOffset>17</bitOffset>
              <bitWidth>7</bitWidth>
            </field>
            <field>
              <name>SSE</name>
              <description>Spread spectrum enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SSE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Spread spectrum disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Spread spectrum enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SSPSC</name>
              <description>Spread spectrum prescaler</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>PGPSC</name>
              <description>pulse generator prescaler</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>MCV</name>
              <description>Max count value</description>
              <bitOffset>5</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <name>IODEF</name>
              <description>I/O Default mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IODEF</name>
                <enumeratedValue>
                  <name>PushPull</name>
                  <description>I/Os are forced to output push-pull low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Floating</name>
                  <description>I/Os are in input floating</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SYNCPOL</name>
              <description>Synchronization pin
              polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SYNCPOL</name>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Falling edge only</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Rising edge and high level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AM</name>
              <description>Acquisition mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AM</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal acquisition mode (acquisition starts as soon as START bit is set)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Synchronized</name>
                  <description>Synchronized acquisition mode (acquisition starts if START bit is set and when the selected signal is detected on the SYNC input pin)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>START</name>
              <description>Start a new acquisition</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>START</name>
                <enumeratedValue>
                  <name>NoStarted</name>
                  <description>Acquisition not started</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Started</name>
                  <description>Start a new acquisition</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSCE</name>
              <description>Touch sensing controller
              enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TSCE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Touch sensing controller disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Touch sensing controller enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>interrupt enable register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>MCEIE</name>
              <description>Max count error interrupt
              enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MCEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Max count error interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Max count error interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOAIE</name>
              <description>End of acquisition interrupt
              enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOAIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>End of acquisition interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>End of acquisition interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>interrupt clear register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>MCEIC</name>
              <description>Max count error interrupt
              clear</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>EOAIC</name>
              <description>End of acquisition interrupt
              clear</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>interrupt status register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>MCEF</name>
              <description>Max count error flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>EOAF</name>
              <description>End of acquisition flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>IOHCR</name>
          <displayName>IOHCR</displayName>
          <description>I/O hysteresis control
          register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xFFFFFFFF</resetValue>
          <fields>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO1</name>
              <description>G%s_IO1 Schmitt trigger hysteresis
              mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>G1_IO1</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Gx_IOy Schmitt trigger hysteresis disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Gx_IOy Schmitt trigger hysteresis enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO2</name>
              <description>G%s_IO2 Schmitt trigger hysteresis
              mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="G1_IO1"/>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO3</name>
              <description>G%s_IO3 Schmitt trigger hysteresis
              mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="G1_IO1"/>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO4</name>
              <description>G%s_IO4 Schmitt trigger hysteresis
              mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="G1_IO1"/>
            </field>
          </fields>
        </register>
        <register>
          <name>IOASCR</name>
          <displayName>IOASCR</displayName>
          <description>I/O analog switch control
          register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO1</name>
              <description>G%s_IO1 analog switch
              enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>G1_IO1</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Gx_IOy analog switch disabled (opened)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Gx_IOy analog switch enabled (closed)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO2</name>
              <description>G%s_IO2 analog switch
              enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="G1_IO1"/>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO3</name>
              <description>G%s_IO3 analog switch
              enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="G1_IO1"/>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO4</name>
              <description>G%s_IO4 analog switch
              enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="G1_IO1"/>
            </field>
          </fields>
        </register>
        <register>
          <name>IOSCR</name>
          <displayName>IOSCR</displayName>
          <description>I/O sampling control register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO1</name>
              <description>G%s_IO1 sampling mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>G1_IO1</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Gx_IOy unused</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Gx_IOy used as sampling capacitor</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO2</name>
              <description>G%s_IO2 sampling mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="G1_IO1"/>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO3</name>
              <description>G%s_IO3 sampling mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="G1_IO1"/>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO4</name>
              <description>G%s_IO4 sampling mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="G1_IO1"/>
            </field>
          </fields>
        </register>
        <register>
          <name>IOCCR</name>
          <displayName>IOCCR</displayName>
          <description>I/O channel control register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO1</name>
              <description>G%s_IO1 channel mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>G1_IO1</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Gx_IOy unused</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Gx_IOy used as channel</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO2</name>
              <description>G%s_IO2 channel mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="G1_IO1"/>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO3</name>
              <description>G%s_IO3 channel mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="G1_IO1"/>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%s_IO4</name>
              <description>G%s_IO4 channel mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="G1_IO1"/>
            </field>
          </fields>
        </register>
        <register>
          <name>IOGCSR</name>
          <displayName>IOGCSR</displayName>
          <description>I/O group control status
          register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>8</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%sS</name>
              <description>Analog I/O group x status</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>G1S</name>
                <enumeratedValue>
                  <name>Ongoing</name>
                  <description>Acquisition on analog I/O group x is ongoing or not started</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Acquisition on analog I/O group x is complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>8</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-8</dimIndex>
              <name>G%sE</name>
              <description>Analog I/O group x enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>G1E</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Acquisition on analog I/O group x disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Acquisition on analog I/O group x enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <dim>6</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-6</dimIndex>
          <name>IOG%sCR</name>
          <displayName>IOG%sCR</displayName>
          <description>I/O group x counter register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>Counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>14</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>CRC</name>
      <description>cyclic redundancy check calculation
      unit</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 bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DR8</name>
          <description>Data register - byte sized</description>
          <alternateRegister>DR</alternateRegister>
          <addressOffset>0x0</addressOffset>
          <size>0x8</size>
          <access>read-write</access>
          <resetValue>0x000000FF</resetValue>
          <fields>
            <field>
              <name>DR8</name>
              <description>Data register bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DR16</name>
          <description>Data register - half-word sized</description>
          <alternateRegister>DR</alternateRegister>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000FFFF</resetValue>
          <fields>
            <field>
              <name>DR16</name>
              <description>Data register bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </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>General-purpose 8-bit data register
              bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </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>RESET</name>
              <description>reset bit</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RESETW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Resets the CRC calculation unit and sets the data register to 0xFFFF FFFF</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>POLYSIZE</name>
              <description>Polynomial size</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>POLYSIZE</name>
                <enumeratedValue>
                  <name>Polysize32</name>
                  <description>32-bit polynomial</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Polysize16</name>
                  <description>16-bit polynomial</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Polysize8</name>
                  <description>8-bit polynomial</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Polysize7</name>
                  <description>7-bit polynomial</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>REV_IN</name>
              <description>Reverse input data</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>REV_IN</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Bit order not affected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Byte</name>
                  <description>Bit reversal done by byte</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HalfWord</name>
                  <description>Bit reversal done by half-word</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Word</name>
                  <description>Bit reversal done by word</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>REV_OUT</name>
              <description>Reverse output data</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>REV_OUT</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Bit order not affected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reversed</name>
                  <description>Bit reversed output</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>INIT</name>
          <displayName>INIT</displayName>
          <description>Initial CRC value</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xFFFFFFFF</resetValue>
          <fields>
            <field>
              <name>INIT</name>
              <description>Programmable initial CRC
              value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>POL</name>
          <displayName>POL</displayName>
          <description>CRC polynomial</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x04C11DB7</resetValue>
          <fields>
            <field>
              <name>POL</name>
              <description>Programmable polynomial</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>FLASH</name>
      <description>Flash</description>
      <groupName>Flash</groupName>
      <baseAddress>0x40022000</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>
          <resetValue>0x00000030</resetValue>
          <fields>
            <field>
              <name>LATENCY</name>
              <description>LATENCY</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LATENCY</name>
                <enumeratedValue>
                  <name>WS0</name>
                  <description>0 wait states, if 0 &lt; HCLK &lt;= 24 MHz</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>WS1</name>
                  <description>1 wait state, if 24 &lt; HCLK &lt;= 48 MHz</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>WS2</name>
                  <description>2 wait states, if 48 &lt; HCLK &lt;= 72 MHz</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PRFTBE</name>
              <description>PRFTBE</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PRFTBE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Prefetch is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Prefetch is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PRFTBS</name>
              <description>PRFTBS</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>PRFTBS</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Prefetch buffer is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Prefetch buffer is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HLFCYA</name>
              <description>Flash half cycle access enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HLFCYA</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Half cycle is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Half cycle is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>FKEYR</name>
              <description>Flash Key</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </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>OPTKEYR</name>
              <description>Option byte key</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>Flash status register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>EOP</name>
              <description>End of operation</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>EOPR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoEvent</name>
                  <description>No EOP event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Event</name>
                  <description>An EOP event occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>EOPW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset EOP event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WRPRTERR</name>
              <description>Write protection error</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>WRPRTERRR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No write protection error occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>A write protection error occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>WRPRTERRW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset write protection error</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PGERR</name>
              <description>Programming error</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PGERRR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No programming error occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>A programming error occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>PGERRW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset programming error</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BSY</name>
              <description>Busy</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>BSYR</name>
                <enumeratedValue>
                  <name>Inactive</name>
                  <description>No write/erase operation is in progress</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Active</name>
                  <description>No write/erase operation is in progress</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>Flash control register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000080</resetValue>
          <fields>
            <field>
              <name>OBL_LAUNCH</name>
              <description>Force option byte loading</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OBL_LAUNCH</name>
                <enumeratedValue>
                  <name>Inactive</name>
                  <description>Force option byte loading inactive</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Active</name>
                  <description>Force option byte loading active</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOPIE</name>
              <description>End of operation interrupt
              enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOPIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>End of operation interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>End of operation interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ERRIE</name>
              <description>Error interrupt enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ERRIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Error interrupt generation disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Error interrupt generation enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPTWRE</name>
              <description>Option bytes write enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPTWRE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Option byte write enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Option byte write disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LOCK</name>
              <description>Lock</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LOCKR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Unlocked</name>
                  <description>FLASH_CR register is unlocked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Locked</name>
                  <description>FLASH_CR register is locked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>LOCKW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Lock</name>
                  <description>Lock the FLASH_CR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STRT</name>
              <description>Start</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>STRT</name>
                <enumeratedValue>
                  <name>Start</name>
                  <description>Trigger an erase operation</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPTER</name>
              <description>Option byte erase</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPTER</name>
                <enumeratedValue>
                  <name>OptionByteErase</name>
                  <description>Erase option byte activated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPTPG</name>
              <description>Option byte programming</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPTPG</name>
                <enumeratedValue>
                  <name>OptionByteProgramming</name>
                  <description>Program option byte activated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MER</name>
              <description>Mass erase</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MER</name>
                <enumeratedValue>
                  <name>MassErase</name>
                  <description>Erase activated for all user sectors</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PER</name>
              <description>Page erase</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PER</name>
                <enumeratedValue>
                  <name>PageErase</name>
                  <description>Erase activated for selected page</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PG</name>
              <description>Programming</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PG</name>
                <enumeratedValue>
                  <name>Program</name>
                  <description>Flash programming activated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>AR</name>
          <displayName>AR</displayName>
          <description>Flash address register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>FAR</name>
              <description>Flash address</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>OBR</name>
          <displayName>OBR</displayName>
          <description>Option byte register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0xFFFFFF0F</resetValue>
          <fields>
            <field>
              <name>OPTERR</name>
              <description>Option byte error</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPTERR</name>
                <enumeratedValue>
                  <name>OptionByteError</name>
                  <description>The loaded option byte and its complement do not match</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RDPRT</name>
              <description>Read protection Level
              status</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>RDPRT</name>
                <enumeratedValue>
                  <name>Level0</name>
                  <description>Level 0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level1</name>
                  <description>Level 1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level2</name>
                  <description>Level 2</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WDG_SW</name>
              <description>WDG_SW</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WDG_SW</name>
                <enumeratedValue>
                  <name>Hardware</name>
                  <description>Hardware watchdog</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Software</name>
                  <description>Software watchdog</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>nRST_STOP</name>
              <description>nRST_STOP</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>nRST_STOP</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset generated when entering Stop mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NoReset</name>
                  <description>No reset generated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>nRST_STDBY</name>
              <description>nRST_STDBY</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>nRST_STDBY</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset generated when entering Standby mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NoReset</name>
                  <description>No reset generated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>nBOOT1</name>
              <description>BOOT1</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>nBOOT1</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Together with BOOT0, select the device boot mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Together with BOOT0, select the device boot mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>VDDA_MONITOR</name>
              <description>VDDA_MONITOR</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>VDDA_MONITOR</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>VDDA power supply supervisor disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>VDDA power supply supervisor enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>Data0</name>
              <description>Data0</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>Data1</name>
              <description>Data1</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>WRPR</name>
          <displayName>WRPR</displayName>
          <description>Write protection register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0xFFFFFFFF</resetValue>
          <fields>
            <field>
              <name>WRP</name>
              <description>Write protect</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>RCC</name>
      <description>Reset and clock control</description>
      <groupName>RCC</groupName>
      <baseAddress>0x40021000</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>HSION</name>
              <description>Internal High Speed clock
              enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HSION</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>Clock Off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>On</name>
                  <description>Clock On</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSIRDY</name>
              <description>Internal High Speed clock ready
              flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>HSIRDYR</name>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>Clock not ready</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>Clock ready</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HSITRIM</name>
              <description>Internal High Speed clock
              trimming</description>
              <bitOffset>3</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>HSICAL</name>
              <description>Internal High Speed clock
              Calibration</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <access>read-only</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>HSEON</name>
              <description>External High Speed clock
              enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HSION"/>
            </field>
            <field>
              <name>HSERDY</name>
              <description>External High Speed clock ready
              flag</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="HSIRDYR"/>
            </field>
            <field>
              <name>HSEBYP</name>
              <description>External High Speed clock
              Bypass</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HSEBYP</name>
                <enumeratedValue>
                  <name>NotBypassed</name>
                  <description>HSE crystal oscillator not bypassed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bypassed</name>
                  <description>HSE crystal oscillator bypassed with external clock</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CSSON</name>
              <description>Clock Security System
              enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CSSON</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>Clock security system disabled (clock detector OFF)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>On</name>
                  <description>Clock security system enable (clock detector ON if the HSE is ready, OFF if not)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PLLON</name>
              <description>PLL enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="HSION"/>
            </field>
            <field>
              <name>PLLRDY</name>
              <description>PLL clock ready flag</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="HSIRDYR"/>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR</name>
          <displayName>CFGR</displayName>
          <description>Clock configuration register
          (RCC_CFGR)</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SW</name>
              <description>System clock Switch</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SW</name>
                <enumeratedValue>
                  <name>HSI</name>
                  <description>HSI selected as system clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE selected as system clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL</name>
                  <description>PLL selected as system clock</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SWS</name>
              <description>System Clock Switch Status</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>SWSR</name>
                <enumeratedValue>
                  <name>HSI</name>
                  <description>HSI oscillator used as system clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE oscillator used as system clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL</name>
                  <description>PLL used as system clock</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HPRE</name>
              <description>AHB prescaler</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>HPRE</name>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>SYSCLK divided by 2</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>SYSCLK divided by 4</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>SYSCLK divided by 8</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>SYSCLK divided by 16</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>SYSCLK divided by 64</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>SYSCLK divided by 128</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div256</name>
                  <description>SYSCLK divided by 256</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div512</name>
                  <description>SYSCLK divided by 512</description>
                  <value>15</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>SYSCLK not divided</description>
                  <isDefault>true</isDefault>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PPRE1</name>
              <description>APB Low speed prescaler
              (APB1)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PPRE1</name>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>HCLK divided by 2</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>HCLK divided by 4</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>HCLK divided by 8</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>HCLK divided by 16</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>HCLK not divided</description>
                  <isDefault>true</isDefault>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PPRE2</name>
              <description>APB high speed prescaler
              (APB2)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="PPRE1"/>
            </field>
            <field>
              <name>PLLSRC</name>
              <description>PLL entry clock source</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PLLSRC</name>
                <enumeratedValue>
                  <name>HSI_Div2</name>
                  <description>HSI divided by 2 selected as PLL input clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE_Div_PREDIV</name>
                  <description>HSE divided by PREDIV selected as PLL input clock</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PLLXTPRE</name>
              <description>HSE divider for PLL entry</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PLLXTPRE</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>HSE clock not divided</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>HSE clock divided by 2</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PLLMUL</name>
              <description>PLL Multiplication Factor</description>
              <bitOffset>18</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PLLMUL</name>
                <enumeratedValue>
                  <name>Mul2</name>
                  <description>PLL input clock x2</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul3</name>
                  <description>PLL input clock x3</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul4</name>
                  <description>PLL input clock x4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul5</name>
                  <description>PLL input clock x5</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul6</name>
                  <description>PLL input clock x6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul7</name>
                  <description>PLL input clock x7</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul8</name>
                  <description>PLL input clock x8</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul9</name>
                  <description>PLL input clock x9</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul10</name>
                  <description>PLL input clock x10</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul11</name>
                  <description>PLL input clock x11</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul12</name>
                  <description>PLL input clock x12</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul13</name>
                  <description>PLL input clock x13</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul14</name>
                  <description>PLL input clock x14</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul15</name>
                  <description>PLL input clock x15</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul16</name>
                  <description>PLL input clock x16</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mul16x</name>
                  <description>PLL input clock x16</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2SSRC</name>
              <description>I2S external clock source
              selection</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>I2SSRC</name>
                <enumeratedValue>
                  <name>SYSCLK</name>
                  <description>System clock used as I2S clock source</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CKIN</name>
                  <description>External clock mapped on the I2S_CKIN pin used as I2S clock source</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MCO</name>
              <description>Microcontroller clock
              output</description>
              <bitOffset>24</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MCO</name>
                <enumeratedValue>
                  <name>NoMCO</name>
                  <description>MCO output disabled, no clock on MCO</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>Internal low speed (LSI) oscillator clock selected</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>External low speed (LSE) oscillator clock selected</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SYSCLK</name>
                  <description>System clock selected</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI</name>
                  <description>Internal RC 8 MHz (HSI) oscillator clock selected</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>External 4-32 MHz (HSE) oscillator clock selected</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL</name>
                  <description>PLL clock selected (divided by 1 or 2, depending en PLLNODIV)</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MCOPRE</name>
              <description>Microcontroller Clock Output
              Prescaler</description>
              <bitOffset>28</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>MCOPRE</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>MCO is divided by 1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>MCO is divided by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>MCO is divided by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>MCO is divided by 8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>MCO is divided by 16</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>MCO is divided by 32</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>MCO is divided by 64</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>MCO is divided by 128</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PLLNODIV</name>
              <description>Do not divide PLL to MCO</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PLLNODIV</name>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>PLL is divided by 2 for MCO</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>PLL is not divided for MCO</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CIR</name>
          <displayName>CIR</displayName>
          <description>Clock interrupt register
          (RCC_CIR)</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>LSIRDYF</name>
              <description>LSI Ready Interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>LSIRDYFR</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>No clock ready interrupt</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Clock ready interrupt</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSERDYF</name>
              <description>LSE Ready Interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="LSIRDYFR"/>
            </field>
            <field>
              <name>HSIRDYF</name>
              <description>HSI Ready Interrupt flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="LSIRDYFR"/>
            </field>
            <field>
              <name>HSERDYF</name>
              <description>HSE Ready Interrupt flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="LSIRDYFR"/>
            </field>
            <field>
              <name>PLLRDYF</name>
              <description>PLL Ready Interrupt flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues derivedFrom="LSIRDYFR"/>
            </field>
            <field>
              <name>CSSF</name>
              <description>Clock Security System Interrupt
              flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>CSSFR</name>
                <enumeratedValue>
                  <name>NotInterrupted</name>
                  <description>No clock security interrupt caused by HSE clock failure</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Interrupted</name>
                  <description>Clock security interrupt caused by HSE clock failure</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSIRDYIE</name>
              <description>LSI Ready Interrupt Enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LSIRDYIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSERDYIE</name>
              <description>LSE Ready Interrupt Enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>HSIRDYIE</name>
              <description>HSI Ready Interrupt Enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>HSERDYIE</name>
              <description>HSE Ready Interrupt Enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>PLLRDYIE</name>
              <description>PLL Ready Interrupt Enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="LSIRDYIE"/>
            </field>
            <field>
              <name>LSIRDYC</name>
              <description>LSI Ready Interrupt Clear</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>LSIRDYCW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear interrupt flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSERDYC</name>
              <description>LSE Ready Interrupt Clear</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="LSIRDYCW"/>
            </field>
            <field>
              <name>HSIRDYC</name>
              <description>HSI Ready Interrupt Clear</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="LSIRDYCW"/>
            </field>
            <field>
              <name>HSERDYC</name>
              <description>HSE Ready Interrupt Clear</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="LSIRDYCW"/>
            </field>
            <field>
              <name>PLLRDYC</name>
              <description>PLL Ready Interrupt Clear</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues derivedFrom="LSIRDYCW"/>
            </field>
            <field>
              <name>CSSC</name>
              <description>Clock security system interrupt
              clear</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
              <enumeratedValues>
                <name>CSSCW</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear CSSF flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>APB2RSTR</name>
          <displayName>APB2RSTR</displayName>
          <description>APB2 peripheral reset register
          (RCC_APB2RSTR)</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SYSCFGRST</name>
              <description>SYSCFG and COMP reset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SYSCFGRST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the selected module</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM1RST</name>
              <description>TIM1 timer reset</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGRST"/>
            </field>
            <field>
              <name>USART1RST</name>
              <description>USART1 reset</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGRST"/>
            </field>
            <field>
              <name>TIM15RST</name>
              <description>TIM15 timer reset</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGRST"/>
            </field>
            <field>
              <name>TIM16RST</name>
              <description>TIM16 timer reset</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGRST"/>
            </field>
            <field>
              <name>TIM17RST</name>
              <description>TIM17 timer reset</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGRST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APB1RSTR</name>
          <displayName>APB1RSTR</displayName>
          <description>APB1 peripheral reset register
          (RCC_APB1RSTR)</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM2RST</name>
              <description>Timer 2 reset</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM2RST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the selected module</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM6RST</name>
              <description>Timer 6 reset</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>WWDGRST</name>
              <description>Window watchdog reset</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>SPI2RST</name>
              <description>SPI2 reset</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>SPI3RST</name>
              <description>SPI3 reset</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>USART2RST</name>
              <description>USART 2 reset</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>USART3RST</name>
              <description>USART3 reset</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>I2C1RST</name>
              <description>I2C1 reset</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>I2C2RST</name>
              <description>I2C2 reset</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>PWRRST</name>
              <description>Power interface reset</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>DAC1RST</name>
              <description>DAC interface reset</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
            <field>
              <name>I2C3RST</name>
              <description>I2C3 reset</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2RST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHBENR</name>
          <displayName>AHBENR</displayName>
          <description>AHB Peripheral Clock enable register
          (RCC_AHBENR)</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000014</resetValue>
          <fields>
            <field>
              <name>DMA1EN</name>
              <description>DMA1 clock enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMA1EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SRAMEN</name>
              <description>SRAM interface clock
              enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMA1EN"/>
            </field>
            <field>
              <name>FLITFEN</name>
              <description>FLITF clock enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMA1EN"/>
            </field>
            <field>
              <name>CRCEN</name>
              <description>CRC clock enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMA1EN"/>
            </field>
            <field>
              <name>IOPAEN</name>
              <description>I/O port A clock enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMA1EN"/>
            </field>
            <field>
              <name>IOPBEN</name>
              <description>I/O port B clock enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMA1EN"/>
            </field>
            <field>
              <name>IOPCEN</name>
              <description>I/O port C clock enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMA1EN"/>
            </field>
            <field>
              <name>IOPDEN</name>
              <description>I/O port D clock enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMA1EN"/>
            </field>
            <field>
              <name>IOPFEN</name>
              <description>I/O port F clock enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMA1EN"/>
            </field>
            <field>
              <name>TSCEN</name>
              <description>Touch sensing controller clock
              enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMA1EN"/>
            </field>
            <field>
              <name>ADC1EN</name>
              <description>ADC 1</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="DMA1EN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APB2ENR</name>
          <displayName>APB2ENR</displayName>
          <description>APB2 peripheral clock enable register
          (RCC_APB2ENR)</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SYSCFGEN</name>
              <description>SYSCFG clock enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SYSCFGEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM1EN</name>
              <description>TIM1 Timer clock enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGEN"/>
            </field>
            <field>
              <name>USART1EN</name>
              <description>USART1 clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGEN"/>
            </field>
            <field>
              <name>TIM15EN</name>
              <description>TIM15 timer clock enable</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGEN"/>
            </field>
            <field>
              <name>TIM16EN</name>
              <description>TIM16 timer clock enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGEN"/>
            </field>
            <field>
              <name>TIM17EN</name>
              <description>TIM17 timer clock enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SYSCFGEN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>APB1ENR</name>
          <displayName>APB1ENR</displayName>
          <description>APB1 peripheral clock enable register
          (RCC_APB1ENR)</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TIM2EN</name>
              <description>Timer 2 clock enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM2EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>The selected clock is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The selected clock is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM6EN</name>
              <description>Timer 6 clock enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>WWDGEN</name>
              <description>Window watchdog clock
              enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>SPI2EN</name>
              <description>SPI 2 clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>SPI3EN</name>
              <description>SPI 3 clock enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>USART2EN</name>
              <description>USART 2 clock enable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>USART3EN</name>
              <description>USART 3 clock enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>I2C1EN</name>
              <description>I2C 1 clock enable</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>I2C2EN</name>
              <description>I2C 2 clock enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>PWREN</name>
              <description>Power interface clock
              enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>DAC1EN</name>
              <description>DAC interface clock enable</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
            <field>
              <name>I2C3EN</name>
              <description>I2C3 clock enable</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM2EN"/>
            </field>
          </fields>
        </register>
        <register>
          <name>BDCR</name>
          <displayName>BDCR</displayName>
          <description>Backup domain control register
          (RCC_BDCR)</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>LSEON</name>
              <description>External Low Speed oscillator
              enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LSEON</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>LSE oscillator Off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>On</name>
                  <description>LSE oscillator On</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSERDY</name>
              <description>External Low Speed oscillator
              ready</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>LSERDYR</name>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>LSE oscillator not ready</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>LSE oscillator ready</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSEBYP</name>
              <description>External Low Speed oscillator
              bypass</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LSEBYP</name>
                <enumeratedValue>
                  <name>NotBypassed</name>
                  <description>LSE crystal oscillator not bypassed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bypassed</name>
                  <description>LSE crystal oscillator bypassed with external clock</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSEDRV</name>
              <description>LSE oscillator drive
              capability</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LSEDRV</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Low drive capacity</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MediumHigh</name>
                  <description>Medium-high drive capacity</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MediumLow</name>
                  <description>Medium-low drive capacity</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>High drive capacity</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTCSEL</name>
              <description>RTC clock source selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RTCSEL</name>
                <enumeratedValue>
                  <name>NoClock</name>
                  <description>No clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE oscillator clock used as RTC clock</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSI</name>
                  <description>LSI oscillator clock used as RTC clock</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSE</name>
                  <description>HSE oscillator clock divided by a prescaler used as RTC clock</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTCEN</name>
              <description>RTC clock enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RTCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>RTC clock disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>RTC clock enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BDRST</name>
              <description>Backup domain software
              reset</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>BDRST</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Reset not activated</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Reset the entire RTC domain</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CSR</name>
          <displayName>CSR</displayName>
          <description>Control/status register
          (RCC_CSR)</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x0C000000</resetValue>
          <fields>
            <field>
              <name>LSION</name>
              <description>Internal low speed oscillator
              enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LSION</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>LSI oscillator Off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>On</name>
                  <description>LSI oscillator On</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSIRDY</name>
              <description>Internal low speed oscillator
              ready</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>LSIRDYR</name>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>LSI oscillator not ready</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>LSI oscillator ready</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RMVF</name>
              <description>Remove reset flag</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RMVFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the reset flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>V18PWRRSTF</name>
              <description>Reset flag of the 1.8 V domain</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>V18PWRRSTFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoReset</name>
                  <description>No reset has occured</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>A reset has occured</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OBLRSTF</name>
              <description>Option byte loader reset
              flag</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="V18PWRRSTFR"/>
            </field>
            <field>
              <name>PINRSTF</name>
              <description>PIN reset flag</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="V18PWRRSTFR"/>
            </field>
            <field>
              <name>PORRSTF</name>
              <description>POR/PDR reset flag</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="V18PWRRSTFR"/>
            </field>
            <field>
              <name>SFTRSTF</name>
              <description>Software reset flag</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="V18PWRRSTFR"/>
            </field>
            <field>
              <name>IWDGRSTF</name>
              <description>Independent watchdog reset
              flag</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="V18PWRRSTFR"/>
            </field>
            <field>
              <name>WWDGRSTF</name>
              <description>Window watchdog reset flag</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="V18PWRRSTFR"/>
            </field>
            <field>
              <name>LPWRRSTF</name>
              <description>Low-power reset flag</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues derivedFrom="V18PWRRSTFR"/>
            </field>
          </fields>
        </register>
        <register>
          <name>AHBRSTR</name>
          <displayName>AHBRSTR</displayName>
          <description>AHB peripheral reset register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IOPARST</name>
              <description>I/O port A reset</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IOPARST</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Reset the selected module</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IOPBRST</name>
              <description>I/O port B reset</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPARST"/>
            </field>
            <field>
              <name>IOPCRST</name>
              <description>I/O port C reset</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPARST"/>
            </field>
            <field>
              <name>IOPDRST</name>
              <description>I/O port D reset</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPARST"/>
            </field>
            <field>
              <name>IOPFRST</name>
              <description>I/O port F reset</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPARST"/>
            </field>
            <field>
              <name>TSCRST</name>
              <description>Touch sensing controller
              reset</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPARST"/>
            </field>
            <field>
              <name>ADC1RST</name>
              <description>ADC1 reset</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="IOPARST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR2</name>
          <displayName>CFGR2</displayName>
          <description>Clock configuration register 2</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PREDIV</name>
              <description>PREDIV division factor</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>PREDIV</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>PREDIV input clock not divided</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>PREDIV input clock divided by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div3</name>
                  <description>PREDIV input clock divided by 3</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>PREDIV input clock divided by 4</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div5</name>
                  <description>PREDIV input clock divided by 5</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div6</name>
                  <description>PREDIV input clock divided by 6</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div7</name>
                  <description>PREDIV input clock divided by 7</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>PREDIV input clock divided by 8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div9</name>
                  <description>PREDIV input clock divided by 9</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div10</name>
                  <description>PREDIV input clock divided by 10</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div11</name>
                  <description>PREDIV input clock divided by 11</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div12</name>
                  <description>PREDIV input clock divided by 12</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div13</name>
                  <description>PREDIV input clock divided by 13</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div14</name>
                  <description>PREDIV input clock divided by 14</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div15</name>
                  <description>PREDIV input clock divided by 15</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>PREDIV input clock divided by 16</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADC1PRES</name>
              <description>ADC1 prescaler</description>
              <bitOffset>4</bitOffset>
              <bitWidth>5</bitWidth>
              <enumeratedValues>
                <name>ADC1PRES</name>
                <enumeratedValue>
                  <name>NoClock</name>
                  <description>No clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>PLL clock not divided</description>
                  <value>16</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>PLL clock divided by 2</description>
                  <value>17</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>PLL clock divided by 4</description>
                  <value>18</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div6</name>
                  <description>PLL clock divided by 6</description>
                  <value>19</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>PLL clock divided by 8</description>
                  <value>20</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div10</name>
                  <description>PLL clock divided by 10</description>
                  <value>21</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div12</name>
                  <description>PLL clock divided by 12</description>
                  <value>22</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>PLL clock divided by 16</description>
                  <value>23</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>PLL clock divided by 32</description>
                  <value>24</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>PLL clock divided by 64</description>
                  <value>25</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>PLL clock divided by 128</description>
                  <value>26</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div256</name>
                  <description>PLL clock divided by 256</description>
                  <value>27</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR3</name>
          <displayName>CFGR3</displayName>
          <description>Clock configuration register 3</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>USART1SW</name>
              <description>USART1 clock source
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>USART1SW</name>
                <enumeratedValue>
                  <name>PCLK</name>
                  <description>PCLK selected as USART clock source</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SYSCLK</name>
                  <description>SYSCLK selected as USART clock source</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSE</name>
                  <description>LSE selected as USART clock source</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HSI</name>
                  <description>HSI selected as USART clock source</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C1SW</name>
              <description>I2C1 clock source
              selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2C1SW</name>
                <enumeratedValue>
                  <name>HSI</name>
                  <description>HSI clock selected as I2C clock source</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SYSCLK</name>
                  <description>SYSCLK clock selected as I2C clock source</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C2SW</name>
              <description>I2C2 clock source
              selection</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="I2C1SW"/>
            </field>
            <field>
              <name>TIM1SW</name>
              <description>Timer1 clock source
              selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM1SW</name>
                <enumeratedValue>
                  <name>PCLK2</name>
                  <description>PCLK2 clock (doubled frequency when prescaled)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PLL</name>
                  <description>PLL vco output (running up to 144 MHz)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM15SW</name>
              <description>Timer15 clock source
              selection</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM1SW"/>
            </field>
            <field>
              <name>TIM16SW</name>
              <description>Timer16 clock source
              selection</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM1SW"/>
            </field>
            <field>
              <name>TIM17SW</name>
              <description>Timer17 clock source
              selection</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TIM1SW"/>
            </field>
            <field>
              <name>I2C3SW</name>
              <description>I2C3 clock source selection</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="I2C1SW"/>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>DMA1</name>
      <description>DMA controller 1</description>
      <groupName>DMA</groupName>
      <baseAddress>0x40020000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>DMA1_CH1</name>
        <description>DMA1 channel 1 interrupt</description>
        <value>11</value>
      </interrupt>
      <interrupt>
        <name>DMA1_CH2</name>
        <description>DMA1 channel 2 interrupt</description>
        <value>12</value>
      </interrupt>
      <interrupt>
        <name>DMA1_CH3</name>
        <description>DMA1 channel 3 interrupt</description>
        <value>13</value>
      </interrupt>
      <interrupt>
        <name>DMA1_CH4</name>
        <description>DMA1 channel 4 interrupt</description>
        <value>14</value>
      </interrupt>
      <interrupt>
        <name>DMA1_CH5</name>
        <description>DMA1 channel 5 interrupt</description>
        <value>15</value>
      </interrupt>
      <interrupt>
        <name>DMA1_CH6</name>
        <description>DMA1 channel 6 interrupt</description>
        <value>16</value>
      </interrupt>
      <interrupt>
        <name>DMA1_CH7</name>
        <description>DMA1 channel 7 interrupt</description>
        <value>17</value>
      </interrupt>
      <registers>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>DMA interrupt status register
          (DMA_ISR)</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>7</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-7</dimIndex>
              <name>GIF%s</name>
              <description>Channel %s Global interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>GIF1</name>
                <enumeratedValue>
                  <name>NoEvent</name>
                  <description>No transfer error, half event, complete event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Event</name>
                  <description>A transfer error, half event or complete event has occured</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>7</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-7</dimIndex>
              <name>TCIF%s</name>
              <description>Channel %s Transfer Complete flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TCIF1</name>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>No transfer complete event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>A transfer complete event has occured</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>7</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-7</dimIndex>
              <name>HTIF%s</name>
              <description>Channel %s Half Transfer Complete flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>HTIF1</name>
                <enumeratedValue>
                  <name>NotHalf</name>
                  <description>No half transfer event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Half</name>
                  <description>A half transfer event has occured</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>7</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-7</dimIndex>
              <name>TEIF%s</name>
              <description>Channel %s Transfer Error flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TEIF1</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No transfer error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>A transfer error has occured</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>IFCR</name>
          <displayName>IFCR</displayName>
          <description>DMA interrupt flag clear register
          (DMA_IFCR)</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>7</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-7</dimIndex>
              <name>CGIF%s</name>
              <description>Channel %s Global interrupt clear</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CGIF1</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the GIF, TEIF, HTIF, TCIF flags in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>7</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-7</dimIndex>
              <name>CTCIF%s</name>
              <description>Channel %s Transfer Complete clear</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTCIF1</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the TCIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>7</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-7</dimIndex>
              <name>CHTIF%s</name>
              <description>Channel %s Half Transfer clear</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CHTIF1</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the HTIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>7</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-7</dimIndex>
              <name>CTEIF%s</name>
              <description>Channel %s Transfer Error clear</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTEIF1</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the TEIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <cluster>
          <dim>7</dim>
          <dimIncrement>0x14</dimIncrement>
          <dimIndex>1-7</dimIndex>
          <name>CH%s</name>
          <description>Channel cluster: CCR?, CNDTR?, CPAR?, and CMAR? registers</description>
          <addressOffset>0x8</addressOffset>
          <register>
            <name>CR</name>
            <displayName>CCR1</displayName>
            <description>DMA channel configuration register
          (DMA_CCR)</description>
            <addressOffset>0x0</addressOffset>
            <size>0x20</size>
            <access>read-write</access>
            <resetValue>0x00000000</resetValue>
            <fields>
              <field>
                <name>EN</name>
                <description>Channel enable</description>
                <bitOffset>0</bitOffset>
                <bitWidth>1</bitWidth>
                <enumeratedValues>
                  <name>EN</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Channel disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Channel enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>TCIE</name>
                <description>Transfer complete interrupt
              enable</description>
                <bitOffset>1</bitOffset>
                <bitWidth>1</bitWidth>
                <enumeratedValues>
                  <name>TCIE</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Transfer Complete interrupt disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Transfer Complete interrupt enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>HTIE</name>
                <description>Half Transfer interrupt
              enable</description>
                <bitOffset>2</bitOffset>
                <bitWidth>1</bitWidth>
                <enumeratedValues>
                  <name>HTIE</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Half Transfer interrupt disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Half Transfer interrupt enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>TEIE</name>
                <description>Transfer error interrupt
              enable</description>
                <bitOffset>3</bitOffset>
                <bitWidth>1</bitWidth>
                <enumeratedValues>
                  <name>TEIE</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Transfer Error interrupt disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Transfer Error interrupt enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>DIR</name>
                <description>Data transfer direction</description>
                <bitOffset>4</bitOffset>
                <bitWidth>1</bitWidth>
                <enumeratedValues>
                  <name>DIR</name>
                  <enumeratedValue>
                    <name>FromPeripheral</name>
                    <description>Read from peripheral</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>FromMemory</name>
                    <description>Read from memory</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>CIRC</name>
                <description>Circular mode</description>
                <bitOffset>5</bitOffset>
                <bitWidth>1</bitWidth>
                <enumeratedValues>
                  <name>CIRC</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Circular buffer disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Circular buffer enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>PINC</name>
                <description>Peripheral increment mode</description>
                <bitOffset>6</bitOffset>
                <bitWidth>1</bitWidth>
                <enumeratedValues>
                  <name>PINC</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Increment mode disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Increment mode enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>MINC</name>
                <description>Memory increment mode</description>
                <bitOffset>7</bitOffset>
                <bitWidth>1</bitWidth>
                <enumeratedValues derivedFrom="PINC"/>
              </field>
              <field>
                <name>PSIZE</name>
                <description>Peripheral size</description>
                <bitOffset>8</bitOffset>
                <bitWidth>2</bitWidth>
                <enumeratedValues>
                  <name>PSIZE</name>
                  <enumeratedValue>
                    <name>Bits8</name>
                    <description>8-bit size</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Bits16</name>
                    <description>16-bit size</description>
                    <value>1</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Bits32</name>
                    <description>32-bit size</description>
                    <value>2</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>MSIZE</name>
                <description>Memory size</description>
                <bitOffset>10</bitOffset>
                <bitWidth>2</bitWidth>
                <enumeratedValues derivedFrom="PSIZE"/>
              </field>
              <field>
                <name>PL</name>
                <description>Channel Priority level</description>
                <bitOffset>12</bitOffset>
                <bitWidth>2</bitWidth>
                <enumeratedValues>
                  <name>PL</name>
                  <enumeratedValue>
                    <name>Low</name>
                    <description>Low priority</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Medium</name>
                    <description>Medium priority</description>
                    <value>1</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>High</name>
                    <description>High priority</description>
                    <value>2</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>VeryHigh</name>
                    <description>Very high priority</description>
                    <value>3</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
              <field>
                <name>MEM2MEM</name>
                <description>Memory to memory mode</description>
                <bitOffset>14</bitOffset>
                <bitWidth>1</bitWidth>
                <enumeratedValues>
                  <name>MEM2MEM</name>
                  <enumeratedValue>
                    <name>Disabled</name>
                    <description>Memory to memory mode disabled</description>
                    <value>0</value>
                  </enumeratedValue>
                  <enumeratedValue>
                    <name>Enabled</name>
                    <description>Memory to memory mode enabled</description>
                    <value>1</value>
                  </enumeratedValue>
                </enumeratedValues>
              </field>
            </fields>
          </register>
          <register>
            <name>NDTR</name>
            <displayName>CNDTR1</displayName>
            <description>DMA channel 1 number of data
          register</description>
            <addressOffset>0x4</addressOffset>
            <size>0x20</size>
            <access>read-write</access>
            <resetValue>0x00000000</resetValue>
            <fields>
              <field>
                <name>NDT</name>
                <description>Number of data to transfer</description>
                <bitOffset>0</bitOffset>
                <bitWidth>16</bitWidth>
                <writeConstraint>
                  <range>
                    <minimum>0</minimum>
                    <maximum>65535</maximum>
                  </range>
                </writeConstraint>
              </field>
            </fields>
          </register>
          <register>
            <name>PAR</name>
            <displayName>CPAR1</displayName>
            <description>DMA channel 1 peripheral address
          register</description>
            <addressOffset>0x8</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>MAR</name>
            <displayName>CMAR1</displayName>
            <description>DMA channel 1 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>
        </cluster>
      </registers>
    </peripheral>
    <peripheral>
      <name>TIM2</name>
      <description>General purpose timer</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40000000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM2</name>
        <description>Timer 2 global interrupt</description>
        <value>28</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UIFREMAP</name>
              <description>UIF status bit remapping</description>
              <bitOffset>11</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>CKD</name>
              <description>Clock division</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKD</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>t_DTS = t_CK_INT</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>t_DTS = 2 × t_CK_INT</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>t_DTS = 4 × t_CK_INT</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARPE</name>
              <description>Auto-reload preload enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARPE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>TIMx_APRR register is not buffered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>TIMx_APRR register is buffered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMS</name>
              <description>Center-aligned mode
              selection</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CMS</name>
                <enumeratedValue>
                  <name>EdgeAligned</name>
                  <description>The counter counts up or down depending on the direction bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned1</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting down.</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned2</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting up.</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned3</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set both when the counter is counting up or down.</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DIR</name>
              <description>Direction</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DIR</name>
                <enumeratedValue>
                  <name>Up</name>
                  <description>Counter used as upcounter</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Down</name>
                  <description>Counter used as downcounter</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPM</name>
              <description>One-pulse mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter is not stopped at update event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter stops counting at the next update event (clearing the CEN bit)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>URS</name>
              <description>Update request source</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>URS</name>
                <enumeratedValue>
                  <name>AnyEvent</name>
                  <description>Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CounterOnly</name>
                  <description>Only counter overflow/underflow generates an update interrupt or DMA request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDIS</name>
              <description>Update disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update event enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update event disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CEN</name>
              <description>Counter enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TI1S</name>
              <description>TI1 selection</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TI1S</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>The TIMx_CH1 pin is connected to TI1 input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>XOR</name>
                  <description>The TIMx_CH1, CH2, CH3 pins are connected to TI1 input</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MMS</name>
              <description>Master mode selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>MMS</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>The UG bit from the TIMx_EGR register is used as trigger output</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enable</name>
                  <description>The counter enable signal, CNT_EN, is used as trigger output</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Update</name>
                  <description>The update event is selected as trigger output</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ComparePulse</name>
                  <description>The trigger output send a positive pulse when the CC1IF flag it to be set, as soon as a capture or a compare match occurred</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CompareOC1</name>
                  <description>OC1REF signal is used as trigger output</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CompareOC2</name>
                  <description>OC2REF signal is used as trigger output</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CompareOC3</name>
                  <description>OC3REF signal is used as trigger output</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CompareOC4</name>
                  <description>OC4REF signal is used as trigger output</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCDS</name>
              <description>Capture/compare DMA
              selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCDS</name>
                <enumeratedValue>
                  <name>OnCompare</name>
                  <description>CCx DMA request sent when CCx event occurs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OnUpdate</name>
                  <description>CCx DMA request sent when update event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>SMS_3</name>
              <description>Slave mode 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>
              <enumeratedValues>
                <name>ETP</name>
                <enumeratedValue>
                  <name>NotInverted</name>
                  <description>ETR is noninverted, active at high level or rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>ETR is inverted, active at low level or falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ECE</name>
              <description>External clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ECE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>External clock mode 2 disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>External clock mode 2 enabled. The counter is clocked by any active edge on the ETRF signal.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETPS</name>
              <description>External trigger prescaler</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ETPS</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Prescaler OFF</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>ETRP frequency divided by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>ETRP frequency divided by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>ETRP frequency divided by 8</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETF</name>
              <description>External trigger filter</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ETF</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MSM</name>
              <description>Master/Slave mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MSM</name>
                <enumeratedValue>
                  <name>NoSync</name>
                  <description>No action</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Sync</name>
                  <description>The effect of an event on the trigger input (TRGI) is delayed to allow a perfect synchronization between the current timer and its slaves (through TRGO). It is useful if we want to synchronize several timers on a single external event.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TS</name>
              <description>Trigger selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>TS</name>
                <enumeratedValue>
                  <name>ITR0</name>
                  <description>Internal Trigger 0 (ITR0)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ITR1</name>
                  <description>Internal Trigger 1 (ITR1)</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ITR2</name>
                  <description>Internal Trigger 2 (ITR2)</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI1F_ED</name>
                  <description>TI1 Edge Detector (TI1F_ED)</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI1FP1</name>
                  <description>Filtered Timer Input 1 (TI1FP1)</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI2FP2</name>
                  <description>Filtered Timer Input 2 (TI2FP2)</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ETRF</name>
                  <description>External Trigger input (ETRF)</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OCCS</name>
              <description>OCREF clear selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>SMS</name>
              <description>Slave mode selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>SMS</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Slave mode disabled - if CEN = ‘1 then the prescaler is clocked directly by the internal clock.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Encoder_Mode_1</name>
                  <description>Encoder mode 1 - Counter counts up/down on TI2FP1 edge depending on TI1FP2 level.</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Encoder_Mode_2</name>
                  <description>Encoder mode 2 - Counter counts up/down on TI1FP2 edge depending on TI2FP1 level.</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Encoder_Mode_3</name>
                  <description>Encoder mode 3 - Counter counts up/down on both TI1FP1 and TI2FP2 edges depending on the level of the other input.</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reset_Mode</name>
                  <description>Reset Mode - Rising edge of the selected trigger input (TRGI) reinitializes the counter and generates an update of the registers.</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gated_Mode</name>
                  <description>Gated Mode - The counter clock is enabled when the trigger input (TRGI) is high. The counter stops (but is not reset) as soon as the trigger becomes low. Both start and stop of the counter are controlled.</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger_Mode</name>
                  <description>Trigger Mode - The counter starts at a rising edge of the trigger TRGI (but it is not reset). Only the start of the counter is controlled.</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ext_Clock_Mode</name>
                  <description>External Clock Mode 1 - Rising edges of the selected trigger (TRGI) clock the counter.</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>DMA/Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TDE</name>
              <description>Trigger DMA request enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sDE</name>
              <description>Capture/Compare %s DMA request enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1DE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDE</name>
              <description>Update DMA request enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIE</name>
              <description>Trigger interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sIE</name>
              <description>Capture/Compare %s interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sOF</name>
              <description>Capture/Compare %s overcapture flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1OFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoOvercapture</name>
                  <description>No overcapture has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overcapture</name>
                  <description>The counter value has been captured in TIMx_CCRx register while CCxIF flag was already set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1OFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIF</name>
              <description>Trigger interrupt flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No trigger event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>Trigger interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sIF</name>
              <description>Capture/compare %s interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1IFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>No campture/compare has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>If CC1 is an output: The content of the counter TIMx_CNT matches the content of the TIMx_CCR1 register. If CC1 is an input: The counter value has been captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1IFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>UIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoUpdateOccurred</name>
                  <description>No update occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdatePending</name>
                  <description>Update interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>UIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TG</name>
              <description>Trigger generation</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>The TIF flag is set in TIMx_SR register. Related interrupt or DMA transfer can occur if enabled.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sG</name>
              <description>Capture/compare %s generation</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1GW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>If CC1 is an output: CC1IF flag is set, Corresponding interrupt or DMA request is sent if enabled. If CC1 is an input: The current value of the counter is captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UG</name>
              <description>Update generation</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UG</name>
                <enumeratedValue>
                  <name>Update</name>
                  <description>Re-initializes the timer counter and generates an update of the registers.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1M_3</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal output compare mode (modes 0-7)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Extended</name>
                  <description>Extended output compare mode (modes 7-15)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1CE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>OCxRef is not affected by the ETRF signal</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OCxRef is cleared as soon as a High level is detected on ETRF signal</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>OC1M</name>
                <enumeratedValue>
                  <name>Frozen</name>
                  <description>The comparison between the output compare register TIMx_CCRy and the counter TIMx_CNT has no effect on the outputs / OpmMode1: Retriggerable OPM mode 1 - In up-counting mode, the channel is active until a trigger event is detected (on TRGI signal). In down-counting mode, the channel is inactive</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveOnMatch</name>
                  <description>Set channel to active level on match. OCyREF signal is forced high when the counter matches the capture/compare register / OpmMode2: Inversely to OpmMode1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>InactiveOnMatch</name>
                  <description>Set channel to inactive level on match. OCyREF signal is forced low when the counter matches the capture/compare register / Reserved</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Toggle</name>
                  <description>OCyREF toggles when TIMx_CNT=TIMx_CCRy / Reserved</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceInactive</name>
                  <description>OCyREF is forced low / CombinedPwmMode1: OCyREF has the same behavior as in PWM mode 1. OCyREFC is the logical OR between OC1REF and OC2REF</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceActive</name>
                  <description>OCyREF is forced high / CombinedPwmMode2: OCyREF has the same behavior as in PWM mode 2. OCyREFC is the logical AND between OC1REF and OC2REF</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode1</name>
                  <description>In upcounting, channel is active as long as TIMx_CNT&lt;TIMx_CCRy else inactive. In downcounting, channel is inactive as long as TIMx_CNT&gt;TIMx_CCRy else active / AsymmetricPwmMode1: OCyREF has the same behavior as in PWM mode 1. OCyREFC outputs OC1REF when the counter is counting up, OC2REF when it is counting down</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode2</name>
                  <description>Inversely to PwmMode1 / AsymmetricPwmMode2: Inversely to AsymmetricPwmMode1</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1PE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Preload register on CCRx disabled. New values written to CCRx are taken into account immediately</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Preload register on CCRx enabled. Preload value is loaded into active register on each update event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1FE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Fast output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Fast output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>Output</name>
                  <description>CCx channel is configured as output</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ICFilter</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ICPrescaler</name>
                <enumeratedValue>
                  <name>NoPrescaler</name>
                  <description>No prescaler, capture is done each time an edge is detected on the capture input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwoEvents</name>
                  <description>Capture is done once every 2 events</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourEvents</name>
                  <description>Capture is done once every 4 events</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EightEvents</name>
                  <description>Capture is done once every 8 events</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC2S</name>
              <description>Capture/compare 2
              selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC2S</name>
                <enumeratedValue>
                  <name>TI2</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TI2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TI1</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI2</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </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 derivedFrom="TIM2.CCMR1_Output.OC%sM_3">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM2.CCMR1_Output.OC%sCE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM2.CCMR1_Output.OC%sM">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field derivedFrom="TIM2.CCMR1_Output.OC%sPE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM2.CCMR1_Output.OC%sFE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM2.CCMR1_Output.CC%sS">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s 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 derivedFrom="TIM2.CCMR1_Input.IC%sF">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="TIM2.CCMR1_Input.IC%sPSC">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>CC4S</name>
              <description>Capture/Compare 4
              selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC4S</name>
                <enumeratedValue>
                  <name>TI4</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TI4</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI3</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TI3</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC3S</name>
              <description>Capture/Compare 3
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC3S</name>
                <enumeratedValue>
                  <name>TI3</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TI3</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI4</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TI4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCER</name>
          <displayName>CCER</displayName>
          <description>capture/compare enable
          register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>4</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sE</name>
              <description>Capture/Compare %s output enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1E</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Capture disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Capture enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1P</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Noninverted/rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Inverted/falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</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>32</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT32</name>
          <displayName>CNT32</displayName>
          <description>32-bit counter register</description>
          <alternateRegister>CNT</alternateRegister>
          <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>32</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </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>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>4</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-4</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR</name>
          <displayName>DCR</displayName>
          <description>DMA control register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DBL</name>
              <description>DMA burst length</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>18</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DBA</name>
              <description>DMA base address</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DMAR</name>
          <displayName>DMAR</displayName>
          <description>DMA address for full transfer</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</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>
      <name>TIM15</name>
      <description>General purpose timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40014000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM15_IRQ</name>
        <description>Timer 15 global interrupt</description>
        <value>24</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UIFREMAP</name>
              <description>UIF status bit remapping</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CKD</name>
              <description>Clock division</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKD</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>t_DTS = t_CK_INT</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>t_DTS = 2 × t_CK_INT</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>t_DTS = 4 × t_CK_INT</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARPE</name>
              <description>Auto-reload preload enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARPE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>TIMx_APRR register is not buffered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>TIMx_APRR register is buffered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPM</name>
              <description>One-pulse mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter is not stopped at update event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter stops counting at the next update event (clearing the CEN bit)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>URS</name>
              <description>Update request source</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>URS</name>
                <enumeratedValue>
                  <name>AnyEvent</name>
                  <description>Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CounterOnly</name>
                  <description>Only counter overflow/underflow generates an update interrupt or DMA request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDIS</name>
              <description>Update disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update event enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update event disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CEN</name>
              <description>Counter enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OIS%s</name>
              <description>Output Idle state (OC%s output)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OIS1</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>OCx=0 (after a dead-time if OCx(N) is implemented) when MOE=0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Set</name>
                  <description>OCx=1 (after a dead-time if OCx(N) is implemented) when MOE=0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OIS%sN</name>
              <description>Output Idle state (OC%sN output)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OIS1N</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>OCxN=0 after a dead-time when MOE=0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Set</name>
                  <description>OCxN=1 after a dead-time when MOE=0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <enumeratedValues>
                <name>CCDS</name>
                <enumeratedValue>
                  <name>OnCompare</name>
                  <description>CCx DMA request sent when CCx event occurs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OnUpdate</name>
                  <description>CCx DMA request sent when update event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCUS</name>
              <description>Capture/compare control update
              selection</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCUS</name>
                <enumeratedValue>
                  <name>Sw</name>
                  <description>When capture/compare control bits are preloaded (CCPC=1), they are updated by setting the COMG bit only</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SwOrEdge</name>
                  <description>When capture/compare control bits are preloaded (CCPC=1), they are updated by setting the COMG bit or when an rising edge occurs on TRGI</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCPC</name>
              <description>Capture/compare preloaded
              control</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCPC</name>
                <enumeratedValue>
                  <name>NotPreloaded</name>
                  <description>CCxE, CCxNE and OCxM bits are not preloaded</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Preloaded</name>
                  <description>CCxE, CCxNE and OCxM bits are preloaded</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>SMS_3</name>
              <description>Slave mode selection - bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</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>DIER</name>
          <displayName>DIER</displayName>
          <description>DMA/Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TDE</name>
              <description>Trigger DMA request enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sDE</name>
              <description>Capture/Compare %s DMA request enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1DE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDE</name>
              <description>Update DMA request enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BIE</name>
              <description>Break interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Break interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Break interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIE</name>
              <description>Trigger interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMIE</name>
              <description>COM interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COMIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>COM interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>COM interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sIE</name>
              <description>Capture/Compare %s interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMDE</name>
              <description>COM DMA request enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>COM DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>COM DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sOF</name>
              <description>Capture/Compare %s overcapture flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1OFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoOvercapture</name>
                  <description>No overcapture has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overcapture</name>
                  <description>The counter value has been captured in TIMx_CCRx register while CCxIF flag was already set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1OFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BIF</name>
              <description>Break interrupt flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>BIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No break event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>An active level has been detected on the break input. An interrupt is generated if BIE=1 in the TIMx_DIER register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>BIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIF</name>
              <description>Trigger interrupt flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No trigger event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>Trigger interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMIF</name>
              <description>COM interrupt flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>COMIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoCOM</name>
                  <description>No COM event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>COM</name>
                  <description>COM interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>COMIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sIF</name>
              <description>Capture/compare %s interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1IFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>No campture/compare has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>If CC1 is an output: The content of the counter TIMx_CNT matches the content of the TIMx_CCR1 register. If CC1 is an input: The counter value has been captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1IFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>UIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoUpdateOccurred</name>
                  <description>No update occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdatePending</name>
                  <description>Update interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>UIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>BG</name>
              <description>Break generation</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>A break event is generated. MOE bit is cleared and BIF flag is set. Related interrupt or DMA transfer can occur if enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TG</name>
              <description>Trigger generation</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>The TIF flag is set in TIMx_SR register. Related interrupt or DMA transfer can occur if enabled.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMG</name>
              <description>Capture/Compare control update
              generation</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COMGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>When CCPC bit is set, it allows CCxE, CCxNE and OCxM bits to be updated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sG</name>
              <description>Capture/compare %s generation</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1GW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>If CC1 is an output: CC1IF flag is set, Corresponding interrupt or DMA request is sent if enabled. If CC1 is an input: The current value of the counter is captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UG</name>
              <description>Update generation</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UG</name>
                <enumeratedValue>
                  <name>Update</name>
                  <description>Re-initializes the timer counter and generates an update of the registers.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>capture/compare mode register (output
          mode)</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1M_3</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal output compare mode (modes 0-7)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Extended</name>
                  <description>Extended output compare mode (modes 7-15)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>OC1M</name>
                <enumeratedValue>
                  <name>Frozen</name>
                  <description>The comparison between the output compare register TIMx_CCRy and the counter TIMx_CNT has no effect on the outputs / OpmMode1: Retriggerable OPM mode 1 - In up-counting mode, the channel is active until a trigger event is detected (on TRGI signal). In down-counting mode, the channel is inactive</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveOnMatch</name>
                  <description>Set channel to active level on match. OCyREF signal is forced high when the counter matches the capture/compare register / OpmMode2: Inversely to OpmMode1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>InactiveOnMatch</name>
                  <description>Set channel to inactive level on match. OCyREF signal is forced low when the counter matches the capture/compare register / Reserved</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Toggle</name>
                  <description>OCyREF toggles when TIMx_CNT=TIMx_CCRy / Reserved</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceInactive</name>
                  <description>OCyREF is forced low / CombinedPwmMode1: OCyREF has the same behavior as in PWM mode 1. OCyREFC is the logical OR between OC1REF and OC2REF</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceActive</name>
                  <description>OCyREF is forced high / CombinedPwmMode2: OCyREF has the same behavior as in PWM mode 2. OCyREFC is the logical AND between OC1REF and OC2REF</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode1</name>
                  <description>In upcounting, channel is active as long as TIMx_CNT&lt;TIMx_CCRy else inactive. In downcounting, channel is inactive as long as TIMx_CNT&gt;TIMx_CCRy else active / Reserved</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode2</name>
                  <description>Inversely to PwmMode1 / Reserved</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1PE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Preload register on CCRx disabled. New values written to CCRx are taken into account immediately</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Preload register on CCRx enabled. Preload value is loaded into active register on each update event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1FE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Fast output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Fast output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>Output</name>
                  <description>CCx channel is configured as output</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ICFilter</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ICPrescaler</name>
                <enumeratedValue>
                  <name>NoPrescaler</name>
                  <description>No prescaler, capture is done each time an edge is detected on the capture input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwoEvents</name>
                  <description>Capture is done once every 2 events</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourEvents</name>
                  <description>Capture is done once every 4 events</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EightEvents</name>
                  <description>Capture is done once every 8 events</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC2S</name>
              <description>Capture/Compare 2
              selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC2S</name>
                <enumeratedValue>
                  <name>TI2</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TI2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TI1</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI2</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCER</name>
          <displayName>CCER</displayName>
          <description>capture/compare enable
          register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>2</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1NP</name>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>OCxN active high</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>OCxN active low</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1P</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Noninverted/rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Inverted/falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sE</name>
              <description>Capture/Compare %s output enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1E</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Capture disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Capture enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sNE</name>
              <description>Capture/Compare %s complementary output enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1NE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Complementary output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Complementary output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>UIFCPY</name>
              <description>UIF copy</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT16</name>
          <displayName>CNT16</displayName>
          <description>16-bit counter register</description>
          <alternateRegister>CNT</alternateRegister>
          <addressOffset>0x24</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ARR</name>
          <displayName>ARR</displayName>
          <description>auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000FFFF</resetValue>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RCR</name>
          <displayName>RCR</displayName>
          <description>repetition counter register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>REP</name>
              <description>Repetition counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-2</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>MOE</name>
              <description>Main output enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MOE</name>
                <enumeratedValue>
                  <name>DisabledIdle</name>
                  <description>OC/OCN are disabled or forced idle depending on OSSI</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OC/OCN are enabled if CCxE/CCxNE are set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AOE</name>
              <description>Automatic output enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AOE</name>
                <enumeratedValue>
                  <name>Manual</name>
                  <description>MOE can be set only by software</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Automatic</name>
                  <description>MOE can be set by software or automatically at the next update event (if none of the break inputs BRK and BRK2 is active)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKP</name>
              <description>Break polarity</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BKP</name>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>Break input BRKx is active low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>Break input BRKx is active high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKE</name>
              <description>Break enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BKE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Break function x disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Break function x enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OSSR</name>
              <description>Off-state selection for Run
              mode</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OSSR</name>
                <enumeratedValue>
                  <name>HiZ</name>
                  <description>When inactive, OC/OCN outputs are disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleLevel</name>
                  <description>When inactive, OC/OCN outputs are enabled with their inactive level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OSSI</name>
              <description>Off-state selection for Idle
              mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OSSI</name>
                <enumeratedValue>
                  <name>HiZ</name>
                  <description>When inactive, OC/OCN outputs are disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleLevel</name>
                  <description>When inactive, OC/OCN outputs are forced to idle level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LOCK</name>
              <description>Lock configuration</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>LOCK</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>No bit is write protected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level1</name>
                  <description>Any bits except MOE, OSSR, OSSI and LOCK in TIMx_BDTR register, OISx and OISxN bits in TIMx_CR2 register can no longer be written</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level2</name>
                  <description>LOCK Level 1 + CC Polarity bits (CCxP/CCxNP bits in TIMx_CCER register, as long as the related channel is configured in output through the CCxS bits) as well as OSSR and OSSI bits can no longer be written</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level3</name>
                  <description>LOCK Level 2 + CC Control bits (OCxM and OCxPE bits in TIMx_CCMRx registers, as long as the related channel is configured in output through the CCxS bits) can no longer be written</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DTG</name>
              <description>Dead-time generator setup</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR</name>
          <displayName>DCR</displayName>
          <description>DMA control register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</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>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</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>
      <name>TIM16</name>
      <description>General-purpose-timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40014400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TIM16_IRQ</name>
        <description>Timer 16 global interrupt</description>
        <value>25</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UIFREMAP</name>
              <description>UIF status bit remapping</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CKD</name>
              <description>Clock division</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKD</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>t_DTS = t_CK_INT</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>t_DTS = 2 × t_CK_INT</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>t_DTS = 4 × t_CK_INT</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARPE</name>
              <description>Auto-reload preload enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARPE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>TIMx_APRR register is not buffered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>TIMx_APRR register is buffered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPM</name>
              <description>One-pulse mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter is not stopped at update event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter stops counting at the next update event (clearing the CEN bit)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>URS</name>
              <description>Update request source</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>URS</name>
                <enumeratedValue>
                  <name>AnyEvent</name>
                  <description>Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CounterOnly</name>
                  <description>Only counter overflow/underflow generates an update interrupt or DMA request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDIS</name>
              <description>Update disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update event enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update event disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CEN</name>
              <description>Counter enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OIS%sN</name>
              <description>Output Idle state (OC%sN output)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OIS1N</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>OCxN=0 after a dead-time when MOE=0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Set</name>
                  <description>OCxN=1 after a dead-time when MOE=0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OIS%s</name>
              <description>Output Idle state (OC%s output)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OIS1</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>OCx=0 (after a dead-time if OCx(N) is implemented) when MOE=0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Set</name>
                  <description>OCx=1 (after a dead-time if OCx(N) is implemented) when MOE=0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCDS</name>
              <description>Capture/compare DMA
              selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCDS</name>
                <enumeratedValue>
                  <name>OnCompare</name>
                  <description>CCx DMA request sent when CCx event occurs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OnUpdate</name>
                  <description>CCx DMA request sent when update event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCUS</name>
              <description>Capture/compare control update
              selection</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCUS</name>
                <enumeratedValue>
                  <name>Sw</name>
                  <description>When capture/compare control bits are preloaded (CCPC=1), they are updated by setting the COMG bit only</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SwOrEdge</name>
                  <description>When capture/compare control bits are preloaded (CCPC=1), they are updated by setting the COMG bit or when an rising edge occurs on TRGI</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCPC</name>
              <description>Capture/compare preloaded
              control</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCPC</name>
                <enumeratedValue>
                  <name>NotPreloaded</name>
                  <description>CCxE, CCxNE and OCxM bits are not preloaded</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Preloaded</name>
                  <description>CCxE, CCxNE and OCxM bits are preloaded</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>DMA/Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TDE</name>
              <description>Trigger DMA request enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sDE</name>
              <description>Capture/Compare %s DMA request enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1DE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDE</name>
              <description>Update DMA request enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BIE</name>
              <description>Break interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Break interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Break interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIE</name>
              <description>Trigger interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>COMIE</name>
              <description>COM interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COMIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>COM interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>COM interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sIE</name>
              <description>Capture/Compare %s interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMDE</name>
              <description>COM DMA request enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sOF</name>
              <description>Capture/Compare %s overcapture flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1OFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoOvercapture</name>
                  <description>No overcapture has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overcapture</name>
                  <description>The counter value has been captured in TIMx_CCRx register while CCxIF flag was already set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1OFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BIF</name>
              <description>Break interrupt flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>BIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No break event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>An active level has been detected on the break input. An interrupt is generated if BIE=1 in the TIMx_DIER register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>BIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMIF</name>
              <description>COM interrupt flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>COMIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoCOM</name>
                  <description>No COM event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>COM</name>
                  <description>COM interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>COMIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sIF</name>
              <description>Capture/compare %s interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1IFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>No campture/compare has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>If CC1 is an output: The content of the counter TIMx_CNT matches the content of the TIMx_CCR1 register. If CC1 is an input: The counter value has been captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1IFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>UIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoUpdateOccurred</name>
                  <description>No update occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdatePending</name>
                  <description>Update interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>UIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>BG</name>
              <description>Break generation</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>A break event is generated. MOE bit is cleared and BIF flag is set. Related interrupt or DMA transfer can occur if enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMG</name>
              <description>Capture/Compare control update
              generation</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COMGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>When CCPC bit is set, it allows CCxE, CCxNE and OCxM bits to be updated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sG</name>
              <description>Capture/compare %s generation</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1GW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>If CC1 is an output: CC1IF flag is set, Corresponding interrupt or DMA request is sent if enabled. If CC1 is an input: The current value of the counter is captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UG</name>
              <description>Update generation</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UG</name>
                <enumeratedValue>
                  <name>Update</name>
                  <description>Re-initializes the timer counter and generates an update of the registers.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCMR1_Output</name>
          <displayName>CCMR1_Output</displayName>
          <description>capture/compare mode register (output
          mode)</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>OC1M</name>
                <enumeratedValue>
                  <name>Frozen</name>
                  <description>The comparison between the output compare register TIMx_CCRy and the counter TIMx_CNT has no effect on the outputs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveOnMatch</name>
                  <description>Set channel to active level on match. OCyREF signal is forced high when the counter matches the capture/compare register</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>InactiveOnMatch</name>
                  <description>Set channel to inactive level on match. OCyREF signal is forced low when the counter matches the capture/compare register</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Toggle</name>
                  <description>OCyREF toggles when TIMx_CNT=TIMx_CCRy</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceInactive</name>
                  <description>OCyREF is forced low</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceActive</name>
                  <description>OCyREF is forced high</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode1</name>
                  <description>In upcounting, channel is active as long as TIMx_CNT&lt;TIMx_CCRy else inactive. In downcounting, channel is inactive as long as TIMx_CNT&gt;TIMx_CCRy else active</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode2</name>
                  <description>Inversely to PwmMode1</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1PE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Preload register on CCRx disabled. New values written to CCRx are taken into account immediately</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Preload register on CCRx enabled. Preload value is loaded into active register on each update event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1FE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Fast output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Fast output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>Output</name>
                  <description>CCx channel is configured as output</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ICFilter</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ICPrescaler</name>
                <enumeratedValue>
                  <name>NoPrescaler</name>
                  <description>No prescaler, capture is done each time an edge is detected on the capture input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwoEvents</name>
                  <description>Capture is done once every 2 events</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourEvents</name>
                  <description>Capture is done once every 4 events</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EightEvents</name>
                  <description>Capture is done once every 8 events</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CCER</name>
          <displayName>CCER</displayName>
          <description>capture/compare enable
          register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1NP</name>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>OCxN active high</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>OCxN active low</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sNE</name>
              <description>Capture/Compare %s complementary output enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1NE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Complementary output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Complementary output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1P</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Noninverted/rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Inverted/falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>1</dim>
              <dimIncrement>0x0</dimIncrement>
              <dimIndex>1-1</dimIndex>
              <name>CC%sE</name>
              <description>Capture/Compare %s output enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1E</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Capture disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Capture enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>UIFCPY</name>
              <description>UIF copy</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT16</name>
          <displayName>CNT16</displayName>
          <description>16-bit counter register</description>
          <alternateRegister>CNT</alternateRegister>
          <addressOffset>0x24</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ARR</name>
          <displayName>ARR</displayName>
          <description>auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000FFFF</resetValue>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RCR</name>
          <displayName>RCR</displayName>
          <description>repetition counter register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>REP</name>
              <description>Repetition counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>1</dim>
          <dimIncrement>0x2</dimIncrement>
          <dimIndex>1-1</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>MOE</name>
              <description>Main output enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MOE</name>
                <enumeratedValue>
                  <name>DisabledIdle</name>
                  <description>OC/OCN are disabled or forced idle depending on OSSI</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OC/OCN are enabled if CCxE/CCxNE are set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AOE</name>
              <description>Automatic output enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AOE</name>
                <enumeratedValue>
                  <name>Manual</name>
                  <description>MOE can be set only by software</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Automatic</name>
                  <description>MOE can be set by software or automatically at the next update event (if none of the break inputs BRK and BRK2 is active)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKP</name>
              <description>Break polarity</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BKP</name>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>Break input BRKx is active low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>Break input BRKx is active high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKE</name>
              <description>Break enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BKE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Break function x disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Break function x enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OSSR</name>
              <description>Off-state selection for Run
              mode</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OSSR</name>
                <enumeratedValue>
                  <name>HiZ</name>
                  <description>When inactive, OC/OCN outputs are disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleLevel</name>
                  <description>When inactive, OC/OCN outputs are enabled with their inactive level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OSSI</name>
              <description>Off-state selection for Idle
              mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OSSI</name>
                <enumeratedValue>
                  <name>HiZ</name>
                  <description>When inactive, OC/OCN outputs are disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleLevel</name>
                  <description>When inactive, OC/OCN outputs are forced to idle level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LOCK</name>
              <description>Lock configuration</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>LOCK</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>No bit is write protected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level1</name>
                  <description>Any bits except MOE, OSSR, OSSI and LOCK in TIMx_BDTR register, OISx and OISxN bits in TIMx_CR2 register can no longer be written</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level2</name>
                  <description>LOCK Level 1 + CC Polarity bits (CCxP/CCxNP bits in TIMx_CCER register, as long as the related channel is configured in output through the CCxS bits) as well as OSSR and OSSI bits can no longer be written</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level3</name>
                  <description>LOCK Level 2 + CC Control bits (OCxM and OCxPE bits in TIMx_CCMRx registers, as long as the related channel is configured in output through the CCxS bits) can no longer be written</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DTG</name>
              <description>Dead-time generator setup</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR</name>
          <displayName>DCR</displayName>
          <description>DMA control register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</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>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMAB</name>
              <description>DMA register for burst
              accesses</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>OR</name>
          <displayName>OR</displayName>
          <description>Option registers</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TI1_RMP</name>
              <description>Timer 16 input 1 connection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="TIM16">
      <name>TIM17</name>
      <groupName>TIM</groupName>
      <baseAddress>0x40014800</baseAddress>
      <interrupt>
        <name>TIM17_IRQ</name>
        <description>Timer 17 global interrupt</description>
        <value>26</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>USART1</name>
      <description>Universal synchronous asynchronous receiver
      transmitter</description>
      <groupName>USART</groupName>
      <baseAddress>0x40013800</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>USART1_IRQ</name>
        <description>USART1 global interrupt/EXTI25 (USART1 wakeup
        event)</description>
        <value>37</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>EOBIE</name>
              <description>End of Block interrupt
              enable</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOBIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>A USART interrupt is generated when the EOBF flag is set in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTOIE</name>
              <description>Receiver timeout interrupt
              enable</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RTOIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An USART interrupt is generated when the RTOF bit is set in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DEAT</name>
              <description>Driver Enable assertion
              time</description>
              <bitOffset>21</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DEDT</name>
              <description>Driver Enable deassertion
              time</description>
              <bitOffset>16</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>OVER8</name>
              <description>Oversampling mode</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OVER8</name>
                <enumeratedValue>
                  <name>Oversampling16</name>
                  <description>Oversampling by 16</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Oversampling8</name>
                  <description>Oversampling by 8</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMIE</name>
              <description>Character match interrupt
              enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CMIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated when the CMF bit is set in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MME</name>
              <description>Mute mode enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MME</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Receiver in active mode permanently</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Receiver can switch between mute mode and active mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>M</name>
              <description>Word length</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>M</name>
                <enumeratedValue>
                  <name>Bit8</name>
                  <description>1 start bit, 8 data bits, n stop bits</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit9</name>
                  <description>1 start bit, 9 data bits, n stop bits</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WAKE</name>
              <description>Receiver wakeup method</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WAKE</name>
                <enumeratedValue>
                  <name>Idle</name>
                  <description>Idle line</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Address</name>
                  <description>Address mask</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PCE</name>
              <description>Parity control enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PCE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Parity control disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Parity control enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PS</name>
              <description>Parity selection</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PS</name>
                <enumeratedValue>
                  <name>Even</name>
                  <description>Even parity</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Odd</name>
                  <description>Odd parity</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PEIE</name>
              <description>PE interrupt enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever PE=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXEIE</name>
              <description>interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever TXE=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCIE</name>
              <description>Transmission complete interrupt
              enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TCIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever TC=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXNEIE</name>
              <description>RXNE interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXNEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever ORE=1 or RXNE=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IDLEIE</name>
              <description>IDLE interrupt enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IDLEIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Interrupt is generated whenever IDLE=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TE</name>
              <description>Transmitter enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Transmitter is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Transmitter is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RE</name>
              <description>Receiver enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Receiver is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Receiver is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UESM</name>
              <description>USART enable in Stop mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UESM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>USART not able to wake up the MCU from Stop mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>USART able to wake up the MCU from Stop mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UE</name>
              <description>USART enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>UART is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>UART is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>ADD</name>
              <description>Address of the USART node</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>RTOEN</name>
              <description>Receiver timeout enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RTOEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Receiver timeout feature disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Receiver timeout feature enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ABRMOD</name>
              <description>Auto baud rate mode</description>
              <bitOffset>21</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ABRMOD</name>
                <enumeratedValue>
                  <name>Start</name>
                  <description>Measurement of the start bit is used to detect the baud rate</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Edge</name>
                  <description>Falling edge to falling edge measurement</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Frame7F</name>
                  <description>0x7F frame detection</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Frame55</name>
                  <description>0x55 frame detection</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ABREN</name>
              <description>Auto baud rate enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ABREN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Auto baud rate detection is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Auto baud rate detection is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MSBFIRST</name>
              <description>Most significant bit first</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MSBFIRST</name>
                <enumeratedValue>
                  <name>LSB</name>
                  <description>data is transmitted/received with data bit 0 first, following the start bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MSB</name>
                  <description>data is transmitted/received with MSB (bit 7/8/9) first, following the start bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DATAINV</name>
              <description>Binary data inversion</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DATAINV</name>
                <enumeratedValue>
                  <name>Positive</name>
                  <description>Logical data from the data register are send/received in positive/direct logic</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Negative</name>
                  <description>Logical data from the data register are send/received in negative/inverse logic</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXINV</name>
              <description>TX pin active level
              inversion</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXINV</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>TX pin signal works using the standard logic levels</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>TX pin signal values are inverted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXINV</name>
              <description>RX pin active level
              inversion</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXINV</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>RX pin signal works using the standard logic levels</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>RX pin signal values are inverted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SWAP</name>
              <description>Swap TX/RX pins</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SWAP</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>TX/RX pins are used as defined in standard pinout</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Swapped</name>
                  <description>The TX and RX pins functions are swapped</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LINEN</name>
              <description>LIN mode enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LINEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>LIN mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>LIN mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOP</name>
              <description>STOP bits</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>STOP</name>
                <enumeratedValue>
                  <name>Stop1</name>
                  <description>1 stop bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stop0p5</name>
                  <description>0.5 stop bit</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stop2</name>
                  <description>2 stop bit</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stop1p5</name>
                  <description>1.5 stop bit</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CLKEN</name>
              <description>Clock enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CLKEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CK pin disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CK pin enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CPOL</name>
              <description>Clock polarity</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CPOL</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Steady low value on CK pin outside transmission window</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>Steady high value on CK pin outside transmission window</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CPHA</name>
              <description>Clock phase</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CPHA</name>
                <enumeratedValue>
                  <name>First</name>
                  <description>The first clock transition is the first data capture edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Second</name>
                  <description>The second clock transition is the first data capture edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LBCL</name>
              <description>Last bit clock pulse</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LBCL</name>
                <enumeratedValue>
                  <name>NotOutput</name>
                  <description>The clock pulse of the last data bit is not output to the CK pin</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Output</name>
                  <description>The clock pulse of the last data bit is output to the CK pin</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LBDIE</name>
              <description>LIN break detection interrupt
              enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LBDIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An interrupt is generated whenever LBDF=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LBDL</name>
              <description>LIN break detection length</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LBDL</name>
                <enumeratedValue>
                  <name>Bit10</name>
                  <description>10-bit break detection</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit11</name>
                  <description>11-bit break detection</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADDM7</name>
              <description>7-bit Address Detection/4-bit Address
              Detection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADDM7</name>
                <enumeratedValue>
                  <name>Bit4</name>
                  <description>4-bit address detection</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit7</name>
                  <description>7-bit address detection</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>WUFIE</name>
              <description>Wakeup from Stop mode interrupt
              enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WUFIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An USART interrupt is generated whenever WUF=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUS</name>
              <description>Wakeup from Stop mode interrupt flag
              selection</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>WUS</name>
                <enumeratedValue>
                  <name>Address</name>
                  <description>WUF active on address match</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Start</name>
                  <description>WuF active on Start bit detection</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RXNE</name>
                  <description>WUF active on RXNE</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SCARCNT</name>
              <description>Smartcard auto-retry count</description>
              <bitOffset>17</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DEP</name>
              <description>Driver enable polarity
              selection</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DEP</name>
                <enumeratedValue>
                  <name>High</name>
                  <description>DE signal is active high</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Low</name>
                  <description>DE signal is active low</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DEM</name>
              <description>Driver enable mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DEM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DE function is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>The DE signal is output on the RTS pin</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DDRE</name>
              <description>DMA Disable on Reception
              Error</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DDRE</name>
                <enumeratedValue>
                  <name>NotDisabled</name>
                  <description>DMA is not disabled in case of reception error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA is disabled following a reception error</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVRDIS</name>
              <description>Overrun Disable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OVRDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Overrun Error Flag, ORE, is set when received data is not read before receiving new data</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Overrun functionality is disabled. If new data is received while the RXNE flag is still set the ORE flag is not set and the new received data overwrites the previous content of the RDR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ONEBIT</name>
              <description>One sample bit method
              enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ONEBIT</name>
                <enumeratedValue>
                  <name>Sample3</name>
                  <description>Three sample bit method</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Sample1</name>
                  <description>One sample bit method</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSIE</name>
              <description>CTS interrupt enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTSIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An interrupt is generated whenever CTSIF=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSE</name>
              <description>CTS enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTSE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CTS hardware flow control disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CTS mode enabled, data is only transmitted when the CTS input is asserted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTSE</name>
              <description>RTS enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RTSE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>RTS hardware flow control disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>RTS output enabled, data is only requested when there is space in the receive buffer</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMAT</name>
              <description>DMA enable transmitter</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAT</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA mode is disabled for transmission</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA mode is enabled for transmission</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMAR</name>
              <description>DMA enable receiver</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAR</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA mode is disabled for reception</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA mode is enabled for reception</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SCEN</name>
              <description>Smartcard mode enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Smartcard Mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Smartcard Mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NACK</name>
              <description>Smartcard NACK enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>NACK</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>NACK transmission in case of parity error is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>NACK transmission during parity error is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HDSEL</name>
              <description>Half-duplex selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>HDSEL</name>
                <enumeratedValue>
                  <name>NotSelected</name>
                  <description>Half duplex mode is not selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Selected</name>
                  <description>Half duplex mode is selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IRLP</name>
              <description>IrDA low-power</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IRLP</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LowPower</name>
                  <description>Low-power mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IREN</name>
              <description>IrDA mode enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IREN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>IrDA disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>IrDA enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EIE</name>
              <description>Error interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Interrupt is inhibited</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>An interrupt is generated when FE=1 or ORE=1 or NF=1 in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>BRR</name>
              <description>mantissa of USARTDIV</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>GT</name>
              <description>Guard time value</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>BLEN</name>
              <description>Block Length</description>
              <bitOffset>24</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>RTO</name>
              <description>Receiver timeout value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>24</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>16777215</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RQR</name>
          <displayName>RQR</displayName>
          <description>Request register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TXFRQ</name>
              <description>Transmit data flush
              request</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXFRQ</name>
                <enumeratedValue>
                  <name>Discard</name>
                  <description>Set the TXE flags. This allows to discard the transmit data</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXFRQ</name>
              <description>Receive data flush request</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXFRQ</name>
                <enumeratedValue>
                  <name>Discard</name>
                  <description>clears the RXNE flag. This allows to discard the received data without reading it, and avoid an overrun condition</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MMRQ</name>
              <description>Mute mode request</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MMRQ</name>
                <enumeratedValue>
                  <name>Mute</name>
                  <description>Puts the USART in mute mode and sets the RWU flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SBKRQ</name>
              <description>Send break request</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SBKRQ</name>
                <enumeratedValue>
                  <name>Break</name>
                  <description>sets the SBKF flag and request to send a BREAK on the line, as soon as the transmit machine is available</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ABRRQ</name>
              <description>Auto baud rate request</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ABRRQ</name>
                <enumeratedValue>
                  <name>Request</name>
                  <description>resets the ABRF flag in the USART_ISR and request an automatic baud rate measurement on the next received data frame</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>Interrupt &amp; status
          register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x000000C0</resetValue>
          <fields>
            <field>
              <name>REACK</name>
              <description>Receive enable acknowledge
              flag</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TEACK</name>
              <description>Transmit enable acknowledge
              flag</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WUF</name>
              <description>Wakeup from Stop mode flag</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>RWU</name>
              <description>Receiver wakeup from Mute
              mode</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RWU</name>
                <enumeratedValue>
                  <name>Active</name>
                  <description>Receiver in Active mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mute</name>
                  <description>Receiver in Mute mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SBKF</name>
              <description>Send break flag</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SBKF</name>
                <enumeratedValue>
                  <name>NoBreak</name>
                  <description>No break character transmitted</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Break</name>
                  <description>Break character transmitted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMF</name>
              <description>character match flag</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CMF</name>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>No Character match detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>Character match detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BUSY</name>
              <description>Busy flag</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BUSY</name>
                <enumeratedValue>
                  <name>Idle</name>
                  <description>USART is idle (no reception)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Busy</name>
                  <description>Reception on going</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ABRF</name>
              <description>Auto baud rate flag</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ABRE</name>
              <description>Auto baud rate error</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>EOBF</name>
              <description>End of block flag</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOBF</name>
                <enumeratedValue>
                  <name>NotReached</name>
                  <description>End of Block not reached</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reached</name>
                  <description>End of Block (number of characters) reached</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTOF</name>
              <description>Receiver timeout</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RTOF</name>
                <enumeratedValue>
                  <name>NotReached</name>
                  <description>Timeout value not reached</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reached</name>
                  <description>Timeout value reached without any data reception</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTS</name>
              <description>CTS flag</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTS</name>
                <enumeratedValue>
                  <name>Set</name>
                  <description>CTS line set</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>CTS line reset</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSIF</name>
              <description>CTS interrupt flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CTSIF</name>
                <enumeratedValue>
                  <name>NotChanged</name>
                  <description>No change occurred on the CTS status line</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Changed</name>
                  <description>A change occurred on the CTS status line</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LBDF</name>
              <description>LIN break detection flag</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LBDF</name>
                <enumeratedValue>
                  <name>NotDetected</name>
                  <description>LIN break not detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Detected</name>
                  <description>LIN break detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXE</name>
              <description>Transmit data register
              empty</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXE</name>
                <enumeratedValue>
                  <name>Full</name>
                  <description>Transmit FIFO is full</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotFull</name>
                  <description>Transmit FIFO is not full</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TC</name>
              <description>Transmission complete</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TC</name>
                <enumeratedValue>
                  <name>TxNotComplete</name>
                  <description>Transmission is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TxComplete</name>
                  <description>Transmission is complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXNE</name>
              <description>Read data register not
              empty</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXNE</name>
                <enumeratedValue>
                  <name>NoData</name>
                  <description>Data is not received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DataReady</name>
                  <description>Received data is ready to be read</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IDLE</name>
              <description>Idle line detected</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>IDLE</name>
                <enumeratedValue>
                  <name>NoIdle</name>
                  <description>No Idle Line is detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Idle</name>
                  <description>Idle Line is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ORE</name>
              <description>Overrun error</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ORE</name>
                <enumeratedValue>
                  <name>NoOverrun</name>
                  <description>No Overrun error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overrun</name>
                  <description>Overrun error is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NF</name>
              <description>Noise detected flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>NF</name>
                <enumeratedValue>
                  <name>NoNoise</name>
                  <description>No noise is detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Noise</name>
                  <description>Noise is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FE</name>
              <description>Framing error</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FE</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No Framing error is detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>Framing error or break character is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PE</name>
              <description>Parity error</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PE</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No parity error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>Parity error</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>ICR</name>
          <displayName>ICR</displayName>
          <description>Interrupt flag clear register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>WUCF</name>
              <description>Wakeup from Stop mode clear
              flag</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>WUCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the WUF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMCF</name>
              <description>Character match clear flag</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CMCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the CMF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOBCF</name>
              <description>End of timeout clear flag</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>EOBCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the EOBF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RTOCF</name>
              <description>Receiver timeout clear
              flag</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>RTOCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the RTOF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CTSCF</name>
              <description>CTS clear flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CTSCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the CTSIF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LBDCF</name>
              <description>LIN break detection clear
              flag</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>LBDCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the LBDF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCCF</name>
              <description>Transmission complete clear
              flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TCCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the TC flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>IDLECF</name>
              <description>Idle line detected clear
              flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>IDLECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the IDLE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ORECF</name>
              <description>Overrun error clear flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>ORECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the ORE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NCF</name>
              <description>Noise detected clear flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>NCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the NF flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FECF</name>
              <description>Framing error clear flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>FECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the FE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PECF</name>
              <description>Parity error clear flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>PECF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the PE flag in the ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>RDR</name>
              <description>Receive data value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>TDR</name>
              <description>Transmit data value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="USART1">
      <name>USART2</name>
      <baseAddress>0x40004400</baseAddress>
      <interrupt>
        <name>USART2_IRQ</name>
        <description>USART2 global interrupt/EXTI26 (USART1 wakeup
        event)</description>
        <value>38</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="USART1">
      <name>USART3</name>
      <baseAddress>0x40004800</baseAddress>
      <interrupt>
        <name>USART3_IRQ</name>
        <description>USART3 global interrupt/EXTI28 (USART1 wakeup
        event)</description>
        <value>39</value>
      </interrupt>
    </peripheral>
    <peripheral>
      <name>SPI2</name>
      <description>Serial peripheral interface/Inter-IC
      sound</description>
      <groupName>SPI</groupName>
      <baseAddress>0x40003800</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>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>BIDIMODE</name>
              <description>Bidirectional data mode
              enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BIDIMODE</name>
                <enumeratedValue>
                  <name>Unidirectional</name>
                  <description>2-line unidirectional data mode selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bidirectional</name>
                  <description>1-line bidirectional data mode selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BIDIOE</name>
              <description>Output enable in bidirectional
              mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BIDIOE</name>
                <enumeratedValue>
                  <name>OutputDisabled</name>
                  <description>Output disabled (receive-only mode)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OutputEnabled</name>
                  <description>Output enabled (transmit-only mode)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CRCEN</name>
              <description>Hardware CRC calculation
              enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CRCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CRC calculation disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CRC calculation enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CRCNEXT</name>
              <description>CRC transfer next</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CRCNEXT</name>
                <enumeratedValue>
                  <name>TxBuffer</name>
                  <description>Next transmit value is from Tx buffer</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CRC</name>
                  <description>Next transmit value is from Tx CRC register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CRCL</name>
              <description>CRC length</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CRCL</name>
                <enumeratedValue>
                  <name>EightBit</name>
                  <description>8-bit CRC length</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SixteenBit</name>
                  <description>16-bit CRC length</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXONLY</name>
              <description>Receive only</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXONLY</name>
                <enumeratedValue>
                  <name>FullDuplex</name>
                  <description>Full duplex (Transmit and receive)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OutputDisabled</name>
                  <description>Output disabled (Receive-only mode)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SSM</name>
              <description>Software slave management</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SSM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Software slave management disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Software slave management enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SSI</name>
              <description>Internal slave select</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SSI</name>
                <enumeratedValue>
                  <name>SlaveSelected</name>
                  <description>0 is forced onto the NSS pin and the I/O value of the NSS pin is ignored</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SlaveNotSelected</name>
                  <description>1 is forced onto the NSS pin and the I/O value of the NSS pin is ignored</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LSBFIRST</name>
              <description>Frame format</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LSBFIRST</name>
                <enumeratedValue>
                  <name>MSBFirst</name>
                  <description>Data is transmitted/received with the MSB first</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSBFirst</name>
                  <description>Data is transmitted/received with the LSB first</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SPE</name>
              <description>SPI enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SPE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Peripheral disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BR</name>
              <description>Baud rate control</description>
              <bitOffset>3</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>BR</name>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>f_PCLK / 2</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>f_PCLK / 4</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>f_PCLK / 8</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>f_PCLK / 16</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div32</name>
                  <description>f_PCLK / 32</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div64</name>
                  <description>f_PCLK / 64</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div128</name>
                  <description>f_PCLK / 128</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div256</name>
                  <description>f_PCLK / 256</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MSTR</name>
              <description>Master selection</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MSTR</name>
                <enumeratedValue>
                  <name>Slave</name>
                  <description>Slave configuration</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Master</name>
                  <description>Master configuration</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CPOL</name>
              <description>Clock polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CPOL</name>
                <enumeratedValue>
                  <name>IdleLow</name>
                  <description>CK to 0 when idle</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleHigh</name>
                  <description>CK to 1 when idle</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CPHA</name>
              <description>Clock phase</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CPHA</name>
                <enumeratedValue>
                  <name>FirstEdge</name>
                  <description>The first clock transition is the first data capture edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SecondEdge</name>
                  <description>The second clock transition is the first data capture edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RXDMAEN</name>
              <description>Rx buffer DMA enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXDMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Rx buffer DMA disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Rx buffer DMA enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXDMAEN</name>
              <description>Tx buffer DMA enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXDMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Tx buffer DMA disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Tx buffer DMA enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SSOE</name>
              <description>SS output enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SSOE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>SS output is disabled in master mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>SS output is enabled in master mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NSSP</name>
              <description>NSS pulse management</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>NSSP</name>
                <enumeratedValue>
                  <name>NoPulse</name>
                  <description>No NSS pulse</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PulseGenerated</name>
                  <description>NSS pulse generated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FRF</name>
              <description>Frame format</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FRF</name>
                <enumeratedValue>
                  <name>Motorola</name>
                  <description>SPI Motorola mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI</name>
                  <description>SPI TI mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ERRIE</name>
              <description>Error interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ERRIE</name>
                <enumeratedValue>
                  <name>Masked</name>
                  <description>Error interrupt masked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotMasked</name>
                  <description>Error interrupt not masked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXNEIE</name>
              <description>RX buffer not empty interrupt
              enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RXNEIE</name>
                <enumeratedValue>
                  <name>Masked</name>
                  <description>RXE interrupt masked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotMasked</name>
                  <description>RXE interrupt not masked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXEIE</name>
              <description>Tx buffer empty interrupt
              enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TXEIE</name>
                <enumeratedValue>
                  <name>Masked</name>
                  <description>TXE interrupt masked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotMasked</name>
                  <description>TXE interrupt not masked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DS</name>
              <description>Data size</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>DS</name>
                <enumeratedValue>
                  <name>FourBit</name>
                  <description>4-bit</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FiveBit</name>
                  <description>5-bit</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SixBit</name>
                  <description>6-bit</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SevenBit</name>
                  <description>7-bit</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EightBit</name>
                  <description>8-bit</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NineBit</name>
                  <description>9-bit</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TenBit</name>
                  <description>10-bit</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ElevenBit</name>
                  <description>11-bit</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwelveBit</name>
                  <description>12-bit</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThirteenBit</name>
                  <description>13-bit</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourteenBit</name>
                  <description>14-bit</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FifteenBit</name>
                  <description>15-bit</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SixteenBit</name>
                  <description>16-bit</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FRXTH</name>
              <description>FIFO reception threshold</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FRXTH</name>
                <enumeratedValue>
                  <name>Half</name>
                  <description>RXNE event is generated if the FIFO level is greater than or equal to 1/2 (16-bit)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Quarter</name>
                  <description>RXNE event is generated if the FIFO level is greater than or equal to 1/4 (8-bit)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LDMA_RX</name>
              <description>Last DMA transfer for
              reception</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LDMA_RX</name>
                <enumeratedValue>
                  <name>Even</name>
                  <description>Number of data to transfer for receive is even</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Odd</name>
                  <description>Number of data to transfer for receive is odd</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LDMA_TX</name>
              <description>Last DMA transfer for
              transmission</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>LDMA_TX</name>
                <enumeratedValue>
                  <name>Even</name>
                  <description>Number of data to transfer for transmit is even</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Odd</name>
                  <description>Number of data to transfer for transmit is odd</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x10</size>
          <resetValue>0x00000002</resetValue>
          <fields>
            <field>
              <name>RXNE</name>
              <description>Receive buffer not empty</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXNE</name>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>Rx buffer empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>Rx buffer not empty</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXE</name>
              <description>Transmit buffer empty</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TXE</name>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>Tx buffer not empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>Tx buffer empty</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CHSIDE</name>
              <description>Channel side</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>CHSIDE</name>
                <enumeratedValue>
                  <name>Left</name>
                  <description>Channel left has to be transmitted or has been received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Right</name>
                  <description>Channel right has to be transmitted or has been received</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDR</name>
              <description>Underrun flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>UDRR</name>
                <enumeratedValue>
                  <name>NoUnderrun</name>
                  <description>No underrun occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Underrun</name>
                  <description>Underrun occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CRCERR</name>
              <description>CRC error flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CRCERRR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Match</name>
                  <description>CRC value received matches the SPIx_RXCRCR value</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>CRC value received does not match the SPIx_RXCRCR value</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CRCERRW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MODF</name>
              <description>Mode fault</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>MODFR</name>
                <enumeratedValue>
                  <name>NoFault</name>
                  <description>No mode fault occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Fault</name>
                  <description>Mode fault occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVR</name>
              <description>Overrun flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>OVRR</name>
                <enumeratedValue>
                  <name>NoOverrun</name>
                  <description>No overrun occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overrun</name>
                  <description>Overrun occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BSY</name>
              <description>Busy flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>BSYR</name>
                <enumeratedValue>
                  <name>NotBusy</name>
                  <description>SPI not busy</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Busy</name>
                  <description>SPI busy</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FRE</name>
              <description>TI frame format error</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>FRER</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No frame format error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>A frame format error occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FRLVL</name>
              <description>FIFO reception level</description>
              <bitOffset>9</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>FRLVLR</name>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>Rx FIFO Empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Quarter</name>
                  <description>Rx 1/4 FIFO</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Half</name>
                  <description>Rx 1/2 FIFO</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Full</name>
                  <description>Rx FIFO full</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FTLVL</name>
              <description>FIFO transmission level</description>
              <bitOffset>11</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>FTLVLR</name>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>Tx FIFO Empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Quarter</name>
                  <description>Tx 1/4 FIFO</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Half</name>
                  <description>Tx 1/2 FIFO</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Full</name>
                  <description>Tx FIFO full</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>data register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DR</name>
              <description>Data register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>DR8</name>
          <description>Direct 8-bit access to data register</description>
          <alternateRegister>DR</alternateRegister>
          <addressOffset>0xC</addressOffset>
          <size>0x8</size>
          <access>read-write</access>
          <fields>
            <field>
              <name>DR</name>
              <description>Data register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CRCPR</name>
          <displayName>CRCPR</displayName>
          <description>CRC polynomial register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000007</resetValue>
          <fields>
            <field>
              <name>CRCPOLY</name>
              <description>CRC polynomial register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>RXCRCR</name>
          <displayName>RXCRCR</displayName>
          <description>RX CRC register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RxCRC</name>
              <description>Rx CRC register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TXCRCR</name>
          <displayName>TXCRCR</displayName>
          <description>TX CRC register</description>
          <addressOffset>0x18</addressOffset>
          <size>0x10</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TxCRC</name>
              <description>Tx CRC register</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>I2SCFGR</name>
          <displayName>I2SCFGR</displayName>
          <description>I2S configuration register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>I2SMOD</name>
              <description>I2S mode selection</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2SMOD</name>
                <enumeratedValue>
                  <name>SPIMode</name>
                  <description>SPI mode is selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>I2SMode</name>
                  <description>I2S mode is selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2SE</name>
              <description>I2S Enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2SE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>I2S peripheral is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>I2S peripheral is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2SCFG</name>
              <description>I2S configuration mode</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>I2SCFG</name>
                <enumeratedValue>
                  <name>SlaveTx</name>
                  <description>Slave - transmit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SlaveRx</name>
                  <description>Slave - receive</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MasterTx</name>
                  <description>Master - transmit</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MasterRx</name>
                  <description>Master - receive</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PCMSYNC</name>
              <description>PCM frame synchronization</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PCMSYNC</name>
                <enumeratedValue>
                  <name>Short</name>
                  <description>Short frame synchronisation</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Long</name>
                  <description>Long frame synchronisation</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2SSTD</name>
              <description>I2S standard selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>I2SSTD</name>
                <enumeratedValue>
                  <name>Philips</name>
                  <description>I2S Philips standard</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MSB</name>
                  <description>MSB justified standard</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>LSB</name>
                  <description>LSB justified standard</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PCM</name>
                  <description>PCM standard</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CKPOL</name>
              <description>Steady state clock
              polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CKPOL</name>
                <enumeratedValue>
                  <name>IdleLow</name>
                  <description>I2S clock inactive state is low level</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleHigh</name>
                  <description>I2S clock inactive state is high level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DATLEN</name>
              <description>Data length to be
              transferred</description>
              <bitOffset>1</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>DATLEN</name>
                <enumeratedValue>
                  <name>SixteenBit</name>
                  <description>16-bit data length</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwentyFourBit</name>
                  <description>24-bit data length</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThirtyTwoBit</name>
                  <description>32-bit data length</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CHLEN</name>
              <description>Channel length (number of bits per audio
              channel)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CHLEN</name>
                <enumeratedValue>
                  <name>SixteenBit</name>
                  <description>16-bit wide</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThirtyTwoBit</name>
                  <description>32-bit wide</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>I2SPR</name>
          <displayName>I2SPR</displayName>
          <description>I2S prescaler register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000010</resetValue>
          <fields>
            <field>
              <name>MCKOE</name>
              <description>Master clock output enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MCKOE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Master clock output is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Master clock output is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ODD</name>
              <description>Odd factor for the
              prescaler</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ODD</name>
                <enumeratedValue>
                  <name>Even</name>
                  <description>Real divider value is I2SDIV * 2</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Odd</name>
                  <description>Real divider value is (I2SDIV * 2) + 1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2SDIV</name>
              <description>I2S Linear prescaler</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>2</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="SPI2">
      <name>SPI3</name>
      <baseAddress>0x40003C00</baseAddress>
    </peripheral>
    <peripheral derivedFrom="SPI2">
      <name>I2S2ext</name>
      <baseAddress>0x40003400</baseAddress>
    </peripheral>
    <peripheral derivedFrom="SPI2">
      <name>I2S3ext</name>
      <baseAddress>0x40004000</baseAddress>
    </peripheral>
    <peripheral>
      <name>ADC1</name>
      <description>Analog to digital converter</description>
      <groupName>ADC</groupName>
      <baseAddress>0x50000000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>ADC1_IRQ</name>
        <description>ADC1 interrupt</description>
        <value>18</value>
      </interrupt>
      <registers>
        <register>
          <name>ISR</name>
          <displayName>ISR</displayName>
          <description>ADC interrupt and status
          register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>JQOVF</name>
              <description>Injected context queue
              overflow</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>JQOVFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoOverflow</name>
                  <description>No injected context queue overflow has occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overflow</name>
                  <description>Injected context queue overflow has occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>JQOVFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear injected context queue overflow flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>3</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-3</dimIndex>
              <name>AWD%s</name>
              <description>Analog watchdog %s flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>AWD1R</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoEvent</name>
                  <description>No analog watchdog event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Event</name>
                  <description>Analog watchdog event occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>AWD1W</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear analog watchdog event occurred flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JEOS</name>
              <description>Injected channel end of sequence
              flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>JEOSR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Injected sequence is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Injected sequence complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>JEOSW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear Injected sequence complete flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JEOC</name>
              <description>Injected channel end of conversion
              flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>JEOCR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Injected conversion is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Injected conversion complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>JEOCW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear injected conversion complete flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVR</name>
              <description>ADC overrun</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>OVRR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoOverrun</name>
                  <description>No overrun occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overrun</name>
                  <description>Overrun occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>OVRW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear overrun occurred flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOS</name>
              <description>End of regular sequence
              flag</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>EOSR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Regular sequence is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Regular sequence complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>EOSW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear regular sequence complete flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOC</name>
              <description>End of conversion flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>EOCR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Regular conversion is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Regular conversion complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>EOCW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear regular conversion complete flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOSMP</name>
              <description>End of sampling flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>EOSMPR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotEnded</name>
                  <description>End of sampling phase no yet reached</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ended</name>
                  <description>End of sampling phase reached</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>EOSMPW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear end of sampling phase reached flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADRDY</name>
              <description>ADC ready</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>ADRDYR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>ADC is not ready to start conversion</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>ADC is ready to start conversion</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ADRDYW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear ADC is ready to start conversion flag</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>IER</name>
          <displayName>IER</displayName>
          <description>ADC interrupt enable register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>JQOVFIE</name>
              <description>Injected context queue overflow
              interrupt enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>JQOVFIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Injected context queue overflow interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Injected context queue overflow interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>3</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-3</dimIndex>
              <name>AWD%sIE</name>
              <description>Analog watchdog %s interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AWD1IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Analog watchdog interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Analog watchdog interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JEOSIE</name>
              <description>End of injected sequence of conversions
              interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>JEOSIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>End of injected sequence interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>End of injected sequence interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JEOCIE</name>
              <description>End of injected conversion interrupt
              enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>JEOCIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>End of injected conversion interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>End of injected conversion interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVRIE</name>
              <description>Overrun interrupt enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OVRIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Overrun interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Overrun interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOSIE</name>
              <description>End of regular sequence of conversions
              interrupt enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOSIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>End of regular sequence interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>End of regular sequence interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOCIE</name>
              <description>End of regular conversion interrupt
              enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOCIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>End of regular conversion interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>End of regular conversion interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOSMPIE</name>
              <description>End of sampling flag interrupt enable
              for regular conversions</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOSMPIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>End of regular conversion sampling phase interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>End of regular conversion sampling phase interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADRDYIE</name>
              <description>ADC ready interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADRDYIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>ADC ready interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>ADC ready interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>ADC control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <resetValue>0x20000000</resetValue>
          <fields>
            <field>
              <name>ADCAL</name>
              <description>ADC calibration</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>ADCALR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotCalibrating</name>
                  <description>ADC calibration either not yet performed or completed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Calibrating</name>
                  <description>ADC calibration in progress</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ADCALW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>StartCalibration</name>
                  <description>Start the ADC calibration sequence</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADCALDIF</name>
              <description>Differential mode for
              calibration</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ADCALDIF</name>
                <enumeratedValue>
                  <name>SingleEnded</name>
                  <description>Calibration for single-ended mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Differential</name>
                  <description>Calibration for differential mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADVREGEN</name>
              <description>ADC voltage regulator
              enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ADVREGEN</name>
                <enumeratedValue>
                  <name>Intermediate</name>
                  <description>Intermediate state required when moving the ADC voltage regulator between states</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>ADC voltage regulator enabled</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>ADC voltage regulator disabled</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADSTP</name>
              <description>ADC stop of regular conversion
              command</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>ADSTPR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotStopping</name>
                  <description>No stop command active</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stopping</name>
                  <description>ADC stopping conversion</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ADSTPW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>StopConversion</name>
                  <description>Stop the active conversion</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JADSTP</name>
              <description>ADC stop of injected conversion
              command</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues derivedFrom="ADSTPR">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="ADSTPW">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>ADSTART</name>
              <description>ADC start of regular
              conversion</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>ADSTARTR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotActive</name>
                  <description>No conversion ongoing</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Active</name>
                  <description>ADC operating and may be converting</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ADSTARTW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>StartConversion</name>
                  <description>Start the ADC conversion (may be delayed for hardware triggers)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JADSTART</name>
              <description>ADC start of injected
              conversion</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues derivedFrom="ADSTARTR">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="ADSTARTW">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>ADDIS</name>
              <description>ADC disable command</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>ADDISR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotDisabling</name>
                  <description>No disable command active</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabling</name>
                  <description>ADC disabling</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ADDISW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Disable</name>
                  <description>Disable the ADC</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADEN</name>
              <description>ADC enable control</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>ADENR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>ADC disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>ADC enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ADENW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Enable the ADC</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR</name>
          <displayName>CFGR</displayName>
          <description>ADC configuration register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>AWD1CH</name>
              <description>Analog watchdog 1 channel
              selection</description>
              <bitOffset>26</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>18</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>JAUTO</name>
              <description>Automatic injected group
              conversion</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>JAUTO</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Automatic injected group conversion disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Automatic injected group conversion enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JAWD1EN</name>
              <description>Analog watchdog 1 enable on injected
              channels</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>JAWD1EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Analog watchdog 1 disabled on injected channels</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Analog watchdog 1 enabled on injected channels</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AWD1EN</name>
              <description>Analog watchdog 1 enable on regular
              channels</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AWD1EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Analog watchdog 1 disabled on regular channels</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Analog watchdog 1 enabled on regular channels</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AWD1SGL</name>
              <description>Enable the watchdog 1 on a single
              channel or on all channels</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AWD1SGL</name>
                <enumeratedValue>
                  <name>All</name>
                  <description>Analog watchdog 1 enabled on all channels</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Single</name>
                  <description>Analog watchdog 1 enabled on single channel selected in AWD1CH</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JQM</name>
              <description>JSQR queue mode</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>JQM</name>
                <enumeratedValue>
                  <name>Mode0</name>
                  <description>JSQR Mode 0: Queue maintains the last written configuration into JSQR</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mode1</name>
                  <description>JSQR Mode 1: An empty queue disables software and hardware triggers of the injected sequence</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JDISCEN</name>
              <description>Discontinuous mode on injected
              channels</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>JDISCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Discontinuous mode on injected channels disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Discontinuous mode on injected channels enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DISCNUM</name>
              <description>Discontinuous mode channel
              count</description>
              <bitOffset>17</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DISCEN</name>
              <description>Discontinuous mode for regular
              channels</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DISCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Discontinuous mode on regular channels disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Discontinuous mode on regular channels enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AUTDLY</name>
              <description>Delayed conversion mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AUTDLY</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>Auto delayed conversion mode off</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>On</name>
                  <description>Auto delayed conversion mode on</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CONT</name>
              <description>Single / continuous conversion mode for
              regular conversions</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CONT</name>
                <enumeratedValue>
                  <name>Single</name>
                  <description>Single conversion mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Continuous</name>
                  <description>Continuous conversion mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVRMOD</name>
              <description>Overrun Mode</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OVRMOD</name>
                <enumeratedValue>
                  <name>Preserve</name>
                  <description>Preserve DR register when an overrun is detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overwrite</name>
                  <description>Overwrite DR register when an overrun is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EXTEN</name>
              <description>External trigger enable and polarity
              selection for regular channels</description>
              <bitOffset>10</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>EXTEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger detection disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Trigger detection on the rising edge</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Trigger detection on the falling edge</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BothEdges</name>
                  <description>Trigger detection on both the rising and falling edges</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EXTSEL</name>
              <description>External trigger selection for regular
              group</description>
              <bitOffset>6</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>EXTSEL</name>
                <enumeratedValue>
                  <name>TIM1_CC1</name>
                  <description>Timer 1 CC1 event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM1_CC2</name>
                  <description>Timer 1 CC2 event</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM1_CC3</name>
                  <description>Timer 1 CC3 event</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM2_CC2</name>
                  <description>Timer 2 CC2 event</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM3_TRGO</name>
                  <description>Timer 3 TRGO event</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EXTI11</name>
                  <description>EXTI line 11</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HRTIM_ADCTRG1</name>
                  <description>HRTIM_ADCTRG1 event</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HRTIM_ADCTRG3</name>
                  <description>HRTIM_ADCTRG3 event</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM1_TRGO</name>
                  <description>Timer 1 TRGO event</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM1_TRGO2</name>
                  <description>Timer 1 TRGO2 event</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM2_TRGO</name>
                  <description>Timer 2 TRGO event</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM6_TRGO</name>
                  <description>Timer 6 TRGO event</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM15_TRGO</name>
                  <description>Timer 15 TRGO event</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM3_CC4</name>
                  <description>Timer 3 CC4 event</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ALIGN</name>
              <description>Data alignment</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ALIGN</name>
                <enumeratedValue>
                  <name>Right</name>
                  <description>Right alignment</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Left</name>
                  <description>Left alignment</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RES</name>
              <description>Data resolution</description>
              <bitOffset>3</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>RES</name>
                <enumeratedValue>
                  <name>Bits12</name>
                  <description>12-bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits10</name>
                  <description>10-bit</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits8</name>
                  <description>8-bit</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bits6</name>
                  <description>6-bit</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMACFG</name>
              <description>Direct memory access
              configuration</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMACFG</name>
                <enumeratedValue>
                  <name>OneShot</name>
                  <description>DMA One Shot Mode selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Circular</name>
                  <description>DMA circular mode selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DMAEN</name>
              <description>Direct memory access
              enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SMPR1</name>
          <displayName>SMPR1</displayName>
          <description>ADC sample time register 1</description>
          <addressOffset>0x14</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>9</dim>
              <dimIncrement>0x3</dimIncrement>
              <dimIndex>1-9</dimIndex>
              <name>SMP%s</name>
              <description>Channel %s sample time selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>SMP1</name>
                <enumeratedValue>
                  <name>Cycles1_5</name>
                  <description>1.5 ADC clock cycles</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles2_5</name>
                  <description>2.5 ADC clock cycles</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles4_5</name>
                  <description>4.5 ADC clock cycles</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles7_5</name>
                  <description>7.5 ADC clock cycles</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles19_5</name>
                  <description>19.5 ADC clock cycles</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles61_5</name>
                  <description>61.5 ADC clock cycles</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles181_5</name>
                  <description>181.5 ADC clock cycles</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles601_5</name>
                  <description>601.5 ADC clock cycles</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SMPR2</name>
          <displayName>SMPR2</displayName>
          <description>ADC sample time register 2</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="ADC1.SMPR1.SMP%s">
              <dim>9</dim>
              <dimIncrement>0x3</dimIncrement>
              <dimIndex>10-18</dimIndex>
              <name>SMP%s</name>
              <description>Channel %s sample time selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>TR1</name>
          <displayName>TR1</displayName>
          <description>ADC watchdog threshold register
          1</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x0FFF0000</resetValue>
          <fields>
            <field>
              <name>HT1</name>
              <description>Analog watchdog 1 higher
              threshold</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LT1</name>
              <description>Analog watchdog 1 lower
              threshold</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TR2</name>
          <displayName>TR2</displayName>
          <description>ADC watchdog threshold register
          2</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x0FFF0000</resetValue>
          <fields>
            <field>
              <name>HT2</name>
              <description>Analog watchdog 2 higher
              threshold</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LT2</name>
              <description>Analog watchdog 2 lower
              threshold</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TR3</name>
          <displayName>TR3</displayName>
          <description>read-write</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x0FFF0000</resetValue>
          <fields>
            <field>
              <name>HT3</name>
              <description>Analog watchdog 3 higher
              threshold</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LT3</name>
              <description>Analog watchdog 3 lower
              threshold</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SQR1</name>
          <displayName>SQR1</displayName>
          <description>ADC regular sequence register
          1</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>4</dim>
              <dimIncrement>0x6</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>SQ%s</name>
              <description>%s conversion in regular sequence</description>
              <bitOffset>6</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>18</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>L</name>
              <description>Regular channel sequence
              length</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SQR2</name>
          <displayName>SQR2</displayName>
          <description>ADC regular sequence register
          2</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="ADC1.SQR1.SQ%s">
              <dim>5</dim>
              <dimIncrement>0x6</dimIncrement>
              <dimIndex>5-9</dimIndex>
              <name>SQ%s</name>
              <description>%s conversion in regular sequence</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>SQR3</name>
          <displayName>SQR3</displayName>
          <description>ADC regular sequence register
          3</description>
          <addressOffset>0x38</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="ADC1.SQR1.SQ%s">
              <dim>5</dim>
              <dimIncrement>0x6</dimIncrement>
              <dimIndex>10-14</dimIndex>
              <name>SQ%s</name>
              <description>%s conversion in regular sequence</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>SQR4</name>
          <displayName>SQR4</displayName>
          <description>ADC regular sequence register
          4</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field derivedFrom="ADC1.SQR1.SQ%s">
              <dim>2</dim>
              <dimIncrement>0x6</dimIncrement>
              <dimIndex>15-16</dimIndex>
              <name>SQ%s</name>
              <description>%s conversion in regular sequence</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>DR</name>
          <displayName>DR</displayName>
          <description>ADC regular Data Register</description>
          <addressOffset>0x40</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>RDATA</name>
              <description>Regular Data converted</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>JSQR</name>
          <displayName>JSQR</displayName>
          <description>ADC injected sequence register</description>
          <addressOffset>0x4C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>4</dim>
              <dimIncrement>0x6</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>JSQ%s</name>
              <description>%s conversion in injected sequence</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>19</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>JEXTEN</name>
              <description>External Trigger Enable and Polarity
              Selection for injected channels</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>JEXTEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger detection disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Trigger detection on the rising edge</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Trigger detection on the falling edge</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BothEdges</name>
                  <description>Trigger detection on both the rising and falling edges</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JEXTSEL</name>
              <description>External Trigger Selection for injected
              group</description>
              <bitOffset>2</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>JEXTSEL</name>
                <enumeratedValue>
                  <name>TIM1_TRGO</name>
                  <description>Timer 1 TRGO event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM1_CC4</name>
                  <description>Timer 1 CC4 event</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM2_TRGO</name>
                  <description>Timer 2 TRGO event</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM2_CC1</name>
                  <description>Timer 2 CC1 event</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM3_CC4</name>
                  <description>Timer 3 CC4 event</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EXTI15</name>
                  <description>EXTI line 15</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM1_TRGO2</name>
                  <description>Timer 1 TRGO2 event</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HRTIM_ADCTRG2</name>
                  <description>HRTIM_ADCTRG2 event</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>HRTIM_ADCTRG4</name>
                  <description>HRTIM_ADCTRG4 event</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM3_CC3</name>
                  <description>Timer 3 CC3 event</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM3_TRGO</name>
                  <description>Timer 3 TRGO event</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM3_CC1</name>
                  <description>Timer 3 CC1 event</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM6_TRGO</name>
                  <description>Timer 6 TRGO event</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM15_TRGO</name>
                  <description>Timer 15 TRGO event</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JL</name>
              <description>Injected channel sequence
              length</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>4</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-4</dimIndex>
          <name>OFR%s</name>
          <displayName>OFR%s</displayName>
          <description>ADC offset register%s</description>
          <addressOffset>0x60</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>OFFSET_EN</name>
              <description>Offset X Enable</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OFFSET_EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Offset disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Offset enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OFFSET_CH</name>
              <description>Channel selection for the data offset X</description>
              <bitOffset>26</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>OFFSET</name>
              <description>Data offset X for the channel programmed into bits OFFSET_CH</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>4</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-4</dimIndex>
          <name>JDR%s</name>
          <displayName>JDR%s</displayName>
          <description>ADC offset register%s</description>
          <addressOffset>0x80</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>AWD2CR</name>
          <displayName>AWD2CR</displayName>
          <description>ADC Analog Watchdog 2 Configuration
          Register</description>
          <addressOffset>0xA0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>18</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-17</dimIndex>
              <name>AWD2CH%s</name>
              <description>Analog watchdog 2 channel
              selection</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AWD2CH0</name>
                <enumeratedValue>
                  <name>NotMonitored</name>
                  <description>Input channel not monitored by AWDx</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Monitored</name>
                  <description>Input channel monitored by AWDx</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>AWD3CR</name>
          <displayName>AWD3CR</displayName>
          <description>ADC Analog Watchdog 3 Configuration
          Register</description>
          <addressOffset>0xA4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>18</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-17</dimIndex>
              <name>AWD3CH%s</name>
              <description>Analog watchdog 3 channel
              selection</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AWD3CH0</name>
                <enumeratedValue>
                  <name>NotMonitored</name>
                  <description>Input channel not monitored by AWDx</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Monitored</name>
                  <description>Input channel monitored by AWDx</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DIFSEL</name>
          <displayName>DIFSEL</displayName>
          <description>ADC Differential Mode Selection
          Register</description>
          <addressOffset>0xB0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <dim>18</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>0-17</dimIndex>
              <name>DIFSEL%s</name>
              <description>Differential mode for channel %s</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DIFSEL0</name>
                <enumeratedValue>
                  <name>SingleEnded</name>
                  <description>Input channel is configured in single-ended mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Differential</name>
                  <description>Input channel is configured in differential mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CALFACT</name>
          <displayName>CALFACT</displayName>
          <description>ADC Calibration Factors</description>
          <addressOffset>0xB4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CALFACT_D</name>
              <description>Calibration Factors in differential
              mode</description>
              <bitOffset>16</bitOffset>
              <bitWidth>7</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>CALFACT_S</name>
              <description>Calibration Factors In Single-Ended
              mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </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>
      <interrupt>
        <name>PVD</name>
        <description>PVD through EXTI line detection interrupt</description>
        <value>1</value>
      </interrupt>
      <registers>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>power control register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</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>CWUF</name>
              <description>Clear wakeup flag</description>
              <bitOffset>2</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>ENSD1</name>
              <description>ENable SD1 ADC</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ENSD2</name>
              <description>ENable SD2 ADC</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ENSD3</name>
              <description>ENable SD3 ADC</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CSR</name>
          <displayName>CSR</displayName>
          <description>power control/status register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>WUF</name>
              <description>Wakeup 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>EWUP1</name>
              <description>Enable WKUP1 pin</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EWUP2</name>
              <description>Enable WKUP2 pin</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
            <field>
              <name>EWUP3</name>
              <description>Enable WKUP3 pin</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </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_IRQ</name>
        <description>I2C1_EV global interrupt/EXTI Line[3:2]
        interrupts</description>
        <value>31</value>
      </interrupt>
      <interrupt>
        <name>I2C1_ER_IRQ</name>
        <description>I2C1_ER</description>
        <value>32</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>Control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PE</name>
              <description>Peripheral enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Peripheral disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Peripheral enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXIE</name>
              <description>TX Interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TXIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Transmit (TXIS) interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Transmit (TXIS) interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXIE</name>
              <description>RX Interrupt enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RXIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Receive (RXNE) interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Receive (RXNE) interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADDRIE</name>
              <description>Address match interrupt enable (slave
              only)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ADDRIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Address match (ADDR) interrupts disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Address match (ADDR) interrupts enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NACKIE</name>
              <description>Not acknowledge received interrupt
              enable</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>NACKIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Not acknowledge (NACKF) received interrupts disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Not acknowledge (NACKF) received interrupts enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOPIE</name>
              <description>STOP detection Interrupt
              enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>STOPIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Stop detection (STOPF) interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Stop detection (STOPF) interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCIE</name>
              <description>Transfer Complete interrupt
              enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TCIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Transfer Complete interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Transfer Complete interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ERRIE</name>
              <description>Error interrupts enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ERRIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Error detection interrupts disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Error detection interrupts enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DNF</name>
              <description>Digital noise filter</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>DNF</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>Digital filter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter1</name>
                  <description>Digital filter enabled and filtering capability up to 1 tI2CCLK</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter2</name>
                  <description>Digital filter enabled and filtering capability up to 2 tI2CCLK</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter3</name>
                  <description>Digital filter enabled and filtering capability up to 3 tI2CCLK</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter4</name>
                  <description>Digital filter enabled and filtering capability up to 4 tI2CCLK</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter5</name>
                  <description>Digital filter enabled and filtering capability up to 5 tI2CCLK</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter6</name>
                  <description>Digital filter enabled and filtering capability up to 6 tI2CCLK</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter7</name>
                  <description>Digital filter enabled and filtering capability up to 7 tI2CCLK</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter8</name>
                  <description>Digital filter enabled and filtering capability up to 8 tI2CCLK</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter9</name>
                  <description>Digital filter enabled and filtering capability up to 9 tI2CCLK</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter10</name>
                  <description>Digital filter enabled and filtering capability up to 10 tI2CCLK</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter11</name>
                  <description>Digital filter enabled and filtering capability up to 11 tI2CCLK</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter12</name>
                  <description>Digital filter enabled and filtering capability up to 12 tI2CCLK</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter13</name>
                  <description>Digital filter enabled and filtering capability up to 13 tI2CCLK</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter14</name>
                  <description>Digital filter enabled and filtering capability up to 14 tI2CCLK</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Filter15</name>
                  <description>Digital filter enabled and filtering capability up to 15 tI2CCLK</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ANFOFF</name>
              <description>Analog noise filter OFF</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ANFOFF</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Analog noise filter enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Analog noise filter disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SWRST</name>
              <description>Software reset</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>write-only</access>
            </field>
            <field>
              <name>TXDMAEN</name>
              <description>DMA transmission requests
              enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TXDMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA mode disabled for transmission</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA mode enabled for transmission</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXDMAEN</name>
              <description>DMA reception requests
              enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>RXDMAEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DMA mode disabled for reception</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DMA mode enabled for reception</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SBC</name>
              <description>Slave byte control</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SBC</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Slave byte control disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Slave byte control enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NOSTRETCH</name>
              <description>Clock stretching disable</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>NOSTRETCH</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Clock stretching enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Clock stretching disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUPEN</name>
              <description>Wakeup from STOP enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>WUPEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Wakeup from Stop mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Wakeup from Stop mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>GCEN</name>
              <description>General call enable</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>GCEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>General call disabled. Address 0b00000000 is NACKed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>General call enabled. Address 0b00000000 is ACKed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SMBHEN</name>
              <description>SMBus Host address enable</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SMBHEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Host address disabled. Address 0b0001000x is NACKed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Host address enabled. Address 0b0001000x is ACKed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SMBDEN</name>
              <description>SMBus Device Default address
              enable</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SMBDEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Device default address disabled. Address 0b1100001x is NACKed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Device default address enabled. Address 0b1100001x is ACKed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ALERTEN</name>
              <description>SMBUS alert enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>ALERTEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>In device mode (SMBHEN=Disabled) Releases SMBA pin high and Alert Response Address Header disabled (0001100x) followed by NACK. In host mode (SMBHEN=Enabled) SMBus Alert pin (SMBA) not supported</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>In device mode (SMBHEN=Disabled) Drives SMBA pin low and Alert Response Address Header enabled (0001100x) followed by ACK.In host mode (SMBHEN=Enabled) SMBus Alert pin (SMBA) supported</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PECEN</name>
              <description>PEC enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PECEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>PEC calculation disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>PEC calculation enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>PECBYTER</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoPec</name>
                  <description>No PEC transfer</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Pec</name>
                  <description>PEC transmission/reception is requested</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>PECBYTEW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Pec</name>
                  <description>PEC transmission/reception is requested</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AUTOEND</name>
              <description>Automatic end mode (master
              mode)</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AUTOEND</name>
                <enumeratedValue>
                  <name>Software</name>
                  <description>Software end mode: TC flag is set when NBYTES data are transferred, stretching SCL low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Automatic</name>
                  <description>Automatic end mode: a STOP condition is automatically sent when NBYTES data are transferred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RELOAD</name>
              <description>NBYTES reload mode</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RELOAD</name>
                <enumeratedValue>
                  <name>Completed</name>
                  <description>The transfer is completed after the NBYTES data transfer (STOP or RESTART will follow)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotCompleted</name>
                  <description>The transfer is not completed after the NBYTES data transfer (NBYTES will be reloaded)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NBYTES</name>
              <description>Number of bytes</description>
              <bitOffset>16</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>NACK</name>
              <description>NACK generation (slave
              mode)</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>NACKR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Ack</name>
                  <description>an ACK is sent after current received byte</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Nack</name>
                  <description>a NACK is sent after current received byte</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>NACKW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Nack</name>
                  <description>a NACK is sent after current received byte</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOP</name>
              <description>Stop generation (master
              mode)</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>STOPR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoStop</name>
                  <description>No Stop generation</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stop</name>
                  <description>Stop generation after current byte transfer</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>STOPW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Stop</name>
                  <description>Stop generation after current byte transfer</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>START</name>
              <description>Start generation</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>STARTR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoStart</name>
                  <description>No Start generation</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Start</name>
                  <description>Restart/Start generation</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>STARTW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Start</name>
                  <description>Restart/Start generation</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HEAD10R</name>
              <description>10-bit address header only read
              direction (master receiver mode)</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>HEAD10R</name>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>The master sends the complete 10 bit slave address read sequence</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Partial</name>
                  <description>The master only sends the 1st 7 bits of the 10 bit address, followed by Read direction</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADD10</name>
              <description>10-bit addressing mode (master
              mode)</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADD10</name>
                <enumeratedValue>
                  <name>Bit7</name>
                  <description>The master operates in 7-bit addressing mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit10</name>
                  <description>The master operates in 10-bit addressing mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RD_WRN</name>
              <description>Transfer direction (master
              mode)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RD_WRN</name>
                <enumeratedValue>
                  <name>Write</name>
                  <description>Master requests a write transfer</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Read</name>
                  <description>Master requests a read transfer</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SADD</name>
              <description>Slave address bit 9:8 (master
              mode)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>10</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1023</maximum>
                </range>
              </writeConstraint>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>1023</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>OA1MODE</name>
              <description>Own Address 1 10-bit mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OA1MODE</name>
                <enumeratedValue>
                  <name>Bit7</name>
                  <description>Own address 1 is a 7-bit address</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Bit10</name>
                  <description>Own address 1 is a 10-bit address</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OA1EN</name>
              <description>Own Address 1 enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OA1EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Own address 1 disabled. The received slave address OA1 is NACKed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Own address 1 enabled. The received slave address OA1 is ACKed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>OA2MSK</name>
              <description>Own Address 2 masks</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>OA2MSK</name>
                <enumeratedValue>
                  <name>NoMask</name>
                  <description>No mask</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask1</name>
                  <description>OA2[1] is masked and don’t care. Only OA2[7:2] are compared</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask2</name>
                  <description>OA2[2:1] are masked and don’t care. Only OA2[7:3] are compared</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask3</name>
                  <description>OA2[3:1] are masked and don’t care. Only OA2[7:4] are compared</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask4</name>
                  <description>OA2[4:1] are masked and don’t care. Only OA2[7:5] are compared</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask5</name>
                  <description>OA2[5:1] are masked and don’t care. Only OA2[7:6] are compared</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask6</name>
                  <description>OA2[6:1] are masked and don’t care. Only OA2[7] is compared.</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Mask7</name>
                  <description>OA2[7:1] are masked and don’t care. No comparison is done, and all (except reserved) 7-bit received addresses are acknowledged</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OA2EN</name>
              <description>Own Address 2 enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OA2EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Own address 2 disabled. The received slave address OA2 is NACKed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Own address 2 enabled. The received slave address OA2 is ACKed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SCLH</name>
              <description>SCL high period (master
              mode)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SDADEL</name>
              <description>Data hold time</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SCLDEL</name>
              <description>Data setup time</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PRESC</name>
              <description>Timing prescaler</description>
              <bitOffset>28</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TIDLE</name>
              <description>Idle clock timeout
              detection</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIDLE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>TIMEOUTA is used to detect SCL low timeout</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>TIMEOUTA is used to detect both SCL and SDA high timeout (bus idle condition)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIMOUTEN</name>
              <description>Clock timeout enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIMOUTEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>SCL timeout detection is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>SCL timeout detection is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIMEOUTB</name>
              <description>Bus timeout B</description>
              <bitOffset>16</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TEXTEN</name>
              <description>Extended clock timeout
              enable</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TEXTEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Extended clock timeout detection is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Extended clock timeout detection is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DIR</name>
              <description>Transfer direction (Slave
              mode)</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>DIR</name>
                <enumeratedValue>
                  <name>Write</name>
                  <description>Write transfer, slave enters receiver mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Read</name>
                  <description>Read transfer, slave enters transmitter mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BUSY</name>
              <description>Bus busy</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>BUSY</name>
                <enumeratedValue>
                  <name>NotBusy</name>
                  <description>No communication is in progress on the bus</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Busy</name>
                  <description>A communication is in progress on the bus</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ALERT</name>
              <description>SMBus alert</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>ALERT</name>
                <enumeratedValue>
                  <name>NoAlert</name>
                  <description>SMBA alert is not detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Alert</name>
                  <description>SMBA alert event is detected on SMBA pin</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIMEOUT</name>
              <description>Timeout or t_low detection
              flag</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TIMEOUT</name>
                <enumeratedValue>
                  <name>NoTimeout</name>
                  <description>No timeout occured</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timeout</name>
                  <description>Timeout occured</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PECERR</name>
              <description>PEC Error in reception</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>PECERR</name>
                <enumeratedValue>
                  <name>Match</name>
                  <description>Received PEC does match with PEC register</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>Received PEC does not match with PEC register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVR</name>
              <description>Overrun/Underrun (slave
              mode)</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>OVR</name>
                <enumeratedValue>
                  <name>NoOverrun</name>
                  <description>No overrun/underrun error occurs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overrun</name>
                  <description>slave mode with NOSTRETCH=1, when an overrun/underrun error occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARLO</name>
              <description>Arbitration lost</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>ARLO</name>
                <enumeratedValue>
                  <name>NotLost</name>
                  <description>No arbitration lost</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Lost</name>
                  <description>Arbitration lost</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BERR</name>
              <description>Bus error</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>BERR</name>
                <enumeratedValue>
                  <name>NoError</name>
                  <description>No bus error</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Error</name>
                  <description>Misplaced Start and Stop condition is detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCR</name>
              <description>Transfer Complete Reload</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TCR</name>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Transfer is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>NBYTES has been transfered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TC</name>
              <description>Transfer Complete (master
              mode)</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>TC</name>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Transfer is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>NBYTES has been transfered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOPF</name>
              <description>Stop detection flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>STOPF</name>
                <enumeratedValue>
                  <name>NoStop</name>
                  <description>No Stop condition detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Stop</name>
                  <description>Stop condition detected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NACKF</name>
              <description>Not acknowledge received
              flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>NACKF</name>
                <enumeratedValue>
                  <name>NoNack</name>
                  <description>No NACK has been received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Nack</name>
                  <description>NACK has been received</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADDR</name>
              <description>Address matched (slave
              mode)</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>ADDR</name>
                <enumeratedValue>
                  <name>NotMatch</name>
                  <description>Adress mismatched or not received</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>Received slave address matched with one of the enabled slave addresses</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RXNE</name>
              <description>Receive data register not empty
              (receivers)</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RXNE</name>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>The RXDR register is empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>Received data is copied into the RXDR register, and is ready to be read</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXIS</name>
              <description>Transmit interrupt status
              (transmitters)</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>TXISR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>The TXDR register is not empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>The TXDR register is empty and the data to be transmitted must be written in the TXDR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TXISW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>Generate a TXIS event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TXE</name>
              <description>Transmit data register empty
              (transmitters)</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>oneToSet</modifiedWriteValues>
              <enumeratedValues>
                <name>TXER</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotEmpty</name>
                  <description>TXDR register not empty</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Empty</name>
                  <description>TXDR register empty</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TXEW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Flush</name>
                  <description>Flush the transmit data register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>ALERTCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the ALERT flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIMOUTCF</name>
              <description>Timeout detection flag
              clear</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TIMOUTCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the TIMOUT flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PECCF</name>
              <description>PEC Error flag clear</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>PECCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the PEC flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVRCF</name>
              <description>Overrun/Underrun flag
              clear</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>OVRCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the OVR flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARLOCF</name>
              <description>Arbitration lost flag
              clear</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>ARLOCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the ARLO flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BERRCF</name>
              <description>Bus error flag clear</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>BERRCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the BERR flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>STOPCF</name>
              <description>Stop detection flag clear</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>STOPCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the STOP flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>NACKCF</name>
              <description>Not Acknowledge flag clear</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>NACKCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the NACK flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADDRCF</name>
              <description>Address Matched flag clear</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>ADDRCF</name>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears the ADDR flag in ISR register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral derivedFrom="I2C1">
      <name>I2C2</name>
      <baseAddress>0x40005800</baseAddress>
      <interrupt>
        <name>I2C2_EV_IRQ</name>
        <description>I2C2_EV global interrupt/EXTI Line[4:2]
        interrupts</description>
        <value>33</value>
      </interrupt>
      <interrupt>
        <name>I2C2_ER_IRQ</name>
        <description>I2C2_ER</description>
        <value>34</value>
      </interrupt>
    </peripheral>
    <peripheral derivedFrom="I2C1">
      <name>I2C3</name>
      <baseAddress>0x40007800</baseAddress>
      <interrupt>
        <name>I2C3_EV_EXTI27_IRQ</name>
        <description>I2C3 event interrupt &amp; EXTI Line27
        interrupt</description>
        <value>72</value>
      </interrupt>
      <interrupt>
        <name>I2C3_ER_IRQ</name>
        <description>I2C3 error interrupt</description>
        <value>73</value>
      </interrupt>
    </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>0x10</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>KEY</name>
              <description>Key value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <enumeratedValues>
                <name>KEY</name>
                <enumeratedValue>
                  <name>Unlock</name>
                  <description>Enable access to PR, RLR and WINR registers</description>
                  <value>21845</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Feed</name>
                  <description>Feed watchdog with RLR register value</description>
                  <value>43690</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Start</name>
                  <description>Start the watchdog</description>
                  <value>52428</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>PR</name>
          <displayName>PR</displayName>
          <description>Prescaler register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PR</name>
              <description>Prescaler divider</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>PR</name>
                <enumeratedValue>
                  <name>DivideBy4</name>
                  <description>Divider /4</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DivideBy8</name>
                  <description>Divider /8</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DivideBy16</name>
                  <description>Divider /16</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DivideBy32</name>
                  <description>Divider /32</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DivideBy64</name>
                  <description>Divider /64</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DivideBy128</name>
                  <description>Divider /128</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DivideBy256</name>
                  <description>Divider /256</description>
                  <isDefault>true</isDefault>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>RLR</name>
          <displayName>RLR</displayName>
          <description>Reload register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x10</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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>Status register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PVU</name>
              <description>Watchdog prescaler value
              update</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>RVU</name>
              <description>Watchdog counter reload value
              update</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>WVU</name>
              <description>Watchdog counter window value
              update</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>WINR</name>
          <displayName>WINR</displayName>
          <description>Window register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000FFF</resetValue>
          <fields>
            <field>
              <name>WIN</name>
              <description>Watchdog counter window
              value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </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_IRQ</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>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000007F</resetValue>
          <fields>
            <field>
              <name>WDGA</name>
              <description>Activation bit</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WDGA</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Watchdog disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Watchdog enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>T</name>
              <description>7-bit counter</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>CFR</name>
          <displayName>CFR</displayName>
          <description>Configuration register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000007F</resetValue>
          <fields>
            <field>
              <name>EWI</name>
              <description>Early wakeup interrupt</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EWIW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Enable</name>
                  <description>interrupt occurs whenever the counter reaches the value 0x40</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WDGTB</name>
              <description>Timer base</description>
              <bitOffset>7</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>WDGTB</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Counter clock (PCLK1 div 4096) div 1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>Counter clock (PCLK1 div 4096) div 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>Counter clock (PCLK1 div 4096) div 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>Counter clock (PCLK1 div 4096) div 8</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>W</name>
              <description>7-bit window value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>7</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>Status register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>EWIF</name>
              <description>Early wakeup interrupt
              flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>EWIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Finished</name>
                  <description>The EWI Interrupt Service Routine has been serviced</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Pending</name>
                  <description>The EWI Interrupt Service Routine has been triggered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>EWIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Finished</name>
                  <description>The EWI Interrupt Service Routine has been serviced</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </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_IRQ</name>
        <description>RTC</description>
        <value>3</value>
      </interrupt>
      <interrupt>
        <name>RTC_ALARM_IT_IRQ</name>
        <description>RTC alarm interrupt</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>
              <enumeratedValues>
                <name>PM</name>
                <enumeratedValue>
                  <name>AM</name>
                  <description>AM or 24-hour format</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PM</name>
                  <description>PM</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HT</name>
              <description>Hour tens in BCD format</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>HU</name>
              <description>Hour units in BCD format</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MNT</name>
              <description>Minute tens in BCD format</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MNU</name>
              <description>Minute units in BCD format</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ST</name>
              <description>Second tens in BCD format</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SU</name>
              <description>Second units in BCD format</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>YU</name>
              <description>Year units in BCD format</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>WDU</name>
              <description>Week day units</description>
              <bitOffset>13</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>1</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MT</name>
              <description>Month tens in BCD format</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MT</name>
                <enumeratedValue>
                  <name>Zero</name>
                  <description>Month tens is 0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>One</name>
                  <description>Month tens is 1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MU</name>
              <description>Month units in BCD format</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DT</name>
              <description>Date tens in BCD format</description>
              <bitOffset>4</bitOffset>
              <bitWidth>2</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DU</name>
              <description>Date units in BCD format</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </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>WUCKSEL</name>
              <description>Wakeup clock selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>WUCKSEL</name>
                <enumeratedValue>
                  <name>Div16</name>
                  <description>RTC/16 clock is selected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>RTC/8 clock is selected</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>RTC/4 clock is selected</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>RTC/2 clock is selected</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ClockSpare</name>
                  <description>ck_spre (usually 1 Hz) clock is selected</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ClockSpareWithOffset</name>
                  <description>ck_spre (usually 1 Hz) clock is selected and 2^16 is added to the WUT counter value</description>
                  <value>6</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSEDGE</name>
              <description>Time-stamp event active
              edge</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TSEDGE</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>RTC_TS input rising edge generates a time-stamp event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>RTC_TS input falling edge generates a time-stamp event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>REFCKON</name>
              <description>Reference clock detection enable (50 or
              60 Hz)</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>REFCKON</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>RTC_REFIN detection disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>RTC_REFIN detection enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BYPSHAD</name>
              <description>Bypass the shadow
              registers</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BYPSHAD</name>
                <enumeratedValue>
                  <name>ShadowReg</name>
                  <description>Calendar values (when reading from RTC_SSR, RTC_TR, and RTC_DR) are taken from the shadow registers, which are updated once every two RTCCLK cycles</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>BypassShadowReg</name>
                  <description>Calendar values (when reading from RTC_SSR, RTC_TR, and RTC_DR) are taken directly from the calendar counters</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FMT</name>
              <description>Hour format</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FMT</name>
                <enumeratedValue>
                  <name>Twenty_Four_Hour</name>
                  <description>24 hour/day format</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AM_PM</name>
                  <description>AM/PM hour format</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>A,B</dimIndex>
              <name>ALR%sE</name>
              <description>Alarm %s enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ALRAE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Alarm disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Alarm enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUTE</name>
              <description>Wakeup timer enable</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WUTE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Wakeup timer disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Wakeup timer enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSE</name>
              <description>Time stamp enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TSE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Timestamp disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Timestamp enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>A,B</dimIndex>
              <name>ALR%sIE</name>
              <description>Alarm %s interrupt enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ALRAIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Alarm Interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Alarm Interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUTIE</name>
              <description>Wakeup timer interrupt
              enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WUTIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Wakeup timer interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Wakeup timer interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSIE</name>
              <description>Time-stamp interrupt
              enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TSIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Time-stamp Interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Time-stamp Interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADD1H</name>
              <description>Add 1 hour (summer time
              change)</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADD1HW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Add1</name>
                  <description>Adds 1 hour to the current time. This can be used for summer time change outside initialization mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SUB1H</name>
              <description>Subtract 1 hour (winter time
              change)</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SUB1HW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Sub1</name>
                  <description>Subtracts 1 hour to the current time. This can be used for winter time change outside initialization mode</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKP</name>
              <description>Backup</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BKP</name>
                <enumeratedValue>
                  <name>DST_Not_Changed</name>
                  <description>Daylight Saving Time change has not been performed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DST_Changed</name>
                  <description>Daylight Saving Time change has been performed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COSEL</name>
              <description>Calibration output
              selection</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COSEL</name>
                <enumeratedValue>
                  <name>CalFreq_512Hz</name>
                  <description>Calibration output is 512 Hz (with default prescaler setting)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CalFreq_1Hz</name>
                  <description>Calibration output is 1 Hz (with default prescaler setting)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>POL</name>
              <description>Output polarity</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>POL</name>
                <enumeratedValue>
                  <name>High</name>
                  <description>The pin is high when ALRAF/ALRBF/WUTF is asserted (depending on OSEL[1:0])</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Low</name>
                  <description>The pin is low when ALRAF/ALRBF/WUTF is asserted (depending on OSEL[1:0])</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OSEL</name>
              <description>Output selection</description>
              <bitOffset>21</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>OSEL</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AlarmA</name>
                  <description>Alarm A output enabled</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>AlarmB</name>
                  <description>Alarm B output enabled</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Wakeup</name>
                  <description>Wakeup output enabled</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COE</name>
              <description>Calibration output enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Calibration output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Calibration output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>TAMP1F</name>
              <description>Tamper detection flag</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TAMP1FR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Tampered</name>
                  <description>This flag is set by hardware when a tamper detection event is detected on the RTC_TAMPx input</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TAMP1FW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Flag cleared by software writing 0</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSOVF</name>
              <description>Time-stamp overflow flag</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TSOVFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Overflow</name>
                  <description>This flag is set by hardware when a time-stamp event occurs while TSF is already set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TSOVFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>This flag is cleared by software by writing 0</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSF</name>
              <description>Time-stamp flag</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TSFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>TimestampEvent</name>
                  <description>This flag is set by hardware when a time-stamp event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TSFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>This flag is cleared by software by writing 0</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUTF</name>
              <description>Wakeup timer flag</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>WUTFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Zero</name>
                  <description>This flag is set by hardware when the wakeup auto-reload counter reaches 0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>WUTFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>This flag is cleared by software by writing 0</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>A,B</dimIndex>
              <name>ALR%sF</name>
              <description>Alarm %s flag</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>ALRAFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>Match</name>
                  <description>This flag is set by hardware when the time/date registers (RTC_TR and RTC_DR) match the Alarm register (RTC_ALRMxR)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>ALRAFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>This flag is cleared by software by writing 0</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>INIT</name>
              <description>Initialization mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>INIT</name>
                <enumeratedValue>
                  <name>FreeRunningMode</name>
                  <description>Free running mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>InitMode</name>
                  <description>Initialization mode used to program time and date register (RTC_TR and RTC_DR), and prescaler register (RTC_PRER). Counters are stopped and start counting from the new value when INIT is reset.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>INITF</name>
              <description>Initialization flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>INITFR</name>
                <enumeratedValue>
                  <name>NotAllowed</name>
                  <description>Calendar registers update is not allowed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Allowed</name>
                  <description>Calendar registers update is allowed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>RSF</name>
              <description>Registers synchronization
              flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>RSFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotSynced</name>
                  <description>Calendar shadow registers not yet synchronized</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Synced</name>
                  <description>Calendar shadow registers synchronized</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>RSFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>This flag is cleared by software by writing 0</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>INITS</name>
              <description>Initialization status flag</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>INITSR</name>
                <enumeratedValue>
                  <name>NotInitalized</name>
                  <description>Calendar has not been initialized</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Initalized</name>
                  <description>Calendar has been initialized</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>WUTWF</name>
              <description>Wakeup timer write flag</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>WUTWFR</name>
                <enumeratedValue>
                  <name>UpdateNotAllowed</name>
                  <description>Wakeup timer configuration update not allowed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdateAllowed</name>
                  <description>Wakeup timer configuration update allowed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>A,B</dimIndex>
              <name>ALR%sWF</name>
              <description>Alarm %s write flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>ALRAWFR</name>
                <enumeratedValue>
                  <name>UpdateNotAllowed</name>
                  <description>Alarm update not allowed</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdateAllowed</name>
                  <description>Alarm update allowed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SHPF</name>
              <description>Shift operation pending</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>SHPFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoShiftPending</name>
                  <description>No shift operation is pending</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ShiftPending</name>
                  <description>A shift operation is pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMP2F</name>
              <description>RTC_TAMP2 detection flag</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="TAMP1FR">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="TAMP1FW">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMP3F</name>
              <description>RTC_TAMP3 detection flag</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="TAMP1FR">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="TAMP1FW">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>RECALPF</name>
              <description>Recalibration pending Flag</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>RECALPFR</name>
                <enumeratedValue>
                  <name>Pending</name>
                  <description>The RECALPF status flag is automatically set to 1 when software writes to the RTC_CALR register, indicating that the RTC_CALR register is blocked. When the new calibration settings are taken into account, this bit returns to 0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>127</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>PREDIV_S</name>
              <description>Synchronous prescaler
              factor</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>32767</maximum>
                </range>
              </writeConstraint>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>A,B</dimIndex>
          <name>ALRM%sR</name>
          <displayName>ALRM%sR</displayName>
          <description>Alarm %s register</description>
          <addressOffset>0x1C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>MSK1</name>
              <description>Alarm seconds mask</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MSK1</name>
                <enumeratedValue>
                  <name>Mask</name>
                  <description>Alarm set if the date/day match</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotMask</name>
                  <description>Date/day don’t care in Alarm comparison</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MSK4</name>
              <description>Alarm date mask</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="MSK1"/>
            </field>
            <field>
              <name>WDSEL</name>
              <description>Week day selection</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>WDSEL</name>
                <enumeratedValue>
                  <name>DateUnits</name>
                  <description>DU[3:0] represents the date units</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>WeekDay</name>
                  <description>DU[3:0] represents the week day. DT[1:0] is don’t care.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DT</name>
              <description>Date tens in BCD format</description>
              <bitOffset>28</bitOffset>
              <bitWidth>2</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DU</name>
              <description>Date units or day in BCD format</description>
              <bitOffset>24</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MSK3</name>
              <description>Alarm hours mask</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="MSK1"/>
            </field>
            <field>
              <name>PM</name>
              <description>AM/PM notation</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PM</name>
                <enumeratedValue>
                  <name>AM</name>
                  <description>AM or 24-hour format</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PM</name>
                  <description>PM</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>HT</name>
              <description>Hour tens in BCD format</description>
              <bitOffset>20</bitOffset>
              <bitWidth>2</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>3</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>HU</name>
              <description>Hour units in BCD format</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MSK2</name>
              <description>Alarm minutes mask</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="MSK1"/>
            </field>
            <field>
              <name>MNT</name>
              <description>Minute tens in BCD format</description>
              <bitOffset>12</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>MNU</name>
              <description>Minute units in BCD format</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>ST</name>
              <description>Second tens in BCD format</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>7</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SU</name>
              <description>Second units in BCD format</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </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>
              <enumeratedValues>
                <name>ADD1SW</name>
                <enumeratedValue>
                  <name>Add1</name>
                  <description>Add one second to the clock/calendar</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SUBFS</name>
              <description>Subtract a fraction of a
              second</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>32767</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register derivedFrom="TR">
          <name>TSTR</name>
          <displayName>TSTR</displayName>
          <description>time stamp time register</description>
          <addressOffset>0x30</addressOffset>
        </register>
        <register derivedFrom="DR">
          <name>TSDR</name>
          <displayName>TSDR</displayName>
          <description>time stamp date register</description>
          <addressOffset>0x34</addressOffset>
        </register>
        <register derivedFrom="SSR">
          <name>TSSSR</name>
          <displayName>TSSSR</displayName>
          <description>timestamp sub second register</description>
          <addressOffset>0x38</addressOffset>
        </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>
              <enumeratedValues>
                <name>CALP</name>
                <enumeratedValue>
                  <name>NoChange</name>
                  <description>No RTCCLK pulses are added</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IncreaseFreq</name>
                  <description>One RTCCLK pulse is effectively inserted every 2^11 pulses (frequency increased by 488.5 ppm)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CALW8</name>
              <description>Use an 8-second calibration cycle
              period</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CALW8</name>
                <enumeratedValue>
                  <name>Eight_Second</name>
                  <description>When CALW8 is set to ‘1’, the 8-second calibration cycle period is selected</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CALW16</name>
              <description>Use a 16-second calibration cycle
              period</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CALW16</name>
                <enumeratedValue>
                  <name>Sixteen_Second</name>
                  <description>When CALW16 is set to ‘1’, the 16-second calibration cycle period is selected.This bit must not be set to ‘1’ if CALW8=1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CALM</name>
              <description>Calibration minus</description>
              <bitOffset>0</bitOffset>
              <bitWidth>9</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>511</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>TAFCR</name>
          <displayName>TAFCR</displayName>
          <description>tamper and alternate function 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>
              <enumeratedValues>
                <name>TAMP1E</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>RTC_TAMPx input detection disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>RTC_TAMPx input detection enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMP1TRG</name>
              <description>Active level for tamper 1</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TAMP1TRG</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>If TAMPFLT = 00: RTC_TAMPx input rising edge triggers a tamper detection event. If TAMPFLT ≠ 00: RTC_TAMPx input staying low triggers a tamper detection event.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>If TAMPFLT = 00: RTC_TAMPx input staying high triggers a tamper detection event. If TAMPFLT ≠ 00: RTC_TAMPx input falling edge triggers a tamper detection event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMPIE</name>
              <description>Tamper interrupt enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TAMPIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Tamper interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Tamper interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMP2E</name>
              <description>Tamper 2 detection enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TAMP1E"/>
            </field>
            <field>
              <name>TAMP2TRG</name>
              <description>Active level for tamper 2</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="TAMP1TRG"/>
            </field>
            <field>
              <name>TAMPTS</name>
              <description>Activate timestamp on tamper detection
              event</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TAMPTS</name>
                <enumeratedValue>
                  <name>NoSave</name>
                  <description>Tamper detection event does not cause a timestamp to be saved</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Save</name>
                  <description>Save timestamp on tamper detection event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMPFREQ</name>
              <description>Tamper sampling frequency</description>
              <bitOffset>8</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>TAMPFREQ</name>
                <enumeratedValue>
                  <name>Div32768</name>
                  <description>RTCCLK / 32768 (1 Hz when RTCCLK = 32768 Hz)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div16384</name>
                  <description>RTCCLK / 16384 (2 Hz when RTCCLK = 32768 Hz)</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8192</name>
                  <description>RTCCLK / 8192 (4 Hz when RTCCLK = 32768 Hz)</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4096</name>
                  <description>RTCCLK / 4096 (8 Hz when RTCCLK = 32768 Hz)</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2048</name>
                  <description>RTCCLK / 2048 (16 Hz when RTCCLK = 32768 Hz)</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div1024</name>
                  <description>RTCCLK / 1024 (32 Hz when RTCCLK = 32768 Hz)</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div512</name>
                  <description>RTCCLK / 512 (64 Hz when RTCCLK = 32768 Hz)</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div256</name>
                  <description>RTCCLK / 256 (128 Hz when RTCCLK = 32768 Hz)</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMPFLT</name>
              <description>Tamper filter count</description>
              <bitOffset>11</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>TAMPFLT</name>
                <enumeratedValue>
                  <name>Immediate</name>
                  <description>Tamper event is activated on edge of RTC_TAMPx input transitions to the active level (no internal pull-up on RTC_TAMPx input)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Samples2</name>
                  <description>Tamper event is activated after 2 consecutive samples at the active level</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Samples4</name>
                  <description>Tamper event is activated after 4 consecutive samples at the active level</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Samples8</name>
                  <description>Tamper event is activated after 8 consecutive samples at the active level</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMPPRCH</name>
              <description>Tamper precharge duration</description>
              <bitOffset>13</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>TAMPPRCH</name>
                <enumeratedValue>
                  <name>Cycles1</name>
                  <description>1 RTCCLK cycle</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles2</name>
                  <description>2 RTCCLK cycles</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles4</name>
                  <description>4 RTCCLK cycles</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Cycles8</name>
                  <description>8 RTCCLK cycles</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TAMPPUDIS</name>
              <description>TAMPER pull-up disable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TAMPPUDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Precharge RTC_TAMPx pins before sampling (enable internal pull-up)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Disable precharge of RTC_TAMPx pins</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PC13VALUE</name>
              <description>PC13 value</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PC13VALUE</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>If the LSE is disabled and PCxMODE = 1, set PCxVALUE to logic low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>If the LSE is disabled and PCxMODE = 1, set PCxVALUE to logic high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PC13MODE</name>
              <description>PC13 mode</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PC13MODE</name>
                <enumeratedValue>
                  <name>Floating</name>
                  <description>PCx is controlled by the GPIO configuration Register. Consequently PC15 is floating in Standby mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PushPull</name>
                  <description>PCx is forced to push-pull output if LSE is disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PC14VALUE</name>
              <description>PC14 value</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="PC13VALUE"/>
            </field>
            <field>
              <name>PC14MODE</name>
              <description>PC 14 mode</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="PC13MODE"/>
            </field>
            <field>
              <name>PC15VALUE</name>
              <description>PC15 value</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="PC13VALUE"/>
            </field>
            <field>
              <name>PC15MODE</name>
              <description>PC15 mode</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="PC13MODE"/>
            </field>
          </fields>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>A,B</dimIndex>
          <name>ALRM%sSSR</name>
          <displayName>ALRM%sSSR</displayName>
          <description>Alarm %s 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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>15</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>SS</name>
              <description>Sub seconds value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>15</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>32767</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>32</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>0-31</dimIndex>
          <name>BKP%sR</name>
          <displayName>BKP%sR</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>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4294967295</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </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_DAC1</name>
        <description>TIM6 global, DAC1 Cahnnel1 and Cahnnel2
        underrun error Interrupts</description>
        <value>54</value>
      </interrupt>
      <registers>
        <register>
          <name>CR1</name>
          <displayName>CR1</displayName>
          <description>control register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UIFREMAP</name>
              <description>UIF status bit remapping</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>ARPE</name>
              <description>Auto-reload preload enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARPE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>TIMx_APRR register is not buffered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>TIMx_APRR register is buffered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPM</name>
              <description>One-pulse mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter is not stopped at update event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter stops counting at the next update event (clearing the CEN bit)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>URS</name>
              <description>Update request source</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>URS</name>
                <enumeratedValue>
                  <name>AnyEvent</name>
                  <description>Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CounterOnly</name>
                  <description>Only counter overflow/underflow generates an update interrupt or DMA request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDIS</name>
              <description>Update disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update event enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update event disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CEN</name>
              <description>Counter enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CR2</name>
          <displayName>CR2</displayName>
          <description>control register 2</description>
          <addressOffset>0x4</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>MMS</name>
              <description>Master mode selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>MMS</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>Use UG bit from TIMx_EGR register</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enable</name>
                  <description>Use CNT bit from TIMx_CEN register</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Update</name>
                  <description>Use the update event</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>DMA/Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UDE</name>
              <description>Update DMA request enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>SR</name>
          <displayName>SR</displayName>
          <description>status register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>UIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoUpdateOccurred</name>
                  <description>No update occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdatePending</name>
                  <description>Update interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>UIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>UG</name>
              <description>Update generation</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UG</name>
                <enumeratedValue>
                  <name>Update</name>
                  <description>Re-initializes the timer counter and generates an update of the registers.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>Counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>UIFCPY</name>
              <description>UIF Copy</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT16</name>
          <displayName>CNT16</displayName>
          <description>16-bit counter register</description>
          <alternateRegister>CNT</alternateRegister>
          <addressOffset>0x24</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ARR</name>
          <displayName>ARR</displayName>
          <description>auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000FFFF</resetValue>
          <fields>
            <field>
              <name>ARR</name>
              <description>Low Auto-reload value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>DAC1</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>
              <dim>2</dim>
              <dimIncrement>0x10</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>DMAUDRIE%s</name>
              <description>DAC channel%s DMA Underrun Interrupt enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAUDRIE1</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DAC channel X DMA Underrun Interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DAC channel X DMA Underrun Interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x10</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>DMAEN%s</name>
              <description>DAC channel%s DMA enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAEN1</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DAC channel X DMA mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DAC channel X DMA mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x10</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>MAMP%s</name>
              <description>DAC channel%s mask/amplitude selector</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>MAMP1</name>
                <enumeratedValue>
                  <name>Amp1</name>
                  <description>Unmask bit0 of LFSR/ triangle amplitude equal to 1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Amp3</name>
                  <description>Unmask bits[1:0] of LFSR/ triangle amplitude equal to 3</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Amp7</name>
                  <description>Unmask bits[2:0] of LFSR/ triangle amplitude equal to 7</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Amp15</name>
                  <description>Unmask bits[3:0] of LFSR/ triangle amplitude equal to 15</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Amp31</name>
                  <description>Unmask bits[4:0] of LFSR/ triangle amplitude equal to 31</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Amp63</name>
                  <description>Unmask bits[5:0] of LFSR/ triangle amplitude equal 63</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Amp127</name>
                  <description>Unmask bits[6:0] of LFSR/ triangle amplitude equal to 127</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Amp255</name>
                  <description>Unmask bits[7:0] of LFSR/ triangle amplitude equal to 255</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Amp511</name>
                  <description>Unmask bits[8:0] of LFSR/ triangle amplitude equal to 511</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Amp1023</name>
                  <description>Unmask bits[9:0] of LFSR/ triangle amplitude equal to 1023</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Amp2047</name>
                  <description>Unmask bits[10:0] of LFSR/ triangle amplitude equal to 2047</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Amp4095</name>
                  <description>Unmask bits[11:0] of LFSR/ triangle amplitude equal to 4095</description>
                  <isDefault>true</isDefault>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x10</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>WAVE%s</name>
              <description>DAC channel%s noise/triangle wave generation enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>WAVE1</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Wave generation disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Noise</name>
                  <description>Noise wave generation enabled</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Triangle</name>
                  <description>Triangle wave generation enabled</description>
                  <isDefault>true</isDefault>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSEL2</name>
              <description>DAC channel2 trigger
              selection</description>
              <bitOffset>19</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x10</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>TEN%s</name>
              <description>DAC channel%s trigger enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TEN1</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DAC channel X trigger disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DAC channel X trigger enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x10</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>BOFF%s</name>
              <description>DAC channel%s output buffer disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BOFF1</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DAC channel X output buffer enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DAC channel X output buffer disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x10</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>EN%s</name>
              <description>DAC channel%s enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EN1</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DAC channel X disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DAC channel X enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSEL1</name>
              <description>DAC channel1 trigger
              selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>TSEL1</name>
                <enumeratedValue>
                  <name>Tim6Trgo</name>
                  <description>Timer 6 TRGO event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Tim15Trgo</name>
                  <description>Timer 15 TRGO event</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Tim2Trgo</name>
                  <description>Timer 2 TRGO event</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Exti9</name>
                  <description>EXTI line 9</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Software</name>
                  <description>Software trigger</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>2</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>SWTRIG%s</name>
              <description>DAC channel%s software
              trigger</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SWTRIG1</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>DAC channel X software trigger disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>DAC channel X software trigger enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0xC</dimIncrement>
          <dimIndex>1-2</dimIndex>
          <name>DHR12R%s</name>
          <displayName>DHR12R%s</displayName>
          <description>channel%s 12-bit right-aligned data holding register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DACCDHR</name>
              <description>DAC channel1 12-bit right-aligned
              data</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0xC</dimIncrement>
          <dimIndex>1-2</dimIndex>
          <name>DHR12L%s</name>
          <displayName>DHR12L%s</displayName>
          <description>channel%s 12-bit left aligned data holding register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DACCDHR</name>
              <description>DAC channel1 12-bit left-aligned
              data</description>
              <bitOffset>4</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0xC</dimIncrement>
          <dimIndex>1-2</dimIndex>
          <name>DHR8R%s</name>
          <displayName>DHR8R%s</displayName>
          <description>channel%s 8-bit right aligned data holding register</description>
          <addressOffset>0x10</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DACCDHR</name>
              <description>DAC channel1 8-bit right-aligned
              data</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </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>
              <dim>2</dim>
              <dimIncrement>0x10</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>DACC%sDHR</name>
              <description>DAC channel%s 12-bit right-aligned
              data</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </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>
              <dim>2</dim>
              <dimIncrement>0x10</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>DACC%sDHR</name>
              <description>DAC channel%s 12-bit left-aligned data</description>
              <bitOffset>4</bitOffset>
              <bitWidth>12</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>4095</maximum>
                </range>
              </writeConstraint>
            </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>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>DACC%sDHR</name>
              <description>DAC channel%s 8-bit right-aligned
              data</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>2</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-2</dimIndex>
          <name>DOR%s</name>
          <displayName>DOR%s</displayName>
          <description>channel%s data output register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DACCDOR</name>
              <description>DAC channel1 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>
              <dim>2</dim>
              <dimIncrement>0x10</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>DMAUDR%s</name>
              <description>DAC channel%s DMA underrun
              flag</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DMAUDR1</name>
                <enumeratedValue>
                  <name>NoUnderrun</name>
                  <description>No DMA underrun error condition occurred for DAC channel x</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Underrun</name>
                  <description>DMA underrun error condition occurred for DAC channel x (the currently selected trigger is driving DAC channel1 conversion at a frequency higher than the DMA service capability rate)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>DBGMCU</name>
      <description>Debug support</description>
      <groupName>DBGMCU</groupName>
      <baseAddress>0xE0042000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>IDCODE</name>
          <displayName>IDCODE</displayName>
          <description>MCU Device ID Code Register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DEV_ID</name>
              <description>Device Identifier</description>
              <bitOffset>0</bitOffset>
              <bitWidth>12</bitWidth>
            </field>
            <field>
              <name>REV_ID</name>
              <description>Revision Identifier</description>
              <bitOffset>16</bitOffset>
              <bitWidth>16</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CR</name>
          <displayName>CR</displayName>
          <description>Debug MCU Configuration
          Register</description>
          <addressOffset>0x4</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DBG_SLEEP</name>
              <description>Debug Sleep mode</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_STOP</name>
              <description>Debug Stop Mode</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_STANDBY</name>
              <description>Debug Standby Mode</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TRACE_IOEN</name>
              <description>Trace pin assignment
              control</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>TRACE_MODE</name>
              <description>Trace pin assignment
              control</description>
              <bitOffset>6</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>APB1_FZ</name>
          <displayName>APB1FZ</displayName>
          <description>APB Low Freeze Register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DBG_TIM2_STOP</name>
              <description>Debug Timer 2 stopped when Core is
              halted</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM3_STOP</name>
              <description>Debug Timer 3 stopped when Core is
              halted</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM4_STOP</name>
              <description>Debug Timer 4 stopped when Core is
              halted</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM5_STOP</name>
              <description>Debug Timer 5 stopped when Core is
              halted</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM6_STOP</name>
              <description>Debug Timer 6 stopped when Core is
              halted</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM7_STOP</name>
              <description>Debug Timer 7 stopped when Core is
              halted</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM12_STOP</name>
              <description>Debug Timer 12 stopped when Core is
              halted</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM13_STOP</name>
              <description>Debug Timer 13 stopped when Core is
              halted</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIMER14_STOP</name>
              <description>Debug Timer 14 stopped when Core is
              halted</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM18_STOP</name>
              <description>Debug Timer 18 stopped when Core is
              halted</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_RTC_STOP</name>
              <description>Debug RTC stopped when Core is
              halted</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_WWDG_STOP</name>
              <description>Debug Window Wachdog stopped when Core
              is halted</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_IWDG_STOP</name>
              <description>Debug Independent Wachdog stopped when
              Core is halted</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>I2C1_SMBUS_TIMEOUT</name>
              <description>SMBUS timeout mode stopped when Core is
              halted</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>I2C2_SMBUS_TIMEOUT</name>
              <description>SMBUS timeout mode stopped when Core is
              halted</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_CAN_STOP</name>
              <description>Debug CAN stopped when core is
              halted</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>APB2_FZ</name>
          <displayName>APB2FZ</displayName>
          <description>APB High Freeze Register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DBG_TIM15_STOP</name>
              <description>Debug Timer 15 stopped when Core is
              halted</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM16_STOP</name>
              <description>Debug Timer 16 stopped when Core is
              halted</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM17_STO</name>
              <description>Debug Timer 17 stopped when Core is
              halted</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>DBG_TIM19_STOP</name>
              <description>Debug Timer 19 stopped when Core is
              halted</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>SYSCFG</name>
      <description>System configuration controller</description>
      <groupName>SYSCFG</groupName>
      <baseAddress>0x40010000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>CFGR1</name>
          <displayName>CFGR1</displayName>
          <description>configuration register 1</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>MEM_MODE</name>
              <description>Memory mapping selection
              bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>MEM_MODE</name>
                <enumeratedValue>
                  <name>MainFlash</name>
                  <description>Main Flash memory mapped at 0x0000_0000</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SystemFlash</name>
                  <description>System Flash memory mapped at 0x0000_0000</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MainFlash2</name>
                  <description>Main Flash memory mapped at 0x0000_0000</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SRAM</name>
                  <description>Embedded SRAM mapped at 0x0000_0000</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM1_ITR3_RMP</name>
              <description>Timer 1 ITR3 selection</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM1_ITR3_RMP</name>
                <enumeratedValue>
                  <name>NotRemapped</name>
                  <description>Not remapped</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Remapped</name>
                  <description>TIM1_ITR3 = TIM17_OC</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM16_DMA_RMP</name>
              <description>TIM16 DMA request remapping
              bit</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM16_DMA_RMP</name>
                <enumeratedValue>
                  <name>NotRemapped</name>
                  <description>TIM16_CH1 and TIM16_UP DMA requests mapped on DMA channel 3</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Remapped</name>
                  <description>TIM16_CH1 and TIM16_UP DMA requests mapped on DMA channel 4</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM17_DMA_RMP</name>
              <description>TIM17 DMA request remapping
              bit</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM17_DMA_RMP</name>
                <enumeratedValue>
                  <name>NotRemapped</name>
                  <description>TIM17_CH1 and TIM17_UP DMA requests mapped on DMA channel 1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Remapped</name>
                  <description>TIM17_CH1 and TIM17_UP DMA requests mapped on DMA channel 2</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIM6_DAC1_DMA_RMP</name>
              <description>TIM6 and DAC1 DMA request remapping
              bit</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIM6_DAC1_DMA_RMP</name>
                <enumeratedValue>
                  <name>NotRemapped</name>
                  <description>TIM6_UP and DAC_CH1 DMA requests mapped on DMA2 channel 3</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Remapped</name>
                  <description>TIM6_UP and DAC_CH1 DMA requests mapped on DMA1 channel 3</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C_PB6_FMP</name>
              <description>Fast Mode Plus (FM+) driving capability
              activation bits.</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2C_PB6_FMP</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>PB6 pin operate in standard mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FMP</name>
                  <description>I2C FM+ mode enabled on PB6 and the Speed control is bypassed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C_PB7_FMP</name>
              <description>Fast Mode Plus (FM+) driving capability
              activation bits.</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2C_PB7_FMP</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>PB7 pin operate in standard mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FMP</name>
                  <description>I2C FM+ mode enabled on PB7 and the Speed control is bypassed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C_PB8_FMP</name>
              <description>Fast Mode Plus (FM+) driving capability
              activation bits.</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2C_PB8_FMP</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>PB8 pin operate in standard mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FMP</name>
                  <description>I2C FM+ mode enabled on PB8 and the Speed control is bypassed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C_PB9_FMP</name>
              <description>Fast Mode Plus (FM+) driving capability
              activation bits.</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2C_PB9_FMP</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>PB9 pin operate in standard mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FMP</name>
                  <description>I2C FM+ mode enabled on PB9 and the Speed control is bypassed</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C1_FMP</name>
              <description>I2C1 Fast Mode Plus</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2C1_FMP</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>FM+ mode is controlled by I2C_Pxx_FMP bits only</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FMP</name>
                  <description>FM+ mode is enabled on all I2C1 pins selected through selection through IOPORT control registers AF selection bits</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C2_FMP</name>
              <description>I2C2 Fast Mode Plus</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>I2C2_FMP</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>FM+ mode is controlled by I2C_Pxx_FMP bits only</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FMP</name>
                  <description>FM+ mode is enabled on all I2C2 pins selected through selection through IOPORT control registers AF selection bits</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ENCODER_MODE</name>
              <description>Encoder mode</description>
              <bitOffset>22</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ENCODER_MODE</name>
                <enumeratedValue>
                  <name>NoRedirection</name>
                  <description>No redirection</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>MapTim2Tim15</name>
                  <description>TIM2 IC1 and TIM2 IC2 are connected to TIM15 IC1 and TIM15 IC2 respectively</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FPU_IE5</name>
              <description>Inexact interrupt enable</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FPU_IE5</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Inexact interrupt disable</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Inexact interrupt enable</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FPU_IE4</name>
              <description>Input denormal interrupt enable</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FPU_IE4</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Input denormal interrupt disable</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Input denormal interrupt enable</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FPU_IE3</name>
              <description>Overflow interrupt enable</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FPU_IE3</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Overflow interrupt disable</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Overflow interrupt enable</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FPU_IE2</name>
              <description>Underflow interrupt enable</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FPU_IE2</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Underflow interrupt disable</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Underflow interrupt enable</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FPU_IE1</name>
              <description>Devide-by-zero interrupt enable</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FPU_IE1</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Devide-by-zero interrupt disable</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Devide-by-zero interrupt enable</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FPU_IE0</name>
              <description>Invalid operation interrupt enable</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FPU_IE0</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Invalid operation interrupt disable</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Invalid operation interrupt enable</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>I2C3_FMP</name>
              <description>I2C3 Fast Mode Plus</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>I2C3_FMP</name>
                <enumeratedValue>
                  <name>Standard</name>
                  <description>FM+ mode is controlled by I2C_Pxx_FMP bits only</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FMP</name>
                  <description>FM+ mode is enabled on all I2C3 pins selected through selection trhough IOPORT control registers AF selection bits</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>EXTI3</name>
              <description>EXTI 3 configuration bits</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ExtiAbc</name>
                <enumeratedValue>
                  <name>PA</name>
                  <description>Select PAx as the source input for the EXTIx external interrupt</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PB</name>
                  <description>Select PBx as the source input for the EXTIx external interrupt</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PC</name>
                  <description>Select PCx as the source input for the EXTIx external interrupt</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field derivedFrom="EXTI0">
              <name>EXTI2</name>
              <description>EXTI 2 configuration bits</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="EXTI0">
              <name>EXTI1</name>
              <description>EXTI 1 configuration bits</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>EXTI0</name>
              <description>EXTI 0 configuration bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ExtiAbcf</name>
                <enumeratedValue>
                  <name>PA</name>
                  <description>Select PAx as the source input for the EXTIx external interrupt</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PB</name>
                  <description>Select PBx as the source input for the EXTIx external interrupt</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PC</name>
                  <description>Select PCx as the source input for the EXTIx external interrupt</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PF</name>
                  <description>Select PFx as the source input for the EXTIX external interrupt</description>
                  <value>5</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>0x00000000</resetValue>
          <fields>
            <field derivedFrom="SYSCFG.EXTICR1.EXTI3">
              <name>EXTI7</name>
              <description>EXTI 7 configuration bits</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="SYSCFG.EXTICR1.EXTI3">
              <name>EXTI6</name>
              <description>EXTI 6 configuration bits</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="SYSCFG.EXTICR1.EXTI3">
              <name>EXTI5</name>
              <description>EXTI 5 configuration bits</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="SYSCFG.EXTICR1.EXTI3">
              <name>EXTI4</name>
              <description>EXTI 4 configuration bits</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>0x00000000</resetValue>
          <fields>
            <field derivedFrom="SYSCFG.EXTICR1.EXTI3">
              <name>EXTI11</name>
              <description>EXTI 11 configuration bits</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="SYSCFG.EXTICR1.EXTI3">
              <name>EXTI10</name>
              <description>EXTI 10 configuration bits</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="SYSCFG.EXTICR1.EXTI3">
              <name>EXTI9</name>
              <description>EXTI 9 configuration bits</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="SYSCFG.EXTICR1.EXTI3">
              <name>EXTI8</name>
              <description>EXTI 8 configuration bits</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>0x00000000</resetValue>
          <fields>
            <field derivedFrom="SYSCFG.EXTICR1.EXTI3">
              <name>EXTI15</name>
              <description>EXTI 15 configuration bits</description>
              <bitOffset>12</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="SYSCFG.EXTICR1.EXTI3">
              <name>EXTI14</name>
              <description>EXTI 14 configuration bits</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="SYSCFG.EXTICR1.EXTI3">
              <name>EXTI13</name>
              <description>EXTI 13 configuration bits</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="SYSCFG.EXTICR1.EXTI3">
              <name>EXTI12</name>
              <description>EXTI 12 configuration bits</description>
              <bitOffset>0</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CFGR2</name>
          <displayName>CFGR2</displayName>
          <description>configuration register 2</description>
          <addressOffset>0x18</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PVD_LOCK</name>
              <description>PVD lock enable bit</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>PVD_LOCK</name>
                <enumeratedValue>
                  <name>Disconnected</name>
                  <description>PVD interrupt disconnected from TIM15/16/17 Break input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Connected</name>
                  <description>PVD interrupt connected to TIM15/16/17 Break input</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>OPAMP</name>
      <description>Operational Amplifier</description>
      <baseAddress>0x40010000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <registers>
        <register>
          <name>OPAMP2_CSR</name>
          <description>OPAMP2 control register</description>
          <addressOffset>0x3C</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>OPAMP2EN</name>
              <description>OPAMP2 enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>OPAMP2EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>OPAMP2 is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OPAMP2 is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>FORCE_VP</name>
              <description>FORCE_VP</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>FORCE_VP</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal operating mode</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Calibration</name>
                  <description>Calibration mode. Non-inverting input connected to calibration reference</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>VP_SEL</name>
              <description>OPAMP Non inverting input selection</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>VP_SEL</name>
                <enumeratedValue>
                  <name>PB14</name>
                  <description>PB14 used as OPAMP2 non-inverting input</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PB0</name>
                  <description>PB0 used as OPAMP2 non-inverting input</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PA7</name>
                  <description>PA7 used as OPAMP2 non-inverting input</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>VM_SEL</name>
              <description>OPAMP inverting input selection</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>VM_SEL</name>
                <enumeratedValue>
                  <name>PC5</name>
                  <description>PC5 (VM0) used as OPAMP2 inverting input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PA5</name>
                  <description>PA5 (VM1) used as OPAMP2 inverting input</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PGA</name>
                  <description>Resistor feedback output (PGA mode)</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Follower</name>
                  <description>Follower mode</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TCM_EN</name>
              <description>Timer controlled Mux mode enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TCM_EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Timer controlled mux disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Timer controlled mux enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>VMS_SEL</name>
              <description>OPAMP inverting input secondary selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>VMS_SEL</name>
                <enumeratedValue>
                  <name>PC5</name>
                  <description>PC5 (VM0) used as OPAMP2 inverting input when TCM_EN=1</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PA5</name>
                  <description>PA5 (VM1) used as OPAMP2 inverting input when TCM_EN=1</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>VPS_SEL</name>
              <description>OPAMP Non inverting input secondary selection</description>
              <bitOffset>9</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>VPS_SEL</name>
                <enumeratedValue>
                  <name>PB14</name>
                  <description>PB14 used as OPAMP2 non-inverting input when TCM_EN=1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PB0</name>
                  <description>PB0 used as OPAMP2 non-inverting input when TCM_EN=1</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PA7</name>
                  <description>PA7 used as OPAMP2 non-inverting input when TCM_EN=1</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CALON</name>
              <description>Calibration mode enable</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CALON</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Calibration mode disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Calibration mode enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CALSEL</name>
              <description>Calibration selection</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>CALSEL</name>
                <enumeratedValue>
                  <name>Percent3_3</name>
                  <description>VREFOPAMP=3.3% VDDA</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Percent10</name>
                  <description>VREFOPAMP=10% VDDA</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Percent50</name>
                  <description>VREFOPAMP=50% VDDA</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Percent90</name>
                  <description>VREFOPAMP=90% VDDA</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PGA_GAIN</name>
              <description>Gain in PGA mode</description>
              <bitOffset>14</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>PGA_GAIN</name>
                <enumeratedValue>
                  <name>Gain2</name>
                  <description>Gain 2</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gain4</name>
                  <description>Gain 4</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gain8</name>
                  <description>Gain 8</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gain16</name>
                  <description>Gain 16</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gain2_VM0</name>
                  <description>Gain 2, feedback connected to VM0</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gain4_VM0</name>
                  <description>Gain 4, feedback connected to VM0</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gain8_VM0</name>
                  <description>Gain 8, feedback connected to VM0</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gain16_VM0</name>
                  <description>Gain 16, feedback connected to VM0</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gain2_VM1</name>
                  <description>Gain 2, feedback connected to VM1</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gain4_VM1</name>
                  <description>Gain 4, feedback connected to VM1</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gain8_VM1</name>
                  <description>Gain 8, feedback connected to VM1</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gain16_VM1</name>
                  <description>Gain 16, feedback connected to VM1</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>USER_TRIM</name>
              <description>User trimming enable</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>USER_TRIM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>User trimming disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>User trimming enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TRIMOFFSETP</name>
              <description>Offset trimming value (PMOS)</description>
              <bitOffset>19</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TRIMOFFSETN</name>
              <description>Offset trimming value (NMOS)</description>
              <bitOffset>24</bitOffset>
              <bitWidth>5</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>TSTREF</name>
              <description>TSTREF</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>TSTREF</name>
                <enumeratedValue>
                  <name>Output</name>
                  <description>VREFOPAMP2 is output</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>NotOutput</name>
                  <description>VREFOPAMP2 is not output</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OUTCAL</name>
              <description>OPAMP ouput status flag</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>OUTCAL</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Non-inverting &lt; inverting</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>Non-inverting &gt; inverting</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>LOCK</name>
              <description>OPAMP lock</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>LOCK</name>
                <enumeratedValue>
                  <name>Unlocked</name>
                  <description>Comparator CSR bits are read-write</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Locked</name>
                  <description>Comparator CSR bits are read-only</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>COMP</name>
      <description>General purpose comparators</description>
      <baseAddress>0x40010000</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>COMP1_2_3</name>
        <description>COMP1_2_3 interrupt combined with EXTI lines 21, 22, 29</description>
        <value>64</value>
      </interrupt>
      <interrupt>
        <name>COMP4_5_6</name>
        <description>COMP4_5_6 interrupt combined with EXTI lines 30, 31, 32</description>
        <value>65</value>
      </interrupt>
      <registers>
        <register>
          <name>COMP2_CSR</name>
          <description>control and status register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>COMP2EN</name>
              <description>Comparator 2 enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP2EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Comparator disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Comparator enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP2INMSEL</name>
              <description>Comparator 2 inverting input selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP2INMSEL</name>
                <enumeratedValue>
                  <name>OneQuarterVRef</name>
                  <description>1/4 of VRefint</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OneHalfVRef</name>
                  <description>1/2 of VRefint</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThreeQuarterVRef</name>
                  <description>3/4 of VRefint</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>VRef</name>
                  <description>VRefint</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PA4_DAC1_CH1</name>
                  <description>PA4 or DAC1_CH1 output if enabled</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DAC1_CH2</name>
                  <description>DAC1_CH2</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PA2</name>
                  <description>PA2</description>
                  <value>6</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP2OUTSEL</name>
              <description>Comparator 2 output selection</description>
              <bitOffset>10</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP2OUTSEL</name>
                <enumeratedValue>
                  <name>NoSelection</name>
                  <description>No selection</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer1BreakInput</name>
                  <description>Timer 1 break input</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer1BreakInput2</name>
                  <description>Timer 1 break input 2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer1OCRefClearInput</name>
                  <description>Timer 1 OCREF_CLR input</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer1InputCapture1</name>
                  <description>Timer 1 input capture 1</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer2InputCapture4</name>
                  <description>Timer 2 input capture 4</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer2OCRefClearInput</name>
                  <description>Timer 2 OCREF_CLR input</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer3InputCapture1</name>
                  <description>Timer 3 input capture 1</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer3OCRefClearInput</name>
                  <description>Timer 3 OCREF_CLR input</description>
                  <value>11</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP2POL</name>
              <description>Comparator 2 output polarity</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP2POL</name>
                <enumeratedValue>
                  <name>NotInverted</name>
                  <description>Output is not inverted</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>Output is inverted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP2_BLANKING</name>
              <description>Comparator 2 blanking source</description>
              <bitOffset>18</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP2_BLANKING</name>
                <enumeratedValue>
                  <name>NoBlanking</name>
                  <description>No blanking</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM1OC5</name>
                  <description>TIM1 OC5 selected as blanking source</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM2OC3</name>
                  <description>TIM2 OC3 selected as blanking source</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM3OC3</name>
                  <description>TIM3 OC3 selected as blanking source</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP2OUT</name>
              <description>Comparator 2 output</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>COMP2OUT</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Non-inverting input below inverting input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>Non-inverting input above inverting input</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP2LOCK</name>
              <description>Comparator 2 lock</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP2LOCK</name>
                <enumeratedValue>
                  <name>Unlocked</name>
                  <description>Comparator CSR bits are read-write</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Locked</name>
                  <description>Comparator CSR bits are read-only</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP2_INP_DAC</name>
              <description>Comparator 2 non inverting input connection to DAC output</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
            </field>
          </fields>
        </register>
        <register>
          <name>COMP4_CSR</name>
          <description>control and status register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>COMP4EN</name>
              <description>Comparator 4 enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP4EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Comparator disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Comparator enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP4INMSEL</name>
              <description>Comparator 4 inverting input selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP4INMSEL</name>
                <enumeratedValue>
                  <name>OneQuarterVRef</name>
                  <description>1/4 of VRefint</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OneHalfVRef</name>
                  <description>1/2 of VRefint</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThreeQuarterVRef</name>
                  <description>3/4 of VRefint</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>VRef</name>
                  <description>VRefint</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PA4_DAC1_CH1</name>
                  <description>PA4 or DAC1_CH1 output if enabled</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DAC1_CH2</name>
                  <description>DAC1_CH2</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PB2</name>
                  <description>PB2</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP4OUTSEL</name>
              <description>Comparator 4 output selection</description>
              <bitOffset>10</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP4OUTSEL</name>
                <enumeratedValue>
                  <name>NoSelection</name>
                  <description>No selection</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer1BreakInput</name>
                  <description>Timer 1 break input</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer1BreakInput2</name>
                  <description>Timer 1 break input 2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer3InputCapture3</name>
                  <description>Timer 3 input capture 3</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer15InputCapture2</name>
                  <description>Timer 15 input capture 2</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer15OCRefClearInput</name>
                  <description>Timer 15 OCREF_CLR input</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer3OCRefClearInput</name>
                  <description>Timer 3 OCREF_CLR input</description>
                  <value>11</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP4POL</name>
              <description>Comparator 4 output polarity</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP4POL</name>
                <enumeratedValue>
                  <name>NotInverted</name>
                  <description>Output is not inverted</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>Output is inverted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP4_BLANKING</name>
              <description>Comparator 4 blanking source</description>
              <bitOffset>18</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP4_BLANKING</name>
                <enumeratedValue>
                  <name>NoBlanking</name>
                  <description>No blanking</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM3OC4</name>
                  <description>TIM3 OC4 selected as blanking source</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM15OC1</name>
                  <description>TIM15 OC1 selected as blanking source</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP4OUT</name>
              <description>Comparator 4 output</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>COMP4OUT</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Non-inverting input below inverting input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>Non-inverting input above inverting input</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP4LOCK</name>
              <description>Comparator 4 lock</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP4LOCK</name>
                <enumeratedValue>
                  <name>Unlocked</name>
                  <description>Comparator CSR bits are read-write</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Locked</name>
                  <description>Comparator CSR bits are read-only</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>COMP6_CSR</name>
          <description>control and status register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>COMP6EN</name>
              <description>Comparator 6 enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP6EN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Comparator disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Comparator enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP6INMSEL</name>
              <description>Comparator 6 inverting input selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP6INMSEL</name>
                <enumeratedValue>
                  <name>OneQuarterVRef</name>
                  <description>1/4 of VRefint</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OneHalfVRef</name>
                  <description>1/2 of VRefint</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ThreeQuarterVRef</name>
                  <description>3/4 of VRefint</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>VRef</name>
                  <description>VRefint</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PA4_DAC1_CH1</name>
                  <description>PA4 or DAC1_CH1 output if enabled</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>DAC1_CH2</name>
                  <description>DAC1_CH2</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PB15</name>
                  <description>PB15</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP6OUTSEL</name>
              <description>Comparator 6 output selection</description>
              <bitOffset>10</bitOffset>
              <bitWidth>4</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP6OUTSEL</name>
                <enumeratedValue>
                  <name>NoSelection</name>
                  <description>No selection</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer1BreakInput</name>
                  <description>Timer 1 break input</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer1BreakInput2</name>
                  <description>Timer 1 break input 2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer2InputCapture2</name>
                  <description>Timer 2 input capture 2</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer2OCRefClearInput</name>
                  <description>Timer 2 OCREF_CLR input</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer16OCRefClearInput</name>
                  <description>Timer 16 OCREF_CLR input</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Timer16InputCapture1</name>
                  <description>Timer 16 input capture 1</description>
                  <value>10</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP6POL</name>
              <description>Comparator 6 output polarity</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP6POL</name>
                <enumeratedValue>
                  <name>NotInverted</name>
                  <description>Output is not inverted</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>Output is inverted</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP6_BLANKING</name>
              <description>Comparator 6 blanking source</description>
              <bitOffset>18</bitOffset>
              <bitWidth>3</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP6_BLANKING</name>
                <enumeratedValue>
                  <name>NoBlanking</name>
                  <description>No blanking</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM2OC4</name>
                  <description>TIM2 OC4 selected as blanking source</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TIM15OC2</name>
                  <description>TIM15 OC2 selected as blanking source</description>
                  <value>4</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP6OUT</name>
              <description>Comparator 6 output</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
              <enumeratedValues>
                <name>COMP6OUT</name>
                <enumeratedValue>
                  <name>Low</name>
                  <description>Non-inverting input below inverting input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>High</name>
                  <description>Non-inverting input above inverting input</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMP6LOCK</name>
              <description>Comparator 6 lock</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-write</access>
              <enumeratedValues>
                <name>COMP6LOCK</name>
                <enumeratedValue>
                  <name>Unlocked</name>
                  <description>Comparator CSR bits are read-write</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Locked</name>
                  <description>Comparator CSR bits are read-only</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>TIM1</name>
      <description>Advanced-timers</description>
      <groupName>TIM</groupName>
      <baseAddress>0x40012C00</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>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>UIFREMAP</name>
              <description>UIF status bit remapping</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>CKD</name>
              <description>Clock division</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKD</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>t_DTS = t_CK_INT</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>t_DTS = 2 × t_CK_INT</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>t_DTS = 4 × t_CK_INT</description>
                  <value>2</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ARPE</name>
              <description>Auto-reload preload enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ARPE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>TIMx_APRR register is not buffered</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>TIMx_APRR register is buffered</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CMS</name>
              <description>Center-aligned mode
              selection</description>
              <bitOffset>5</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CMS</name>
                <enumeratedValue>
                  <name>EdgeAligned</name>
                  <description>The counter counts up or down depending on the direction bit</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned1</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting down.</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned2</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set only when the counter is counting up.</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CenterAligned3</name>
                  <description>The counter counts up and down alternatively. Output compare interrupt flags are set both when the counter is counting up or down.</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>DIR</name>
              <description>Direction</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>DIR</name>
                <enumeratedValue>
                  <name>Up</name>
                  <description>Counter used as upcounter</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Down</name>
                  <description>Counter used as downcounter</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OPM</name>
              <description>One-pulse mode</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OPM</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter is not stopped at update event</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter stops counting at the next update event (clearing the CEN bit)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>URS</name>
              <description>Update request source</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>URS</name>
                <enumeratedValue>
                  <name>AnyEvent</name>
                  <description>Any of counter overflow/underflow, setting UG, or update through slave mode, generates an update interrupt or DMA request</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CounterOnly</name>
                  <description>Only counter overflow/underflow generates an update interrupt or DMA request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDIS</name>
              <description>Update disable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDIS</name>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update event enabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update event disabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CEN</name>
              <description>Counter enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Counter disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Counter enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>MMS2</name>
              <description>Master mode selection 2</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <dim>6</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>1-6</dimIndex>
              <name>OIS%s</name>
              <description>Output Idle state (OC%s output)</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OIS1</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>OCx=0 (after a dead-time if OCx(N) is implemented) when MOE=0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Set</name>
                  <description>OCx=1 (after a dead-time if OCx(N) is implemented) when MOE=0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>3</dim>
              <dimIncrement>0x2</dimIncrement>
              <dimIndex>1-3</dimIndex>
              <name>OIS%sN</name>
              <description>Output Idle state (OC%sN output)</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OIS1N</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>OCxN=0 after a dead-time when MOE=0</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Set</name>
                  <description>OCxN=1 after a dead-time when MOE=0</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TI1S</name>
              <description>TI1 selection</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TI1S</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>The TIMx_CH1 pin is connected to TI1 input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>XOR</name>
                  <description>The TIMx_CH1, CH2, CH3 pins are connected to TI1 input</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MMS</name>
              <description>Master mode selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>MMS</name>
                <enumeratedValue>
                  <name>Reset</name>
                  <description>The UG bit from the TIMx_EGR register is used as trigger output</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enable</name>
                  <description>The counter enable signal, CNT_EN, is used as trigger output</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Update</name>
                  <description>The update event is selected as trigger output</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ComparePulse</name>
                  <description>The trigger output send a positive pulse when the CC1IF flag it to be set, as soon as a capture or a compare match occurred</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CompareOC1</name>
                  <description>OC1REF signal is used as trigger output</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CompareOC2</name>
                  <description>OC2REF signal is used as trigger output</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CompareOC3</name>
                  <description>OC3REF signal is used as trigger output</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>CompareOC4</name>
                  <description>OC4REF signal is used as trigger output</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCDS</name>
              <description>Capture/compare DMA
              selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCDS</name>
                <enumeratedValue>
                  <name>OnCompare</name>
                  <description>CCx DMA request sent when CCx event occurs</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>OnUpdate</name>
                  <description>CCx DMA request sent when update event occurs</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCUS</name>
              <description>Capture/compare control update
              selection</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCUS</name>
                <enumeratedValue>
                  <name>Sw</name>
                  <description>When capture/compare control bits are preloaded (CCPC=1), they are updated by setting the COMG bit only</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SwOrEdge</name>
                  <description>When capture/compare control bits are preloaded (CCPC=1), they are updated by setting the COMG bit or when an rising edge occurs on TRGI</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CCPC</name>
              <description>Capture/compare preloaded
              control</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CCPC</name>
                <enumeratedValue>
                  <name>NotPreloaded</name>
                  <description>CCxE, CCxNE and OCxM bits are not preloaded</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Preloaded</name>
                  <description>CCxE, CCxNE and OCxM bits are preloaded</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>SMS_3</name>
              <description>Slave mode 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>
              <enumeratedValues>
                <name>ETP</name>
                <enumeratedValue>
                  <name>NotInverted</name>
                  <description>ETR is noninverted, active at high level or rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Inverted</name>
                  <description>ETR is inverted, active at low level or falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ECE</name>
              <description>External clock enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ECE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>External clock mode 2 disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>External clock mode 2 enabled. The counter is clocked by any active edge on the ETRF signal.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETPS</name>
              <description>External trigger prescaler</description>
              <bitOffset>12</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ETPS</name>
                <enumeratedValue>
                  <name>Div1</name>
                  <description>Prescaler OFF</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div2</name>
                  <description>ETRP frequency divided by 2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div4</name>
                  <description>ETRP frequency divided by 4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Div8</name>
                  <description>ETRP frequency divided by 8</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ETF</name>
              <description>External trigger filter</description>
              <bitOffset>8</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ETF</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MSM</name>
              <description>Master/Slave mode</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MSM</name>
                <enumeratedValue>
                  <name>NoSync</name>
                  <description>No action</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Sync</name>
                  <description>The effect of an event on the trigger input (TRGI) is delayed to allow a perfect synchronization between the current timer and its slaves (through TRGO). It is useful if we want to synchronize several timers on a single external event.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TS</name>
              <description>Trigger selection</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>TS</name>
                <enumeratedValue>
                  <name>ITR0</name>
                  <description>Internal Trigger 0 (ITR0)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ITR1</name>
                  <description>Internal Trigger 1 (ITR1)</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ITR2</name>
                  <description>Internal Trigger 2 (ITR2)</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI1F_ED</name>
                  <description>TI1 Edge Detector (TI1F_ED)</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI1FP1</name>
                  <description>Filtered Timer Input 1 (TI1FP1)</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI2FP2</name>
                  <description>Filtered Timer Input 2 (TI2FP2)</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ETRF</name>
                  <description>External Trigger input (ETRF)</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OCCS</name>
              <description>OCREF clear selection</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>SMS</name>
              <description>Slave mode selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>SMS</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Slave mode disabled - if CEN = ‘1 then the prescaler is clocked directly by the internal clock.</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Encoder_Mode_1</name>
                  <description>Encoder mode 1 - Counter counts up/down on TI2FP1 edge depending on TI1FP2 level.</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Encoder_Mode_2</name>
                  <description>Encoder mode 2 - Counter counts up/down on TI1FP2 edge depending on TI2FP1 level.</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Encoder_Mode_3</name>
                  <description>Encoder mode 3 - Counter counts up/down on both TI1FP1 and TI2FP2 edges depending on the level of the other input.</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Reset_Mode</name>
                  <description>Reset Mode - Rising edge of the selected trigger input (TRGI) reinitializes the counter and generates an update of the registers.</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Gated_Mode</name>
                  <description>Gated Mode - The counter clock is enabled when the trigger input (TRGI) is high. The counter stops (but is not reset) as soon as the trigger becomes low. Both start and stop of the counter are controlled.</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger_Mode</name>
                  <description>Trigger Mode - The counter starts at a rising edge of the trigger TRGI (but it is not reset). Only the start of the counter is controlled.</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ext_Clock_Mode</name>
                  <description>External Clock Mode 1 - Rising edges of the selected trigger (TRGI) clock the counter.</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>DIER</name>
          <displayName>DIER</displayName>
          <description>DMA/Interrupt enable register</description>
          <addressOffset>0xC</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TDE</name>
              <description>Trigger DMA request enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMDE</name>
              <description>COM DMA request enable</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COMDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>COM DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>COM DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sDE</name>
              <description>Capture/Compare %s DMA request enable</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1DE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UDE</name>
              <description>Update DMA request enable</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UDE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update DMA request disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update DMA request enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIE</name>
              <description>Trigger interrupt enable</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Trigger interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Trigger interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sIE</name>
              <description>Capture/Compare %s interrupt enable</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1IE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>CCx interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>CCx interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIE</name>
              <description>Update interrupt enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Update interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Update interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BIE</name>
              <description>Break interrupt enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Break interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Break interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMIE</name>
              <description>COM interrupt enable</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COMIE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>COM interrupt disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>COM interrupt enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sIF</name>
              <description>Capture/compare %s interrupt flag</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1IFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoMatch</name>
                  <description>No campture/compare has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Match</name>
                  <description>If CC1 is an output: The content of the counter TIMx_CNT matches the content of the TIMx_CCR1 register. If CC1 is an input: The counter value has been captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1IFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC6IF</name>
              <description>Compare 6 interrupt flag</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="CC1IFR">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="CC1IFW">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>CC5IF</name>
              <description>Compare 5 interrupt flag</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="CC1IFR">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="CC1IFW">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sOF</name>
              <description>Capture/Compare %s overcapture flag</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>CC1OFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoOvercapture</name>
                  <description>No overcapture has been detected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overcapture</name>
                  <description>The counter value has been captured in TIMx_CCRx register while CCxIF flag was already set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>CC1OFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>B2IF</name>
              <description>Break 2 interrupt flag</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>B2IFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No break event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>An active level has been detected on the break 2 input. An interrupt is generated if BIE=1 in the TIMx_DIER register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>B2IFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BIF</name>
              <description>Break interrupt flag</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>BIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No break event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>An active level has been detected on the break input. An interrupt is generated if BIE=1 in the TIMx_DIER register</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>BIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TIF</name>
              <description>Trigger interrupt flag</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>TIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoTrigger</name>
                  <description>No trigger event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>Trigger interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>TIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMIF</name>
              <description>COM interrupt flag</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>COMIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoCOM</name>
                  <description>No COM event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>COM</name>
                  <description>COM interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>COMIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UIF</name>
              <description>Update interrupt flag</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>zeroToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>UIFR</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NoUpdateOccurred</name>
                  <description>No update occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>UpdatePending</name>
                  <description>Update interrupt pending</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>UIFW</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clear flag</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>EGR</name>
          <displayName>EGR</displayName>
          <description>event generation register</description>
          <addressOffset>0x14</addressOffset>
          <size>0x10</size>
          <access>write-only</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>B2G</name>
              <description>Break 2 generation</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>B2GW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>A break 2 event is generated. MOE bit is cleared and B2IF flag is set. Related interrupt can occur if enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BG</name>
              <description>Break generation</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>A break event is generated. MOE bit is cleared and BIF flag is set. Related interrupt or DMA transfer can occur if enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TG</name>
              <description>Trigger generation</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>The TIF flag is set in TIMx_SR register. Related interrupt or DMA transfer can occur if enabled.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>COMG</name>
              <description>Capture/Compare control update
              generation</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>COMGW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>When CCPC bit is set, it allows CCxE, CCxNE and OCxM bits to be updated</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x1</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sG</name>
              <description>Capture/compare %s generation</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1GW</name>
                <enumeratedValue>
                  <name>Trigger</name>
                  <description>If CC1 is an output: CC1IF flag is set, Corresponding interrupt or DMA request is sent if enabled. If CC1 is an input: The current value of the counter is captured in TIMx_CCR1 register.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>UG</name>
              <description>Update generation</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>UG</name>
                <enumeratedValue>
                  <name>Update</name>
                  <description>Re-initializes the timer counter and generates an update of the registers.</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1M_3</name>
                <enumeratedValue>
                  <name>Normal</name>
                  <description>Normal output compare mode (modes 0-7)</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Extended</name>
                  <description>Extended output compare mode (modes 7-15)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1CE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>OCxRef is not affected by the ETRF signal</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OCxRef is cleared as soon as a High level is detected on ETRF signal</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
              <enumeratedValues>
                <name>OC1M</name>
                <enumeratedValue>
                  <name>Frozen</name>
                  <description>The comparison between the output compare register TIMx_CCRy and the counter TIMx_CNT has no effect on the outputs / OpmMode1: Retriggerable OPM mode 1 - In up-counting mode, the channel is active until a trigger event is detected (on TRGI signal). In down-counting mode, the channel is inactive</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveOnMatch</name>
                  <description>Set channel to active level on match. OCyREF signal is forced high when the counter matches the capture/compare register / OpmMode2: Inversely to OpmMode1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>InactiveOnMatch</name>
                  <description>Set channel to inactive level on match. OCyREF signal is forced low when the counter matches the capture/compare register / Reserved</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Toggle</name>
                  <description>OCyREF toggles when TIMx_CNT=TIMx_CCRy / Reserved</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceInactive</name>
                  <description>OCyREF is forced low / CombinedPwmMode1: OCyREF has the same behavior as in PWM mode 1. OCyREFC is the logical OR between OC1REF and OC2REF</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ForceActive</name>
                  <description>OCyREF is forced high / CombinedPwmMode2: OCyREF has the same behavior as in PWM mode 2. OCyREFC is the logical AND between OC1REF and OC2REF</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode1</name>
                  <description>In upcounting, channel is active as long as TIMx_CNT&lt;TIMx_CCRy else inactive. In downcounting, channel is inactive as long as TIMx_CNT&gt;TIMx_CCRy else active / AsymmetricPwmMode1: OCyREF has the same behavior as in PWM mode 1. OCyREFC outputs OC1REF when the counter is counting up, OC2REF when it is counting down</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>PwmMode2</name>
                  <description>Inversely to PwmMode1 / AsymmetricPwmMode2: Inversely to AsymmetricPwmMode1</description>
                  <value>7</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1PE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Preload register on CCRx disabled. New values written to CCRx are taken into account immediately</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Preload register on CCRx enabled. Preload value is loaded into active register on each update event</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OC1FE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Fast output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Fast output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>Output</name>
                  <description>CCx channel is configured as output</description>
                  <value>0</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
              <enumeratedValues>
                <name>ICFilter</name>
                <enumeratedValue>
                  <name>NoFilter</name>
                  <description>No filter, sampling is done at fDTS</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N2</name>
                  <description>fSAMPLING=fCK_INT, N=2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N4</name>
                  <description>fSAMPLING=fCK_INT, N=4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FCK_INT_N8</name>
                  <description>fSAMPLING=fCK_INT, N=8</description>
                  <value>3</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N6</name>
                  <description>fSAMPLING=fDTS/2, N=6</description>
                  <value>4</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div2_N8</name>
                  <description>fSAMPLING=fDTS/2, N=8</description>
                  <value>5</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N6</name>
                  <description>fSAMPLING=fDTS/4, N=6</description>
                  <value>6</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div4_N8</name>
                  <description>fSAMPLING=fDTS/4, N=8</description>
                  <value>7</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N6</name>
                  <description>fSAMPLING=fDTS/8, N=6</description>
                  <value>8</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div8_N8</name>
                  <description>fSAMPLING=fDTS/8, N=8</description>
                  <value>9</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N5</name>
                  <description>fSAMPLING=fDTS/16, N=5</description>
                  <value>10</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N6</name>
                  <description>fSAMPLING=fDTS/16, N=6</description>
                  <value>11</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div16_N8</name>
                  <description>fSAMPLING=fDTS/16, N=8</description>
                  <value>12</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N5</name>
                  <description>fSAMPLING=fDTS/32, N=5</description>
                  <value>13</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N6</name>
                  <description>fSAMPLING=fDTS/32, N=6</description>
                  <value>14</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FDTS_Div32_N8</name>
                  <description>fSAMPLING=fDTS/32, N=8</description>
                  <value>15</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>1-2</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>ICPrescaler</name>
                <enumeratedValue>
                  <name>NoPrescaler</name>
                  <description>No prescaler, capture is done each time an edge is detected on the capture input</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TwoEvents</name>
                  <description>Capture is done once every 2 events</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FourEvents</name>
                  <description>Capture is done once every 4 events</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>EightEvents</name>
                  <description>Capture is done once every 8 events</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC2S</name>
              <description>Capture/Compare 2
              selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC2S</name>
                <enumeratedValue>
                  <name>TI2</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TI2</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TI1</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC2 channel is configured as input, IC2 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC1S</name>
              <description>Capture/Compare 1
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC1S</name>
                <enumeratedValue>
                  <name>TI1</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI1</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI2</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TI2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC1 channel is configured as input, IC1 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </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 derivedFrom="TIM1.CCMR1_Output.OC%sM_3">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sCE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sM">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sPE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sFE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.CC%sS">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>CC%sS</name>
              <description>Capture/Compare %s 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 derivedFrom="TIM1.CCMR1_Input.IC%sF">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>IC%sF</name>
              <description>Input capture %s filter</description>
              <bitOffset>4</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Input.IC%sPSC">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>3-4</dimIndex>
              <name>IC%sPSC</name>
              <description>Input capture %s prescaler</description>
              <bitOffset>2</bitOffset>
              <bitWidth>2</bitWidth>
            </field>
            <field>
              <name>CC4S</name>
              <description>Capture/Compare 4
              selection</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC4S</name>
                <enumeratedValue>
                  <name>TI4</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TI4</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI3</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TI3</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC4 channel is configured as input, IC4 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>CC3S</name>
              <description>Capture/compare 3
              selection</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CC3S</name>
                <enumeratedValue>
                  <name>TI3</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TI3</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TI4</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TI4</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>TRC</name>
                  <description>CC3 channel is configured as input, IC3 is mapped on TRC</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <dim>6</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-6</dimIndex>
              <name>CC%sP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1P</name>
                <enumeratedValue>
                  <name>RisingEdge</name>
                  <description>Noninverted/rising edge</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>FallingEdge</name>
                  <description>Inverted/falling edge</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>6</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-6</dimIndex>
              <name>CC%sE</name>
              <description>Capture/Compare %s output enable</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1E</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Capture disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Capture enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>4</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-4</dimIndex>
              <name>CC%sNP</name>
              <description>Capture/Compare %s output Polarity</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1NP</name>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>OCxN active high</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>OCxN active low</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <dim>3</dim>
              <dimIncrement>0x4</dimIncrement>
              <dimIndex>1-3</dimIndex>
              <name>CC%sNE</name>
              <description>Capture/Compare %s complementary output enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>CC1NE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Complementary output disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Complementary output enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT</name>
          <displayName>CNT</displayName>
          <description>counter</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>UIFCPY</name>
              <description>UIF copy</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <access>read-only</access>
            </field>
          </fields>
        </register>
        <register>
          <name>CNT16</name>
          <displayName>CNT16</displayName>
          <description>16-bit counter register</description>
          <alternateRegister>CNT</alternateRegister>
          <addressOffset>0x24</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CNT</name>
              <description>counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <access>read-write</access>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>PSC</name>
          <displayName>PSC</displayName>
          <description>prescaler</description>
          <addressOffset>0x28</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PSC</name>
              <description>Prescaler value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <name>ARR</name>
          <displayName>ARR</displayName>
          <description>auto-reload register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x0000FFFF</resetValue>
          <fields>
            <field>
              <name>ARR</name>
              <description>Auto-reload value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>REP</name>
              <description>Repetition counter value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
        <register>
          <dim>4</dim>
          <dimIncrement>0x4</dimIncrement>
          <dimIndex>1-4</dimIndex>
          <name>CCR%s</name>
          <displayName>CCR%s</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>DTG</name>
              <description>Dead-time generator setup</description>
              <bitOffset>0</bitOffset>
              <bitWidth>8</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>255</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>LOCK</name>
              <description>Lock configuration</description>
              <bitOffset>8</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>LOCK</name>
                <enumeratedValue>
                  <name>Off</name>
                  <description>No bit is write protected</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level1</name>
                  <description>Any bits except MOE, OSSR, OSSI and LOCK in TIMx_BDTR register, OISx and OISxN bits in TIMx_CR2 register can no longer be written</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level2</name>
                  <description>LOCK Level 1 + CC Polarity bits (CCxP/CCxNP bits in TIMx_CCER register, as long as the related channel is configured in output through the CCxS bits) as well as OSSR and OSSI bits can no longer be written</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Level3</name>
                  <description>LOCK Level 2 + CC Control bits (OCxM and OCxPE bits in TIMx_CCMRx registers, as long as the related channel is configured in output through the CCxS bits) can no longer be written</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OSSI</name>
              <description>Off-state selection for Idle
              mode</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OSSI</name>
                <enumeratedValue>
                  <name>HiZ</name>
                  <description>When inactive, OC/OCN outputs are disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleLevel</name>
                  <description>When inactive, OC/OCN outputs are forced to idle level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OSSR</name>
              <description>Off-state selection for Run
              mode</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OSSR</name>
                <enumeratedValue>
                  <name>HiZ</name>
                  <description>When inactive, OC/OCN outputs are disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>IdleLevel</name>
                  <description>When inactive, OC/OCN outputs are enabled with their inactive level</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKE</name>
              <description>Break enable</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BKE</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Break function x disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Break function x enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKP</name>
              <description>Break polarity</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>BKP</name>
                <enumeratedValue>
                  <name>ActiveLow</name>
                  <description>Break input BRKx is active low</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>ActiveHigh</name>
                  <description>Break input BRKx is active high</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AOE</name>
              <description>Automatic output enable</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AOE</name>
                <enumeratedValue>
                  <name>Manual</name>
                  <description>MOE can be set only by software</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Automatic</name>
                  <description>MOE can be set by software or automatically at the next update event (if none of the break inputs BRK and BRK2 is active)</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MOE</name>
              <description>Main output enable</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>MOE</name>
                <enumeratedValue>
                  <name>DisabledIdle</name>
                  <description>OC/OCN are disabled or forced idle depending on OSSI</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>OC/OCN are enabled if CCxE/CCxNE are set</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>BKF</name>
              <description>Break filter</description>
              <bitOffset>16</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>BK2F</name>
              <description>Break 2 filter</description>
              <bitOffset>20</bitOffset>
              <bitWidth>4</bitWidth>
            </field>
            <field>
              <name>BK2E</name>
              <description>Break 2 enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="BKE"/>
            </field>
            <field>
              <name>BK2P</name>
              <description>Break 2 polarity</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="BKP"/>
            </field>
          </fields>
        </register>
        <register>
          <name>DCR</name>
          <displayName>DCR</displayName>
          <description>DMA control register</description>
          <addressOffset>0x48</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>DBL</name>
              <description>DMA burst length</description>
              <bitOffset>8</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>18</maximum>
                </range>
              </writeConstraint>
            </field>
            <field>
              <name>DBA</name>
              <description>DMA base address</description>
              <bitOffset>0</bitOffset>
              <bitWidth>5</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>31</maximum>
                </range>
              </writeConstraint>
            </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>0x00000000</resetValue>
          <fields>
            <field>
              <name>DMAB</name>
              <description>DMA register for burst
              accesses</description>
              <bitOffset>0</bitOffset>
              <bitWidth>32</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>OR</name>
          <displayName>OR</displayName>
          <description>Option registers</description>
          <addressOffset>0x50</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>IM1_ETR_ADC1_RMP</name>
              <description>TIM1_ETR_ADC1 remapping capability</description>
              <bitOffset>0</bitOffset>
              <bitWidth>2</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>0x00000000</resetValue>
          <fields>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sFE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>5-6</dimIndex>
              <name>OC%sFE</name>
              <description>Output compare %s fast enable</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sPE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>5-6</dimIndex>
              <name>OC%sPE</name>
              <description>Output compare %s preload enable</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sM">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>5-6</dimIndex>
              <name>OC%sM</name>
              <description>Output compare %s mode</description>
              <bitOffset>4</bitOffset>
              <bitWidth>3</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sCE">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>5-6</dimIndex>
              <name>OC%sCE</name>
              <description>Output compare %s clear enable</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field derivedFrom="TIM1.CCMR1_Output.OC%sM_3">
              <dim>2</dim>
              <dimIncrement>0x8</dimIncrement>
              <dimIndex>5-6</dimIndex>
              <name>OC%sM_3</name>
              <description>Output compare %s mode, bit 3</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
          </fields>
        </register>
        <register>
          <name>CCR5</name>
          <displayName>CCR5</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x58</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </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>CCR6</name>
          <displayName>CCR6</displayName>
          <description>capture/compare register</description>
          <addressOffset>0x5C</addressOffset>
          <size>0x10</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CCR</name>
              <description>Capture/Compare value</description>
              <bitOffset>0</bitOffset>
              <bitWidth>16</bitWidth>
              <writeConstraint>
                <range>
                  <minimum>0</minimum>
                  <maximum>65535</maximum>
                </range>
              </writeConstraint>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>ADC1_2</name>
      <description>ADC Common registers</description>
      <groupName>ADC</groupName>
      <baseAddress>0x50000300</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x11</size>
        <usage>registers</usage>
      </addressBlock>
      <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>ADDRDY_MST</name>
              <description>ADDRDY_MST</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
            </field>
            <field>
              <name>EOSMP_MST</name>
              <description>EOSMP_MST</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOSMP_MST</name>
                <enumeratedValue>
                  <name>NotEnded</name>
                  <description>End of sampling phase no yet reached</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ended</name>
                  <description>End of sampling phase reached</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOC_MST</name>
              <description>EOC_MST</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOC_MST</name>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Regular conversion is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Regular conversion complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOS_MST</name>
              <description>EOS_MST</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EOS_MST</name>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Regular sequence is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Regular sequence complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>OVR_MST</name>
              <description>OVR_MST</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>OVR_MST</name>
                <enumeratedValue>
                  <name>NoOverrun</name>
                  <description>No overrun occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overrun</name>
                  <description>Overrun occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JEOC_MST</name>
              <description>JEOC_MST</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>JEOC_MST</name>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Injected conversion is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Injected conversion complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>JEOS_MST</name>
              <description>JEOS_MST</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>JEOS_MST</name>
                <enumeratedValue>
                  <name>NotComplete</name>
                  <description>Injected sequence is not complete</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Complete</name>
                  <description>Injected sequence complete</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AWD1_MST</name>
              <description>AWD1_MST</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>AWD1_MST</name>
                <enumeratedValue>
                  <name>NoEvent</name>
                  <description>No analog watchdog event occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Event</name>
                  <description>Analog watchdog event occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>AWD2_MST</name>
              <description>AWD2_MST</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="AWD1_MST"/>
            </field>
            <field>
              <name>AWD3_MST</name>
              <description>AWD3_MST</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="AWD1_MST"/>
            </field>
            <field>
              <name>JQOVF_MST</name>
              <description>JQOVF_MST</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>JQOVF_MST</name>
                <enumeratedValue>
                  <name>NoOverflow</name>
                  <description>No injected context queue overflow has occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Overflow</name>
                  <description>Injected context queue overflow has occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>ADRDY_SLV</name>
              <description>ADRDY_SLV</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>ADRDY_SLV</name>
                <enumeratedValue>
                  <name>NotReady</name>
                  <description>ADC is not ready to start conversion</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Ready</name>
                  <description>ADC is ready to start conversion</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>EOSMP_SLV</name>
              <description>EOSMP_SLV</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EOSMP_MST"/>
            </field>
            <field>
              <name>EOC_SLV</name>
              <description>End of regular conversion of the slave
              ADC</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EOC_MST"/>
            </field>
            <field>
              <name>EOS_SLV</name>
              <description>End of regular sequence flag of the
              slave ADC</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EOS_MST"/>
            </field>
            <field>
              <name>OVR_SLV</name>
              <description>Overrun flag of the slave
              ADC</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="OVR_MST"/>
            </field>
            <field>
              <name>JEOC_SLV</name>
              <description>End of injected conversion flag of the
              slave ADC</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="JEOC_MST"/>
            </field>
            <field>
              <name>JEOS_SLV</name>
              <description>End of injected sequence flag of the
              slave ADC</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="JEOS_MST"/>
            </field>
            <field>
              <name>AWD1_SLV</name>
              <description>Analog watchdog 1 flag of the slave
              ADC</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="AWD1_MST"/>
            </field>
            <field>
              <name>AWD2_SLV</name>
              <description>Analog watchdog 2 flag of the slave
              ADC</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="AWD1_MST"/>
            </field>
            <field>
              <name>AWD3_SLV</name>
              <description>Analog watchdog 3 flag of the slave
              ADC</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="AWD1_MST"/>
            </field>
            <field>
              <name>JQOVF_SLV</name>
              <description>Injected Context Queue Overflow flag of
              the slave ADC</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="JQOVF_MST"/>
            </field>
          </fields>
        </register>
        <register>
          <name>CCR</name>
          <displayName>CCR</displayName>
          <description>ADC common control register</description>
          <addressOffset>0x8</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>CKMODE</name>
              <description>ADC clock mode</description>
              <bitOffset>16</bitOffset>
              <bitWidth>2</bitWidth>
              <enumeratedValues>
                <name>CKMODE</name>
                <enumeratedValue>
                  <name>Asynchronous</name>
                  <description>Use Kernel Clock adc_ker_ck_input divided by PRESC. Asynchronous to AHB clock</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SyncDiv1</name>
                  <description>Use AHB clock rcc_hclk3. In this case rcc_hclk must equal sys_d1cpre_ck</description>
                  <value>1</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SyncDiv2</name>
                  <description>Use AHB clock rcc_hclk3 divided by 2</description>
                  <value>2</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>SyncDiv4</name>
                  <description>Use AHB clock rcc_hclk3 divided by 4</description>
                  <value>3</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>VREFEN</name>
              <description>VREFINT enable</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>VREFEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>V_REFINT channel disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>V_REFINT channel enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TSEN</name>
              <description>Temperature sensor enable</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>TSEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Temperature sensor channel disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Temperature sensor channel enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>VBATEN</name>
              <description>VBAT enable</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>VBATEN</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>V_BAT channel disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>V_BAT channel enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
    <peripheral>
      <name>EXTI</name>
      <description>External interrupt/event
      controller</description>
      <groupName>EXTI</groupName>
      <baseAddress>0x40010400</baseAddress>
      <addressBlock>
        <offset>0x0</offset>
        <size>0x400</size>
        <usage>registers</usage>
      </addressBlock>
      <interrupt>
        <name>TAMP_STAMP</name>
        <description>Tamper and TimeStamp interrupts</description>
        <value>2</value>
      </interrupt>
      <interrupt>
        <name>EXTI0</name>
        <description>EXTI Line0 interrupt</description>
        <value>6</value>
      </interrupt>
      <interrupt>
        <name>EXTI1</name>
        <description>EXTI Line3 interrupt</description>
        <value>7</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 Line5 to Line9 interrupts</description>
        <value>23</value>
      </interrupt>
      <interrupt>
        <name>I2C1_EV_EXTI23</name>
        <description>I2C1 event interrupt and EXTI Line23
        interrupt</description>
        <value>31</value>
      </interrupt>
      <interrupt>
        <name>USART2_EXTI26</name>
        <description>USART2 global interrupt and EXTI Line 26
        interrupt</description>
        <value>38</value>
      </interrupt>
      <interrupt>
        <name>USART3_EXTI28</name>
        <description>USART3 global interrupt and EXTI Line 28
        interrupt</description>
        <value>39</value>
      </interrupt>
      <interrupt>
        <name>EXTI15_10</name>
        <description>EXTI Line15 to Line10 interrupts</description>
        <value>40</value>
      </interrupt>
      <interrupt>
        <name>USB_WKUP_EXTI</name>
        <description>USB wakeup from Suspend and EXTI Line
        18</description>
        <value>76</value>
      </interrupt>
      <interrupt>
        <name>FPU</name>
        <description>Floating point unit interrupt</description>
        <value>81</value>
      </interrupt>
      <registers>
        <register>
          <name>IMR1</name>
          <displayName>IMR1</displayName>
          <description>Interrupt mask register</description>
          <addressOffset>0x0</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x1F800000</resetValue>
          <fields>
            <field>
              <name>MR0</name>
              <description>Interrupt Mask on line 0</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>InterruptMask</name>
                <enumeratedValue>
                  <name>Masked</name>
                  <description>Interrupt request line is masked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Unmasked</name>
                  <description>Interrupt request line is unmasked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MR1</name>
              <description>Interrupt Mask on line 1</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR2</name>
              <description>Interrupt Mask on line 2</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR3</name>
              <description>Interrupt Mask on line 3</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR4</name>
              <description>Interrupt Mask on line 4</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR5</name>
              <description>Interrupt Mask on line 5</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR6</name>
              <description>Interrupt Mask on line 6</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR7</name>
              <description>Interrupt Mask on line 7</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR8</name>
              <description>Interrupt Mask on line 8</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR9</name>
              <description>Interrupt Mask on line 9</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR10</name>
              <description>Interrupt Mask on line 10</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR11</name>
              <description>Interrupt Mask on line 11</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR12</name>
              <description>Interrupt Mask on line 12</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR13</name>
              <description>Interrupt Mask on line 13</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR14</name>
              <description>Interrupt Mask on line 14</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR15</name>
              <description>Interrupt Mask on line 15</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR16</name>
              <description>Interrupt Mask on line 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR17</name>
              <description>Interrupt Mask on line 17</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR18</name>
              <description>Interrupt Mask on line 18</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR19</name>
              <description>Interrupt Mask on line 19</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR20</name>
              <description>Interrupt Mask on line 20</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR21</name>
              <description>Interrupt Mask on line 21</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR22</name>
              <description>Interrupt Mask on line 22</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR23</name>
              <description>Interrupt Mask on line 23</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR24</name>
              <description>Interrupt Mask on line 24</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR25</name>
              <description>Interrupt Mask on line 25</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR26</name>
              <description>Interrupt Mask on line 26</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR27</name>
              <description>Interrupt Mask on line 27</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR28</name>
              <description>Interrupt Mask on line 28</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR29</name>
              <description>Interrupt Mask on line 29</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR30</name>
              <description>Interrupt Mask on line 30</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR31</name>
              <description>Interrupt Mask on line 31</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
          </fields>
        </register>
        <register>
          <name>EMR1</name>
          <displayName>EMR1</displayName>
          <description>Event mask register</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>
              <enumeratedValues>
                <name>EventMask</name>
                <enumeratedValue>
                  <name>Masked</name>
                  <description>Event request line is masked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Unmasked</name>
                  <description>Event request line is unmasked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MR1</name>
              <description>Event Mask on line 1</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR2</name>
              <description>Event Mask on line 2</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR3</name>
              <description>Event Mask on line 3</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR4</name>
              <description>Event Mask on line 4</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR5</name>
              <description>Event Mask on line 5</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR6</name>
              <description>Event Mask on line 6</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR7</name>
              <description>Event Mask on line 7</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR8</name>
              <description>Event Mask on line 8</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR9</name>
              <description>Event Mask on line 9</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR10</name>
              <description>Event Mask on line 10</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR11</name>
              <description>Event Mask on line 11</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR12</name>
              <description>Event Mask on line 12</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR13</name>
              <description>Event Mask on line 13</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR14</name>
              <description>Event Mask on line 14</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR15</name>
              <description>Event Mask on line 15</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR16</name>
              <description>Event Mask on line 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR17</name>
              <description>Event Mask on line 17</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR18</name>
              <description>Event Mask on line 18</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR19</name>
              <description>Event Mask on line 19</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR20</name>
              <description>Event Mask on line 20</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR21</name>
              <description>Event Mask on line 21</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR22</name>
              <description>Event Mask on line 22</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR23</name>
              <description>Event Mask on line 23</description>
              <bitOffset>23</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR24</name>
              <description>Event Mask on line 24</description>
              <bitOffset>24</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR25</name>
              <description>Event Mask on line 25</description>
              <bitOffset>25</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR26</name>
              <description>Event Mask on line 26</description>
              <bitOffset>26</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR27</name>
              <description>Event Mask on line 27</description>
              <bitOffset>27</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR28</name>
              <description>Event Mask on line 28</description>
              <bitOffset>28</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR29</name>
              <description>Event Mask on line 29</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR30</name>
              <description>Event Mask on line 30</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR31</name>
              <description>Event Mask on line 31</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
          </fields>
        </register>
        <register>
          <name>RTSR1</name>
          <displayName>RTSR1</displayName>
          <description>Rising Trigger selection
          register</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>
              <enumeratedValues>
                <name>RisingTrigger</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Rising edge trigger is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Rising edge trigger is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TR1</name>
              <description>Rising trigger event configuration of
              line 1</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR2</name>
              <description>Rising trigger event configuration of
              line 2</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR3</name>
              <description>Rising trigger event configuration of
              line 3</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR4</name>
              <description>Rising trigger event configuration of
              line 4</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR5</name>
              <description>Rising trigger event configuration of
              line 5</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR6</name>
              <description>Rising trigger event configuration of
              line 6</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR7</name>
              <description>Rising trigger event configuration of
              line 7</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR8</name>
              <description>Rising trigger event configuration of
              line 8</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR9</name>
              <description>Rising trigger event configuration of
              line 9</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR10</name>
              <description>Rising trigger event configuration of
              line 10</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR11</name>
              <description>Rising trigger event configuration of
              line 11</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR12</name>
              <description>Rising trigger event configuration of
              line 12</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR13</name>
              <description>Rising trigger event configuration of
              line 13</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR14</name>
              <description>Rising trigger event configuration of
              line 14</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR15</name>
              <description>Rising trigger event configuration of
              line 15</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR16</name>
              <description>Rising trigger event configuration of
              line 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR17</name>
              <description>Rising trigger event configuration of
              line 17</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR18</name>
              <description>Rising trigger event configuration of
              line 18</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR19</name>
              <description>Rising trigger event configuration of
              line 19</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR20</name>
              <description>Rising trigger event configuration of
              line 20</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR21</name>
              <description>Rising trigger event configuration of
              line 21</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR22</name>
              <description>Rising trigger event configuration of
              line 22</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR29</name>
              <description>Rising trigger event configuration of
              line 29</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR30</name>
              <description>Rising trigger event configuration of
              line 30</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
            <field>
              <name>TR31</name>
              <description>Rising trigger event configuration of
              line 31</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
          </fields>
        </register>
        <register>
          <name>FTSR1</name>
          <displayName>FTSR1</displayName>
          <description>Falling Trigger selection
          register</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>
              <enumeratedValues>
                <name>FallingTrigger</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Falling edge trigger is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Falling edge trigger is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TR1</name>
              <description>Falling trigger event configuration of
              line 1</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR2</name>
              <description>Falling trigger event configuration of
              line 2</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR3</name>
              <description>Falling trigger event configuration of
              line 3</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR4</name>
              <description>Falling trigger event configuration of
              line 4</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR5</name>
              <description>Falling trigger event configuration of
              line 5</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR6</name>
              <description>Falling trigger event configuration of
              line 6</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR7</name>
              <description>Falling trigger event configuration of
              line 7</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR8</name>
              <description>Falling trigger event configuration of
              line 8</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR9</name>
              <description>Falling trigger event configuration of
              line 9</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR10</name>
              <description>Falling trigger event configuration of
              line 10</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR11</name>
              <description>Falling trigger event configuration of
              line 11</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR12</name>
              <description>Falling trigger event configuration of
              line 12</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR13</name>
              <description>Falling trigger event configuration of
              line 13</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR14</name>
              <description>Falling trigger event configuration of
              line 14</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR15</name>
              <description>Falling trigger event configuration of
              line 15</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR16</name>
              <description>Falling trigger event configuration of
              line 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR17</name>
              <description>Falling trigger event configuration of
              line 17</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR18</name>
              <description>Falling trigger event configuration of
              line 18</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR19</name>
              <description>Falling trigger event configuration of
              line 19</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR20</name>
              <description>Falling trigger event configuration of
              line 20</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR21</name>
              <description>Falling trigger event configuration of
              line 21</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR22</name>
              <description>Falling trigger event configuration of
              line 22</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR29</name>
              <description>Falling trigger event configuration of
              line 29</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR30</name>
              <description>Falling trigger event configuration of
              line 30.</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
            <field>
              <name>TR31</name>
              <description>Falling trigger event configuration of
              line 31</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
          </fields>
        </register>
        <register>
          <name>SWIER1</name>
          <displayName>SWIER1</displayName>
          <description>Software interrupt event
          register</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>
              <enumeratedValues>
                <name>SoftwareInterrupt</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Pend</name>
                  <description>Generates an interrupt request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SWIER1</name>
              <description>Software Interrupt on line
              1</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER2</name>
              <description>Software Interrupt on line
              2</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER3</name>
              <description>Software Interrupt on line
              3</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER4</name>
              <description>Software Interrupt on line
              4</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER5</name>
              <description>Software Interrupt on line
              5</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER6</name>
              <description>Software Interrupt on line
              6</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER7</name>
              <description>Software Interrupt on line
              7</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER8</name>
              <description>Software Interrupt on line
              8</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER9</name>
              <description>Software Interrupt on line
              9</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER10</name>
              <description>Software Interrupt on line
              10</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER11</name>
              <description>Software Interrupt on line
              11</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER12</name>
              <description>Software Interrupt on line
              12</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER13</name>
              <description>Software Interrupt on line
              13</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER14</name>
              <description>Software Interrupt on line
              14</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER15</name>
              <description>Software Interrupt on line
              15</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER16</name>
              <description>Software Interrupt on line
              16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER17</name>
              <description>Software Interrupt on line
              17</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER18</name>
              <description>Software Interrupt on line
              18</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER19</name>
              <description>Software Interrupt on line
              19</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER20</name>
              <description>Software Interrupt on line
              20</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER21</name>
              <description>Software Interrupt on line
              21</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER22</name>
              <description>Software Interrupt on line
              22</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER29</name>
              <description>Software Interrupt on line
              29</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER30</name>
              <description>Software Interrupt on line
              309</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
            <field>
              <name>SWIER31</name>
              <description>Software Interrupt on line
              319</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
          </fields>
        </register>
        <register>
          <name>PR1</name>
          <displayName>PR1</displayName>
          <description>Pending register</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>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>PR0R</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotPending</name>
                  <description>No trigger request occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Pending</name>
                  <description>Selected trigger request occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>PR0W</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears pending bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PR1</name>
              <description>Pending bit 1</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR2</name>
              <description>Pending bit 2</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR3</name>
              <description>Pending bit 3</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR4</name>
              <description>Pending bit 4</description>
              <bitOffset>4</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR5</name>
              <description>Pending bit 5</description>
              <bitOffset>5</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR6</name>
              <description>Pending bit 6</description>
              <bitOffset>6</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR7</name>
              <description>Pending bit 7</description>
              <bitOffset>7</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR8</name>
              <description>Pending bit 8</description>
              <bitOffset>8</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR9</name>
              <description>Pending bit 9</description>
              <bitOffset>9</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR10</name>
              <description>Pending bit 10</description>
              <bitOffset>10</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR11</name>
              <description>Pending bit 11</description>
              <bitOffset>11</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR12</name>
              <description>Pending bit 12</description>
              <bitOffset>12</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR13</name>
              <description>Pending bit 13</description>
              <bitOffset>13</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR14</name>
              <description>Pending bit 14</description>
              <bitOffset>14</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR15</name>
              <description>Pending bit 15</description>
              <bitOffset>15</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR16</name>
              <description>Pending bit 16</description>
              <bitOffset>16</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR17</name>
              <description>Pending bit 17</description>
              <bitOffset>17</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR18</name>
              <description>Pending bit 18</description>
              <bitOffset>18</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR19</name>
              <description>Pending bit 19</description>
              <bitOffset>19</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR20</name>
              <description>Pending bit 20</description>
              <bitOffset>20</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR21</name>
              <description>Pending bit 21</description>
              <bitOffset>21</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR22</name>
              <description>Pending bit 22</description>
              <bitOffset>22</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR29</name>
              <description>Pending bit 29</description>
              <bitOffset>29</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR30</name>
              <description>Pending bit 30</description>
              <bitOffset>30</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
            <field>
              <name>PR31</name>
              <description>Pending bit 31</description>
              <bitOffset>31</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR0R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR0W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
          </fields>
        </register>
        <register>
          <name>IMR2</name>
          <displayName>IMR2</displayName>
          <description>Interrupt mask register</description>
          <addressOffset>0x20</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0xFFFFFFFE</resetValue>
          <fields>
            <field>
              <name>MR32</name>
              <description>Interrupt Mask on external/internal line
              32</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>InterruptMask</name>
                <enumeratedValue>
                  <name>Masked</name>
                  <description>Interrupt request line is masked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Unmasked</name>
                  <description>Interrupt request line is unmasked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MR33</name>
              <description>Interrupt Mask on external/internal line
              33</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR34</name>
              <description>Interrupt Mask on external/internal line
              34</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
            <field>
              <name>MR35</name>
              <description>Interrupt Mask on external/internal line
              35</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="InterruptMask"/>
            </field>
          </fields>
        </register>
        <register>
          <name>EMR2</name>
          <displayName>EMR2</displayName>
          <description>Event mask register</description>
          <addressOffset>0x24</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>MR32</name>
              <description>Event mask on external/internal line
              32</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>EventMask</name>
                <enumeratedValue>
                  <name>Masked</name>
                  <description>Event request line is masked</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Unmasked</name>
                  <description>Event request line is unmasked</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>MR33</name>
              <description>Event mask on external/internal line
              33</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR34</name>
              <description>Event mask on external/internal line
              34</description>
              <bitOffset>2</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
            <field>
              <name>MR35</name>
              <description>Event mask on external/internal line
              35</description>
              <bitOffset>3</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="EventMask"/>
            </field>
          </fields>
        </register>
        <register>
          <name>RTSR2</name>
          <displayName>RTSR2</displayName>
          <description>Rising Trigger selection
          register</description>
          <addressOffset>0x28</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TR32</name>
              <description>Rising trigger event configuration bit
              of line 32</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>RisingTrigger</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Rising edge trigger is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Rising edge trigger is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TR33</name>
              <description>Rising trigger event configuration bit
              of line 33</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="RisingTrigger"/>
            </field>
          </fields>
        </register>
        <register>
          <name>FTSR2</name>
          <displayName>FTSR2</displayName>
          <description>Falling Trigger selection
          register</description>
          <addressOffset>0x2C</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>TR32</name>
              <description>Falling trigger event configuration bit
              of line 32</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>FallingTrigger</name>
                <enumeratedValue>
                  <name>Disabled</name>
                  <description>Falling edge trigger is disabled</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Enabled</name>
                  <description>Falling edge trigger is enabled</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>TR33</name>
              <description>Falling trigger event configuration bit
              of line 33</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="FallingTrigger"/>
            </field>
          </fields>
        </register>
        <register>
          <name>SWIER2</name>
          <displayName>SWIER2</displayName>
          <description>Software interrupt event
          register</description>
          <addressOffset>0x30</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>SWIER32</name>
              <description>Software interrupt on line
              32</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues>
                <name>SoftwareInterrupt</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Pend</name>
                  <description>Generates an interrupt request</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>SWIER33</name>
              <description>Software interrupt on line
              33</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <enumeratedValues derivedFrom="SoftwareInterrupt"/>
            </field>
          </fields>
        </register>
        <register>
          <name>PR2</name>
          <displayName>PR2</displayName>
          <description>Pending register</description>
          <addressOffset>0x34</addressOffset>
          <size>0x20</size>
          <access>read-write</access>
          <resetValue>0x00000000</resetValue>
          <fields>
            <field>
              <name>PR32</name>
              <description>Pending bit on line 32</description>
              <bitOffset>0</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues>
                <name>PR32R</name>
                <usage>read</usage>
                <enumeratedValue>
                  <name>NotPending</name>
                  <description>No trigger request occurred</description>
                  <value>0</value>
                </enumeratedValue>
                <enumeratedValue>
                  <name>Pending</name>
                  <description>Selected trigger request occurred</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
              <enumeratedValues>
                <name>PR32W</name>
                <usage>write</usage>
                <enumeratedValue>
                  <name>Clear</name>
                  <description>Clears pending bit</description>
                  <value>1</value>
                </enumeratedValue>
              </enumeratedValues>
            </field>
            <field>
              <name>PR33</name>
              <description>Pending bit on line 33</description>
              <bitOffset>1</bitOffset>
              <bitWidth>1</bitWidth>
              <modifiedWriteValues>oneToClear</modifiedWriteValues>
              <enumeratedValues derivedFrom="PR32R">
                <usage>read</usage>
              </enumeratedValues>
              <enumeratedValues derivedFrom="PR32W">
                <usage>write</usage>
              </enumeratedValues>
            </field>
          </fields>
        </register>
      </registers>
    </peripheral>
  </peripherals>
</device>