background image

 

13

 

 

communication signal between the two CC1s). Or the CC1 could be used with other external 
devices and serial data to implement a part - or all - of a QKD communication protocol. 

Because the electrical components, connections, and user interface are already in place (and 
described in Appendix A), the CC1 can serve as a flexible platform for interrogating signals from 
single photon detectors and performing associated operations. 

4.1.1 The Rabbit RCM3400 Microprocessor 

The Rabbit RCM3400 is a microprocessor module consisting of a simple processor integrated 
with other general purpose peripheral logic. The device is programmed using a language 
proprietary to Rabbit Semiconductor called Dynamic C. Dynamic C is very similar to ANSI C, 
with extra functions for interacting with the digital I/O, analog inputs, and PWM outputs on the 
RCM3400 module.  

To program in Dynamic C, an integrated development environment (Dynamic C 9.62) and 
programmer utility (DC 9.62 RFU) must be installed on your computer. A single installation 
program (DynamicC_9.62_WebFull.exe) - available on the flash drive that came with your unit 
as well as from Qubitekk’s website (

www.qubitekk.com

) – will install both programs. A 

programming cable for uploading new firmware to your CC1 is also required and has been 
included with your unit (Rabbit Programming Cable - 2mm) 

A great resource for learning Dynamic C and how to program the RCM3400 is the book entitled, 
“Embedded Systems Design using the Rabbit 3000 Microprocessor” by Kamal Hyder. Although 
this book was published in 2004, it still contains very relevant and useful examples of how to 
program and understand the operation of the RCM3400. In addition, manuals for the RCM3400 
and Dynamic are available on the flash drive that came with your unit and Qubitekk’s website. 

4.1.2 The Altera Cyclone IV FPGA 

The Altera Cyclone IV chip is a field programmable gate array (FPGA) that can operate at 
frequencies in excess of 1GHz. The chip is particularly well suited to detecting and 
timestamping LVTTL pulses (as would be emitted by a single photon counting module). The 
chip can be programmed using Altera’s Quartus II Web Edition (version 13+) – which is free and 
available at both Altera’s website (www.altera.com) and Qubitekk’s website.  

In the CC1, the Altera FPGA is actually part of an off-the-shelf prototyping board (the Terasic 
DE0-Nano). This prototyping board has additional functionality that may be used in future 
versions of the CC1 product. A manual for the Terasic DE0-Nano is available on the flash drive 
that came with your unit as well as Qubitekk’s website.    

4.1.3 Default Firmware 

