73 lines
2.4 KiB
Plaintext
73 lines
2.4 KiB
Plaintext
#######################################################
|
|
# ### ### #
|
|
# ### EPICS Database for ### #
|
|
# ### I2C PCF8591 board ### #
|
|
# ### ### #
|
|
# ### author: B. Carvalho IPFN ### #
|
|
# ### ### #
|
|
# ### Ref 2.0; 2019-10-14 ### #
|
|
# ### ### #
|
|
# ### macros: ID I2C address of ADC ### #
|
|
# ### Description: ### #
|
|
# ### This is an example DB file using ### #
|
|
# ### stream(asynI2C) to read/write ### #
|
|
# ### an PCF8591 ADDA chip ### #
|
|
#######################################################
|
|
|
|
#####################################################
|
|
# Read/Write pcf8591 register @ address 0x48=d72 ### #
|
|
#####################################################
|
|
record( mbboDirect, "$(P)$(R)PCF8591:72:CTRLREGISTER") {
|
|
field(DTYP, "stream")
|
|
field(OUT, "@pcf8591.proto wReg(72) I2C")
|
|
field(SHFT, "0")
|
|
field(NOBT, "8")
|
|
field(VAL, 255)
|
|
field(PINI,"YES")
|
|
}
|
|
# Receiving two bytes. last one counts
|
|
record( longin, "$(P)$(R)PCF8591:72:ADC_CH1" ) {
|
|
field(DTYP, "stream")
|
|
field(INP, "@pcf8591.proto rConvAdc0(72) I2C")
|
|
# field( FLNK, "$(P)$(R)PCF8591:72:CHANNEL1" )
|
|
}
|
|
record( calc, "$(P)$(R)PCF8591:72:BYTE2_CH1" ) {
|
|
field(INPA, "$(P)$(R)PCF8591:72:ADC_CH1 PP NMS")
|
|
# extract LSB =last byte received
|
|
field(CALC, " (A & 255 )" )
|
|
}
|
|
|
|
record( ai, "$(P)$(R)TMP2Speed" ) {
|
|
field( DTYP, "Raw Soft Channel" )
|
|
field( INP, "$(P)$(R)PCF8591:72:BYTE2_CH1 PP NMS")
|
|
field( SCAN, "1 second")
|
|
field( ASLO, "16" )
|
|
field( AOFF, "0" )
|
|
field( EGU, "RPM" )
|
|
field( PREC, "3" )
|
|
field( HOPR, "5000" )
|
|
field( LOPR, "0" )
|
|
}
|
|
record( longin, "$(P)$(R)PCF8591:72:ADC_CH2" ) {
|
|
field(DTYP, "stream")
|
|
field(INP, "@pcf8591.proto rConvAdc1(72) I2C")
|
|
#field( FLNK, "
|
|
}
|
|
record( calc, "$(P)$(R)PCF8591:72:BYTE2_CH2" ) {
|
|
field(INPA, "$(P)$(R)PCF8591:72:ADC_CH2 PP NMS")
|
|
# LSB i=last byte received
|
|
field(CALC, " (A & 255)" )
|
|
}
|
|
|
|
record( ai, "$(P)$(R)TMP2Current" ) {
|
|
field(DTYP, "Raw Soft Channel" )
|
|
field(INP, "$(P)$(R)PCF8591:72:BYTE2_CH2 PP NMS")
|
|
field(SCAN, "1 second")
|
|
field(ASLO, "0.1" )
|
|
field(AOFF, "0" )
|
|
field(EGU, "mA" )
|
|
field(PREC, "3" )
|
|
field(HOPR, "50" )
|
|
field(LOPR, "0" )
|
|
}
|