All about PhotonFinish2 protocols (Rabbit version) ======================================================== Started 2014 Feb 3 Astummer@physics.utoronto.ca Revised ... RABBIT TO FPGA COMMANDS ======================================================== AddrRab Description ======= =================== 0-15 Acam registers 16 Read version from FPGA, ignore HiL 17 Write BinsPerStart[16:0] 18 Write local reg Data2A[11: 0], ignore HiLo 19 Write local reg Data2A[23:12], ignore HiLo 20 Write local reg Data2A[27:24], ignore HiLo 21 Read error byte, ignore HiLo 22-30 Spare, future use 31 Run, read events from FPGA as they appear Runtime data transfer from FPGA to Rabbit (NB: a nibble is 12-bits): 1) To run, Rabbit sets address 0x1F with CsRab high (true). HiLo is set low. 2) When FPGA reads an event from Acam, sets DataReady high and puts low nibble on Rabbit bus. 3) Rabbit detects DataReady, reads low nibble then sets HiLo high. 4) FPGA sees HiLo, puts high nibble on Rabbit bus. If FIFO is empty, it sets DataReady low. 5) Rabbit reads MS nibble, sets HiLo low and returns to 2) above. RABBIT MODULE RCM6xxx PORTS ======================================================== Port Dir Description ==== === =================== PA0 ? PA1 ? PA2 ? PA3 ? PA4 ? PA5 ? PA6 ? PA7 ? PB0 ? PB1 - Reserved (ISP) PB2 ? PB3 ? PB4 ? PB5 ? PB6 ? PB7 ? PC0 ? PC1 ? PC2 ? PC3 ? PC4 ? PC5 O Display serial PC6 - Reserved (ISP) PC7 - Reserved (ISP) PD0 ? PD1 ? PD2 ? PD3 ? PD4 - Reserved PD5 - Reserved PD6 - Reserved PD7 - Reserved PE0 ? PE1 ? PE2 ? PE3 ? PE4 - Reserved PE5 ? PE6 ? PE7 ?