cms-gem-daq-project / ctp7_modules

0 stars 13 forks source link

Reading back channel registers and faster writing of channel registers #41

Closed bdorney closed 6 years ago

bdorney commented 6 years ago

Description

Current setChannelRegistersVFAT3Local() method performs 6 write transactions per channel (calenable, maks, trimARM, trimARM polarity, trimZCC, trimZCC polarity). This is excessive and unnecessary. I have updated the module to build the overall channel register in the appropriate bits and then perform a single write transaction for the channel.

Additionally this provides a function for reading back the channel registers getChannelRegistersVFAT3Local() and it's "remote" equivalent.

Types of changes

Motivation and Context

The setChannelRegistersVFAT3Local() runs slow and there was no RPC method for reading back the vfat3 settings.

How Has This Been Tested?

(py2.7) [dorney@gem904qc8daq]~/scratch0/CMS_GEM/CMS_GEM_DAQ% date
Fri Jul 13 15:10:13 CEST 2018
(py2.7) [dorney@gem904qc8daq]~/scratch0/CMS_GEM/CMS_GEM_DAQ% confChamber.py -c eagle60 -g1 --vfatmask=0xf9f0f --zero
2018.07.13.15.10
Open pickled address table if available  /opt/cmsgemos/etc/maps/amc_address_table_top.pickle...
Initializing AMC eagle60
My FW release major =  3
opened connection
biased VFATs
Set CFG_THR_ARM_DAC to 100
zero'ing all channel registers
Chamber Configured
(py2.7) [dorney@gem904qc8daq]~/scratch0/CMS_GEM/CMS_GEM_DAQ% date
Fri Jul 13 15:10:20 CEST 2018

The log on the card is:

eagle60:/mnt/persistent/rpcmodules$ tail -25 /var/log/messages
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 104
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 105
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 106
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 107
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 108
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 109
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 110
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 111
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 112
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 113
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 114
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 115
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 116
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 117
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 118
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 119
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 120
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 121
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 122
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 123
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 124
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 125
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 126
Jul 13 13:10:04 CTP7 local0.info rpcsvc[8863]: vfat3.setChannelRegistersVFAT3: Setting channel register for VFAT23 chan 127
Jul 13 13:10:05 CTP7 local0.notice rpcsvc[8863]: rpcsvc: Client disconnected cleanly

Working as expected.

Checklist: