Skip to content

Add support for Active Board 20210504

Karol Krizka requested to merge kk_20210504 into activeTB

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 and PBv3CommPatchSPICom::(un)lock.
  • Explicitly include PowerSupplyChannel.h in some programs that use this class.
Edited by Karol Krizka

Merge request reports