*Timepix3 onechip config file
*Values can be decimal, or 0x___ style hex
*Everything after a * is ignored

*Output Block Config reg (16b)- see Table 15:
*  [7:0] = chanmask = 00000001
*  [10:8] = clk_readout_source = 101
*  [11] = 10B/8B Encode ON = 1
*  [12] = ClkOutData ON = 1
*  [15:13] = ClkOutSource = 101 (ExtClk)
*40MHz ext clock:
*OUTBLKCONFIG = 0xBDFF
*40MHz internal clock:
*OUTBLKCONFIG = 0x9CFF
*80MHz int clock:
*OUTBLKCONFIG = 0x7BF0
*160MHz int clock:
*OUTBLKCONFIG = 0x5A08
*320MHz int clock:
OUTBLKCONFIG = 0x39FF


*Begin Pixel matrix params
*Set them all the same at this point, except one test_bit
PIXTHRESH = 7 *0 to 15

*Set to 1 to read back the PCR matrix (this disables pixel)
*Set to 0 to read science data
MASKBIT = 0

*Set to 0 to enable the test pulse into all pixels except one
*Set to 1 to enable the test pulse into only one pixel
TESTBIT = 0

*Invert one of the test_bits
TESTPIXCOL = 52
TESTPIXROW = 111

*End Pixel matrix params


*Begin Periphery PARAMS- Datasheet Table 9
SENSDACSEL = 0x1D
EXTDACSEL = 0x00

*TestPulse Params, see Table 14
TPPERIOD = 2
*0 to 0xfff, MS nibble is phase
TPNUMBER = 400 *0 to 65535


*PLL Config Reg, 14b- see Table 16
*  [0] PLL Bypass = 0
*  [1] not Reset PLL = 1 (PLL is held reset)
*  [2] Select Vcntrl for Matrix VCOs = 1 (from PLL)
*  [3] DualEdgeClk = 1
*  [5:4] PhaseShift Divide = 01 (div by 8)
*  [8:6] Phase shift number = 000 (1 clock cycle)
*  [13:9] PLL Monitor out select = 00001 (clk_ph[0])
*  [13:9] PLL Monitor out select = 10011 (TestPulseOut)
*  [13:9] PLL Monitor out select = 10100 (ShutterOut)
*  [13:9] PLL Monitor out select = 10101 (Eoc Active)

*PLLCONFIGREG = 0x021E  *(clk_ph[0])
*PLLCONFIGREG = 0x261E  *(TestPulseOut)
PLLCONFIGREG = 0x281E *(ShutterOut)
*PLLCONFIGREG = 0x2A1E *Eoc Active

*General Config Reg, header 0x30, 12b- see Table 18
*  [0] Polarity = 1 (electrons)
*  [2:1] Pixel mode 00 = ToA & ToT, 01 = ToA, 10 = Ev & iToT
*  [3] Gray count en = 0
*  [4] AckCommand En = 0
*  [5] TP Enable = 1
*  [6] Fast LO Enable = 0
*  [7] Stop timer when full = 0
*  [8] = 0
*  [9] TP to inpu/discrim = 0 (input)
*  [10] TP Ext/Int = 0 (Int)
*  [11] ToA Clk Sel = 0

*REPLACED THE ABOVE WITH INDIVIDUAL SETTINGS:
*PIXMODE
* 0 = TOA and TOT
* 1 = TOA only
* 2 = Event and iTOT
PIXMODE = 0
*GRAYCOUNT 0 = off, 1 = on
GRAYCOUNT = 1
*TPENABLE 0 = off, 1 = on
TPENABLE = 0
*FASTLO 0 = off, 1 = on
FASTLO = 0
*TESTPULSEIN 0 = analog, 1 = digital
*TESTPULSEIN = 0
TESTPULSEIN = 0
*TPEXTINT 0 = use internal testpulse, 1 = use external testpulse
TPEXTINT = 0




SLVSCONFIGREG = 8 *Table 19
*SLVSCONFIGREG = 0   *Max current

POWPULSEPAT = 0x0000  *Table 20
SETTIMELOW = 0x0
SETTIMEMID = 0x0
SETTIMEHIGH = 0x0

*End of Periphery parameters

