Getting Started with DT5550W Petiroc (SiPM Readout)
Tutorial for DT5550W with Petiroc ASIC readout. Learn to configure the Weeroc Petiroc ASIC, control high voltage for SiPM bias, implement photon counting, and test with Resource Explorer. Complete guide for SiPM-based detector readout applications.
Introduction
This tutorial demonstrates how to configure the DT5550W board with Petiroc ASIC piggyback for Silicon Photomultiplier (SiPM) readout and photon counting applications.
About DT5550W with Petiroc
The DT5550W is a complete readout system based on Weeroc ASICs. The Petiroc (Positron Emission Time Imaging ReadOut Chip) is specifically designed for SiPM array readout and provides:
- 32 channels per ASIC (up to 128 channels with 4 ASICs)
- Charge measurement and time measurement on each channel
- Individual trigger outputs per channel
- Integrated discriminators with adjustable thresholds
- On-board HV generation for SiPM bias (20-85V)
What You’ll Learn
- Configuring Petiroc ASIC parameters
- Controlling on-board high voltage for SiPM bias
- Implementing trigger counters in FPGA
- Testing photon counting with Resource Explorer
- Using Weeroc configuration tools in SCI-Compiler
Hardware Requirements
For this tutorial you need:
- DT5550W Petiroc board (with Petiroc piggyback)
- SiPM matrix (e.g., Hamamatsu S13361-3050AE-08)
- Dark box (provided with DT5550W kit)
- Light pulser (e.g., CAEN SP5601 or equivalent)
- Optical fiber
- USB 3.0 cable for communication
- JTAG cable for FPGA programming
Hardware Setup
Experimental Setup
The photon counting experiment setup consists of:
Figure 1: DT5550W Petiroc experimental setup with SiPM, dark box, and light pulser
Setup description:
- SiPM matrix is installed on the Petiroc piggyback board
- Dark box shields the SiPM from ambient light
- Light pulser generates optical pulses via fiber
- Optical fiber delivers light to the SiPM
- DT5550W processes signals and counts triggers
Signal Flow
Light Pulser → Optical Fiber → SiPM → Petiroc ASIC → FPGA Counters
When light hits the SiPM:
- SiPM generates electrical pulse
- Petiroc ASIC discriminates signal above threshold
- Trigger output transitions from 0→1
- FPGA counter increments
- Count value stored in register
Firmware Design Overview
Project Goals
The firmware implements three main functions:
- Configure the Petiroc ASIC (thresholds, polarity, mode)
- Control high voltage generator (SiPM bias)
- Count triggers and store in registers (one counter per channel)
Block Diagram
SCI-Compiler provides dedicated blocks for Weeroc ASICs in the Board menu.
Figure 2: Weeroc ASIC blocks in SCI-Compiler
Available example: SCI-Compiler includes this project as an example:
- File → Open Example → DT5550W → Petiroc Photon Counting
Step 1: Petiroc Slow Control Block
The Petiroc Slow Control block manages ASIC configuration.
Block Configuration
Figure 3: Petiroc Slow Control block properties
Parameters:
- ASIC to configure: Select which Petiroc ASIC (if multiple)
- Default configuration: Configuration applied at boot/reset
- Default monitor config: Monitoring settings
This is a memory-mapped block accessible via USB using SciSDK or Resource Explorer.
Opening Configuration Tool
Press the Edit button to open the Weeroc Configuration Tool:
Figure 4: Weeroc Petiroc configuration interface
Configuration options:
- Charge threshold (per channel or global)
- Time threshold (per channel or global)
- Polarity (positive/negative)
- Trigger mode and latching
- Channel enable/disable
- OR logic configuration
Step 2: Counter Blocks
Each processing channel counts triggers from the ASIC.
Counter Implementation
Figure 5: Counter blocks for each trigger channel
Function:
- Each Petiroc trigger output connects to a counter
- Counter increments on 0→1 transition
- Count value stored in a register
- Register mapped to USB for readout
Example:
- C1 register → Counts from ASIC channel 1
- C2 register → Counts from ASIC channel 2
- etc.
Step 3: Memory Mapping
Assign addresses to registers and peripherals.
Memory Map Configuration
Figure 6: Memory mapping tab
Options:
- Manual address: Enter specific address in “PHY Hex” column
- Auto Assign: Click button to automatically allocate addresses
- Lock address: Check “Manual Assigned” to prevent auto-assign override
Output:
A RegisterFile.json is generated in the project’s library folder during compilation.
Step 4: Compile and Program
Compilation
- Click Compile button in the Home toolbar
- Compilation takes 10-20 minutes
- Upon success, a bitstream is generated
Programming
- Connect DT5550W via:
- USB 3.0 (communication)
- JTAG USB (programming)
- Power on the board
- Click Program FPGA in SCI-Compiler
- Wait for “Target device programmed successfully”
Testing with Resource Explorer
Launch Resource Explorer
Resource Explorer allows you to interact with the firmware without writing code.
Figure 7: Opening Resource Explorer
Connect to Board
- Select DT5550W-PETIROC from board list
- Click Scan to detect connected boards
- Select correct Serial Number
- Verify JSON file path matches your project
- Click Connect
Figure 8: Resource Explorer connection settings
Discovered Resources
After connection, Resource Explorer enumerates:
Figure 9: Enumerated resources
- Registers (C1, C2, C3… counter registers)
- PetirocCfg (ASIC configuration)
- HVcontrol (High voltage controller)
Step 5: Configure High Voltage
Configure the on-board HV generator for SiPM bias.
HV Controller
- Right-click on i2c_master_0 under HVcontrol
- Select Open Configuration
- Set parameters:
- HV Voltage: 54V (adjust based on your SiPM)
- Enable: Check to turn on HV
- Click Set or Update
Figure 10: High voltage configuration panel
Monitoring: Click Update to view:
- Current HV voltage
- HV current draw
- SiPM temperature sensor reading
Warning: Ensure SiPM is properly connected before enabling HV. Consult SiPM datasheet for correct bias voltage.
Step 6: Configure Petiroc ASIC
Set discrimination thresholds and operating mode.
Open Petiroc Configuration
Right-click on PetirocCfg → Open Configuration
Figure 11: Petiroc configuration interface
Generate Configuration
Click Generate to open the full ASIC configuration tool.
Figure 12: Detailed Petiroc configuration
Recommended Settings for Photon Counting
Set the following parameters:
| Parameter | Value | Notes |
|---|---|---|
| Charge Threshold | 300 | Lower value = higher threshold (positive polarity) |
| Time Threshold | 200 | Lower value = higher threshold (positive polarity) |
| Polarity | Positive | Match SiPM output polarity |
| Trigger Latch | Disabled | No latch on trigger |
| Charge OR32 | Disabled | Individual channel triggers |
| Time OR32 | Disabled | MUST disable due to silicon bug |
Important: In positive polarity mode, lower threshold values correspond to higher discrimination levels. This is counter-intuitive but correct for the Petiroc ASIC.
Advanced Settings
Figure 13: Advanced configuration options
Configure:
- Per-channel threshold adjustments
- Channel enable/disable masks
- DAC settings
- Preamp gain
Apply Configuration
- Click Generate in the configuration tool
- The bitstream is displayed in the text field
- Click Send to program the ASIC
Example bitstream (for reference):
0000000000000000000000000000000000000001100000001100000001100000...
You can copy/paste this bitstream for use in SDK applications.
Figure 14: Sending configuration to ASIC
Step 7: Read Counter Registers
Monitor photon counts in real-time.
Open Counter Registers
- In Resource Explorer, expand Registers
- Right-click on C1 (channel 1 counter)
- Select Set/Get or Monitor
- Repeat for C2 (channel 2 counter)
Configure Auto-Read
For continuous monitoring:
- Set Auto Read Mode to 50 ms
- Set Format to Decimal
- Click Start on both registers
Figure 15: Monitoring counter registers
Step 8: Observe Photon Counting
Test with Light Pulser
- Turn on the light pulser
- Adjust light intensity
- Observe counter values increasing
Expected results:
- C2 counter: High count rate (SiPM pixel receiving light)
- C1 counter: Low count rate (pixel receiving little/no light)
The SiPM pixels are at different positions in the matrix, so light distribution varies.
Adjust Threshold
Experiment with threshold settings:
- Open Petiroc configuration again
- Change Charge Threshold to a different value (e.g., 200)
- Click Generate and Send
- Observe counter behavior changes
Figure 16: Counter response with different threshold settings
Lower threshold value (e.g., 200) = Higher discrimination → Fewer counts, only bright pulses Higher threshold value (e.g., 400) = Lower discrimination → More counts, including noise
Understanding the Design
Trigger Counting Principle
SiPM Pulse → Petiroc Discriminator → Trigger (0→1) → Counter++
Each trigger transition increments the counter:
- Rising edge (0→1) detected by counter block
- Counter value increments by 1
- Value continuously written to register
- Register readable via USB
ASIC Configuration Flow
SCI-Compiler → Generate Bitstream → Slow Control Block → I2C → Petiroc ASIC
Configuration is stored in the ASIC’s internal registers and persists until:
- Power cycle
- Manual reconfiguration
- ASIC reset
High Voltage Control
Resource Explorer → I2C Master → HV Controller IC → DC-DC Converter → SiPM Bias
The DT5550W includes:
- Programmable HV DAC (20-85V range)
- Current monitoring
- Temperature sensing
- Software-controlled enable/disable
Typical Applications
Photon Counting
- Dark count measurement
- Single photon detection
- Scintillator readout (LYSO, NaI, BGO)
- Quantum optics experiments
PET/SPECT Imaging
- Positron Emission Tomography
- Single Photon Emission Computed Tomography
- Time-of-Flight (ToF) PET
- Multi-channel coincidence
High Energy Physics
- Calorimeter readout
- Tracker systems
- Timing detectors
- Cherenkov light detection
Medical Physics
- Gamma cameras
- Dose monitoring
- Radiation therapy
- Nuclear medicine
Advanced Topics
Multi-ASIC Configurations
DT5550W supports up to 4 Petiroc ASICs (128 channels total):
- Each ASIC configured independently
- Shared HV distribution
- Individual trigger outputs
- Synchronized readout
Time Measurement
Petiroc provides both charge and time outputs:
- Use Oscilloscope block to capture analog outputs
- Implement TDC for precise timing
- Measure Time-over-Threshold (ToT)
- Calculate Time-of-Arrival (ToA)
Energy Measurement
Add processing blocks:
- Charge Integration (QDC) for energy
- Spectrum block for MCA functionality
- Baseline restoration
- Pile-up rejection
List Mode Acquisition
Record event-by-event data:
- Timestamp per trigger
- Charge value
- Time value
- Channel ID
- Store in List endpoint for streaming to PC
Troubleshooting
No Counts Observed
Problem: Counters remain at zero
Solutions:
- Verify light pulser is on and fiber connected
- Check HV is enabled and at correct voltage
- Ensure ASIC configuration was sent successfully
- Lower threshold (increase threshold value in positive mode)
- Verify SiPM is properly installed and connected
All Channels Counting (Too Many Counts)
Problem: Excessive count rate on all channels
Solutions:
- Check for light leaks in dark box
- Raise threshold (decrease threshold value)
- Reduce HV to lower SiPM gain
- Check for electrical noise/crosstalk
HV Not Stable
Problem: HV voltage fluctuates or doesn’t reach setpoint
Solutions:
- Check SiPM load (current draw)
- Verify board power supply is adequate
- Ensure temperature is stable
- Check for short circuits on SiPM connections
ASIC Configuration Fails
Problem: Cannot send configuration to Petiroc
Solutions:
- Verify firmware is programmed correctly
- Check USB connection
- Restart Resource Explorer
- Try manual configuration via registers
Summary
This tutorial covered DT5550W Petiroc photon counting:
| Topic | Covered |
|---|---|
| Hardware setup | SiPM, dark box, light pulser configuration |
| Firmware design | Petiroc Slow Control, counters, registers |
| ASIC configuration | Thresholds, polarity, trigger mode |
| HV control | Bias voltage, monitoring, safety |
| Testing | Resource Explorer, counter readout |
| Troubleshooting | Common issues and solutions |
Next steps:
- Experiment with different SiPM types
- Add energy and timing measurements
- Implement coincidence logic
- Develop custom SDK applications with SciSDK
- Explore multi-ASIC configurations
The DT5550W with Petiroc ASIC provides a complete, flexible platform for SiPM-based detector readout without requiring HDL programming!