<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.iac.isu.edu/index.php?action=history&amp;feed=atom&amp;title=Qweak_Readout_Electronics</id>
	<title>Qweak Readout Electronics - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.iac.isu.edu/index.php?action=history&amp;feed=atom&amp;title=Qweak_Readout_Electronics"/>
	<link rel="alternate" type="text/html" href="https://wiki.iac.isu.edu/index.php?title=Qweak_Readout_Electronics&amp;action=history"/>
	<updated>2026-05-08T23:39:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>https://wiki.iac.isu.edu/index.php?title=Qweak_Readout_Electronics&amp;diff=55565&amp;oldid=prev</id>
		<title>Foretony: Created page with '[http://wiki.iac.isu.edu/index.php/Warren_Parsons_Log_Book]Warren_Parsons_Log_Book = I/O= ==Inputs to breakout box==  :Trigger (LVDS)  :Clock ( RF synced pulse 31 MHz = 499/1…'</title>
		<link rel="alternate" type="text/html" href="https://wiki.iac.isu.edu/index.php?title=Qweak_Readout_Electronics&amp;diff=55565&amp;oldid=prev"/>
		<updated>2011-01-23T18:24:31Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;[http://wiki.iac.isu.edu/index.php/Warren_Parsons_Log_Book]&lt;a href=&quot;/./index.php?title=Warren_Parsons_Log_Book&quot; title=&quot;Warren Parsons Log Book&quot;&gt;Warren_Parsons_Log_Book&lt;/a&gt; = I/O= ==Inputs to breakout box==  :Trigger (LVDS)  :Clock ( RF synced pulse 31 MHz = 499/1…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[http://wiki.iac.isu.edu/index.php/Warren_Parsons_Log_Book][[Warren_Parsons_Log_Book]]&lt;br /&gt;
= I/O=&lt;br /&gt;
==Inputs to breakout box==&lt;br /&gt;
&lt;br /&gt;
:Trigger (LVDS)&lt;br /&gt;
&lt;br /&gt;
:Clock ( RF synced pulse 31 MHz = 499/16 MHz, LVDS)&lt;br /&gt;
&lt;br /&gt;
:Flip Flop scaner (1 TTL pulse)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
V1495 :&lt;br /&gt;
&lt;br /&gt;
:28 Pin output on 34 pin ribbon cables&lt;br /&gt;
&lt;br /&gt;
:Inputs to V1495:&lt;br /&gt;
&lt;br /&gt;
:180 bits of data = 12 bits Bunch Counter ( =31 MHz clock) + 12 bit (Event Counter + flags) + 12 bits (Chip ID) + 128 bits (data) + 16 bits (Checksum)&lt;br /&gt;
&lt;br /&gt;
:The input register has been set to a size of 256 bit and there are 12 of them&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\Rightarrow \frac{0.5 kbytes}{s}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Timing==&lt;br /&gt;
&lt;br /&gt;
:VFAT: &lt;br /&gt;
&lt;br /&gt;
:Progammable through the Latency register (8 bits = 256 bits) you have but only 128 registers  data registers.    We can go back in time 100 *32 ns = 3 micro seconds.  But we only may need 100 ns.&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The cables lengths from the detector to the patch panel in dog house are&lt;br /&gt;
150ns for both GEM A and GEM B. So the full lengths to the patch panel at&lt;br /&gt;
the second floor are 505+150 = 655ns for GEM A and 510+150 = 660ns&lt;br /&gt;
for GEM B.&lt;br /&gt;
&lt;br /&gt;
==V1495: can have programmable delay up to?==&lt;br /&gt;
&lt;br /&gt;
We can program delays and play with the timing by downloading values for &amp;quot;lat&amp;quot; into the VFAT extended register and set delay on the V1495 through the ROC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The V1495 can also interupt the VME backplane telling a ROC to readout the planes.&lt;br /&gt;
&lt;br /&gt;
== V1495 Install at JLab==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ssh cdaq@gw-qweak.jlab.org&lt;br /&gt;
&lt;br /&gt;
telnet qweakvme2&lt;br /&gt;
&lt;br /&gt;
ssh root@gemgumstix.jlab.org&lt;br /&gt;
&lt;br /&gt;
ssh root@gemgumstix1.jlab.org&lt;br /&gt;
&lt;br /&gt;
===Set Address===&lt;br /&gt;
&lt;br /&gt;
The GW ROC appears to be A24 so I changed SW4 from a &amp;quot;8&amp;quot; to a &amp;quot;9&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  |cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0 &lt;br /&gt;
|colspan= &amp;quot;2&amp;quot; | Address&lt;br /&gt;
|-&lt;br /&gt;
| Pin ||  Setting&lt;br /&gt;
|-&lt;br /&gt;
|SW 3 ||  0&lt;br /&gt;
|-&lt;br /&gt;
|SW 4 ||  9&lt;br /&gt;
|-&lt;br /&gt;
|SW 7 ||  3&lt;br /&gt;
|-&lt;br /&gt;
|SW 8 ||  3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Initialize module===&lt;br /&gt;
&lt;br /&gt;
 No LEDs were on when the module is inserted into VME&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-&amp;gt; v1495Init(0x09330000)&lt;br /&gt;
0x1a6c490 (tShell): v1495Init: v1495 Module has been successfully initialized.&lt;br /&gt;
&lt;br /&gt;
0x1a6c490 (tShell): v1495 module has been reset: &lt;br /&gt;
&lt;br /&gt;
value = 0 = 0x0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Check the modules is at adress===&lt;br /&gt;
&lt;br /&gt;
The base address  offset in the Weiner ROC is 10 for A32 and 11 for A24&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--&amp;gt; v1495test(0x11330000)&lt;br /&gt;
0x1a796e0 (tShell): Control      [0x11338000] = 0x0000&lt;br /&gt;
0x1a796e0 (tShell): firmwareRev  [0x1133800c] = 0x0001&lt;br /&gt;
0x1a796e0 (tShell): selflashVME  [0x1133800e] = 0x0001&lt;br /&gt;
0x1a796e0 (tShell): flashVME     [0x11338010] = 0x00ff&lt;br /&gt;
0x1a796e0 (tShell): selflashUSER [0x11338012] = 0x0001&lt;br /&gt;
0x1a796e0 (tShell): flashUSER    [0x11338014] = 0x00ff&lt;br /&gt;
0x1a796e0 (tShell): configROM    [0x11338100] = 0x00ec&lt;br /&gt;
value = 0 = 0x0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===now download the firmware===&lt;br /&gt;
&lt;br /&gt;
Had to copy the *.rbf file to the directory in which the ROC is pointing to /coda/libraries/vme/v1495_gem&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-&amp;gt; v1495firmware(0x11330000,&amp;quot;GEMReadout_Rev2-3_32Mhz.rbf&amp;quot;,0,0)&lt;br /&gt;
0x1a796e0 (tShell): &lt;br /&gt;
0x1a796e0 (tShell): ********************************************************&lt;br /&gt;
0x1a796e0 (tShell): * CAEN SpA - Front-End Division                        *&lt;br /&gt;
0x1a796e0 (tShell): * ---------------------------------------------------- *&lt;br /&gt;
0x1a796e0 (tShell): * Firmware Upgrade of the V1495                        *&lt;br /&gt;
0x1a796e0 (tShell): * Version 1.1 (27/07/06)                               *&lt;br /&gt;
0x1a796e0 (tShell): *   Sergey Boyarinov: CLAS version 23-Apr-2007         *&lt;br /&gt;
0x1a796e0 (tShell): ********************************************************&lt;br /&gt;
&lt;br /&gt;
0x1a796e0 (tShell): Updating firmware of the FPGA USER with the file GEMReadout_Rev2-3_32Mhz.rbf&lt;br /&gt;
0x1a796e0 (tShell): End of file: bp=113 bcnt=168545&lt;br /&gt;
0x1a796e0 (tShell): &lt;br /&gt;
Firmware loaded successfully. Written 168545 bytes&lt;br /&gt;
0x1a796e0 (tShell): &lt;br /&gt;
0x1a796e0 (tShell): Reloading user FPGA firmware...0x1a796e0 (tShell): done!&lt;br /&gt;
value = 0 = 0x0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The DSTACK light turned green and blinked during the download.  After the firmware was download the USER led blinked red and yellow.&lt;br /&gt;
&lt;br /&gt;
I decided to download the NoPPL file so we don't run with Phase Lock Loop&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; v1495firmware(0x11330000,&amp;quot;GEMReadout_Rev2-3_NoPLL.rbf&amp;quot;,0,0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now the User light blinks green&lt;br /&gt;
=== Upgrade system Firmware===&lt;br /&gt;
&lt;br /&gt;
the output of v1495test showed that the V1495 is running version 0.1 firmware so I upgraded it to V 0.3 via the following&lt;br /&gt;
&lt;br /&gt;
1.) Download the latest firmware from the CAEN web site&lt;br /&gt;
&lt;br /&gt;
2.) The following command should download new firmware onto the module (notice the last number is a &amp;quot;1&amp;quot; instead of a &amp;quot;0&amp;quot; now)&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; v1495firmware(0x11330000,&amp;quot;V1495vme03.rbf&amp;quot;,0,1)&lt;br /&gt;
&lt;br /&gt;
There is a red switch on the module, if you screw this up, which can switch to a backup of the firmware.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to power cycle or reset the module for the new firmware to be used.&lt;br /&gt;
&lt;br /&gt;
== compiling new library ==&lt;br /&gt;
&lt;br /&gt;
source ~/CODA/2.5/coda.setup&lt;br /&gt;
&lt;br /&gt;
/home/daq/CODA/2.5/x86-linux/bin/ccppc -fno-builtin -fno-for-scope -fstrength-reduce -mlongcall -mcpu=604 -DCPU=PPC604 -DVXWORKS -D_GNU_TOOL -DVXWORKSPPC -I/usr/local/coda/2.5/common/include/ -I../h -c -o v1495Lib.o v1495Lib.c&lt;br /&gt;
&lt;br /&gt;
=FPGA to VME data transfer=&lt;br /&gt;
&lt;br /&gt;
On 2/15/07 Ben Raydo tested the read and write speeds between the VPM backplane and the FPGA user registers.  He was able to write 16 bits to USER FPGA in 330 ns.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\Rightarrow \frac{16 bits}{330 ns}\times \frac{1 byte}{8 bits} \times \frac{10^9 s}{ns} \approx 6\frac{Mbytes}{s}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=VFAT controls=&lt;br /&gt;
Brian Oborn: 282- 6243&lt;br /&gt;
== VFAT control registers==&lt;br /&gt;
Control register 0&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| bit|| bit name || Function&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Sleep/Run || 0 = sleep, 1=run also reffereed to as sleep blocking&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Control Register 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Control register 2&lt;br /&gt;
==VFAT Clock and Trig pulses==&lt;br /&gt;
 &lt;br /&gt;