*Begin DAC Values
*HIGH POWER MODE
*DACVAL_1 = 128 *IBPREAMPON
*DACVAL_8 = 128 *IBIASDISCS1ON 
*DACVAL_10 = 128 *IBIASDISCS2ON 
*DACVAL_12 = 128 *IBIASPIX 

*MED POWER MODE
*DACVAL_1 = 32 *IBPREAMPON
*DACVAL_8 = 32 *IBIASDISCS1ON 
*DACVAL_10 = 32 *IBIASDISCS2ON 
*DACVAL_12 = 60 *IBIASPIX 

*LOW POWER MODE
DACVAL_1 = 8 *IBPREAMPON
DACVAL_8 = 8 *IBIASDISCS1ON 
DACVAL_10 = 8 *IBIASDISCS2ON 
DACVAL_12 = 20 *IBIASPIX 


DACVAL_2 = 8   *IBPREAMPOFF
DACVAL_3 = 128 *VPREAMPNCAS-
DACVAL_4 = 128 *IBIASKRUM
DACVAL_5 = 128 *VFBK 
*DACVAL_6 = 0 *VTHRFINE 
*DACVAL_7 = 0   *VTHRCOARSE

DACVAL_7 = 8   *VTHRCOARSE
DACVAL_6 = 320 *VTHRFINE 


DACVAL_9 = 8   *IBIASDISCS1OFF
DACVAL_11 = 8   *IBIASDISCS2OFF 
DACVAL_13 = 128 *IBIASTPBIN 
DACVAL_14 = 128 *IBIASTPBOUT 
DACVAL_15 = 0 *VTPCOARSE 
DACVAL_16 = 0 *VTPFINE 
DACVAL_17 = 128 *IBIASCPPLL 
DACVAL_18 = 128 *PLLVCNTRL 
*End DAC Values

* Shutter stuff
*SHUTTER_MODE is a 4-bit word:
* bit 0  ext_trig_enable
* bit 1  soft_trigger
* bit 2  force shutter high
* bit 3  force shutter low


SHUTTERMODE = 2
*Begin Shutter Values
*Can have up to 256 of each WAIT and OPEN, 16b values, in 100ns steps
*Minimum value for WAIT is 2
WAIT_0 = 2
WAIT_1 = 100
WAIT_2 = 100
WAIT_3 = 100
WAIT_4 = 100
WAIT_5 = 100
OPEN_0 = 100
OPEN_1 = 100
OPEN_2 = 0
OPEN_3 = 0
OPEN_4 = 0
OPEN_5 = 0

*Local registers
U25_REG1 = 0x10		*Config, set comparator mode
U25_REG4 = 0x4980	*Tcritical, degC * 128, (0x4980 = 147C, but we don't use it)
U25_REG5 = 5 		*Hysteresis, degC
U25_REG6 = 0x2080 	*Thigh setpoint, degC x 128 (0x2080 = 65C)
*Shutdown happens at Thigh + Thyst; restore happens at Thigh
*U25_REG6 = 0x1400 	*Thigh setpoint, degC x 128 (0x1400 = 40C)
*U25_REG7 = 0x500	*Tlow, degC x 128 (0x500 = 10C)
U25_REG7 = 0xCE00	*Tlow, degC x 128 (65536-128*Neg Deg C = -100C)
U26_REG1 = 0x10		*Config, set comparator mode
U26_REG4 = 0x4980	*Tcritical, degC * 128, (0x4980 = 147C, but we don't use it)
U26_REG5 = 5 		*Hysteresis, degC
U26_REG6 = 0x2080 	*Thigh setpoint, degC x 128 (0x2080 = 65C)
*U26_REG7 = 0x500	*Tlow, degC x 128 (0x500 = 10C)
U26_REG7 = 0xCE00	*Tlow, degC x 128 (65536-128*Neg Deg C = -100C)
FE_DAC0 = 0x0
FE_DAC1 = 0x0
FE_DAC2 = 0x0
FE_DAC3 = 0x0
FAKE_RATE_0 = 0 
FAKE_RATE_1 = 0
FAKE_RATE_2 = 0
FAKE_RATE_3 = 0
PLL_MON_SEL = 2
MAX_UDP_INT = 254





