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

Improve the way to change between modes and include Mixed Mode Delay

These changes allow to use Mixed Mode synced with a 14Hz Pulse
parent 2b92624f
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,7 @@
EPICS_MODULE_NAME:=evrisland
#
E3_MODULE_VERSION:=1.6.1
E3_MODULE_VERSION:=dev
# DEPENDENT MODULE VERSION
# For Example,
......
......@@ -84,16 +84,22 @@ record(fanout, "$(P)$(R=)#FanRFWdtProc") {
#field(LNK2, "$(P)$(R=)#SetPulser0DlyGlobal") # Global Mode
}
# records that must be processed when in Local or Mixed Mode
# records that must be processed when in LocalMode
record(fanout, "$(P)$(R=)#FanRFWdtLocal") {
field(LNK0, "$(P)$(R=)#SetBeamWidth")
field(LNK1, "$(P)$(R=)#SetPulser3Dly")
# field(LNK1, "$(P)$(R=)#SetPulser3Dly")
}
record(fanout, "$(P)$(R=)#FanRFWdtMixed") {
field(LNK0, "$(P)$(R=)#SetBeamWidth")
# field(LNK1, "$(P)$(R=)#SetPulser3Dly")
# field(LNK2, "$(P)$(R=)#SetPulser1Dly")
}
# records that must be processed when in Global Mode
record(fanout, "$(P)$(R=)#FanRFWdtGlobal") {
field(LNK0, "$(P)$(R=)#SetPulser3Dly")
field(LNK1, "$(P)$(R=)#SeqSetGlobal")
# field(LNK0, "$(P)$(R=)#SetPulser3Dly")
# field(LNK1, "$(P)$(R=)#SeqSetGlobal")
}
record(ao, "$(P)$(R=)BeamPulseDly-SP") {
......@@ -149,6 +155,7 @@ record(seq, "$(P)$(R=)#SeqFixedVals") {
# EVR Event -> 15
# SuperCycle Delay (SCDly) -> typically ZERO
# MixedMode Delay (MMDly) -> default is 44976.09
# Modulator (Pulser 0) -> Event RFStart; delay = SCDly (zero);
# RF Start (Pulser 1) -> Event RFStart; delay = SCDly + RFSyncDly;
......@@ -160,74 +167,80 @@ record(seq, "$(P)$(R=)#SeqFixedVals") {
# Pulser 0 - Modulator
record(calcout, "$(P)$(R=)#SetPulser0Dly"){
field(INPA, "$(P)$(R=)PrePulseDly-RB")
field(INPB, "$(P)$(R=)OpMode CP")
field(INPA, "$(P)$(R=)OpMode")
field(INPB, "$(P)$(R=)PrePulseDly-RB")
field(INPC, "$(P)$(R=)SCDly CP")
field(CALC, "B=2?C:A")
field(CALC, "A=0?B:C")
field(OUT, "$(EVRPREFIX)DlyGen-0-Delay-SP PP" )
}
# Pulser 1 - RF Start
record(calcout, "$(P)$(R=)#SetPulser1Dly"){
field(INPA, "$(P)$(R=)PrePulseDly-RB")
field(INPB, "$(P)$(R=)RFSyncDly-SP CP") # When updates value, update evr
field(INPC, "$(P)$(R=)OpMode CP")
field(INPA, "$(P)$(R=)OpMode")
field(INPB, "$(P)$(R=)PrePulseDly-RB")
field(INPC, "$(P)$(R=)RFSyncDly-SP CP") # When updates value, update evr
field(INPD, "$(P)$(R=)SCDly CP")
field(CALC, "C=2?B+D:A+B")
field(INPE, "$(P)$(R=)MMDly CP")
field(CALC, "A=0?(B+C):(A=1?C+E:C+D)")
field(OUT, "$(EVRPREFIX)DlyGen-1-Delay-SP PP" )
}
# Pulser 2 - LLRF Start (should 5us before RF Start)
record(calcout, "$(P)$(R=)#SetPulser2Dly"){
field(INPA, "$(P)$(R=)PrePulseDly-RB")
field(INPB, "$(P)$(R=)RFSyncDly-SP CP") # When updates value, update evr
field(INPC, "5") # Removing 5us, time for LLRF firmware
field(INPD, "$(P)$(R=)OpMode CP")
field(INPA, "$(P)$(R=)OpMode")
field(INPB, "$(P)$(R=)PrePulseDly-RB")
field(INPC, "$(P)$(R=)RFSyncDly-SP CP") # When updates value, update evr
field(INPD, "5") # Removing 5us, time for LLRF firmware
field(INPE, "$(P)$(R=)SCDly CP")
field(CALC, "D=2?E+B-C:A+B-C")
field(OUT, "$(EVRPREFIX)DlyGen-2-Delay-SP PP" )
field(INPF, "$(P)$(R=)MMDly CP")
field(CALC, "A=0?(B+C-D):(A=1?C+F-D:C+E-D)")
field(OUT, "$(EVRPREFIX)DlyGen-2-Delay-SP PP" )
}
# Pulser 3 - LLRF End
record(calcout, "$(P)$(R=)#SetPulser3Dly"){
field(INPA, "$(P)$(R=)PrePulseDly-RB")
field(INPB, "$(P)$(R=)RFSyncDly-SP CP") # When updates value, update evr
field(INPC, "$(P)$(R=)RFSyncWdt-SP")
field(INPD, "$(P)$(R=)OpMode CP")
field(INPA, "$(P)$(R=)OpMode")
field(INPB, "$(P)$(R=)PrePulseDly-RB")
field(INPC, "$(P)$(R=)RFSyncDly-SP CP") # When updates value, update evr
field(INPD, "$(P)$(R=)RFSyncWdt-SP CP")
field(INPE, "$(P)$(R=)SCDly CP")
field(CALC, "D=2?B+C+E:A+B+C")
field(INPF, "$(P)$(R=)MMDly CP")
field(CALC, "A=0?(B+C+D):(A=1?C+D+F:C+D+E)")
field(OUT, "$(EVRPREFIX)DlyGen-3-Delay-SP PP" )
}
# Pulser 4 - Beam Start
record(calcout, "$(P)$(R=)#SetPulser4Dly"){
field(INPA, "$(P)$(R=)PrePulseDly-RB")
field(INPB, "$(P)$(R=)RFSyncDly-SP CP") # When updates value, update evr
field(INPC, "$(P)$(R=)BeamPulseDly-SP CP") # When updates value, update evr
field(INPD, "$(P)$(R=)OpMode CP")
field(INPA, "$(P)$(R=)OpMode")
field(INPB, "$(P)$(R=)PrePulseDly-RB")
field(INPC, "$(P)$(R=)RFSyncDly-SP CP") # When updates value, update evr
field(INPD, "$(P)$(R=)BeamPulseDly-SP CP") # When updates value, update evr
field(INPE, "$(P)$(R=)SCBSt CP")
field(CALC, "D=2?E:A+B+C")
field(INPF, "$(P)$(R=)MMDly CP")
field(CALC, "A=0?(B+C+D):(A=1?C+D+F:E)")
field(OUT, "$(EVRPREFIX)DlyGen-4-Delay-SP PP" )
}
# Pulser 5 - Beam End
record(calcout, "$(P)$(R=)#SetPulser5Dly"){
field(INPA, "$(P)$(R=)PrePulseDly-RB")
field(INPB, "$(P)$(R=)RFSyncDly-SP CP") # When updates value, update evr
field(INPC, "$(P)$(R=)BeamPulseDly-SP CP") # When updates value, update evr
field(INPD, "$(P)$(R=)BeamPulseWdt-SP CP") # When updates value, update evr
field(INPE, "$(P)$(R=)OpMode CP")
field(INPA, "$(P)$(R=)OpMode")
field(INPB, "$(P)$(R=)PrePulseDly-RB")
field(INPC, "$(P)$(R=)RFSyncDly-SP CP") # When updates value, update evr
field(INPD, "$(P)$(R=)BeamPulseDly-SP CP") # When updates value, update evr
field(INPE, "$(P)$(R=)BeamPulseWdt-SP CP") # When updates value, update evr
field(INPF, "$(P)$(R=)SCBEnd CP")
field(CALC, "E=2?F:A+B+C+D")
field(OUT, "$(EVRPREFIX)DlyGen-5-Delay-SP PP" )
field(INPG, "$(P)$(R=)MMDly CP")
field(CALC, "A=0?(B+C+D+E):(A=1?C+D+E+G:F)")
field(OUT, "$(EVRPREFIX)DlyGen-5-Delay-SP PP" )
}
# Pulser 6 - FIM
record(calcout, "$(P)$(R=)#SetPulser6Dly"){
field(INPA, "$(P)$(R=)FIMDly-RB CP") # When updates value, update evr
field(INPB, "$(P)$(R=)OpMode CP")
field(INPA, "$(P)$(R=)OpMode")
field(INPB, "$(P)$(R=)FIMDly-RB CP") # When updates value, update evr
field(INPC, "$(P)$(R=)SCDly CP")
field(CALC, "B=2?A+C:A")
field(INPD, "$(P)$(R=)MMDly CP")
field(CALC, "A=0?(B):(A=1?B+D:B+C)")
field(OUT, "$(EVRPREFIX)DlyGen-6-Delay-SP PP" )
}
......@@ -239,10 +252,20 @@ record(fanout, "$(P)$(R=)#SetInitVals") {
field(LNK3, "$(P)$(R=)#SetPulser3Dly")
field(LNK4, "$(P)$(R=)#SetPulser4Dly")
field(LNK5, "$(P)$(R=)#SetPulser5Dly")
field(LNK6, "$(P)$(R=)#SetPulser5Dly")
field(LNK6, "$(P)$(R=)#SetPulser6Dly")
field(LNK7, "$(P)$(R=)RFSyncWdt-SP")
}
record(fanout, "$(P)$(R=)#ReloadDelays") {
field(LNK0, "$(P)$(R=)#SetPulser0Dly")
field(LNK1, "$(P)$(R=)#SetPulser1Dly")
field(LNK2, "$(P)$(R=)#SetPulser2Dly")
field(LNK3, "$(P)$(R=)#SetPulser3Dly")
field(LNK4, "$(P)$(R=)#SetPulser4Dly")
field(LNK5, "$(P)$(R=)#SetPulser5Dly")
field(LNK6, "$(P)$(R=)#SetPulser6Dly")
}
### Sequencer 0
record(seq, "$(P)$(R=)Seq0-Enable") {
......@@ -462,6 +485,9 @@ record(seq, "$(P)$(R=)#SeqSetMixed"){
field(DOLC, "1")
field(LNKC, "$(EVRPREFIX)SoftSeq-0-Enable-Cmd CP")
field(DOLD, "1")
field(LNKD, "$(P)$(R=)#ReloadDelays.PROC" )
}
......@@ -476,58 +502,58 @@ record(seq, "$(P)$(R=)#SeqSetLocal"){
field(LNK1, "$(EVRPREFIX)DlyGen-0-Evt-Trig0-SP PP")
# RF Start
field(DOL7, "$(Island_event)")
field(LNK7, "$(EVRPREFIX)DlyGen-1-Evt-Trig0-SP PP")
field(DOL2, "$(Island_event)")
field(LNK2, "$(EVRPREFIX)DlyGen-1-Evt-Trig0-SP PP")
# LLRF Start
field(DOL2, "$(Island_event)")
field(LNK2, "$(EVRPREFIX)DlyGen-2-Evt-Trig0-SP PP")
field(DOL3, "$(Island_event)")
field(LNK3, "$(EVRPREFIX)DlyGen-2-Evt-Trig0-SP PP")
# LLRF End
field(DOL3, "$(Island_event)")
field(LNK3, "$(EVRPREFIX)DlyGen-3-Evt-Trig0-SP PP")
field(DOL4, "$(Island_event)")
field(LNK4, "$(EVRPREFIX)DlyGen-3-Evt-Trig0-SP PP")
# Beam Start
field(DOL4, "$(Island_event)")
field(LNK4, "$(EVRPREFIX)DlyGen-4-Evt-Trig0-SP PP")
field(DOL5, "$(Island_event)")
field(LNK5, "$(EVRPREFIX)DlyGen-4-Evt-Trig0-SP PP")
# Beam End
field(DOL5, "$(Island_event)")
field(LNK5, "$(EVRPREFIX)DlyGen-5-Evt-Trig0-SP PP")
field(DOL6, "$(Island_event)")
field(LNK6, "$(EVRPREFIX)DlyGen-5-Evt-Trig0-SP PP")
# FIM
field(DOL6, "$(Island_event)")
field(LNK6, "$(EVRPREFIX)DlyGen-6-Evt-Trig0-SP PP")
field(DOL7, "$(Island_event)")
field(LNK7, "$(EVRPREFIX)DlyGen-6-Evt-Trig0-SP PP")
# # Reload delays
# field(DOL7, "1")
# field(LNK7, "$(P)$(R=)#SetInitVals.PROC")
# Start sequencer
field(DOL8, "1")
field(LNK8, "$(P)$(R=)Seq0-Enable.PROC")
# Start sequencer
field(DOL8, "1")
field(LNK8, "$(P)$(R=)Seq0-Enable.PROC")
# Set sequencer trigger source to Prescaler 0
field(DOL9, "2")
field(LNK9, "$(EVRPREFIX)SoftSeq-0-TrigSrc-2-Sel PP")
# Set sequencer trigger source to Prescaler 0
field(DOL9, "2")
field(LNK9, "$(EVRPREFIX)SoftSeq-0-TrigSrc-2-Sel PP")
# Commit sequencer 0
field(DOLA, "1")
field(LNKA, "$(EVRPREFIX)SoftSeq-0-Commit-Cmd CP")
# Commit sequencer 0
field(DOLA, "1")
field(LNKA, "$(EVRPREFIX)SoftSeq-0-Commit-Cmd CP")
# Unblock Cycle Frequency from Island mode
field(DOLB, "0")
field(LNKB, "$(P)$(R=)CycleFreq-SP.DISP")
# Unblock Cycle Frequency from Island mode
field(DOLB, "0")
field(LNKB, "$(P)$(R=)CycleFreq-SP.DISP")
# Block Frequency from Mixed mode
field(DOLC, "1")
field(LNKC, "$(P)$(R=)MixFreq.DISP")
# Block Frequency from Mixed mode
field(DOLC, "1")
field(LNKC, "$(P)$(R=)MixFreq.DISP")
# Change the event monitor
field(DOLD, "6")
field(LNKD, "$(P)$(R=)#SelEvnMon.SELN" )
# Change the event monitor
field(DOLD, "6")
field(LNKD, "$(P)$(R=)#SelEvnMon.SELN" )
field(DOLE, "1")
field(LNKE, "$(P)$(R=)#SelEvnMon.PROC" )
field(DOLE, "1")
field(LNKE, "$(P)$(R=)#SelEvnMon.PROC" )
field(DOLF, "1")
field(LNKF, "$(P)$(R=)#ReloadDelays.PROC" )
}
......@@ -566,6 +592,23 @@ record(seq, "$(P)$(R=)#SeqChgFreqMix"){
field(LNK8, "$(P)$(R=)#SelEvnMon.SELN" )
field(DOL9, "1")
field(LNK9, "$(P)$(R=)#SelEvnMon.PROC" )
}
##############
# Mixed Mode PVs
#############
# Mixed mode delay
record(ao, "$(P)$(R=)MMDly") {
field(DESC, "Mixed mode delay")
field(DRVL, "0")
field(DRVL, "71400")
field(VAL, "44976.09")
field(PINI, "NO")
field(FLNK, "$(P)$(R=)#FanRFWdtMixed PP")
field(EGU, "us")
info(autosaveFields_pass0, "VAL")
}
###############
......@@ -667,6 +710,9 @@ record(seq, "$(P)$(R=)#SeqSetGlobal"){
field(DOLB, "1")
field(LNKB, "$(P)$(R=)#SelEvnMon.PROC" )
field(DOLC, "1")
field(LNKC, "$(P)$(R=)#ReloadDelays.PROC" )
}
########
......
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