Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
PyPCC
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
LOFAR2.0
PyPCC
Commits
e1929325
Commit
e1929325
authored
Jan 30, 2024
by
Paulus Kruger
Browse files
Options
Downloads
Patches
Plain Diff
RECVTR LB/HB selected using LMP id
parent
2859abec
No related branches found
No related tags found
No related merge requests found
Pipeline
#70206
failed
Jan 30, 2024
Stage: run
Stage: image
Changes
5
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
bin/recvtr.service
+1
-1
1 addition, 1 deletion
bin/recvtr.service
bin/recvtr2
+18
-0
18 additions, 0 deletions
bin/recvtr2
install.sh
+5
-4
5 additions, 4 deletions
install.sh
pypcc/config/RECVTR_HBQM.yaml
+1044
-0
1044 additions, 0 deletions
pypcc/config/RECVTR_HBQM.yaml
setup.cfg
+1
-1
1 addition, 1 deletion
setup.cfg
with
1069 additions
and
6 deletions
bin/recvtr.service
+
1
−
1
View file @
e1929325
...
...
@@ -4,7 +4,7 @@ After=multi-user.target
[Service]
Type
=
simple
ExecStart
=
recvtr
ExecStart
=
recvtr
2
[Install]
WantedBy
=
multi-user.target
This diff is collapsed.
Click to expand it.
bin/recvtr2
0 → 100755
+
18
−
0
View file @
e1929325
#!/bin/bash
read_lmp_id
lmp_id
=
$?
conffile
=
"RECVTR_HB,PPS"
if
[
$lmp_id
-lt
2
]
then
conffile
=
"RECVTR_LB"
fi
if
[
$lmp_id
-eq
10
]
||
[
$lmp_id
-eq
21
]
then
conffile
=
"CCDTR"
fi
echo
$lmp_id
,
$conffile
hwtr
-p
4840
-c
$conffile
This diff is collapsed.
Click to expand it.
install.sh
+
5
−
4
View file @
e1929325
#!/bin/bash
sudo
python3.11 setup.py
install
sudo
systemctl restart recvtr.service
sudo
systemctl restart apscttr.service
sudo
systemctl restart apsputr.service
sudo
systemctl restart unb2tr.service
sudo
systemctl restart pitr.service
#sudo systemctl restart recvtr.service
#sudo systemctl restart apscttr.service
#sudo systemctl restart apsputr.service
#sudo systemctl restart unb2tr.service
This diff is collapsed.
Click to expand it.
pypcc/config/RECVTR_HBQM.yaml
0 → 100644
+
1044
−
0
View file @
e1929325
version
:
"
1.0"
description
:
"
1234"
name
:
"
RECVTR"
drivers
:
-
name
:
I2C1
#TCA9548
type
:
i2c_switch
devreg
:
[
0x70
,
0x71
,
0x72
,
0x73
]
parameters
:
[
1
]
#I2C port number
parent
:
I2C_reset_GPIO
-
name
:
I2C_reset_GPIO
type
:
gpio
parameters
:
[
15
]
-
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
:
35
#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.0xFF
]
#I2C broadcast register
parameters
:
[
24
]
#PPS GPIO pin
-
name
:
I2Cbb1
type
:
i2cbitbangp
#I2C bitbang via GPIO expander
devreg
:
[
IO3.GPIO2
,
IO3.GPIO2
,
IO3.CONF2
]
parameters
:
[
5
,
6
,
6
]
#pins
parent
:
I2C_RCU
-
name
:
I2Cbb2
type
:
i2cbitbangp
devreg
:
[
IO3.GPIO2
,
IO3.GPIO2
,
IO3.CONF2
]
parameters
:
[
4
,
6
,
6
]
parent
:
I2C_RCU
-
name
:
I2Cbb3
type
:
i2cbitbangp
devreg
:
[
IO3.GPIO2
,
IO3.GPIO2
,
IO3.CONF2
]
parameters
:
[
3
,
6
,
6
]
parent
:
I2C_RCU
# - name: I2Cbbp
# type: i2cbitbangp
# devreg: [IO3.GPIO2,IO3.GPIO2,IO3.CONF2]
# parameters: [5,4,3,6,6,6,6,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: SPI3bb
# type: spibitbang3 #SPI bitbang via GPIO expander: CLK, SDIO, SDIOdir,CS
# devreg: [IO3.GPIO1,IO3.GPIO1,IO3.CONF1,IO3.GPIO2]
# parameters: [1,3,5, 0,2,4, 0,2,4, 0,1,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
:
4
description
:
[
IO-Expander for filter selection
,
IO-Expander for ON/OFF
,
Band
,
BUFx2
,
IO-Expander for ADC control
]
address
:
[
0x75
,
0x76
,
0x20
,
0x77
]
device
:
[
TCA9539
,
TCA9539
,
TCA6416
,
TCA9539
]
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
:
POL1
address
:
4
-
name
:
POL2
address
:
5
-
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
:
"
waitPPS"
,
address
:
12
,
description
:
"
1=wait
for
PPS"
}
-
{
name
:
"
VREF"
,
address
:
13
,
description
:
"
0..15/16
ratio
of
Vref"
}
-
{
name
:
"
firmware"
,
address
:
0x10
,
description
:
"
software
version"
}
# - 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
:
"
w"
#only store on write
-
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
:
JESD_control3
description
:
JESD link control
address
:
0x61
-
name
:
SYNC_control
address
:
0x3A
-
name
:
CML_level
description
:
CML output adjust
address
:
0x15
-
name
:
Update
description
:
Global device uptate
address
:
0xFF
-
name
:
testmode
address
:
0x0D
-
name
:
dither
address
:
0x0C
-
name
:
JESDscramble
address
:
0x6E
-
name
:
PDWNmodes
address
:
0x08
-
name
:
DCcorrect
address
:
0x40
-
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
]
-
name
:
PA_CONFIG
address
:
[
0x1260
,
0x1160
]
store
:
True
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
:
5
rw
:
rw
dtype
:
uint8
dim
:
96
dim2
:
[
3
,
32
]
mask
:
ANT_mask
-
name
:
RCU_band_select
description
:
Band select for highband 2,1,4 for 110-190,170-230,210-240
driver
:
I2C_RCU
devreg
:
[
IO2.GPIO2
,
IO2.GPIO2
,
IO4.GPIO2
]
bitoffset
:
[
0
,
3
,
0
]
width
:
3
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
#3.0V ref #T=DATAOUT * Vref/12.25/32. Vref=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
#3.0V ref, divider r=1/4, scale=Vref/2^23 / r
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
#3.0V ref, divider r=1/2, scale=Vref/2^23 / r
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
#3.0V ref, divider r=1/2
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
:
1.43051e-5
#3V ref, divider r=1/40
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
:
1.43051e-5
#3V ref, divider r=1/40
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). 15mA offset due to LED on RCU
driver
:
I2C_RCU
devreg
:
[
AN.I_Ant0
,
AN.I_Ant1
,
AN.I_Ant2
]
width
:
23
scale
:
3.9736e-7
#3V ref, 2.7K res, =Vref/2^(23) * 3000/R
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
#rw for testing
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
:
rw
#rw for testing
dtype
:
boolean
dim
:
32
mask
:
RCU_mask
-
name
:
RCU_DTH_shutdown
description
:
False means dither source powered on.
driver
:
I2C_RCU
devreg
:
IO3.GPIO2
width
:
1
bitoffset
:
7
rw
:
ro
dtype
:
boolean
dim
:
32
mask
:
RCU_mask
debug
:
True
-
name
:
RCU_ADC_shutdown
description
:
False means ADC powered on.
driver
:
I2C_RCU
devreg
:
[
IO3.GPIO1
,
IO3.GPIO1
,
IO3.GPIO1
]
width
:
1
bitoffset
:
[
6
,
3
,
5
]
rw
:
ro
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
:
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
:
0x100
#32 characters
rw
:
ro
dtype
:
string
dim
:
32
mask
:
RCU_mask
check_value
:
RCU2H
-
name
:
RCU_PCB_number
description
:
PCB number (astron.nl/webforms/IenS-Boarden/view.php?id=xxx)
driver
:
I2C_RCU
devreg
:
ROM.Serial
width
:
0x100
#32 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
read_parallel
:
true
-
name
:
RCU_ADC_sync
driver
:
I2C_RCU
devreg
:
[
ADC1.SYNC_control
,
ADC2.SYNC_control
,
ADC3.SYNC_control
]
width
:
1
rw
:
ro
dtype
:
boolean
dim
:
96
dim2
:
[
3
,
32
]
# debug: true
read_parallel
:
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
mask
:
ANT_mask
-
name
:
RCU_ADC_testsignal
driver
:
I2C_RCU
devreg
:
[
ADC1.JESD_control1
,
ADC2.JESD_control1
,
ADC3.JESD_control1
]
width
:
1
bitoffset
:
5
rw
:
ro
dtype
:
boolean
dim
:
96
dim2
:
[
3
,
32
]
mask
:
ANT_mask
-
name
:
RCU_ADC_JESD3
driver
:
I2C_RCU
devreg
:
[
ADC1.JESD_control3
,
ADC2.JESD_control3
,
ADC3.JESD_control3
]
width
:
8
rw
:
rw
dtype
:
uint8
dim
:
96
dim2
:
[
3
,
32
]
debug
:
true
mask
:
ANT_mask
-
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
read_parallel
:
all
-
name
:
RCU_DTH_PWR
description
:
RCU Dither source power (dBm). Range -25 to -4.
driver
:
I2C_RCU
devreg
:
[
DTH1.PA_CONFIG
,
DTH2.PA_CONFIG
,
DTH3.PA_CONFIG
]
width
:
48
rw
:
rw
dtype
:
double
scale
:
si4012_6bytes_to_pwr
dim
:
96
dim2
:
[
3
,
32
]
mask
:
ANT_mask
read_parallel
:
all
# 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
read_parallel
:
all
#RCU2H points
-
name
:
RCU_DAB_filter_on
description
:
DAB filter enable
driver
:
I2C_RCU
devreg
:
[
IO4.GPIO1
,
IO4.GPIO1
,
IO4.GPIO1
]
bitoffset
:
[
0
,
2
,
4
]
width
:
2
rw
:
rw
dtype
:
boolean
convert_unit
:
int12_to_bool
dim
:
96
dim2
:
[
3
,
32
]
mask
:
ANT_mask
-
name
:
RCU_firmware_version
description
:
git firmware version
driver
:
I2C_RCU
devreg
:
HB_UC.firmware
width
:
32
rw
:
ro
dtype
:
uint32
endian
:
"
<"
dim
:
32
mask
:
RCU_mask
#HBAT points
-
name
:
HBAT_BF_delay_steps
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
:
-1
#-1 = PPS
# wait: 1000 #ms
-
name
:
[
RCU_IO4_GPIO1
,
RCU_IO4_GPIO2
]
driver
:
I2C_RCU
devreg
:
[
IO4.GPIO1
,
IO4.GPIO2
]
width
:
8
rw
:
ro
dtype
:
uint8
dim
:
32
mask
:
RCU_mask
debug
:
True
-
name
:
HBAT_LED_on
description
:
HBA frontend control
driver
:
I2C_HBAT
devreg
:
[
HBAT1.XY
,
HBAT2.XY
,
HBAT3.XY
]
bitoffset
:
0
width
:
1
rw
:
rw
dtype
:
boolean
dim
:
3072
dim2
:
[
32
,
96
]
mask
:
ANT_mask
wait
:
1000
-
name
:
HBAT_PWR_LNA_on
description
:
HBA frontend control
driver
:
I2C_HBAT
devreg
:
[
HBAT1.XY
,
HBAT2.XY
,
HBAT3.XY
]
bitoffset
:
7
width
:
1
rw
:
rw
dtype
:
boolean
dim
:
3072
dim2
:
[
32
,
96
]
mask
:
ANT_mask
wait
:
1000
-
name
:
HBAT_PWR_on
description
:
HBA frontend control
driver
:
I2C_HBAT
devreg
:
[
HBAT1.XY
,
HBAT2.XY
,
HBAT3.XY
]
bitoffset
:
1
width
:
1
rw
:
rw
dtype
:
boolean
convert_unit
:
bool_invert
dim
:
3072
dim2
:
[
32
,
96
]
mask
:
ANT_mask
wait
:
1000
# - name: [RCU_uC_VPP,RCU_uC_PGC,RCU_uC_PGD]
# driver: I2C_RCU
# devreg: IO4.GPIO2
# bitoffset: [0,3,0]
# width: 3
# rw: rw
# dtype: uint8
# dim: 96
# dim2: [3,32]
# mask: ANT_mask
methods
:
-
name
:
RECVTR_Init
#Called after startup to load. Should have all stored registers
driver
:
I2C_RCU
debug
:
True
instructions
:
-
RCU_PCB_version
:
Update
-
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
-
RCU_ADC_locked
:
Update
#check if not also in RCU_update
-
RCU_ADC_sync
:
Update
#disabled for testing
-
RCU_ADC_testsignal
:
Update
#disabled for testing
-
RCU_DTH_on
:
Update
#check if not also in RCU_update
-
RCU_IO4_GPIO1
:
Update
#should be last, as it will fail for low-band
-
RCU_IO4_GPIO2
:
Update
-
name
:
RCU_on
description
:
Initialize RCU and it in the ON state
driver
:
I2C_RCU
mask
:
RCU_mask
instructions
:
-
RECVTR_I2C_error
:
0
-
RCU_PCB_version
:
Update
#Start with all off
-
IO2.GPIO1
:
0x00
#default is 1, so should be cleared before making output
-
IO2.CONF1
:
0x80
#Pgood on 0x80
-
IO1.GPIO2
:
0x00
#
-
IO1.CONF2
:
0
#
#Power on
-
RCU_PWR_DIGITAL_on
:
1
#switch on with delay
-
RCU_PWR_ANALOG_on
:
1
#switch on with delay
#Set registers to default values
# - IO1.POL1: 0
# - IO1.POL2: 0
# - IO2.POL1: 0
# - IO2.POL2: 0
# - IO4.POL1: 0
# - IO4.POL2: 0
-
IO2.GPIO1
:
0x4A
#0x40 Dig on, 0x0a =10dB att
-
IO2.GPIO2
:
0x52
#0x09 #Band0 (or 0x12 or 0x24) #LED green=on=low 0x40
# - IO3.GPIO1: 0xD5 #ADC_SDIO=high, clk=low, DTH_EN=high
# - IO3.GPIO2: 0xC7 #ADC SC=high, DTH_SDA=high
-
IO3.POL1
:
0
-
IO3.POL2
:
0
-
IO3.GPIO1
:
0x15
# x001 0101 #ADC_SDIO=high, clk=low, PWDN=low=on DTH_EN=low
-
IO3.GPIO2
:
0x47
# 0100 0111 #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
#ADC SPI bus reset
-
IO3.GPIO2
:
0xC0
#CS low, DTH Shutdown
-
IO3.GPIO1
:
0x17
#CLK high
-
IO3.GPIO1
:
0x15
#CLK low
-
IO3.GPIO1
:
0x17
#CLK high
-
IO3.GPIO1
:
0x15
#CLK low
-
IO3.GPIO2
:
0x47
#CS high
-
IO4.CONF1
:
0xC0
#pin 0x40, 0x80 not used
-
IO4.CONF2
:
0x00
#reset uC?
-
IO4.GPIO1
:
0x2A
#DAB switch states: 0x2A or 0x51
-
IO4.GPIO2
:
0x02
#Band select
-
IO4.CONF2
:
0xF8
-
HB_UC.waitPPS
:
1
#wait for PPS
-
HB_UC.VREF
:
0x0C
-
RCU_update
:
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
# - IO3.GPIO1: 0xD5 #DTH_EN=high -> ADCs disables
# - IO3.GPIO2: 0xC7 #
-
WAIT
:
100
#ms to wait
-
RCU_ADC_shutdown
:
[
1
,
1
,
1
]
-
WAIT
:
100
#ms to wait
-
RCU_ADC_shutdown
:
[
1
,
1
,
0
]
# - WAIT: 10 #ms to wait
-
RCU_ADC_shutdown
:
[
1
,
0
,
0
]
# - WAIT: 10 #ms to wait
-
RCU_ADC_shutdown
:
[
0
,
0
,
0
]
# - IO3.GPIO1: 0x15 #DTH_EN=low -> ADC enabled
# - IO3.GPIO2: 0x47
-
RCU_DTH_on
:
Update
#check dither while giving ADCs some time to lock
-
RCU_ADC_locked
:
Update
#disabled for testing
-
RCU_ADC_sync
:
Update
#disabled for testing
-
RCU_ADC_testsignal
:
Update
#disabled for testing
-
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_DTH_shutdown: Update
# - RCU_DTH_freq: Update
# - RCU_DTH_on: Update #disabled for testing
# - RCU_hband_select: Update
-
RCU_DAB_filter_on
:
Update
-
RCU_firmware_version
:
Update
-
RCU_IO1_GPIO1
:
Update
#needed for debug/testing
-
RCU_IO1_GPIO2
:
Update
-
RCU_IO2_GPIO1
:
Update
-
RCU_IO2_GPIO2
:
Update
-
RCU_IO3_GPIO1
:
Update
-
RCU_IO3_GPIO2
:
Update
-
RCU_IO4_GPIO1
:
Update
-
RCU_IO4_GPIO2
:
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.dither
:
0x00
-
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.dither
:
0x00
-
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.dither
:
0x00
-
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
# Frequencies used:
# 97402400, 97419775, 97437100, 98260000, 98274975, 98289900, 97845600, 97861775,
# 97877900, 98645600, 98659375, 98673100, 97627600, 97644375, 97661100, 98456400,
# 98470775, 98485100, 98056400, 98071975, 98087500, 98827600, 98840775, 98853900,
# 97515900, 97532975, 97550000, 98359100, 98373775, 98388400, 97951900, 97967775,
# 97983600, 98737500, 98750975, 98764400, 97737500, 97753975, 97770400, 98551900,
# 98565975, 98580000, 98159100, 98174375, 98189600, 98915900, 98928775, 98941600,
# 97459375, 97476600, 97493775, 98309775, 98324600, 98339375, 97898975, 97915000,
# 97930975, 98691775, 98705400, 98718975, 97682775, 97699400, 97715975, 98504375,
# 98518600, 98532775, 98107975, 98123400, 98138775, 98871975, 98885000, 98897975,
# 97571975, 97588900, 97605775, 98407975, 98422500, 98436975, 98004375, 98020100,
# 98035775, 98782775, 98796100, 98809375, 97791775, 97808100, 97824375, 98598975,
# 98612900, 98626775, 98209775, 98224900, 98239975, 98959375, 98972100, 98984775
-
name
:
RCU_DTH_on
description
:
Switch dither source on
driver
:
I2C_RCU
mask
:
RCU_mask
# rw: hidden
instructions
:
-
RCU_DTH_freq
:
[
5
,
206
,
62
,
32
,
5
,
206
,
129
,
255
,
5
,
206
,
197
,
172
,
5
,
219
,
84
,
32
,
5
,
219
,
142
,
159
,
5
,
219
,
200
,
236
,
5
,
213
,
1
,
96
,
5
,
213
,
64
,
143
,
5
,
213
,
127
,
140
,
5
,
225
,
54
,
96
,
5
,
225
,
108
,
47
,
5
,
225
,
161
,
204
,
5
,
209
,
173
,
208
,
5
,
209
,
239
,
87
,
5
,
210
,
48
,
172
,
5
,
222
,
83
,
80
,
5
,
222
,
139
,
119
,
5
,
222
,
195
,
108
,
5
,
216
,
56
,
208
,
5
,
216
,
117
,
167
,
5
,
216
,
178
,
76
,
5
,
227
,
253
,
80
,
5
,
228
,
48
,
199
,
5
,
228
,
100
,
12
,
5
,
207
,
249
,
124
,
5
,
208
,
60
,
47
,
5
,
208
,
126
,
176
,
5
,
220
,
215
,
60
,
5
,
221
,
16
,
143
,
5
,
221
,
73
,
176
,
5
,
214
,
160
,
156
,
5
,
214
,
222
,
159
,
5
,
215
,
28
,
112
,
5
,
226
,
157
,
92
,
5
,
226
,
209
,
255
,
5
,
227
,
6
,
112
,
5
,
211
,
91
,
28
,
5
,
211
,
155
,
119
,
5
,
211
,
219
,
160
,
5
,
223
,
200
,
92
,
5
,
223
,
255
,
87
,
5
,
224
,
54
,
32
,
5
,
217
,
201
,
252
,
5
,
218
,
5
,
167
,
5
,
218
,
65
,
32
,
5
,
229
,
86
,
60
,
5
,
229
,
136
,
135
,
5
,
229
,
186
,
160
,
5
,
207
,
28
,
175
,
5
,
207
,
95
,
248
,
5
,
207
,
163
,
15
,
5
,
220
,
22
,
143
,
5
,
220
,
80
,
120
,
5
,
220
,
138
,
47
,
5
,
213
,
209
,
223
,
5
,
214
,
16
,
120
,
5
,
214
,
78
,
223
,
5
,
225
,
234
,
191
,
5
,
226
,
31
,
248
,
5
,
226
,
84
,
255
,
5
,
210
,
133
,
87
,
5
,
210
,
198
,
72
,
5
,
211
,
7
,
7
,
5
,
223
,
14
,
183
,
5
,
223
,
70
,
72
,
5
,
223
,
125
,
167
,
5
,
217
,
2
,
71
,
5
,
217
,
62
,
136
,
5
,
217
,
122
,
151
,
5
,
228
,
170
,
167
,
5
,
228
,
221
,
136
,
5
,
229
,
16
,
55
,
5
,
208
,
212
,
135
,
5
,
209
,
22
,
164
,
5
,
209
,
88
,
143
,
5
,
221
,
150
,
39
,
5
,
221
,
206
,
228
,
5
,
222
,
7
,
111
,
5
,
215
,
109
,
151
,
5
,
215
,
171
,
4
,
5
,
215
,
232
,
63
,
5
,
227
,
78
,
55
,
5
,
227
,
130
,
68
,
5
,
227
,
182
,
31
,
5
,
212
,
47
,
31
,
5
,
212
,
110
,
228
,
5
,
212
,
174
,
119
,
5
,
224
,
128
,
63
,
5
,
224
,
182
,
164
,
5
,
224
,
236
,
215
,
5
,
218
,
143
,
239
,
5
,
218
,
203
,
4
,
5
,
219
,
5
,
231
,
5
,
230
,
0
,
15
,
5
,
230
,
49
,
196
,
5
,
230
,
99
,
71
]
-
DTH1.PA_CONFIG
:
[
0
,
45
,
0
,
0
,
125
,
127
]
-
DTH2.PA_CONFIG
:
[
0
,
45
,
0
,
0
,
125
,
127
]
-
DTH3.PA_CONFIG
:
[
0
,
45
,
0
,
0
,
125
,
127
]
-
RCU_DTH_PWR
:
Update
# - RCU_DTH_config : [0,0,0]
# - RCU_DTH_config: Update #debug
-
RCU_DTH_setup
:
0
-
DTH1.CONF
:
[
0
,
0
,
0
]
-
DTH2.CONF
:
[
0
,
0
,
0
]
-
DTH3.CONF
:
[
0
,
0
,
0
]
-
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
-
name
:
RCU_DTH_restart
#restart to update frequency
driver
:
I2C_RCU
mask
:
RCU_mask
debug
:
True
instructions
:
-
DTH1.Stop
:
[
0
,
0
]
-
DTH2.Stop
:
[
0
,
0
]
-
DTH3.Stop
:
[
0
,
0
]
-
DTH1.Start
:
[
0
,
1
,
0
,
0
,
1
]
-
DTH2.Start
:
[
0
,
1
,
0
,
0
,
1
]
-
DTH3.Start
:
[
0
,
1
,
0
,
0
,
1
]
-
name
:
RCU_ADC_testsignal_on
driver
:
I2C_RCU
instructions
:
-
ADC1.JESD_control1
:
0x34
-
ADC1.Update
:
1
#Needed to update ADC registers
-
ADC2.JESD_control1
:
0x34
-
ADC2.Update
:
1
#Needed to update ADC registers
-
ADC3.JESD_control1
:
0x34
-
ADC3.Update
:
1
#Needed to update ADC registers
-
RCU_ADC_testsignal
:
Update
#disabled for testing
This diff is collapsed.
Click to expand it.
setup.cfg
+
1
−
1
View file @
e1929325
...
...
@@ -15,7 +15,7 @@ packages=find:
python_requires
=
>=3.7
scripts
=
bin/unb2tr
bin/apscttr
bin/recvtr
bin/recvtr
2
bin/apsputr
bin/ccdtr
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment