Skip to content
Snippets Groups Projects
Commit 6dc8e0a0 authored by Gabriel Fedel's avatar Gabriel Fedel :speech_balloon:
Browse files

Reorganize

parent 01e621f2
No related branches found
No related tags found
1 merge request!1First version for RFQ
......@@ -13,17 +13,12 @@ require ess,0.0.1
epicsEnvSet(PREFIX, "TR-LLRF")
epicsEnvSet(PCI_SLOT, "0c:00.0")
#!
#epicsEnvSet "TOP" "$(E3_CMD_TOP)"
#iocshLoad "$(TOP)/locenvs.iocsh"
#epicsEnvSet "ENGINEER" "ICS_HWI_WP04"
#epicsEnvSet "EPICS_CA_MAX_ARRAY_BYTES" "10000000"
iocshLoad "$(mrfioc2_DIR)/evr.iocsh" "P=$(PREFIX), PCIID=$(PCI_SLOT), $(INITARGS=)"
#iocshLoad "$(autosave_DIR)/autosave.iocsh" "AS_TOP=$(AS_TOP=/var/log/autosave), IOCNAME=$(PEVR)"
# - Load TS2 EVM application
dbLoadRecords("ts2_evm_controls.template", "P=$(PREFIX):, EVGPREFIX=$(PREFIX):")
# - Load EVR Island application
dbLoadRecords("evr-island.template", "P=$(PREFIX):, EVGPREFIX=$(PREFIX):")
# - Load standard ESS modules
iocshLoad("$(iocstats_DIR)/iocstats.iocsh", "IOCNAME=$(PREFIX)")
......
require mrfioc2,2.2.1rc3
#- Channel Access environment configuration
epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES","10000000")
#- Example MACROS
epicsEnvSet("SYSSUB", "TD-TS2")
epicsEnvSet("DISDEVID", "TS-EVR-001")
epicsEnvSet("PREFIX", "$(SYSSUB):$(DISDEVID):")
#- EVR PCI address
epicsEnvSet("PCIID", "08:00.0")
# Not use in this script, but it is needed for the expansion.
epicsEnvSet("MainEvtCODE" "14")
#
# Record names follows the template "$(P)$(R=)$(S=:)Signal-SD"
# "P" is mandatory, "R" is optional (default empty), "S" is optional (defaul separator ":")
# "DEV" is a unique identifier of the EVR card used by mrfioc2 device support layer
#
iocshLoad("$(mrfioc2_DIR)/evr-mtca-300.iocsh", "P=$(PREFIX), S=, DEV=$(DISDEVID), PCIID=$(PCIID)")
iocInit()
# - Required modules
require mrfioc2,2.2.1rc3
require busy,1.7.2_c596e1c
require ts2evm,develop
# - Standard modules
require iocStats,3.1.16
require autosave,5.10.0
require caPutLog,b544f92
require recsync,1.3.0-9705e52
require ess,0.0.1
epicsEnvSet(PREFIX, "TD-RFLAB:TS-EVG-01")
# - Load standard timing modules environment
iocshLoad "$(mrfioc2_DIR)/mtca.iocsh"
iocshLoad "$(mrfioc2_DIR)/ts.iocsh"
iocshLoad "$(mrfioc2_DIR)/evm.iocsh" "P=$(PREFIX), OBJ=EVM, PCIID=09:00.0, U=:EVRU-, D=:EVRD-"
# - Load TS2 EVM application
dbLoadRecords("ts2_evm_controls.template", "P=$(PREFIX):, EVGPREFIX=$(PREFIX):")
# - Load standard ESS modules
iocshLoad("$(iocStats_DIR)/iocStats.iocsh", "IOCNAME=$(PREFIX)")
var(reccastTimeout, 5.0)
var(reccastMaxHoldoff, 5.0)
epicsEnvSet("RECSYNCPREFIX", "$(PREFIX)")
iocshLoad("$(recsync_DIR)/recsync.iocsh", "IOCNAME=$(RECSYNCPREFIX)")
epicsEnvSet("AS_REMOTE", "/opt/autosave")
epicsEnvSet("AS_FOLDER", "$(PREFIX)")
iocshLoad("$(autosave_DIR)/autosave.iocsh", "AS_TOP=$(AS_REMOTE),IOCNAME=$(AS_FOLDER)")
## Logging environment variables
epicsEnvSet("LOG_SERVER_NAME", "$(LOG_SERVER_NAME=localhost)")
epicsEnvSet("ERRORLOG_SERVER_PORT", "$(ERRORLOG_SERVER_PORT=9001)")
epicsEnvSet("CAPUTLOG_SERVER_PORT", "$(CAPUTLOG_SERVER_PORT=9001)")
epicsEnvSet("FACNAME", "$(FACNAME=)")
#iocshLoad("$(ess_DIR)/iocLog.iocsh", "LOG_INET=$(LOG_SERVER_NAME),LOG_INET_PORT=$(ERRORLOG_SERVER_PORT),FACNAME=$(FACILITY_NAME=),IOCNAME=$(PREFIX)")
#iocshLoad("$(caPutLog_DIR)/caPutLog.iocsh", "LOG_INET=$(LOG_SERVER_NAME),LOG_INET_PORT=$(CAPUTLOG_SERVER_PORT)")
# - Start IOC
iocInit
# - Load EVM standard after init snippet
iocshLoad("$(mrfioc2_DIR)/evgr.iocsh","P=$(PREFIX), INTRF=, INTPPS=")
dbpf $(PREFIX):Enable-Sel "Ena Master"
dbpf $(PREFIX):1ppsInp-Sel "Sys Clk"
# - Set MXC0 to generate 14 Hz
dbpf $(PREFIX):Mxc0-Prescaler-SP 6289464
dbpf $(PREFIX):Mxc0-Polarity-Sel "Orginal"
# - Generate event 14 upon trigger on Mxc0
dbpf $(PREFIX):TrigEvt0-EvtCode-SP 14
dbpf $(PREFIX):TrigEvt0-TrigSrc-Sel "Mxc0"
# - Configure sequencers
dbpf $(PREFIX):SoftSeq0-RunMode-Sel "Normal"
dbpf $(PREFIX):SoftSeq0-TsResolution-Sel "uSec"
dbpf $(PREFIX):SoftSeq0-TrigSrc-0-Sel "Mxc0"
dbpf $(PREFIX):SoftSeq0-Load-Cmd "1"
dbpf $(PREFIX):SoftSeq1-RunMode-Sel "Normal"
dbpf $(PREFIX):SoftSeq1-TsResolution-Sel "uSec"
dbpf $(PREFIX):SoftSeq1-TrigSrc-0-Sel "Mxc0"
dbpf $(PREFIX):SoftSeq1-Load-Cmd "1"
# - Start sequencers
dbpf $(PREFIX):SeqSelecCalc.PROC "1"
# - Required modules
require mrfioc2,2.2.1rc3
require busy,1.7.2_c596e1c
require ts2evm,1.0.0
# - Standard modules
require iocStats,3.1.16
require autosave,5.10.0
require caPutLog,b544f92
require recsync,1.3.0-9705e52
require ess,0.0.1
epicsEnvSet(PREFIX, "TD-TS2:TS-EVM-01")
# - Load standard timing modules environment
iocshLoad "$(mrfioc2_DIR)/mtca.iocsh"
iocshLoad "$(mrfioc2_DIR)/ts.iocsh"
iocshLoad "$(mrfioc2_DIR)/evm.iocsh" "P=$(PREFIX), OBJ=EVM, PCIID=09:00.0, U=:EVRU-, D=:EVRD-"
# - Load TS2 EVM application
dbLoadRecords("ts2_evm_controls.template", "P=$(PREFIX):, EVGPREFIX=$(PREFIX):")
# - Load standard ESS modules
iocshLoad("$(iocStats_DIR)/iocStats.iocsh", "IOCNAME=$(PREFIX)")
var(reccastTimeout, 5.0)
var(reccastMaxHoldoff, 5.0)
epicsEnvSet("RECSYNCPREFIX", "$(PREFIX)")
iocshLoad("$(recsync_DIR)/recsync.iocsh", "IOCNAME=$(RECSYNCPREFIX)")
epicsEnvSet("AS_REMOTE", "/opt/autosave")
epicsEnvSet("AS_FOLDER", "$(PREFIX)")
iocshLoad("$(autosave_DIR)/autosave.iocsh", "AS_TOP=$(AS_REMOTE),IOCNAME=$(AS_FOLDER)")
## Logging environment variables
epicsEnvSet("LOG_SERVER_NAME", "$(LOG_SERVER_NAME=localhost)")
epicsEnvSet("ERRORLOG_SERVER_PORT", "$(ERRORLOG_SERVER_PORT=9001)")
epicsEnvSet("CAPUTLOG_SERVER_PORT", "$(CAPUTLOG_SERVER_PORT=9001)")
epicsEnvSet("FACNAME", "$(FACNAME=)")
#iocshLoad("$(ess_DIR)/iocLog.iocsh", "LOG_INET=$(LOG_SERVER_NAME),LOG_INET_PORT=$(ERRORLOG_SERVER_PORT),FACNAME=$(FACILITY_NAME=),IOCNAME=$(PREFIX)")
#iocshLoad("$(caPutLog_DIR)/caPutLog.iocsh", "LOG_INET=$(LOG_SERVER_NAME),LOG_INET_PORT=$(CAPUTLOG_SERVER_PORT)")
# - Start IOC
iocInit
# - Load EVM standard after init snippet
iocshLoad("$(mrfioc2_DIR)/evgr.iocsh","P=$(PREFIX), INTRF=, INTPPS=")
dbpf $(PREFIX):Enable-Sel "Ena Master"
dbpf $(PREFIX):1ppsInp-Sel "Sys Clk"
# - Set MXC0 to generate 14 Hz
dbpf $(PREFIX):Mxc0-Prescaler-SP 6289464
dbpf $(PREFIX):Mxc0-Polarity-Sel "Orginal"
# - Generate event 14 upon trigger on Mxc0
dbpf $(PREFIX):TrigEvt0-EvtCode-SP 14
dbpf $(PREFIX):TrigEvt0-TrigSrc-Sel "Mxc0"
# - Configure sequencers
dbpf $(PREFIX):SoftSeq0-RunMode-Sel "Normal"
dbpf $(PREFIX):SoftSeq0-TsResolution-Sel "uSec"
dbpf $(PREFIX):SoftSeq0-TrigSrc-0-Sel "Mxc0"
dbpf $(PREFIX):SoftSeq0-Load-Cmd "1"
dbpf $(PREFIX):SoftSeq1-RunMode-Sel "Normal"
dbpf $(PREFIX):SoftSeq1-TsResolution-Sel "uSec"
dbpf $(PREFIX):SoftSeq1-TrigSrc-0-Sel "Mxc0"
dbpf $(PREFIX):SoftSeq1-Load-Cmd "1"
# - Start sequencers
dbpf $(PREFIX):SeqSelecCalc.PROC "1"
......@@ -18,7 +18,7 @@ BUSY_DEP_VERSION:=1.7.2_c596e1c
#
E3_MODULE_NAME:=$(EPICS_MODULE_NAME)
E3_MODULE_SRC_PATH:=ts2evm-loc
E3_MODULE_SRC_PATH:=evrisland-loc
E3_MODULE_MAKEFILE:=$(EPICS_MODULE_NAME).Makefile
......
......@@ -17,7 +17,7 @@ record(calc, "$(P)$(R=)CycleFreq-RB") {
field(DESC, "Cycle frequency readback")
field(INPA, "$(EVGPREFIX)PS0-Rate-I CP")
field(CALC, "A*1000000")
field(PREC, "5")
field(PREC, "3")
field(EGU, "Hz")
}
......@@ -65,17 +65,19 @@ record(ao, "$(P)$(R=)RFSyncWdt-SP") {
field(DESC, "RF Sync Width")
field(VAL, "3000")
field(EGU, "us")
field(OUT, "$(EVGPREFIX)DlyGen1-Width-SP PP") #TODO check
field(OUT, "$(EVGPREFIX)DlyGen1-Width-SP PP")
info(autosaveFields_pass0, "VAL")
}
record(ao, "$(P)$(R=)BeamPulseDly-SP") {
field(DESC, "Beam Pulse Delay")
field(VAL, "200")
field(VAL, "300")
field(EGU, "us")
field(DISP, "1") # Locked for this IOC version
info(autosaveFields_pass0, "VAL")
}
# Will not beam public now
record(ao, "$(P)$(R=)BeamPulseWdt-SP") {
field(DESC, "Beam Pulse Width")
field(VAL, "2000")
......@@ -83,6 +85,17 @@ record(ao, "$(P)$(R=)BeamPulseWdt-SP") {
info(autosaveFields_pass0, "VAL")
}
# This PVs are temporary to make LLRF use easier, should be updated
# when firmware goes to 0.7
record(calcout, "$(P)$(R=)#SetBeamWidth"){
field(INPA, "$(P)$(R=)BeamPulseDly-SP CP")
field(INPB, "$(P)$(R=)RFSyncWdt-SP CP")
field(CALC, "B-A")
field(OUT, "$(P)$(R=)BeamPulseWdt-SP PP")
}
######
# Records to update the EVR Pulsers
######
......@@ -149,6 +162,7 @@ record(fanout, "$(P)$(R=)#SetInitVals") {
field(LNK3, "$(P)$(R=)#SetPulser3Dly")
field(LNK4, "$(P)$(R=)#SetPulser4Dly")
field(LNK5, "$(P)$(R=)#SetPulser5Dly")
field(LNK6, "$(P)$(R=)RFSyncWdt-SP")
}
### Sequencer 0
......
......@@ -43,7 +43,7 @@ endif
EXCLUDE_ARCHS += linux-ppc64e6500
#EXCLUDE_ARCHS += linux-corei7-poky
APP:=ts2evmApp
APP:=evrislandApp
APPDB:=$(APP)/Db
APPSRC:=$(APP)/src
......
epicsEnvSet("RepRate_event", "14")
epicsEnvSet("Island_event", "150")
epicsEnvSet "OBJ" "EVR"
dbLoadRecords("evrevent.db","EN=$(PREFIX)-$(RepRate_event), OBJ=$(OBJ), CODE=$(RepRate_event), EVNT=$(RepRate_event)")
dbLoadRecords("evrevent.db","EN=$(PREFIX)-$(Island_event), OBJ=$(OBJ), CODE=$(Island_event), EVNT=$(Island_event)")
## Default values
# pre-pulse delay: 1000us
......@@ -19,7 +19,7 @@ dbLoadRecords("evrevent.db","EN=$(PREFIX)-$(RepRate_event), OBJ=$(OBJ), CODE=$(R
#- Backplane trigger line configuration / Front output
# Pulser 0 - HV Sync - Modulator
afterInit("dbpf $(PREFIX):DlyGen0-Evt-Trig0-SP $(RepRate_event)")
afterInit("dbpf $(PREFIX):DlyGen0-Evt-Trig0-SP $(Island_event)")
afterInit("dbpf $(PREFIX):DlyGen0-Delay-SP 100") # Pre-pulse delay
afterInit("dbpf $(PREFIX):DlyGen0-Width-SP 1000") # time in micro-seconds
## FP 0 and 1
......@@ -29,7 +29,7 @@ afterInit("dbpf $(PREFIX):OutFP1-Src-SP 0")
afterInit("dbpf $(PREFIX):OutFPUV0-Src-SP 0")
# Pulser 1 - RF Sync
afterInit("dbpf $(PREFIX):DlyGen1-Evt-Trig0-SP $(RepRate_event)")
afterInit("dbpf $(PREFIX):DlyGen1-Evt-Trig0-SP $(Island_event)")
afterInit("dbpf $(PREFIX):DlyGen1-Delay-SP 2000") # Pre-pulse delay + RF Sync Delay
afterInit("dbpf $(PREFIX):DlyGen1-Width-SP 2600") # time in micro-seconds
## FP 1 and 2
......@@ -41,35 +41,36 @@ afterInit("dbpf $(PREFIX):OutFPUV2-Src-SP 1")
afterInit("dbpf $(PREFIX):OutFPUV3-Src-SP 1")
# Pulser 2 - LLRF Start - TX17
afterInit("dbpf $(PREFIX):DlyGen2-Evt-Trig0-SP $(RepRate_event)")
afterInit("dbpf $(PREFIX):DlyGen2-Evt-Trig0-SP $(Island_event)")
afterInit("dbpf $(PREFIX):DlyGen2-Delay-SP 2000") # Pre-pulse delay + RF Sync Delay
afterInit("dbpf $(PREFIX):DlyGen2-Width-SP 100") # time in micro-seconds
afterInit("dbpf $(PREFIX):OutBack1-Src-SP 2") # trigger from delay generator 2 to TX17
#Pulser 3 - LLRF End - TX20
afterInit("dbpf $(PREFIX):DlyGen3-Evt-Trig0-SP $(RepRate_event)")
afterInit("dbpf $(PREFIX):DlyGen3-Evt-Trig0-SP $(Island_event)")
afterInit("dbpf $(PREFIX):DlyGen3-Delay-SP 4600") # Pre-pulse delay + RF Sync Delay + Rf Sync width
afterInit("dbpf $(PREFIX):DlyGen3-Width-SP 100") # time in micro-seconds
afterInit("dbpf $(PREFIX):OutBack7-Src-SP 3") # trigger from delay generator 3 to TX20
#Pulser 4 Beam Start - RX18
afterInit("dbpf $(PREFIX):DlyGen4-Evt-Trig0-SP $(RepRate_event)")
afterInit("dbpf $(PREFIX):DlyGen4-Evt-Trig0-SP $(Island_event)")
afterInit("dbpf $(PREFIX):DlyGen4-Delay-SP 2200") # Pre-pulse delay + RF Sync Delay + Beam pulse delay
afterInit("dbpf $(PREFIX):DlyGen4-Width-SP 100") # time in micro-seconds
afterInit("dbpf $(PREFIX):OutBack2-Src-SP 4") # trigger from delay generator 4 to RX18
#Pulser 5 Beam End - TX18
afterInit("dbpf $(PREFIX):DlyGen5-Evt-Trig0-SP $(RepRate_event)")
afterInit("dbpf $(PREFIX):DlyGen5-Evt-Trig0-SP $(Island_event)")
afterInit("dbpf $(PREFIX):DlyGen5-Delay-SP 4200") # Pre-pulse delay + RF Sync Delay + Beam pulse delay + Beam pulse width
afterInit("dbpf $(PREFIX):DlyGen5-Width-SP 100") # time in micro-seconds
afterInit("dbpf $(PREFIX):OutBack3-Src-SP 4") # trigger from delay generator 5 to TX18
# Pulser 6 - FIM Trigger - RX17
afterInit("dbpf $(PREFIX):DlyGen6-Evt-Trig0-SP $(RepRate_event)")
afterInit("dbpf $(PREFIX):DlyGen6-Evt-Trig0-SP $(Island_event)")
afterInit("dbpf $(PREFIX):DlyGen6-Delay-SP 4700") # Pre-pulse delay + RF Sync Delay + Rf sync width + fim delay
afterInit("dbpf $(PREFIX):DlyGen6-Width-SP 100") # time in micro-seconds
afterInit("dbpf $(PREFIX):OutBack0-Src-SP 5") # trigger from delay generator 5 to RX17
# Set Initial values
afterInit("dbpf $(PREFIX):#SetInitVals.PROC 1")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment