Added TDA8444 DAC channels

This commit is contained in:
Bernardo Carvalho
2020-01-15 15:52:30 +00:00
parent 1da955732d
commit f445009375
9 changed files with 246 additions and 94 deletions

View File

@@ -78,3 +78,11 @@ record( ai, "$(P)$(R)TMPump2-Current" ) {
field(LSV, "MINOR") field(LSV, "MINOR")
# # field(LLSV,"MAJOR") # # field(LLSV,"MAJOR")
} }
record( longout, "$(P)$(R)PCF8591:72:DAC") {
field(DTYP, "stream")
field(OUT, "@pcf8591.proto wDac(72) I2C")
field(DRVH, "255" )
field(DRVL, "0" )
field(VAL, 128)
field(PINI,"YES")
}

View File

@@ -0,0 +1,84 @@
#######################################################
# ### ### #
# ### EPICS Database for ### #
# ### I2C PCF8591 board ### #
# ### ### #
# ### author: B. Carvalho IPFN ### #
# ### ### #
# ### Ref 2.0; 2019-10-14 ### #
# ### ### #
# ### macros: ID I2C address of ADC ### #
# ### Description: ### #
# ### This DB file is using ### #
# ### stream(asynI2C) to write ### #
# ### an TDA8444 DAC chip ### #
#######################################################
#####################################################
# Read/Write tda8444 register @ address 0x20=d32 ## #
#####################################################
record( longout, "$(P)$(R)TDA8444:32:DAC_CH0") {
field(DTYP, "stream")
field(OUT, "@tda8444.proto wDac0(32) I2C")
field(DRVH, "63" )
field(DRVL, "0" )
field(VAL, 32)
field(PINI,"YES")
}
record( longout, "$(P)$(R)TDA8444:32:DAC_CH1") {
field(DTYP, "stream")
field(OUT, "@tda8444.proto wDac1(32) I2C")
field(DRVH, "63" )
field(DRVL, "0" )
field(VAL, 32)
field(PINI,"YES")
}
record( longout, "$(P)$(R)TDA8444:32:DAC_CH2") {
field(DTYP, "stream")
field(OUT, "@tda8444.proto wDac2(32) I2C")
field(DRVH, "63" )
field(DRVL, "0" )
field(VAL, 32)
field(PINI,"YES")
}
record( longout, "$(P)$(R)TDA8444:32:DAC_CH3") {
field(DTYP, "stream")
field(OUT, "@tda8444.proto wDac3(32) I2C")
field(DRVH, "63" )
field(DRVL, "0" )
field(VAL, 32)
field(PINI,"YES")
}
record( longout, "$(P)$(R)TDA8444:32:DAC_CH4") {
field(DTYP, "stream")
field(OUT, "@tda8444.proto wDac4(32) I2C")
field(DRVH, "63" )
field(DRVL, "0" )
field(VAL, 32)
field(PINI,"YES")
}
record( longout, "$(P)$(R)TDA8444:32:DAC_CH5") {
field(DTYP, "stream")
field(OUT, "@tda8444.proto wDac5(32) I2C")
field(DRVH, "63" )
field(DRVL, "0" )
field(VAL, 32)
field(PINI,"YES")
}
record( longout, "$(P)$(R)TDA8444:32:DAC_CH6") {
field(DTYP, "stream")
field(OUT, "@tda8444.proto wDac6(32) I2C")
field(DRVH, "63" )
field(DRVL, "0" )
field(VAL, 32)
field(PINI,"YES")
}
#record( longout, "$(P)$(R) TDA8444:32:DAC_CH7") {
record( longout, "$(P)$(R)Shot-TorPSCurrent") {
field(DTYP, "stream")
field(OUT, "@tda8444.proto wDac7(32) I2C")
field(DRVH, "63" )
field(DRVL, "0" )
field(VAL, 1)
field(PINI,"YES")
}

View File

@@ -9,6 +9,7 @@ DB += ISTTOKmachineControl.db
DB += ISTTOKpcf8574.db DB += ISTTOKpcf8574.db
DB += ISTTOKpcf8591.db DB += ISTTOKpcf8591.db
DB += ISTTOKpfeiffer.db DB += ISTTOKpfeiffer.db
DB += ISTTOKtda8444.db
DB += sendmail.db DB += sendmail.db
# If <anyname>.db template is not named <anyname>*.template add # If <anyname>.db template is not named <anyname>*.template add

View File

@@ -1,4 +1,5 @@
ISTTOK:central:PULSE-NUMBER.VAL ISTTOK:central:PULSE-NUMBER.VAL
ISTTOK:central:LogMessage.VAL
ISTTOK:central:LASTOPSTATE.VAL ISTTOK:central:LASTOPSTATE.VAL
ISTTOK:central:OPREQ ISTTOK:central:OPREQ

View File

@@ -1,50 +1,4 @@
ISTTOK:central:PCF8574:56:REGISTER:READ ISTTOK:central:CurrentTime
ISTTOK:central:PCF8574:57:REGISTER:READ
ISTTOK:central:PCF8574:60:REGISTER:READ
ISTTOK:central:PCF8574:61:REGISTER:READ
ISTTOK:central:LASTOPSTATE
ISTTOK:SR_rebootStatus
ISTTOK:SR_status
ISTTOK:SR_0_Status
ISTTOK:SR_1_Status
ISTTOK:SR_2_Status
ISTTOK:SR_3_Status
ISTTOK:SR_4_Status
ISTTOK:SR_5_Status
ISTTOK:SR_6_Status
ISTTOK:SR_7_Status
ISTTOK:central:OPSTATE
ISTTOK:central:STARTINGSTATE
ISTTOK:central:CLEANINGSTATE
ISTTOK:central:WSHOTINGSTATE
ISTTOK:central:STOPPINGSTATE
ISTTOK:central:TMPump1-ControllerOnInv
ISTTOK:central:TMPump1-ControllerOffInv
ISTTOK:central:TMPump1-MotorOnInv
ISTTOK:central:TMPump1-MotorOffInv
ISTTOK:central:BuzzerInv
ISTTOK:central:Shot-TorPSTriggerInv
ISTTOK:central:Temperature_0
ISTTOK:central:TMPump2-Speed
ISTTOK:central:TMPump2-Current
ISTTOK:central:PCF8591:72:ADC_CH1
ISTTOK:central:PCF8591:72:ADC_CH2
ISTTOK:central:P001:M
ISTTOK:central:P001:E
ISTTOK:central:P002:M
ISTTOK:central:P002:E
ISTTOK:central:P003:M
ISTTOK:central:P003:E
ISTTOK:central:P004:M
ISTTOK:central:P004:E
ISTTOK:central:TMPump1-Power
ISTTOK:central:TMPump1-Emergency
ISTTOK:central:TMPump1-Acceleration
ISTTOK:central:TMPump1-NormalOperation
ISTTOK:central:TMPump2-Emergency
ISTTOK:central:TMPump2-Acceleration
ISTTOK:central:TTSystem-tzero
ISTTOK:central:Emergency-PhysButton
ISTTOK:central:OPCALCSTATE ISTTOK:central:OPCALCSTATE
ISTTOK:central:STARTCALCSTATE ISTTOK:central:STARTCALCSTATE
ISTTOK:central:STOPPINGCALCSTATE ISTTOK:central:STOPPINGCALCSTATE
@@ -59,9 +13,23 @@ ISTTOK:central:VVessel-Pressure
ISTTOK:central:RPump1-Pressure ISTTOK:central:RPump1-Pressure
ISTTOK:central:TMPump1-PressureAdmission ISTTOK:central:TMPump1-PressureAdmission
ISTTOK:central:RPump2-Pressure ISTTOK:central:RPump2-Pressure
ISTTOK:central:PCF8574:56:REGISTER:READ:FNOUT ISTTOK:central:TMPump2-Speed
ISTTOK:central:PCF8574:57:REGISTER:READ:FNOUT ISTTOK:central:TMPump2-Current
ISTTOK:central:PCF8574:56:REGISTER
ISTTOK:central:PCF8574:57:REGISTER
ISTTOK:central:PCF8574:60:REGISTER
ISTTOK:central:PCF8574:61:REGISTER
ISTTOK:central:PCF8591:72:CTRLREGISTER
ISTTOK:central:PULSE-NUMBER ISTTOK:central:PULSE-NUMBER
ISTTOK:central:PCF8591:72:DAC
ISTTOK:central:TDA8444:32:DAC_CH0
ISTTOK:central:TDA8444:32:DAC_CH1
ISTTOK:central:TDA8444:32:DAC_CH2
ISTTOK:central:TDA8444:32:DAC_CH3
ISTTOK:central:TDA8444:32:DAC_CH4
ISTTOK:central:TDA8444:32:DAC_CH5
ISTTOK:central:TDA8444:32:DAC_CH6
ISTTOK:central:TDA8444:32:DAC_CH7
ISTTOK:SR_0_State ISTTOK:SR_0_State
ISTTOK:SR_1_State ISTTOK:SR_1_State
ISTTOK:SR_2_State ISTTOK:SR_2_State
@@ -70,41 +38,35 @@ ISTTOK:SR_4_State
ISTTOK:SR_5_State ISTTOK:SR_5_State
ISTTOK:SR_6_State ISTTOK:SR_6_State
ISTTOK:SR_7_State ISTTOK:SR_7_State
ISTTOK:central:TraceMessage ISTTOK:central:PCF8591:72:ADC_CH1
ISTTOK:central:RS485Debug ISTTOK:central:PCF8591:72:ADC_CH2
ISTTOK:SR_recentlyStr ISTTOK:central:P001:M
ISTTOK:SR_rebootStatusStr ISTTOK:central:P001:E
ISTTOK:SR_rebootTime ISTTOK:central:P002:M
ISTTOK:SR_statusStr ISTTOK:central:P002:E
ISTTOK:SR_0_Name ISTTOK:central:P003:M
ISTTOK:SR_0_StatusStr ISTTOK:central:P003:E
ISTTOK:SR_0_Time ISTTOK:central:P004:M
ISTTOK:SR_1_Name ISTTOK:central:P004:E
ISTTOK:SR_1_StatusStr ISTTOK:central:OPSTATE
ISTTOK:SR_1_Time ISTTOK:central:STARTINGSTATE
ISTTOK:SR_2_Name ISTTOK:central:CLEANINGSTATE
ISTTOK:SR_2_StatusStr ISTTOK:central:WSHOTINGSTATE
ISTTOK:SR_2_Time ISTTOK:central:STOPPINGSTATE
ISTTOK:SR_3_Name ISTTOK:central:TMPump1-Power
ISTTOK:SR_3_StatusStr ISTTOK:central:TMPump1-Emergency
ISTTOK:SR_3_Time ISTTOK:central:TMPump1-Acceleration
ISTTOK:SR_4_Name ISTTOK:central:TMPump1-NormalOperation
ISTTOK:SR_4_StatusStr ISTTOK:central:TMPump2-Emergency
ISTTOK:SR_4_Time ISTTOK:central:TMPump2-Acceleration
ISTTOK:SR_5_Name ISTTOK:central:TTSystem-tzero
ISTTOK:SR_5_StatusStr ISTTOK:central:Emergency-PhysButton
ISTTOK:SR_5_Time ISTTOK:central:TMPump1-ControllerOnInv
ISTTOK:SR_6_Name ISTTOK:central:TMPump1-ControllerOffInv
ISTTOK:SR_6_StatusStr ISTTOK:central:TMPump1-MotorOnInv
ISTTOK:SR_6_Time ISTTOK:central:TMPump1-MotorOffInv
ISTTOK:SR_7_Name ISTTOK:central:BuzzerInv
ISTTOK:SR_7_StatusStr ISTTOK:central:Shot-TorPSTriggerInv
ISTTOK:SR_7_Time
ISTTOK:central:PCF8574:56:REGISTER
ISTTOK:central:PCF8574:57:REGISTER
ISTTOK:central:PCF8574:60:REGISTER
ISTTOK:central:PCF8574:61:REGISTER
ISTTOK:central:PCF8591:72:CTRLREGISTER
ISTTOK:central:OPREQ ISTTOK:central:OPREQ
ISTTOK:central:CLEANINGMANMODE ISTTOK:central:CLEANINGMANMODE
ISTTOK:central:FSTriggerStart ISTTOK:central:FSTriggerStart
@@ -137,4 +99,52 @@ ISTTOK:central:TMPump1-ManualValve
ISTTOK:SR_heartbeat ISTTOK:SR_heartbeat
ISTTOK:SR_i_am_alive ISTTOK:SR_i_am_alive
ISTTOK:SR_deadIfZero ISTTOK:SR_deadIfZero
ISTTOK:central:CurrentTime ISTTOK:central:LASTOPSTATE
ISTTOK:SR_rebootStatus
ISTTOK:SR_status
ISTTOK:SR_0_Status
ISTTOK:SR_1_Status
ISTTOK:SR_2_Status
ISTTOK:SR_3_Status
ISTTOK:SR_4_Status
ISTTOK:SR_5_Status
ISTTOK:SR_6_Status
ISTTOK:SR_7_Status
ISTTOK:central:PCF8574:56:REGISTER:READ
ISTTOK:central:PCF8574:57:REGISTER:READ
ISTTOK:central:PCF8574:60:REGISTER:READ
ISTTOK:central:PCF8574:61:REGISTER:READ
ISTTOK:central:TraceMessage
ISTTOK:central:LogMessage
ISTTOK:central:RS485Debug
ISTTOK:central:sendmail
ISTTOK:SR_recentlyStr
ISTTOK:SR_rebootStatusStr
ISTTOK:SR_rebootTime
ISTTOK:SR_statusStr
ISTTOK:SR_0_Name
ISTTOK:SR_0_StatusStr
ISTTOK:SR_0_Time
ISTTOK:SR_1_Name
ISTTOK:SR_1_StatusStr
ISTTOK:SR_1_Time
ISTTOK:SR_2_Name
ISTTOK:SR_2_StatusStr
ISTTOK:SR_2_Time
ISTTOK:SR_3_Name
ISTTOK:SR_3_StatusStr
ISTTOK:SR_3_Time
ISTTOK:SR_4_Name
ISTTOK:SR_4_StatusStr
ISTTOK:SR_4_Time
ISTTOK:SR_5_Name
ISTTOK:SR_5_StatusStr
ISTTOK:SR_5_Time
ISTTOK:SR_6_Name
ISTTOK:SR_6_StatusStr
ISTTOK:SR_6_Time
ISTTOK:SR_7_Name
ISTTOK:SR_7_StatusStr
ISTTOK:SR_7_Time
ISTTOK:central:PCF8574:56:REGISTER:READ:FNOUT
ISTTOK:central:PCF8574:57:REGISTER:READ:FNOUT

View File

@@ -1,9 +1,10 @@
# autosave R5.3 Automatically generated - DO NOT MODIFY - 191219-172657 # autosave R5.3 Automatically generated - DO NOT MODIFY - 200115-154642
ISTTOK:central:PULSE-NUMBER.VAL 48291 ISTTOK:central:PULSE-NUMBER.VAL 48392
ISTTOK:central:LASTOPSTATE.VAL 2 ISTTOK:central:LogMessage.VAL Olá Mundo
ISTTOK:central:LASTOPSTATE.VAL 5
ISTTOK:central:OPREQ 1 ISTTOK:central:OPREQ 1
ISTTOK:central:PROCESS-MODE.VAL 1 ISTTOK:central:PROCESS-MODE.VAL 0
ISTTOK:central:CLEANINGMANMODE.VAL 1 ISTTOK:central:CLEANINGMANMODE.VAL 0
ISTTOK:central:Emergency-UserButton.VAL 0 ISTTOK:central:Emergency-UserButton.VAL 0
ISTTOK:central:TMPump1-ManualValve.VAL 1 ISTTOK:central:TMPump1-ManualValve.VAL 1
ISTTOK:central:RPump1-Pressure.HIGH 0.05 ISTTOK:central:RPump1-Pressure.HIGH 0.05

View File

@@ -21,6 +21,7 @@ drvAsynI2CConfigure( "I2C", "/dev/i2c-1", 1 )
dbLoadRecords("db/ISTTOKstates.db","P=ISTTOK:,R=central:") dbLoadRecords("db/ISTTOKstates.db","P=ISTTOK:,R=central:")
dbLoadRecords("db/ISTTOKpcf8574.db","P=ISTTOK:,R=central:") dbLoadRecords("db/ISTTOKpcf8574.db","P=ISTTOK:,R=central:")
dbLoadRecords("db/ISTTOKpcf8591.db","P=ISTTOK:,R=central:") dbLoadRecords("db/ISTTOKpcf8591.db","P=ISTTOK:,R=central:")
dbLoadRecords("db/ISTTOKtda8444.db","P=ISTTOK:,R=central:")
dbLoadRecords("db/ISTTOKmachineControl.db","P=ISTTOK:,R=central:") dbLoadRecords("db/ISTTOKmachineControl.db","P=ISTTOK:,R=central:")
## Load Serial drivers ## Load Serial drivers

View File

@@ -19,19 +19,19 @@ rReg {
# Bits 7 : =0 # Bits 7 : =0
rConvAdc0 { rConvAdc0 {
out ${1} 0; out ${1} 64;
in "%02r"; in "%02r";
} }
rConvAdc1 { rConvAdc1 {
out ${1} 1; out ${1} 65;
in "%02r"; in "%02r";
} }
rConvAdc2 { rConvAdc2 {
out ${1} 2; out ${1} 66;
in "%02r"; in "%02r";
} }
rConvAdc3 { rConvAdc3 {
out ${1} 3; out ${1} 67;
in "%02r"; in "%02r";
} }
@@ -41,4 +41,8 @@ wReg {
out ${1} "%.1r"; out ${1} "%.1r";
} }
wDac {
out ${1} 64 "%.1r";
}

View File

@@ -0,0 +1,42 @@
Terminator = "";
LockTimeout = 500;
ReplyTimeout = 100;
ReadTimeout = 100;
WriteTimeout = 100;
MaxInput = 2;
ExtraInput = Error;
#I2C-bus format
# 0 1 0 0 A2 A1 A0 0 : I3 I2 I1 I0 SD SC SB SA : X X D5 D4 D3 D2 D1 D0
# A2 to A0 = programmable address bits; A = Acknowledge; I3 to I0 = Instruction bits;
# SD to SA = subaddress bits; X = dont care; D5 to D0 = data bits;
#instruction F will cause a consecutive writing of the data bytes into the
#same DAC-latch whose subaddress was given in the instruction byte.
#0xF0
wDac0 {
out ${1} 240 "%.1r";
}
wDac1 {
out ${1} 241 "%.1r";
}
wDac2 {
out ${1} 242 "%.1r";
}
wDac3 {
out ${1} 243 "%.1r";
}
wDac4 {
out ${1} 244 "%.1r";
}
wDac5 {
out ${1} 245 "%.1r";
}
wDac6 {
out ${1} 246 "%.1r";
}
wDac7 {
out ${1} 247 "%.1r";
}