Added PVs for PCF8591 ADDA chip interface
This commit is contained in:
35
epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKpcf8591.db
Normal file
35
epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/ISTTOKpcf8591.db
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
#######################################################
|
||||||
|
# ### ### #
|
||||||
|
# ### 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")
|
||||||
|
}
|
||||||
|
|
||||||
|
record( longin, "$(P)$(R)PCF8591:72:ADC_CH0" ) {
|
||||||
|
field(DTYP, "stream")
|
||||||
|
field(INP, "@pcf8591.proto rConvAdc0(72) I2C")
|
||||||
|
field(SCAN, "1 second")
|
||||||
|
#field( FLNK, "
|
||||||
|
}
|
||||||
|
|
||||||
44
epics/iocs/ISTTOKrpi/protocols/pcf8591.proto
Normal file
44
epics/iocs/ISTTOKrpi/protocols/pcf8591.proto
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
Terminator = "";
|
||||||
|
LockTimeout = 500;
|
||||||
|
ReplyTimeout = 100;
|
||||||
|
ReadTimeout = 100;
|
||||||
|
WriteTimeout = 100;
|
||||||
|
MaxInput = 1;
|
||||||
|
ExtraInput = Error;
|
||||||
|
|
||||||
|
rReg {
|
||||||
|
out ${1};
|
||||||
|
in "%.1r";
|
||||||
|
}
|
||||||
|
# To read adc write control Byte
|
||||||
|
# Bits 0,1 ADC channel Selection
|
||||||
|
# Bits 2 : ADC auto increment =0
|
||||||
|
# Bits 3 : =0
|
||||||
|
# Bits 4,5 ADC configuration . 00 = four single ended channels
|
||||||
|
# Bits 6 : DAC Output enable bit
|
||||||
|
# Bits 7 : =0
|
||||||
|
|
||||||
|
rConvAdc0 {
|
||||||
|
out ${1} 0x00;
|
||||||
|
in "%01r";
|
||||||
|
}
|
||||||
|
rConvAdc1 {
|
||||||
|
out ${1} 0x01;
|
||||||
|
in "%01r";
|
||||||
|
}
|
||||||
|
rConvAdc2 {
|
||||||
|
out ${1} 0x02;
|
||||||
|
in "%01r";
|
||||||
|
}
|
||||||
|
rConvAdc3 {
|
||||||
|
out ${1} 0x03;
|
||||||
|
in "%01r";
|
||||||
|
}
|
||||||
|
|
||||||
|
## @init { rReg; }
|
||||||
|
##
|
||||||
|
wReg {
|
||||||
|
out ${1} "%.1r";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user