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>

  • Hmm, then I do not know why the Pin Configuration registers are not shown? Which example from the SDK are you using?

  • One above is usbd_cdc_acm but I saw the problem even in blinky. 

    Thanks.

  • Ah, I was using the nRF52832 DK when testing this. I am seeing the same issue as you when I am using the nRF52840 DK and the nrf52840.svd register definition file when debugging in SES. I am not seeing the same issue when using Keil, so there has to be something with how SES is interpreting the .svd file. I will investigate this internally.

  • Thanks bjorn. Let me know when you have something. 

  •  

     : I sincerely apologize for the very late reply. 

    I did some changes to the nRF52840.svd file and I am now able to see the Pin Configuration registers during debugging. Could you try to use the attached .svd file and see if that resolves the issue? 

     nrf52840_svd.zip

     

Reply Children
Related