rogue v6.2.0: Verification failure but for a "WO" register with mixed RW on same 32-bit word boundry

XMLWordPrintable

    • Type: Bug
    • Resolution: resolved
    • Priority: Major
    • Component/s: None
    • None

      Here's the TI device to refer for the register mapping:
      https://www.ti.com/lit/ds/symlink/ina237.pdf

      At offset=0h (CONFIG), I have the following RemoteVariables:

              self.add(pr.RemoteVariable(
                  name         = 'RST',
                  description  = 'Reset Bit. Setting this bit to 1 generates a system reset that is the same as power-on reset.',
                  offset       = (0x0 << 2),
                  bitSize      = 1,
                  bitOffset    = 15,
                  mode         = 'WO',
              )) 
      
              self.add(pr.RemoteVariable(
                  name         = 'CONVDLY',
                  description  = 'Sets the Delay for initial ADC conversion in steps of 2 ms.',
                  offset       = (0x0 << 2),
                  bitSize      = 8,
                  bitOffset    = 6,
                  mode         = 'RW',
                  units        = '2ms',
              ))         
              
              self.add(pr.RemoteVariable(
                  name         = 'ADCRANGE',
                  description  = 'Reset Bit. Setting this bit to 1 generates a system reset that is the same as power-on reset.',
                  offset       = (0x0 << 2),
                  bitSize      = 1,
                  bitOffset    = 4,
                  mode         = 'RW',
                  enum      = {
                      0 : '+/-163.84mV',
                      1 : '+/-40.96mV',
                  },
              ))   
      

      If I change ADCRANGE from 0 (default) to 1 then execute a "RST" (0x1, write only remote variable), I get the following error message:

      ERROR:pyrogue.Variable.RemoteVariable.Root.RFSoC.BoardPwr.RST:Block::checkTransaction: General Error: Verify error for block Root.RFSoC.BoardPwr.RST with address 0x480000400. Byte: 0. Got: 0x00, Exp: 0x10, Mask: 0xd0
      Traceback (most recent call last):
        File "/afs/slac.stanford.edu/g/reseng/vol31/anaconda/anaconda3/envs/rogue_v6.2.0/lib/python3.9/site-packages/pyrogue/_Variable.py", line 1187, in set
          self._parent.checkBlocks(recurse=False, variable=self)
        File "/afs/slac.stanford.edu/g/reseng/vol31/anaconda/anaconda3/envs/rogue_v6.2.0/lib/python3.9/site-packages/pyrogue/_Device.py", line 635, in checkBlocks
          pr.checkTransaction(variable._block, **kwargs)
        File "/afs/slac.stanford.edu/g/reseng/vol31/anaconda/anaconda3/envs/rogue_v6.2.0/lib/python3.9/site-packages/pyrogue/_Block.py", line 70, in checkTransaction
          block._checkTransaction()
      rogue.GeneralError: Block::checkTransaction: General Error: Verify error for block Root.RFSoC.BoardPwr.RST with address 0x480000400. Byte: 0. Got: 0x00, Exp: 0x10, Mask: 0xd0
      ERROR:pyrogue.Variable.RemoteVariable.Root.RFSoC.BoardPwr.RST:Error setting value '1' to variable 'Root.RFSoC.BoardPwr.RST' with type UInt1. Exception=Block::checkTransaction: General Error: Verify error for block Root.RFSoC.BoardPwr.RST with address 0x480000400. Byte: 0. Got: 0x00, Exp: 0x10, Mask: 0xd0
      Traceback (most recent call last):
        File "/afs/slac.stanford.edu/g/reseng/vol31/anaconda/anaconda3/envs/rogue_v6.2.0/lib/python3.9/site-packages/pyrogue/pydm/data_plugins/rogue_plugin.py", line 153, in put_value
          self._node.setDisp(val)
        File "/afs/slac.stanford.edu/g/reseng/vol31/anaconda/anaconda3/envs/rogue_v6.2.0/lib/python3.9/site-packages/pyrogue/interfaces/_Virtual.py", line 40, in __call__
          return self._node._client._remoteAttr(self._node._path, self._attr, *args, **kwargs)
        File "/afs/slac.stanford.edu/g/reseng/vol31/anaconda/anaconda3/envs/rogue_v6.2.0/lib/python3.9/site-packages/pyrogue/interfaces/_Virtual.py", line 330, in _remoteAttr
          raise ret
      rogue.GeneralError: Block::checkTransaction: General Error: Verify error for block Root.RFSoC.BoardPwr.RST with address 0x480000400. Byte: 0. Got: 0x00, Exp: 0x10, Mask: 0xd0
      

              Assignee:
              Unassigned
              Reporter:
              Larry Ruckman
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: