| commit | author | age | ||
| 335409 | 1 | ####################################################### |
| BC | 2 | # ### ### # |
| 3 | # ### EPICS Database for ### # | |
| 4 | # ### I2C PCF8591 board ### # | |
| 5 | # ### ### # | |
| 6 | # ### author: B. Carvalho IPFN ### # | |
| 7 | # ### ### # | |
| 8 | # ### Ref 2.0; 2019-10-14 ### # | |
| 9 | # ### ### # | |
| 10 | # ### macros: ID I2C address of ADC ### # | |
| 11 | # ### Description: ### # | |
| dabf6b | 12 | # ### This DB file is using ### # |
| 335409 | 13 | # ### stream(asynI2C) to read/write ### # |
| BC | 14 | # ### an PCF8591 ADDA chip ### # |
| 15 | ####################################################### | |
| 16 | ||
| 17 | ##################################################### | |
| 18 | # Read/Write pcf8591 register @ address 0x48=d72 ### # | |
| 19 | ##################################################### | |
| 20 | record( mbboDirect, "$(P)$(R)PCF8591:72:CTRLREGISTER") { | |
| 22146b | 21 | field(DTYP, "stream") |
| BC | 22 | field(OUT, "@pcf8591.proto wReg(72) I2C") |
| 23 | field(SHFT, "0") | |
| 24 | field(NOBT, "8") | |
| 335409 | 25 | field(VAL, 255) |
| BC | 26 | field(PINI,"YES") |
| 27 | } | |
| d76cde | 28 | # Receiving two bytes. last one counts |
| BC | 29 | record( longin, "$(P)$(R)PCF8591:72:ADC_CH1" ) { |
| 335409 | 30 | field(DTYP, "stream") |
| BC | 31 | field(INP, "@pcf8591.proto rConvAdc0(72) I2C") |
| d76cde | 32 | } |
| BC | 33 | record( calc, "$(P)$(R)PCF8591:72:BYTE2_CH1" ) { |
| 22146b | 34 | field(INPA, "$(P)$(R)PCF8591:72:ADC_CH1 PP NMS") |
| d76cde | 35 | # extract LSB =last byte received |
| 22146b | 36 | field(CALC, " (A & 255 )" ) |
| d76cde | 37 | } |
| BC | 38 | |
| dabf6b | 39 | record( ai, "$(P)$(R)TMPump2-Speed" ) { |
| BC | 40 | field(DESC, "TMPump2-Speed") |
| 41 | field(DTYP, "Raw Soft Channel" ) | |
| 42 | field(INP, "$(P)$(R)PCF8591:72:BYTE2_CH1 PP NMS") | |
| 43 | field(SCAN, "1 second") | |
| 44 | field(ASLO, "16" ) | |
| 45 | field(AOFF, "0" ) | |
| 46 | field(EGU, "RPM" ) | |
| 47 | field(PREC, "3" ) | |
| 48 | field(HOPR, "5000" ) | |
| 49 | field(LOPR, "0" ) | |
| 50 | field(LOW, "200.0") | |
| 51 | # # field(LOLO,"0.0") | |
| 52 | field(LSV, "MINOR") | |
| 53 | # # field(LLSV,"MAJOR") | |
| d76cde | 54 | } |
| BC | 55 | record( longin, "$(P)$(R)PCF8591:72:ADC_CH2" ) { |
| 56 | field(DTYP, "stream") | |
| 57 | field(INP, "@pcf8591.proto rConvAdc1(72) I2C") | |
| 335409 | 58 | } |
| d76cde | 59 | record( calc, "$(P)$(R)PCF8591:72:BYTE2_CH2" ) { |
| 22146b | 60 | field(INPA, "$(P)$(R)PCF8591:72:ADC_CH2 PP NMS") |
| d76cde | 61 | # LSB i=last byte received |
| 22146b | 62 | field(CALC, " (A & 255)" ) |
| d76cde | 63 | } |
| 335409 | 64 | |
| dabf6b | 65 | record( ai, "$(P)$(R)TMPump2-Current" ) { |
| BC | 66 | field(DESC, "TMPump2-Current") |
| 22146b | 67 | field(DTYP, "Raw Soft Channel" ) |
| dabf6b | 68 | field(INP, "$(P)$(R)PCF8591:72:BYTE2_CH2 PP NMS") |
| 22146b | 69 | field(SCAN, "1 second") |
| BC | 70 | field(ASLO, "0.1" ) |
| 71 | field(AOFF, "0" ) | |
| 72 | field(EGU, "mA" ) | |
| 73 | field(PREC, "3" ) | |
| 74 | field(HOPR, "50" ) | |
| 75 | field(LOPR, "0" ) | |
| dabf6b | 76 | field(LOW, "2.0") |
| BC | 77 | # # field(LOLO,"0.0") |
| 78 | field(LSV, "MINOR") | |
| 79 | # # field(LLSV,"MAJOR") | |
| 22146b | 80 | } |
| 9625a1 | 81 | |
| BC | 82 | # Receiving two bytes. last one counts |
| 83 | record( longin, "$(P)$(R)PCF8591:72:ADC_CH3" ) { | |
| 84 | field(DTYP, "stream") | |
| 85 | field(INP, "@pcf8591.proto rConvAdc2(72) I2C") | |
| 86 | } | |
| 87 | record( calc, "$(P)$(R)PCF8591:72:BYTE2_CH3" ) { | |
| 88 | field(INPA, "$(P)$(R)PCF8591:72:ADC_CH3 PP NMS") | |
| 89 | # extract LSB =last byte received | |
| 90 | field(CALC, " (A & 255 )" ) | |
| 91 | } | |
| 92 | record(ai, "$(P)$(R)Shot-TorPSCurrentImage" ) { | |
| 93 | field(DESC, "Toroidal Current Image") | |
| 94 | field(DTYP, "Raw Soft Channel" ) | |
| 95 | field(INP, "$(P)$(R)PCF8591:72:BYTE2_CH3 PP NMS") | |
| 21d175 | 96 | field(SCAN, ".2 second") |
| 9625a1 | 97 | field(ASLO, "39.215686275" ) |
| BC | 98 | field(AOFF, "0.0" ) |
| 99 | field(EGU, "A" ) | |
| 100 | field(PREC, "3" ) | |
| 101 | field(HOPR, "10000" ) | |
| 102 | field(LOPR, "0" ) | |
| 21d175 | 103 | field(MDEL, "20" ) |
| BC | 104 | # field(LOW, "200.0") |
| 9625a1 | 105 | # # field(LOLO,"0.0") |
| 21d175 | 106 | # field(LSV, "MINOR") |
| 9625a1 | 107 | # # field(LLSV,"MAJOR") |
| BC | 108 | } |
| 109 | ||
| 110 | ||
| f44500 | 111 | record( longout, "$(P)$(R)PCF8591:72:DAC") { |
| BC | 112 | field(DTYP, "stream") |
| 113 | field(OUT, "@pcf8591.proto wDac(72) I2C") | |
| 114 | field(DRVH, "255" ) | |
| 115 | field(DRVL, "0" ) | |
| 116 | field(VAL, 128) | |
| 117 | field(PINI,"YES") | |
| 118 | } | |