This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Segger Embedded Studio Pin Configuration Registers View

Hello All,

Is there an explanation why the Pin Configuration Registers are not available for viewing in the Registers view of Segger Embedded Studio?

If there is can someone explain how to show them or it is only possible via the memory view?

Thanks.

Parents
  • Hi Bjorn,

    Thanks for coming up:

    I don't get the CONF registers. I only get up to DETECTMODE.

    I am running Segger studio v3.40 (64-bit) on Windows 10 if this helps.

  • Which SDK version are you using? Could you check if the nrf52.svd file you're using has the following register section after the entry for the DETECTMODE register?

    <register>
              <dim>32</dim>
              <dimIncrement>4</dimIncrement>
              <name>PIN_CNF[%s]</name>
              <description>Description collection[0]:  Configuration of GPIO pins</description>
              <addressOffset>0x700</addressOffset>
              <access>read-write</access>
              <resetValue>0x00000002</resetValue>
              <fields>
                <field>
                  <name>DIR</name>
                  <description>Pin direction. Same physical register as DIR register</description>
                  <lsb>0</lsb>
                  <msb>0</msb>
                  <enumeratedValues>
                    <enumeratedValue>
                      <name>Input</name>
                      <description>Configure pin as an input pin</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>Output</name>
                      <description>Configure pin as an output pin</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>INPUT</name>
                  <description>Connect or disconnect input buffer</description>
                  <lsb>1</lsb>
                  <msb>1</msb>
                  <enumeratedValues>
                    <enumeratedValue>
                      <name>Connect</name>
                      <description>Connect input buffer</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>Disconnect</name>
                      <description>Disconnect input buffer</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>PULL</name>
                  <description>Pull configuration</description>
                  <lsb>2</lsb>
                  <msb>3</msb>
                  <enumeratedValues>
                    <enumeratedValue>
                      <name>Disabled</name>
                      <description>No pull</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>Pulldown</name>
                      <description>Pull down on pin</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>Pullup</name>
                      <description>Pull up on pin</description>
                      <value>3</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>DRIVE</name>
                  <description>Drive configuration</description>
                  <lsb>8</lsb>
                  <msb>10</msb>
                  <enumeratedValues>
                    <enumeratedValue>
                      <name>S0S1</name>
                      <description>Standard '0', standard '1'</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>H0S1</name>
                      <description>High drive '0', standard '1'</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>S0H1</name>
                      <description>Standard '0', high drive '1'</description>
                      <value>2</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>H0H1</name>
                      <description>High drive '0', high 'drive '1''</description>
                      <value>3</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>D0S1</name>
                      <description>Disconnect '0' standard '1' (normally used for wired-or connections)</description>
                      <value>4</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>D0H1</name>
                      <description>Disconnect '0', high drive '1' (normally used for wired-or connections)</description>
                      <value>5</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>S0D1</name>
                      <description>Standard '0'. disconnect '1' (normally used for wired-and connections)</description>
                      <value>6</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>H0D1</name>
                      <description>High drive '0', disconnect '1' (normally used for wired-and connections)</description>
                      <value>7</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SENSE</name>
                  <description>Pin sensing mechanism</description>
                  <lsb>16</lsb>
                  <msb>17</msb>
                  <enumeratedValues>
                    <enumeratedValue>
                      <name>Disabled</name>
                      <description>Disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>High</name>
                      <description>Sense for high level</description>
                      <value>2</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <name>Low</name>
                      <description>Sense for low level</description>
                      <value>3</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
          </registers>

  • Perhaps a similar issue, I cannot see several of the regs in NRF_UICR in SES, for instance PSELRESET is missing. I am using SES 3.34 and SDK 15.2. I will try to update SES. Same issue with nrf52840.svd that ships with 15.2, and the above posed svd file. Any help appreciated... I've got an issue with not being able to set the reset pin selection! Thanks!

  • confirmed that with latest SES (4.10a), and tried both nrf52840.svd files, and still cannot see psereset reg in uicr. 

  • Hello Hurley,

    Just use the file attached to bjorn-spockeli's message above. This solves the issue. 

  • Faced a similar problem. They looked for differences between files and nrf52832.vvd and for nrf52840.dvd. Found the difference in the description of multichannel registers described like this:

    <register>
              <dim>0x8</dim>
              <dimIncrement>0x4</dimIncrement>
            ...
    </register>

    if the description is changed to this (not to delete 0x, but to represent the numbers in decimal encoding.):

    <register>
              <dim>8</dim>
              <dimIncrement>4</dimIncrement>
            ...
            </register>

    then the registers are displayed correctly.

    P.S. CMSIS wizard has a similar problem. It also does not correctly work out the values specified in the hexadecimal system.

    P.P.S My file with changes: nrf52840.rar

    replace your file in directory: nRF5_SDK_15.2.0\modules\nrfx\mdk

  • Hi Bjorn,

    The GPIOTE registers are also not showing correctly. I've downloaded your ZIP file, but they are still not showing.

    I've tested SDK 15.0 and 15.2 using SES V4.10a. I'm using nRF52840.svd.

    I've checked the .svd file using Ozone debugger from Segger, and the GPIOTE registers show correctly.

    Here are the registers shown in debug mode:

Reply Children
No Data
Related