[[Image:VFAT_MCLK_Trig_LVDS_pulses.png|300px|thumb|MCLK and Trig LVDS pulses]]&lt;br /&gt;
&lt;br /&gt;
The Clock and Trigger LVDS pulses for the VFAT board were generated using the SIS3610 I/O register.  I simply wrote bits to the register.  The I/O registers internal clock then determine the pulse frequency.  I set the bits to be &lt;br /&gt;
1110000000000000 using the command&lt;br /&gt;
&lt;br /&gt;
s3610VFATclock(0,57344);&lt;br /&gt;
&lt;br /&gt;
and reset all bits to zero except for the trigger input (100000000000000 b = 16384 d )which remained high for the first 3 clock pulses&lt;br /&gt;
by hardwiring the value 16384 in the SIS3610 library function call.  According to Table 2 in the VFAT manual from July 2006, leaving the first 3 bits high tells the VFAT board to operate in &amp;quot;CalPulse&amp;quot; mode..&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 void s3610VFATclock(int id, unsigned int val)&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  int i;&lt;br /&gt;
&lt;br /&gt;
  if((id&amp;lt;0) || (s3610p[id] == NULL)) {&lt;br /&gt;
    logMsg(&amp;quot;s3610WriteOutput: ERROR : SIS3610 id %d not initialized \n&amp;quot;,id,0,0,0,0,0);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  s3610p[id]-&amp;gt;d_out = val;&lt;br /&gt;
  s3610p[id]-&amp;gt;d_out = 16384;&lt;br /&gt;
  s3610p[id]-&amp;gt;d_out = val;&lt;br /&gt;
  s3610p[id]-&amp;gt;d_out = 16384;&lt;br /&gt;
  s3610p[id]-&amp;gt;d_out = val;&lt;br /&gt;
  s3610p[id]-&amp;gt;d_out = 16384;&lt;br /&gt;
&lt;br /&gt;
  for(i=0;i&amp;lt;200;i++)&lt;br /&gt;
    {&lt;br /&gt;
      s3610p[id]-&amp;gt;d_out = val;&lt;br /&gt;
      s3610p[id]-&amp;gt;d_out = 0;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  logMsg(&amp;quot;s3610VFATclock: Finish pulses \n&amp;quot;,id,0,0,0,0,0);&lt;br /&gt;
  return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The third highest bit was used to drive the scope.&lt;br /&gt;
&lt;br /&gt;
To use the above function you need to be sure the SIS3610 is initialized by typing in the ROC communication window (telnet roc1)&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; s3610Init 0x3800 &lt;br /&gt;
 Initialized SIS3610 ID 0 at address 0x91003800 &lt;br /&gt;
 value = 0 = 0x0&lt;br /&gt;
&lt;br /&gt;
The just execute the function &lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; s3610VFATclock(0,57344);&lt;br /&gt;
 0xdc79380 (tShell): s3610VFATclock: Finish pulses &lt;br /&gt;
 value = 32 = 0x20 = ' '&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then using the Gumstick command line set the DFtest pattern bit via I2C&lt;br /&gt;
&lt;br /&gt;
Turn on the VFAT&lt;br /&gt;
 # pwd&lt;br /&gt;
 /root/bin&lt;br /&gt;
 # ./run.arm &lt;br /&gt;
&lt;br /&gt;
set the DF test pattern bit&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;e 134 4 on&amp;quot; | flipbit.arm              &lt;br /&gt;
 Using mode e&lt;br /&gt;
 Using address 134&lt;br /&gt;
 Using bit 4&lt;br /&gt;
 Using action on&lt;br /&gt;
&lt;br /&gt;
Then in the ROC window exectue the VFAT clockpulse function&lt;br /&gt;
&lt;br /&gt;
 -&amp;gt; s3610VFATclock(0,57344);&lt;br /&gt;
 0xdc79380 (tShell): s3610VFATclock: Finish pulses &lt;br /&gt;
 value = 32 = 0x20 = ' '&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should see the picture above&lt;br /&gt;
&lt;br /&gt;
Put the VFAT back into sleep mode&lt;br /&gt;
&lt;br /&gt;
 # ./sleep_on.arm&lt;br /&gt;
&lt;br /&gt;
==Cal pulse Procedure==&lt;br /&gt;
&lt;br /&gt;
=== Check that VCAL connects to DACo===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 There is a new flipbit program now so the commands below will not work&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.) First set up the following values for operating the chip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  |cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0 &lt;br /&gt;
|-&lt;br /&gt;
|Register|| Value&lt;br /&gt;
|-&lt;br /&gt;
|ContReg0	|| 9 d = 1001 b&lt;br /&gt;
|-&lt;br /&gt;
|ContReg1	|| 128 d = 10000000 b&lt;br /&gt;
|-&lt;br /&gt;
|IPreampIn	|| 142d = 10001110 b&lt;br /&gt;
|-&lt;br /&gt;
|IPreampFeed	|| 70 d = 1000110 b&lt;br /&gt;
|-&lt;br /&gt;
|IPreampOut	|| 130 d = 10000010 b&lt;br /&gt;
|-&lt;br /&gt;
|IShaper	|| 127 d = 1111111 b&lt;br /&gt;
|-&lt;br /&gt;
|IShaperFeed||	85 d =  1010101 b&lt;br /&gt;
|-&lt;br /&gt;
|IComp||	100 d = 1100100 b&lt;br /&gt;
|-&lt;br /&gt;
|vcal||	128 d = 10000000 b&lt;br /&gt;
|-&lt;br /&gt;
|Vthreshold1||	0&lt;br /&gt;
|-&lt;br /&gt;
|Vthreshold2||	15 d = 1111 b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1.)  Connect VCal to DACo-V by setting DACsel = 1001&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;p 65 0 on p 65 1 off p 65 2 off p 65 3 on&amp;quot; | flipbit.arm&lt;br /&gt;
&lt;br /&gt;
2.)  set calibration mode to output VCal values by setting CalMode = 01&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;p 64 6 on p 64 7 off p &amp;quot; | flipbit.arm&lt;br /&gt;
&lt;br /&gt;
3.)  set VCAL&lt;br /&gt;
&lt;br /&gt;
this turns one of the 8 bits to the calibration voltage Vcal  (It ranges from 1.074 to 0.877 Volts)&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;e 129 1 on&amp;quot; | flipbit.arm &lt;br /&gt;
&lt;br /&gt;
4.)  Look for a voltage on the output connector pin #162 which corresponds to pin B4 on the ribbon cable connector.&lt;br /&gt;
&lt;br /&gt;
I see the following on the scope when I set VCAL to zero&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;e 129 7 off&amp;quot; | flipbit.arm&lt;br /&gt;
&lt;br /&gt;
[[Image:VCAL-0_1MOhmTermination.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
I see the following when I set the highest bit to VCAL (VCAL = 1000000 b = 128 d)&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;e 129 7 on&amp;quot; | flipbit.arm&lt;br /&gt;
&lt;br /&gt;
[[Image:VCAL-128_1MOhmTermination.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
I see the following when I set the highest bit to VCAL (VCAL = 1111111 b = 255 d)&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;e 129 7 on&amp;quot; | flipbit.arm&lt;br /&gt;
&lt;br /&gt;
[[Image:VCAL-255_1MOhmTermination.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  |cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0 &lt;br /&gt;
|-&lt;br /&gt;
|VCAL|| DC Level&lt;br /&gt;
|-&lt;br /&gt;
|0	|| 6.11&lt;br /&gt;
|-&lt;br /&gt;
|128	|| 5.6&lt;br /&gt;
|-&lt;br /&gt;
|255	|| 5.06&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The VFAT2 manual states that VCAL should range between 1.074 to 0.877 Volts.  I observe on the scope that the B4 pin output (VCAL) changes from 6.11 to 5.06 Volts when terminated in 1 M Ohm (High -Z).&lt;br /&gt;
I see the voltage difference between the min and max VCAL setting is 1.05 Volts.  Perhaps this is what the manual refers to as the VCAL range?&lt;br /&gt;
&lt;br /&gt;
== VCAL baseline ==&lt;br /&gt;
The second step is to measure the baseline for each VCal DAC setting by changing calmode to (CalMode&amp;lt;1&amp;gt; =1 and clamod&amp;lt;0&amp;gt;=0). Above we had CalMode&amp;lt;1&amp;gt; =1 and CalMode&amp;lt;0&amp;gt;=1.&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;p 64 6 off p 64 7 on p &amp;quot; | flipbit.arm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  |cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0 &lt;br /&gt;
|-&lt;br /&gt;
|VCAL|| DC Level&lt;br /&gt;
|-&lt;br /&gt;
|0	|| 6.12&lt;br /&gt;
|-&lt;br /&gt;
|128	|| 5.6&lt;br /&gt;
|-&lt;br /&gt;
|255	|| 5.06&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
I see similar voltage on DAC-0 when I look at the baseline.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When I put the VFAT into sleep mode I see 26 mV on the output.&lt;br /&gt;
&lt;br /&gt;
== Setting Thresholds==&lt;br /&gt;
&lt;br /&gt;
The registers VThreshold1 and VThreshold2 are used to set the threshold on the analog input.  The actual threshold applied is given by the difference (VTheshold2 -Vthreshold1) in order to have the ability to set positive and negative thresholds.  A negative threshold (for the GEM output signal) can be set by having VThreshold2 =0 and VThreshold1&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
== Using VCAL to test output digitization==&lt;br /&gt;
&lt;br /&gt;
You can use VCal to inject a pulse into the channels via the CalChan1 bit on each channel.  You need to be sure CalPolarity is consistent with (VTheshold2-VThreshold1).&lt;br /&gt;
&lt;br /&gt;
I have a scipt to setup the VFAT parameters call cal.setup&lt;br /&gt;
&lt;br /&gt;
from the gumstick console type the following within the /user/bin subdirectory:&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 # flipbit.arm &amp;lt; cal.setup &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The web interface to the VFAT looked like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;ContReg&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;64&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;9&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;9&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;CalMode&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;CalMode&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;CalPolarity&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;MSPolarity&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Trigmode&amp;amp;lt;2&amp;amp;gt;&amp;lt;/td&lt;br /&gt;
&amp;gt; &amp;lt;td&amp;gt;Trigmode&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Trigmode&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Sleepb&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;ContReg&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;65&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;80&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;128&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;ReHitCT&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;ReHitCT&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;LVDSPowerSave&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;ProbeMode&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;DACsel&amp;amp;lt;3&amp;amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;DACsel&amp;amp;lt;2&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;DACsel&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;DACsel&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;IPreampIn&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;66&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;8e&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;142&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;IPreampFeed&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;67&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;46&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;70&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;IPreampOut&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;68&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;82&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;130&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;IShaper&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;69&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;7f&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;127&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;IShaperFeed&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;70&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;55&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;85&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;IComp&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;71&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;64&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;100&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;ChipID&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;72&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;f3&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;243&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;ChipID&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;73&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;ee&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;238&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;UpsetReg&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;74&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;HitCount0&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;75&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;HitCount1&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;76&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;HitCount2&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;77&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;ExtRegPointer&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;78&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;6&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;6&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;ExtRegData&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;79&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;Lat&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;VCal&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;129&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;80&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;128&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;VThreshold1&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;130&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;VThreshold2&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;131&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;f&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;15&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;CalPhase&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;132&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;ContReg&amp;amp;lt;2&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;133&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;70&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;112&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;DigInSel&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;MSPulseLength&amp;amp;lt;2&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;MSPulseLength&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;MSPulseLength&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;&lt;br /&gt;
HitCountSel&amp;amp;lt;3&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;HitCountSel&amp;amp;lt;2&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;HitCountSel&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;HitCountSel&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;ContReg&amp;amp;lt;3&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;134&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;DFTestPattern&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;PbBG&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDACrange&amp;amp;lt;2&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDACrange&amp;amp;&lt;br /&gt;
lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDACrange&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;Spare&amp;amp;lt;135&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;135&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;ef&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;239&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;ChanReg&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;10&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;16&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;CalChan0&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;CalChan1&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Mask&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;4&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;3&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;2&lt;br /&gt;
&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;ChanReg&amp;amp;lt;2&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;d0&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;208&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;CalChan1&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Mask&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;4&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;3&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;2&amp;amp;gt;&amp;lt;/td&lt;br /&gt;
&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;ChanReg&amp;amp;lt;3&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;80&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;128&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;CalChan1&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Mask&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;4&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;3&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;2&amp;amp;gt;&amp;lt;/td&lt;br /&gt;
&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;On&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;ChanReg&amp;amp;lt;4&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;td rowspan=&amp;quot;3&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;CalChan1&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Mask&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;4&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;3&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;2&amp;amp;gt;&amp;lt;/td&lt;br /&gt;
&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;1&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TrimDAC&amp;amp;lt;0&amp;amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Off&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets set CalMode to 01 so that the value of CalOut = VCAL&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;p 64 6 on&amp;quot; | flipbit.arm&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;p 64 7 off&amp;quot; | flipbit.arm &lt;br /&gt;
&lt;br /&gt;
Now lets set the bit CalChan in channel 2 so the DAC output voltage is sent to Channel 2 &lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;e 2 6 on&amp;quot; | flipbit.arm  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For channel 1 set TrimDAC= 1000  ( TrimDAC(4) =1 all others zero)&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;e 1 1 off e 1 2 off e 1 3 off e 1 4 on&amp;quot; | flipbit.arm &lt;br /&gt;
&lt;br /&gt;
set everything off&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;e 1 1 off e 1 2 off e 1 3 off e 1 4 off&amp;quot; | flipbit.arm &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for channel 128&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;e 128 4 on&amp;quot; | flipbit.arm &lt;br /&gt;
&lt;br /&gt;
We may need to change the TrimDAC range&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;e 134 0 on e 134 1 off e 134 2 on&amp;quot; | flipbit.arm&lt;br /&gt;
&lt;br /&gt;
= 6 VFAT hybrid =&lt;br /&gt;
==Individual Def test patterns==&lt;br /&gt;
On March 31, 2009 I tested the default test pattern for the new 6 VFAT hybrids which arrived last week.  On Monday I checked that the chip IDs were correct. Today I recorded the default test patters observed on the scope at the link below&lt;br /&gt;
&lt;br /&gt;
[[VFAT_DefaultTestPattern_3-31-09]]&lt;br /&gt;
==Test pattern using Breakout box==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Turn on the VFAT (sleepb on)&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;p 64 0 on&amp;quot; | ./flipbit.arm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Turn on the default test pattern&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;e 134 4 on&amp;quot; | ./flipbit.arm&lt;br /&gt;
&lt;br /&gt;
Below I generate 6 MCLK and 6 Trig pulse trains of 192 pulses using my SIS3610 module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 s3610VFATclock(0,64575)&lt;br /&gt;
&lt;br /&gt;
[[Image:VFAT_DataOut_DataValid_4-17-09.png|200px]]&lt;br /&gt;
&lt;br /&gt;
It appears above that the data valid pulse is only high for the first three pulses, like the LV1A trigger pulse?  I thought it was suppose to be high during the entire data out pulse train.&lt;br /&gt;
&lt;br /&gt;
=== 4/18/09===&lt;br /&gt;
&lt;br /&gt;
I have given up trying to plug the VFAT card directly into the breakout box.  If I plug the VFAT into a bread board and then into the Break out box then I can see data valid and data out pulses.  The I2C communication works under either configuration.&lt;br /&gt;
&lt;br /&gt;
Below is a scope trace taken when I use LaTech Agilent pulser to generate a 1 KHz TTL pulse into the JLAB PLX board which outputs many LVDS copies.  I then drive the VFAT with the JLAB PLX board LVDS output and look on the breakout box output pins at Data Valid and Data Out.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:VFAT_MCLK_DataOut_DataValid_4-18-09.png|200px]]&lt;br /&gt;
&lt;br /&gt;
This may be compared to the original DF test pattern measured in Aug 2008.&lt;br /&gt;
&lt;br /&gt;
[[Image:DFtestPattern.png |200px|thumb|DFtestpattern]]&lt;br /&gt;
&lt;br /&gt;
As shown in the scope trace, the Data Valid pulse goes low to mark the end of the DF test pattern and the beginning of 2 idle pulses.  The Data Valid pulse then goes high to mark the beginning of 192 DATAOUT pulses.&lt;br /&gt;
&lt;br /&gt;
If I send this to my IO board I would expect to digital output to be &lt;br /&gt;
&lt;br /&gt;
010101110100100001000101010?????????????????????????????????????????????????????????????????????????????????????????????????????&lt;br /&gt;
&lt;br /&gt;
The first 12 bits are the bunch crossing number.&lt;br /&gt;
&lt;br /&gt;
The next 12 bits are the event counter (EC) and Flags.  4 bits are used for the flag and 8 bits for the event counter.&lt;br /&gt;
&lt;br /&gt;
Lets take snap shots of the pulse pattern using the scope to get the DF test pattern.&lt;br /&gt;
&lt;br /&gt;
Bits 1-38&lt;br /&gt;
&lt;br /&gt;
[[Image:VFAT_DFTestPatternBits_1-38_4-18-09.png|200px]]&lt;br /&gt;
&lt;br /&gt;
Bits 38-77&lt;br /&gt;
&lt;br /&gt;
[[Image:VFAT_DFTestPatternBits_38-77_4-18-09.png|200px]]&lt;br /&gt;
&lt;br /&gt;
Bits 77-115&lt;br /&gt;
&lt;br /&gt;
[[Image:VFAT_DFTestPatternBits_77-115_4-18-09.png|200px]]&lt;br /&gt;
&lt;br /&gt;
Bits 115-153&lt;br /&gt;
&lt;br /&gt;
[[Image:VFAT_DFTestPatternBits_115-153_4-18-09.png|200px]]&lt;br /&gt;
&lt;br /&gt;
Bits 153-191&lt;br /&gt;
&lt;br /&gt;
[[Image:VFAT_DFTestPatternBits_153-191_4-18-09.png|200px]]&lt;br /&gt;
Bits 155-192&lt;br /&gt;
&lt;br /&gt;
[[Image:VFAT_DFTestPatternBits_155-192_4-18-09.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next 12 bits are used for the chip ID.  This will be related to the hex ID f3ee showing up via the I2C communication page with the chip.  CHIPID(0) = f3 and CHIPID(1)=ee.&lt;br /&gt;
&lt;br /&gt;
The next 128 bits are the hits on the 128 input channels to the chip.&lt;br /&gt;
&lt;br /&gt;
The last 16 bits represent the checksum for the event block.&lt;br /&gt;
&lt;br /&gt;
=== SIS3610 readout===&lt;br /&gt;
&lt;br /&gt;
;Design concept&lt;br /&gt;
: The SIS3610 will latch bits on a 16 bit IO connector for any given trigger.  We will need to trigger and read the SIS3610 for each 194 pulses in the VFAT output pulse train.  I will try to create a trigger pulse using the DATA VALID output pulse to form a logical and with the clock pulse.  I will drive a gate generator with the MCLK signal and veto is with the DATA valid pulse.&lt;br /&gt;
&lt;br /&gt;
====LV1A====&lt;br /&gt;
&lt;br /&gt;
Scope pictures of the MCLK and LV1A pulses.&lt;br /&gt;
&lt;br /&gt;
Has the LV1A pulse finished its transition in order to be latched by the Trigger Decoder Chip?&lt;br /&gt;
&lt;br /&gt;
[[Image:MCLK_LV1A_4-18-09.png|200px]]&lt;br /&gt;
[[Image:MCLK_LV1A_4-18-09_rise_side.png|200px]]&lt;br /&gt;
[[Image:MCLK_LV1A_4-18-09_fall_side.png|200px]]&lt;br /&gt;
&lt;br /&gt;
= Gumstick Programming =&lt;br /&gt;
&lt;br /&gt;
Back to &amp;gt;&amp;gt; [[Qweak]]&lt;/div&gt;</summary>
		<author><name>Foretony</name></author>
	</entry>
</feed>