-
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