Overview
The BRIDZA STW-PC series PCIe timing cards provide precision timing synchronization for computer systems, enabling sub-nanosecond synchronization accuracy for data acquisition, telecommunications, and financial timestamping applications. These cards are available in PCIe 2.0 x1, x4, and x8 form factors to accommodate various system requirements.
Supported Models
| Model |
PCIe Speed |
Lanes |
Height |
10MHz Outputs |
| ------- |
----------- |
------- |
-------- |
---------------- |
| STW-PC1 |
2.0 |
x1 |
Low |
1 |
| STW-PC4 |
2.0 |
x4 |
Full |
2 |
| STW-PC8 |
2.0/3.0 |
x8 |
Full |
4 |
Board Layout
┌─────────────────────────────────────────────────────────────────────┐
│ STW-PC4 PCIe Timing Card │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │PCIe Gold│ │ FPGA │ │ TCXO/ │ │ Flash │ │
│ │ Finger │ │ Xilinx │ │ OCXO │ │ Memory │ │
│ │ │ │ Artix-7 │ │ │ │ │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └─────────┘ │
│ │ │ │ │
│ │ │ │ │
│ └────────────┼────────────┘ │
│ │ │
│ ┌───────────────┼───────────────┐ │
│ │ │ │ │
│ ┌──┴──┐ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │
│ │PPS │ │10M │ │10M │ │TOD │ │EXT │ │
│ │ IN │ │ IN │ │OUT │ │RS232│ │1PPS│ │
│ │ SMA │ └──○─┘ └──○─┘ │ DB9 │ │ SMA│ │
│ └──○───┘ └────┘ └──○───┘ │
│ │
│ Bracket: Full height PCIe │
│ │
└──────────────────────────────────────────────────────────────────────┘
PCIe Interface
Gold Finger Pinout (x4/x8)
| Pin |
Function |
Description |
| ----- |
---------- |
------------- |
| 1 |
+12V |
Main power |
| 2 |
+12V |
Main power |
| 3 |
+12V |
Main power |
| 4 |
GND |
Ground |
| 5 |
GND |
Ground |
| 6 |
+3.3V |
Auxiliary power |
| 7 |
+3.3V |
Auxiliary power |
| 8 |
GND |
Ground |
| ... |
... |
Standard PCIe |
| 49 |
REFCLK+ |
Reference clock |
| 50 |
REFCLK- |
Reference clock |
| 51 |
GND |
Ground |
Electrical Specifications
| Parameter |
Specification |
| ----------- |
--------------- |
| Power Consumption |
<10W |
| +12V Current |
<800mA |
| +3.3V Current |
<200mA |
External Connectors
| Parameter |
Specification |
| ----------- |
--------------- |
| Connector |
SMA female |
| Impedance |
50Ω |
| Level |
TTL (3.3V/5V compatible) |
| Pulse Width |
1μs minimum |
| Max Input |
±10V with 50Ω termination |
| Polarity |
Rising edge active |
2. 1PPS Output
| Parameter |
Specification |
| ----------- |
--------------- |
| Connector |
SMA female |
| Impedance |
50Ω |
| Level |
TTL |
| Pulse Width |
Configurable (default 5ms) |
| Jitter |
≤1ns RMS |
| Drive |
50mA |
| Parameter |
Specification |
| ----------- |
--------------- |
| Connector |
SMA female |
| Impedance |
50Ω |
| Level |
-3 to +10dBm |
| Frequency |
10MHz ±100Hz |
| Waveform |
Sine or square |
4. 10MHz Output
| Parameter |
Specification |
| ----------- |
--------------- |
| Connector |
SMA female |
| Impedance |
50Ω |
| Level |
13dBm ±2dB |
| Harmonics |
≤-40dBc |
5. TOD Serial Interface
| Parameter |
Specification |
| ----------- |
--------------- |
| Connector |
DB9 male |
| Protocol |
RS232 |
| Baud Rate |
9600 (default), 115200 |
| Data Bits |
8 |
| Parity |
None |
| Stop Bits |
1 |
DB9 Pinout:
| Pin |
Function |
| ----- |
---------- |
| 2 |
TXD |
| 3 |
RXD |
| 5 |
GND |
Linux Driver Installation
Requirements
- Linux kernel 3.2 or higher
- GCC compiler
- make
Installation Steps
# Download driver package
tar -xzf stw-pc-drivers-linux-v2.0.tar.gz
cd stw-pc-drivers-linux-v2.0
# Compile driver
make
# Install driver
sudo make install
# Load driver
sudo modprobe stw_pc
# Check device
dmesg | grep STW-PC
Device Nodes
After installation, devices appear as:
/dev/stw_pc0 - First card
/dev/stw_pc1 - Second card (if present)
Windows Driver Installation
Installation Steps
- Download driver package from BRIDZA website
- Extract to temporary folder
- Connect STW-PC card to PCIe slot
- Windows will prompt for driver
- Select "Browse my computer"
- Navigate to extracted folder
- Complete installation
Device Manager
After installation, device appears as:
- "BRIDZA STW-PC Timing Card" under System Devices
API Reference
C Library Functions
#include
// Open device
int stw_pc_open(int card_num);
// Close device
int stw_pc_close(int fd);
// Read timestamp
int stw_pc_read_timestamp(int fd, uint64_t *timestamp_ns);
// Read 1PPS counter
int stw_pc_read_pps_counter(int fd, uint64_t *count);
// Set 10MHz output
int stw_pc_set_10mhz_output(int fd, int enable);
// Set 1PPS output
int stw_pc_set_pps_output(int fd, int enable, uint32_t pulse_ns);
// Get device status
int stw_pc_get_status(int fd, stw_pc_status_t *status);
// Example usage
int main() {
int fd = stw_pc_open(0);
if (fd < 0) {
printf("Failed to open device\n");
return -1;
}
uint64_t timestamp;
stw_pc_read_timestamp(fd, ×tamp);
printf("Timestamp: %llu ns\n", timestamp);
stw_pc_close(fd);
return 0;
}
Python Bindings
import ctypes
lib = ctypes.CDLL("libstw_pc.so")
class STWPCStatus(ctypes.Structure):
_fields_ = [
("locked", ctypes.c_int),
("pps_valid", ctypes.c_int),
("timestamp_ns", ctypes.c_uint64)
]
# Open device
fd = lib.stw_pc_open(0)
# Read status
status = STWPCStatus()
lib.stw_pc_get_status(fd, ctypes.byref(status))
print(f"Locked: {status.locked}, PPS Valid: {status.pps_valid}")
# Close device
lib.stw_pc_close(fd)
Mechanical Dimensions
PCIe Bracket: Standard full-height (111.15mm)
Card Length: 167.65mm max
PCB Thickness: 1.6mm
┌───────────────────────────────────────────────┐
│ │
│ [PCIe Gold Finger] │
│ │ │
│ └───────────────────────────────────────┐ │
│ │ │
│ ┌───────────────────────────────────┐ │ │
│ │ │ │ │
│ │ FPGA + Clock Circuit │ │ │
│ │ │ │ │
│ └───────────────────────────────────┘ │ │
│ │ │
│ [SMA Connectors] │ │
│ │ │
└───────────────────────────────────────────┘
Troubleshooting
| Symptom |
Cause |
Solution |
| --------- |
------- |
---------- |
| Card not detected |
PCIe slot issue |
Try different slot |
| - |
Driver not installed |
Install driver |
| 10MHz output no signal |
Output disabled |
Enable via API |
| - |
Frequency unlocked |
Wait for PLL lock |
| Timestamp jumps |
IRQ conflict |
Use MSI interrupts |
| - |
Interrupt coalescing |
Disable in BIOS |
Download Resources
Document Version: 1.0
Last Updated: 2026-05-24
BRIDZA Technologies