Femto Amplifier Support

Table of contents

Support for Femto brand low-noise current amplifiers. Two independent driver approaches are available in the std module.

SNL-Based Driver (femto.st)

The State Notation Language program femto.st controls Femto DLPCA-200 amplifiers by translating a gain index (0-14) to the appropriate combination of digital output bits. It supports both high-speed and low-noise modes.

Gain Table (DLPCA-200)

Index Gain (V/A) Mode
0 10^3 High Speed
1 10^4 High Speed
2 10^5 High Speed
3 10^6 High Speed
4 10^7 High Speed
5 10^8 High Speed
6 10^9 High Speed
7 10^3 Low Noise
8 10^4 Low Noise
9 10^5 Low Noise
10 10^6 Low Noise
11 10^7 Low Noise
12 10^8 Low Noise
13 10^9 Low Noise
14 10^9 Low Noise

Database

femto.db provides the following records:

Record Name Type Purpose
$(P)$(H)$(F):Level mbbo Gain index selection (0-14)
$(P)$(H)$(F):Gain ao Gain value in V/A
$(P)$(H)$(F):Name stringout Amplifier description

Loading with femto.iocsh

The simplest way to load the SNL-based femto support is with the iocsh script:

iocshLoad("$(STD)/iocsh/femto.iocsh", "PREFIX=xxx:, HARDWARE=A1, FUNC=femto, G1_PV=xxx:Unidig1Bo0, G2_PV=xxx:Unidig1Bo1, G3_PV=xxx:Unidig1Bo2, NO_PV=xxx:Unidig1Bo3, STD=$(STD)")

Loading Manually

dbLoadRecords("$(STD)/stdApp/Db/femto.db", "P=xxx:,H=A1,F=femto,G1=xxx:Unidig1Bo0,G2=xxx:Unidig1Bo1,G3=xxx:Unidig1Bo2,NO=xxx:Unidig1Bo3")
doAfterIocInit("seq &femto, 'P=xxx:,H=A1,F=femto,G1=xxx:Unidig1Bo0,G2=xxx:Unidig1Bo1,G3=xxx:Unidig1Bo2,NO=xxx:Unidig1Bo3'")

Transform-Based Drivers (femto_DxPCA_x00)

An alternative set of drivers uses transform records for gain control instead of a State Notation Language program. These drivers are independent of the SNL-based driver above.

Model-specific database files are available:

File Model
femto_DDPCA_300.db Femto DDPCA-300
femto_DHPCA_100.db Femto DHPCA-100
femto_DLPCA_200.db Femto DLPCA-200

Macros

The macros specify which digital output PVs control each function:

Macro Description Used By
P PV prefix All models
A Amplifier name All models
G1 Gain first (lowest) bit PV All models
G2 Gain second bit PV All models
G3 Gain third bit PV All models
G4 Gain fourth bit PV DDPCA-300 only
SN High speed / Low noise bit PV DHPCA-100, DLPCA-200
C Coupling PV DHPCA-100, DLPCA-200
F10 10 MHz Filter PV DHPCA-100 only
F1 1 MHz Filter PV DHPCA-100 only

Substitution File Example

Create a substitution file (e.g., femto_DxPCA_x00.substitutions) to load the appropriate database for your amplifier model:

# Uncomment the femto amplifier you want to use.

#file "$(STD)/stdApp/Db/femto_DDPCA_300.db"
#{
#pattern
#{P       A       G1          G2          G3          G4         }
#{crate:  femto1  Unidig1Bo0  Unidig1Bo1  Unidig1Bo2  Unidig1Bo3 }
#}

#file "$(STD)/stdApp/Db/femto_DLPCA_200.db"
#{
#pattern
#{P       A       G1          G2          G3          SN          C          }
#{crate:  femto2  Unidig1Bo4  Unidig1Bo5  Unidig1Bo6  Unidig1Bo7  Unidig1Bo8 }
#}

#file "$(STD)/stdApp/Db/femto_DHPCA_100.db"
#{
#pattern
#{P       A       G1          G2           G3           SN           C            F10          F1          }
#{crate:  femto3  Unidig1Bo9  Unidig1Bo10  Unidig1Bo11  Unidig1Bo12  Unidig1Bo13  Unidig1Bo14  Unidig1Bo15 }
#}