From 1d816c477bb694fc4e5ffecafc7855211157c287 Mon Sep 17 00:00:00 2001 From: kruger <kruger@astron.nl> Date: Wed, 9 Feb 2022 13:03:27 +0100 Subject: [PATCH] HBAT_BF_delays -> HBAT_BF_delay_steps --- config/RECVTR.yaml | 778 +----------------------------------------- config/RECVTR_HB.yaml | 2 +- config/RECVTR_LB.yaml | 2 +- 3 files changed, 3 insertions(+), 779 deletions(-) mode change 100644 => 120000 config/RECVTR.yaml diff --git a/config/RECVTR.yaml b/config/RECVTR.yaml deleted file mode 100644 index 4fa566b..0000000 --- a/config/RECVTR.yaml +++ /dev/null @@ -1,777 +0,0 @@ -version: "1.0" -description: "1234" - -drivers: - - name: I2C1 #TCA9548 - type: i2c_switch - devreg: [0x70,0x71,0x72,0x73] - parameters: [1] #I2C port number - - name: I2C_RCU - type: i2c_array #An array of similar devices connected to an I2C switch - parent: I2C1 - parameters: [20,22,0,2,4,6,10,12,14,16,18,24,26,28,30,8,7,5,3,1,23,21,19,13,11,9,15,17,31,29,27,25] #RCU lookup table - I2Ccut: 5 #error count to disable I2C (14 for LTS?) - status: RECVTR_I2C_error - - name: I2C_HBAT - type: hba1 #Special driver to manage HBAT1s. - parent: I2C_RCU - devreg: [0x40.0x10] #I2C broadcast register - parameters: [15] #PPS GPIO pin - - name: I2Cbb1 - type: i2cbitbang1 #I2C bitbang via GPIO expander - devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2] - parameters: [5,6,6] #pins - parent: I2C_RCU - - name: I2Cbb2 - type: i2cbitbang1 - devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2] - parameters: [4,6,6] - parent: I2C_RCU - - name: I2Cbb3 - type: i2cbitbang1 - devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2] - parameters: [3,6,6] - parent: I2C_RCU - - name: SPIbb1 - type: spibitbang1 #SPI bitbang via GPIO expander: CLK, SDIO, SDIOdir,CS - devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2] - parameters: [1,0,0,0] - parent: I2C_RCU - - name: SPIbb2 - type: spibitbang1 - devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2] - parameters: [3,2,2,1] - parent: I2C_RCU - - name: SPIbb3 - type: spibitbang1 - devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2] - parameters: [5,4,4,2] - parent: I2C_RCU -# - name: HBA_trigger -# type: gpio_hba_trigger -# parameters: [15] #PPS GPIO pin -# devreg: [0x40.0x10] #I2C broadcast register -# parent: I2C_RCU - -#This is the I2C devices in the RCU -device_registers: - - name: IO - dim: 3 - description: [IO-Expander for filter selection,IO-Expander for ON/OFF, Band, BUFx2,IO-Expander for ADC control] - address: [0x75,0x76,0x20] - device: [TCA9539,TCA9539,TCA6416] - driver: I2C1 - registers: - - name: CONF1 - description: Direction of port1 - address: 6 - store: True - - name: CONF2 - description: Direction of port2 - address: 7 - store: True - - name: GPIO1 - description: Input/Ouput port 1 - address: [0,2] #Read / Write address different - store: True - - name: GPIO2 - description: Input/Ouput port 2 - address: [1,3] - store: True - - - name: ROM - description: IO-Expander for filter selection - address: 0x50 - driver: I2C1 - registers: - - name: ID - description: Random - address: 0xfc - - name: Version - description: Set in production - address: 0 - - name: Serial - address: 0x20 - - - name: AN - description: Monitor ADC on RCU - address: 0x74 #was 0x14 on RCU2-DIG PCBs - device: LTC2495 - driver: I2C1 - registers: - - name: V_1v8 - address: 0xB080 - - name: V_2v5 - address: 0xB880 - - name: V_3v3 - address: 0xB180 - - name: I_Ant0 - address: 0xB980 - - name: I_Ant1 - address: 0xB280 - - name: I_Ant2 - address: 0xBA80 - - name: V_Ant_I0 - address: 0xB380 - - name: V_Ant_O0 - address: 0xBB80 - - name: V_Ant_I1 - address: 0xB480 - - name: V_Ant_O1 - address: 0xBC80 - - name: V_Ant_I2 - address: 0xB580 - - name: V_Ant_O2 - address: 0xBD80 - - name: Temp - address: 0xA0C0 - -#This 'special' devices that uses I2C - - - name: HB_UC - description: RCU microcontroller - address: 0x40 - driver: I2C1 - registers: - - name: ID - description: Device ID - address: 0 - - - name: HB_UC_update - description: RCU microcontroller - address: 0x40 - driver: HBA_trigger - registers: - - name: wait_pps - address: 10 - - - name: HBAT - dim: 3 - address: [0x41,0x42,0x43] - description: Virtual HBAT0 interface - driver: I2C_HBAT - registers: - - name: XY - address: 0x10 - description: XY delay register - store: True - - name: Version - address: 127 - description: HBAT server version - - - name: ADC - dim: 3 - description: ADC SPI control - device: AD9683 - driver: [SPIbb1,SPIbb2,SPIbb3] - registers: - - name: PLL_stat - description: PLL locked status - address: 0x0A - - name: JESD_control1 - description: JESD link control - address: 0x5F - - name: SYNC_control - address: 0x3A - - name: CML_level - description: CML output adjust - address: 0x15 - - name: Update - description: Global device uptate - address: 0xFF - - - name: DTH - dim: 3 - description: CW dither source - device: SI4012 - driver: [I2Cbb1,I2Cbb2,I2Cbb3] - address: 0x70 - registers: - - name: Freq - description: Frequency - address: [0x1240,0x1140] - - name: Property - description: Properties - address: [0x12,0x11] - - name: State - address: [0x61,0x60] - - name: Start - description: Start CW - address: [0x62,0x62] - - name: Stop - description: Stop CW - address: [0x67,0x67] - - name: Rev - address: 0x10 - - name: Tune - address: [0x1221,0x1121] - - name: CONF - address: [0x1210,0x1110] - -variables: - - name: RECVTR_monitor_rate - description: Rate at which monitored points are polled (seconds) - driver: I2C_RCU - rw: variable - dtype: uint8 - - - name: ANT_mask - description: Only RF chains with a true mask is set - driver: I2C_RCU - rw: variable #server RW variable, not linked to IO - dtype: boolean - dim: 96 - dim2: [3,32] - - - name: RCU_mask - description: Only RCUs with a true mask is set - driver: I2C_RCU - rw: variable #server RW variable, not linked to IO - dtype: boolean - dim: 32 - - - name: RECVTR_I2C_error - description: 0=Good, >0 communication error - driver: I2C_RCU - rw: ro #server RW variable, not linked to IO - dtype: uint8 - mask: RCU_mask - dim: 32 - -# - name: RCU_state -# description: State of RCUs 0=unknown, 1=ready, 2=busy, 3= wait PPS, 4=error -# driver: I2C_RCU -# rw: ro #server variable, not linked to IO -# dtype: uint8 -# dim: 1 - - - name: RECVTR_translator_busy - description: True when I2C line is busy - rw: ro #server variable, not linked to IO - dtype: boolean - dim: 1 - - - name: RCU_attenuator_dB - description: RCU Attenuation (dB) - driver: I2C_RCU - devreg: [IO1.GPIO1,IO1.GPIO2,IO2.GPIO1] - bitoffset: [0,0,0] - width: 6 - rw: rw - dtype: uint8 - dim: 96 - dim2: [3,32] - mask: ANT_mask - - - name: RCU_band_select - description: Band select 1=10MHz,2=30MHz - driver: I2C_RCU - devreg: [IO2.GPIO2,IO2.GPIO2,IO2.GPIO2] - bitoffset: [0,2,4] - width: 2 - rw: rw - dtype: uint8 - dim: 96 - dim2: [3,32] - mask: ANT_mask - - - name: [RCU_IO1_GPIO1,RCU_IO1_GPIO2,RCU_IO2_GPIO1,RCU_IO2_GPIO2,RCU_IO3_GPIO1,RCU_IO3_GPIO2] - driver: I2C_RCU - devreg: [IO1.GPIO1,IO1.GPIO2,IO2.GPIO1,IO2.GPIO2,IO3.GPIO1,IO3.GPIO2] - width: 8 - rw: ro - dtype: uint8 - dim: 32 - mask: RCU_mask - debug: True - - - name: RCU_LED_red_on - driver: I2C_RCU - description: Red LED on front panel - devreg: IO2.GPIO2 - bitoffset: 6 - width: 1 - rw: rw - dtype: boolean - convert_unit: bool_invert - dim: 32 - mask: RCU_mask - - - name: RCU_LED_green_on - driver: I2C_RCU - description: Green LED on front panel - devreg: IO2.GPIO2 - bitoffset: 7 - width: 1 - rw: rw - dtype: boolean - convert_unit: bool_invert - dim: 32 - mask: RCU_mask - - - name: RCU_TEMP - description: RCU PCB Temperature (Celsius) - driver: I2C_RCU - devreg: AN.Temp - width: 23 - scale: 3.827e-3 #T=DATAOUT * Vref/12.25/32. Vreg=1.5 V - convert_unit: Kelvin2Celsius - rw: ro - dtype: double - dim: 32 - monitor: true - read_parallel: true - mask: RECVTR_I2C_error - - - name: RCU_PWR_3V3 - description: RCU 3.3V voltage (V) - driver: I2C_RCU - devreg: AN.V_3v3 - width: 23 - scale: 1.463e-6 - rw: ro - dtype: double - dim: 32 - read_parallel: true - monitor: true - mask: RECVTR_I2C_error - - - name: RCU_PWR_1V8 - description: RCU 1.8V voltage (V) - driver: I2C_RCU - devreg: AN.V_1v8 - width: 23 - scale: 7.1526e-7 - rw: ro - dtype: double - dim: 32 - read_parallel: true - monitor: true - mask: RECVTR_I2C_error - - - name: RCU_PWR_2V5 - description: RCU 2.5V voltage (V) - driver: I2C_RCU - devreg: AN.V_2v5 - width: 23 - scale: 7.1526e-7 - rw: ro - dtype: double - dim: 32 - read_parallel: true - monitor: true - mask: RECVTR_I2C_error - - - name: RCU_PWR_ANT_VOUT - description: Voltage on antenna output of RCU (V). Controlled by ANT_PWR_ON. - driver: I2C_RCU - devreg: [AN.V_Ant_O0,AN.V_Ant_O1,AN.V_Ant_O2] - width: 23 - scale: 2.7895e-6 - rw: ro - dtype: double - dim: 96 - dim2: [3,32] - read_parallel: true - monitor: true - mask: RECVTR_I2C_error - - - name: RCU_PWR_ANT_VIN - description: RCU antenna voltage before switch (V) - driver: I2C_RCU - devreg: [AN.V_Ant_I0,AN.V_Ant_I1,AN.V_Ant_I2] - width: 23 - scale: 2.7895e-6 - rw: ro - dtype: double - dim: 96 - dim2: [3,32] - read_parallel: true - monitor: true - mask: RECVTR_I2C_error - - - name: RCU_PWR_ANT_IOUT - description: Current drawn on antenna output of RCU (A) - driver: I2C_RCU - devreg: [AN.I_Ant0,AN.I_Ant1,AN.I_Ant2] - width: 23 - scale: 7.1526e-8 - rw: ro - dtype: double - dim: 96 - dim2: [3,32] - read_parallel: true - monitor: true - mask: RECVTR_I2C_error - - - name: RCU_PWR_DIGITAL_on - description: RCU digital power enable. Controlled by calling RCU_on/RCU_off - driver: I2C_RCU - devreg: IO2.GPIO1 - width: 1 - bitoffset: 6 - rw: ro - dtype: boolean - dim: 32 - mask: RCU_mask - - - name: RCU_PWR_good - description: Status of RCU power given by LDOs. - driver: I2C_RCU - devreg: IO2.GPIO1 - width: 1 - bitoffset: 7 - rw: ro - dtype: boolean - dim: 32 - monitor: true - mask: RECVTR_I2C_error - - - name: RCU_PWR_ANALOG_on - description: RCU analog power enable. Controlled by RCU_on/off - driver: I2C_RCU - devreg: IO1.GPIO2 - width: 1 - bitoffset: 7 - rw: ro - dtype: boolean - dim: 32 - mask: RCU_mask - - - name: RCU_DTH_shutdown - description: False means dither source powered on. Controlled by TBD - driver: I2C_RCU - devreg: [IO3.GPIO1,IO3.GPIO1,IO3.GPIO2] - width: 1 - bitoffset: [7,6,7] - rw: rw - dtype: boolean - dim: 96 - dim2: [3,32] - mask: ANT_mask - debug: True - - - name: RCU_PWR_ANT_on - description: Antenna power output ON/OFF control. Monitored by Ant_VOUT. - driver: I2C_RCU - devreg: [IO1.GPIO1,IO1.GPIO1,IO1.GPIO2] - width: 1 - bitoffset: [6,7,6] - rw: rw - dtype: boolean - dim: 96 - dim2: [3,32] - mask: ANT_mask - - - name: HBAT_BF_delays - description: HBAT1 frontend delays (0.5ns steps) - driver: I2C_HBAT - devreg: [HBAT1.XY,HBAT2.XY,HBAT3.XY] - bitoffset: [2,2,2] - width: 5 - rw: rw - dtype: uint8 - dim: 3072 - dim2: [32,96] - mask: ANT_mask - wait: 100 #ms - - - name: [HBAT_LED_on,HBAT_PWR_on,HBAT_PWR_LNA_on] - description: HBA frontend control - driver: I2C_HBAT - devreg: [HBAT1.XY,HBAT2.XY,HBAT3.XY] - bitoffset: [0,7,1] - width: 1 - rw: rw - dtype: boolean - dim: 3072 - dim2: [32,96] - mask: ANT_mask - wait: 100 #ms - - - name: RCU_PCB_ID - description: Unique PCB ID - driver: I2C_RCU - devreg: ROM.ID - width: 32 - rw: ro - dtype: uint32 - dim: 32 - mask: RCU_mask - - - name: RCU_PCB_version - description: RCU version number - driver: I2C_RCU - devreg: ROM.Version - width: 0x80 #16 characters - rw: ro - dtype: string - dim: 32 - mask: RCU_mask - - - name: RCU_PCB_number - description: PCB number (astron.nl/webforms/IenS-Boarden/view.php?id=xxx) - driver: I2C_RCU - devreg: ROM.Serial - width: 0x80 #16 characters - rw: ro - dtype: string - dim: 32 - mask: RCU_mask - - - name: RCU_ADC_locked - description: RCU ADC lock status. May generated noise and polling disabled in future - driver: I2C_RCU - devreg: [ADC1.PLL_stat,ADC2.PLL_stat,ADC3.PLL_stat] - width: 1 - rw: ro - dtype: boolean - dim: 96 - dim2: [3,32] - monitor: true - - - name: RCU_ADC_sync - driver: I2C_RCU - devreg: [ADC1.SYNC_control,ADC2.SYNC_control,ADC3.SYNC_control] - width: 8 - rw: ro - dtype: uint8 - dim: 96 - dim2: [3,32] - debug: true - - - name: RCU_ADC_JESD - driver: I2C_RCU - devreg: [ADC1.JESD_control1,ADC2.JESD_control1,ADC3.JESD_control1] - width: 8 - rw: ro - dtype: uint8 - dim: 96 - dim2: [3,32] - debug: true - - - name: RCU_ADC_CML_level - driver: I2C_RCU - devreg: [ADC1.CML_level,ADC2.CML_level,ADC3.CML_level] - width: 8 - rw: ro - dtype: uint8 - dim: 96 - dim2: [3,32] - debug: true - - - name: RCU_DTH_freq - description: RCU Dither source frequency (Hz). Should be around 102MHz. - driver: I2C_RCU - devreg: [DTH1.Freq,DTH2.Freq,DTH3.Freq] - width: 32 - rw: rw - dtype: uint32 - dim: 96 - dim2: [3,32] - mask: ANT_mask - - - name: RCU_DTH_tune - driver: I2C_RCU - devreg: [DTH1.Tune,DTH2.Tune,DTH3.Tune] - width: 16 - rw: rw - dtype: uint32 - dim: 96 - dim2: [3,32] - mask: ANT_mask - debug: true - - - name: RCU_DTH_config - driver: I2C_RCU - devreg: [DTH1.CONF,DTH2.CONF,DTH3.CONF] - width: 8 - rw: rw - dtype: uint32 - dim: 96 - dim2: [3,32] - mask: ANT_mask - debug: true - - - name: RCU_DTH_on - description: RCU Dither on. Controlled by RCU_DTH_on/off - driver: I2C_RCU - devreg: [DTH1.State,DTH2.State,DTH3.State] - width: 1 #read only first of 2 bytes - bitoffset: [1,1,1] - rw: ro - dtype: boolean - dim: 96 - dim2: [3,32] - mask: ANT_mask - - - name: RCU_DTH_Rev - driver: I2C_RCU - devreg: [DTH1.Rev,DTH2.Rev,DTH3.Rev] - width: 88 - rw: rw - dtype: uint32 - dim: 96 - dim2: [3,32] - mask: ANT_mask - debug: true - -methods: - - name: RECVTR_Init #Called after startup to load. Should have all stored registers - driver: I2C_RCU - debug: True - instructions: - - RCU_IO1_GPIO1: Update - - RCU_IO1_GPIO2: Update - - RCU_IO2_GPIO1: Update - - RCU_IO2_GPIO2: Update - - RCU_IO3_GPIO1: Update - - RCU_IO3_GPIO2: Update -# - IO1.GPIO2: Update -# - IO2.GPIO1: Update -# - IO2.GPIO2: Update -# - IO3.GPIO1: Update -# - IO3.GPIO2: Update - - IO3.CONF1: Update - - RCU_update: 0 - - - name: RCU_on - description: Initialize RCU and it in the ON state - driver: I2C_RCU - mask: RCU_mask - instructions: - - RECVTR_I2C_error: 0 - - IO2.CONF1: 0x80 #Pgood on 0x80 - - IO2.GPIO1: 0x4A #0x40 Dig on, 0x0a =10dB att - - IO2.GPIO2: 0x55 #0x15 #Band0 (or 0x2a band 1) #LED green=on=low - - IO3.GPIO1: 0x15 #ADC_SDIO=high, clk=low, DTH_EN=low - - IO3.GPIO2: 0x47 #ADC SC=high, DTH_SDA=high - - IO1.GPIO1: 0x0A #0x0a = 10dB att - - IO1.GPIO2: 0x8A #0x80 Analog on, 0x0a=10dB att - - IO2.CONF2: 0 - - IO3.CONF1: 0 - - IO3.CONF2: 0 - - IO1.CONF1: 0 - - IO1.CONF2: 0 -# - RCU_GPIO1: Update -# - RCU_GPIO2: Update -# - RCU_attenuator: [10,10,10] #Set OPC-UA variable - - WAIT: 500 #ms to wait - - ADC1_on: 0 #call another opc-ua method - - ADC2_on: 0 - - ADC3_on: 0 - - WAIT: 500 #ms to wait - - RCU_update: 0 - - - name: RCU_update - driver: I2C_RCU - mask: RCU_mask - debug: True - instructions: - - RCU_PWR_DIGITAL_on: Update #Read value and update the OPC-UA variable - - RCU_PWR_ANALOG_on: Update - - RCU_PWR_ANT_on: Update - - RCU_PCB_ID: Update - - RCU_PCB_version: Update - - RCU_PCB_number: Update - - RCU_LED_red_on: Update - - RCU_LED_green_on: Update - - RCU_attenuator_dB: Update - - RCU_band_select: Update - - RCU_ADC_locked: Update - - RCU_ADC_sync: Update - - RCU_DTH_shutdown: Update - - RCU_DTH_freq: Update - - RCU_DTH_on: Update - - - name: ADC1_on - driver: I2C_RCU - debug: True -# rw: hidden - instructions: - - ADC1.JESD_control1 : 0x14 - - ADC1.SYNC_control: 1 #Setup ADCs - - ADC1.CML_level: 0x7 - - ADC1.Update: 1 #Needed to update ADC registers - - - name: ADC2_on - driver: I2C_RCU - debug: True -# rw: hidden - instructions: - - ADC2.JESD_control1 : 0x14 - - ADC2.SYNC_control: 1 #Setup ADCs - - ADC2.CML_level: 0x7 - - ADC2.Update: 1 #Needed to update ADC registers - - - name: ADC3_on - driver: I2C_RCU - debug: True -# rw: hidden - instructions: - - ADC3.JESD_control1 : 0x14 - - ADC3.SYNC_control: 1 #Setup ADCs - - ADC3.CML_level: 0x7 - - ADC3.Update: 1 #Needed to update ADC registers - - - name: RCU_off - description: Put RCU in low-power state - driver: I2C_RCU - mask: RCU_mask - instructions: - - RECVTR_I2C_error: 0 - - RCU_PWR_ANALOG_on: 0 #Switch power off - - RCU_PWR_DIGITAL_on: 0 #Switch power off - - IO2.GPIO1: 0 - - IO2.GPIO2: 0 - - IO3.GPIO1: 0 - - IO3.GPIO2: 0 - - IO1.GPIO1: 0 - - IO1.GPIO2: 0 - - RCU_update: 0 - #todo, also make all GPIO pins (except power enables) inputs to remove all power from devices. - - - name: RCU_HBAT_WAIT_PPS - driver: I2C_RCU - mask: RCU_mask - debug: True - instructions: - - RCU_state: 3 - - HB_UC_update.wait_pps : 1 - - RCU_state: 1 - - - - name: RCU_DTH_on - description: Switch dither source on - driver: I2C_RCU - mask: RCU_mask -# rw: hidden - instructions: - - RCU_DTH_config : [0,0,0] - - RCU_DTH_config: Update #debug - - DTH1.Tune : [0,0] #no tuning - - DTH2.Tune : [0,0] #no tuning - - DTH3.Tune : [0,0] #no tuning - - RCU_DTH_tune: Update #debug - - DTH1.Start : [0,1,0,0,1] - - DTH2.Start : [0,1,0,0,1] - - DTH3.Start : [0,1,0,0,1] - - RCU_DTH_on : Update - - - name: RCU_DTH_off - description: Switch dither source off - driver: I2C_RCU - mask: RCU_mask -# rw: hidden - instructions: -# - RCU_DTH_SHUTDOWN : [1,1,1] -# - WAIT: 100 -# - RCU_DTH_SHUTDOWN : [0,0,0] -# - RCU_DTH_SHUTDOWN : 1 - - DTH1.Stop : [0,0] - - DTH2.Stop : [0,0] - - DTH3.Stop : [0,0] -# - DTH1.State : [0,0] -# - DTH2.State : [0,0] -# - DTH3.State : [0,0] - - RCU_DTH_on: Update diff --git a/config/RECVTR.yaml b/config/RECVTR.yaml new file mode 120000 index 0000000..aaba679 --- /dev/null +++ b/config/RECVTR.yaml @@ -0,0 +1 @@ +RECVTR_HB.yaml \ No newline at end of file diff --git a/config/RECVTR_HB.yaml b/config/RECVTR_HB.yaml index 9e809b5..49dc714 100644 --- a/config/RECVTR_HB.yaml +++ b/config/RECVTR_HB.yaml @@ -475,7 +475,7 @@ variables: dim2: [3,32] mask: ANT_mask - - name: HBAT_BF_delays + - name: HBAT_BF_delay_steps description: HBAT1 frontend delays (0.5ns steps) driver: I2C_HBAT devreg: [HBAT1.XY,HBAT2.XY,HBAT3.XY] diff --git a/config/RECVTR_LB.yaml b/config/RECVTR_LB.yaml index fb9ddd6..dfd4251 100644 --- a/config/RECVTR_LB.yaml +++ b/config/RECVTR_LB.yaml @@ -469,7 +469,7 @@ variables: dim2: [3,32] mask: ANT_mask - - name: HBAT_BF_delays + - name: HBAT_BF_delay_steps description: HBAT1 frontend delays (0.5ns steps) driver: I2C_HBAT devreg: [HBAT1.XY,HBAT2.XY,HBAT3.XY] -- GitLab