The CC1 comes pre-programmed for use as a general purpose coincidence counter. However, 
the Dynamic C source code and the FPGA Quartus project files (including verilog modules, 

Summary of Contents for CC1

Page 1: ...CC1 Handheld Coincidence Counter USER S MANUAL Rev 1 02 June 1 2015 www qubitekk com...

Page 2: ...2 3 Dwell Time 8 2 4 Gate Chan 8 2 5 Subtract Acc 8 2 6 Trigger 9 2 7 CH1 Delay 9 2 8 Firmware 9 3 Serial Interface 10 3 1 Serial Interface Setup 10 3 2 Programming Commands 10 3 3 Sample Code 11 4 C...

Page 3: ...4 2 3 Programming the Cyclone IV FPGA 18 Appendix A Electrical Schematics and Connections 20 A 1 Top Board LCD Board 21 A 2 Bottom Board Processor Board 22 A 3 Pinout Table 25...

Page 4: ...with all of the functionality described in this manual however it is capable of much more The unit contains both a re programmable microprocessor for handling the user interface and serial communicati...

Page 5: ...d through its USB port The USB cable provided with the system should be plugged into the side of the unit as shown in Figure 2 Figure 2 Power over USB connection The other end of the USB cable can be...

Page 6: ...connector jacks are available at the top of the unit To detect coincident pulses Channels 1 and 2 must both be connected to a pulse signal If the counting of single and coincidence pulses should be ga...

Page 7: ...4 Figure 4 CC1 Buttons and Ports...

Page 8: ...for modification by pressing the ENABLE button The setting value will blink indicating that it is ready for modification Again the UP and DOWN arrow buttons can be pressed to change the setting value...

Page 9: ...FF button has been pressed the details of the count measurement will be displayed on the LCD as shown in Figure 6 Figure 6 Count Screen after measurement Once the measurement is complete the counts wi...

Page 10: ...will be counted by the CC1 to be coincident if a The time between the rising edges of the two pulses is less than the coincidence window If the GATE signal is enabled then the two pulses will only be...

Page 11: ...s initiated the CC1 will accumulate counts for an amount of time equal to the Dwell Time If the Dwell Time is infinity the CC1 will accumulate counts indefinitely or until the ON OFF button is pressed...

Page 12: ...of time Then the unit s counters will automatically be reset and a new count initiated This cycle will continue over and over until the ON OFF button is again pressed to halt continuous triggering If...

Page 13: ...command is not recognized the CC1 will reply with Unknown Command Command Description COUN C1 C2 CO Returns the current value on the counter either Channel 1 C1 Channel 2 C2 or Coincidences CO CLEA S...

Page 14: ...3 Output DWEL 20000 Chr 13 Set Dwell Time to 20 seconds Sleep 300 Wait 0 3 seconds for command to transfer MSComm3 Output DELA 2 Chr 13 Set Delay Time on Channel 1 to 2ns Sleep 300 Wait 0 3 seconds fo...

Page 15: ...iew of CC1 electronics The RCM3400 microprocessor is used to implement the user interface i e LCD display menus serial communicatons etc as well as some very simple calculations i e accidentals The Al...

Page 16: ...h your unit Rabbit Programming Cable 2mm A great resource for learning Dynamic C and how to program the RCM3400 is the book entitled Embedded Systems Design using the Rabbit 3000 Microprocessor by Kam...

Page 17: ...bitekk website frequently for the latest versions of the default firmware 4 2 Uploading Custom Firmware 4 2 1 Accessing the Programming Ports To upload new firmware to your CC1 it is necessary to firs...

Page 18: ...in Figure 12 Figure 12 Programming ports exposed 4 2 2 Programming the Rabbit RCM3400 To program the Rabbit RCM3400 a bin programming file must first be created in the Dynamic C 9 62 development envi...

Page 19: ...to the Rabbit Programming Port on the base of your CC1 unit as shown in Figure 14 note orientation of red wire Figure 14 Creating a programming file for the RCM3400 With the Rabbit Programming Cable i...

Page 20: ...not be recognized automatically If this happens you will get an error that says Could not open serial port If this occurs you will need to select the Setup Communications item in the DC RFU program me...

Page 21: ...nu item File Convert Programming Files in Quartus II This will open the Convert Programming File window which allows various parameters to be provided by the user to convert a sof file to a jic file I...

Page 22: ...programming Select the Tools Programmer menu option in Quartus II to open the Altera Programmer window Click the Add File button to add the jic file that was just created and select the USB Blaster b...

Page 23: ...20 APPENDIX A Electrical Schematics and Connections...

Page 24: ...21 A 1 Top Board LCD Display...

Page 25: ...22 A 2 Bottom Board FPGA and Microprocessor...

Page 26: ...23...

Page 27: ...24...

Page 28: ...Display Line 4 20 PE2 Clear Button on User Interface 21 PE1 Bus to LCD Display Line 5 22 PE0 Menu Button on User Interface 23 GND Ground 24 3_3V_IN 3 3V Input Power 25 PG7 Bus to LCD Display Line 6 2...

Page 29: ...to FPGA Counter Bit 10 30 PD5 Enable GATE Signal Flag for FPGA 31 PD6 Bus to FPGA Counter Bit 11 32 RESET_IN Reserved for firmware upload 33 PD7 Bus to FPGA Counter Bit 12 34 VBAT_EXT Reserved for Ba...

Page 30: ...tput to RCM3400 Bit 6 38 IO31 FPGA Counter Output to RCM3400 Bit 11 39 IO32 FPGA Counter Output to RCM3400 Bit 7 40 IO33 FPGA Counter Output to RCM3400 Bit 12 JP2 1 IN0 Not Connected 2 IO00 Not Connec...

Page 31: ...GND2 Ground 31 IO24 Not Connected 32 IO25 Not Connected 33 IO26 Not Connected 34 IO27 Not Connected 35 IO28 Not Connected 36 IO29 Not Connected 37 IO30 Not Connected 38 IO31 Not Connected 39 IO32 Not...

Reviews: