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>

  • 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:

  • Hi Bjorn,

    I am having a similar problem using SEGGER Embedded Studio for ARM
    Release 4.12  Build 2018112601.37855
    Windows x64

    When I select a Group under Registers, GPIO is not shown.  So far, the only way I have found to display the GPIO configuration registers is by directly looking at their memory locations, which is not easy.

    Is there a newer configuration file to support viewing the GPIO registers for the nRF52832?  I am currently using the nRF52-DK, although we may move to the nRF52840 in the future.

    Thanks for your help,

    Scott

  • Hi Björn
    I have the same issue with the SES 4.42 with the nRF9160. Is there a fix available for this issue or is it still pending?

    Thanks Adrian

Reply Children
No Data
Related