Add support for Active Board 20210504
This builds on !92 (merged) to finish implementing specific handling of the Active Board 20210504.
Carrier Card Power
The carrier card 3.3V can be disabled independent of the active board power. This is handled in software via a new PBv3TB::powerTBOn/Off
abstract method. Most testbench implementations define it as a blank function. The PBv3TBMassive20210504
class toggles the right bit to enable/disable the carrier card 3.3V LDO.
The powerTBOn
should be called before turning on LV and powerTBOff
is called after turning off LV. This is currently done for the following programs:
pbv3_basic_test
pbv3_mass_test
A new program called pbv3_active_carrierpower
can be used to directly set this bit via command line.
Usage: ./bin/pbv3_active_carrierpower [options] 0/1
List of options:
-e, --equip config.json Equipment configuration file (default: config/equip_testbench.json)
-d, --debug Enable more verbose printout
Active Board Version Specific Devices
Device differences between the two active board versions have been implemented inside PBv3TBMassive20190718::initDevices
and PBv3TBMassive20210504::initDevices
. Both call PBv3TBMassive::initDevices
at the beginning to create any devices that are common between the two versions.
A new PBv3TBMassive::loadCalibrations
function that loads device calibrations has been added. This add the corresponding DeviceCalibration
's to necessary devices. It is called inside PBv3TBMassive::init
after initDevices
completes. This allows applying the same calibrations independent of the specific device model (if sensible).
Powerboard Communication
PBv3TBMassive20210504
support multiplexed communication only. PBv3TBMassive20190718
support direct communication and a subset (limited by laziness to get full mapping) of multiplexed communication via patch board. The right EndeavourRaw
implementations for each active board version are instantiated inside the initDevices
method.
The UIO device used for Powerboard communication is configured via pbdev
testbench option. Leaving this blank (default) for PBv3TBMassive20190718
forces use of direct communication. Leaving it blank on PBv3TBMassive20210504
will throw an error as this board only supports multiplexed communication.
ZTurn Adapter Support
The ZTurn adapter inverts the differential signal for both CMDin and CMDout. There is a new configuration option, "zturn_adapter": true
, that specifies the polarity. The default value is false
, which should be used with a MicroZed.
The zturn_adapter
is only supported by PBv3TBMassive20210504
.
Multiplexed Communication Hack
The chosen differential multiplexers () seem to turn off after 16 toggles (0->1->0 as a "single toggle"). It is unclear why this happens as they should be purely analogue and no spurious signals are observed on any of the control pins when it happens.
The workaround is to power cycle the multiplexer using the OEn pin. This id done anytime the select configuration is changed. All multiplexers are cycled as they are all controlled using the sample signal. The selection is changed at the beginning of each test block, so not often.
Active Board Tests
Add Power ADC (ie: active board current) to list of devices tested in I2CDEV
.
labRemote Update
labRemote tag was updated to get support for some of the new components.
Note that this includes a new schema for equipment configuration files! See berkeleylab/labRemote!168 (merged) . The testbenches
block does not follow this schema yet. The example config files have been updated.
This also required changes to the following:
- Dummy implementation of
ITSDAQI2CCom::(un)lock
andPBv3CommPatchSPICom::(un)lock
. - Explicitly include
PowerSupplyChannel.h
in some programs that use this class.