I'm working on a project which involves measuring photons from a single-photon source that emits at 20E6 photons/sec. I have access to a fancy detector which will give me a clean analog signal in form of a pulse when it detects a photon.
Is there any way to read that signal (rising-edge) using Arduino or any other microcontroller?
Filter the signal in hardware and correlate the analog output of the filter to average photons detected. This will take some calibration to figure out the conversion factor, but it certainly is possible
An interrupt driven counter WILL NOT WORK at 100 MHz. Interrupts have far too much overhead.
To see if the Teensy 4.0 can be used, consult the Cortex-M7 processor data sheet to see if there is a timer/counter with an external clock input that can be clocked directly by your detector.
The lowly Arduino Uno has one, for Timer1, but it can be clocked at 8 MHz maximum. The ATmega328 data sheet has the details.
Consider using a neutral density filter to reduce the photon count rate.
jremington:
An interrupt driven counter WILL NOT WORK at 100 MHz. Interrupts have far too much overhead.
To see if the Teensy 4.0 can be used, consult the Cortex-M7 processor data sheet to see if there is a timer/counter with an external clock input that can be clocked directly by your detector.
The lowly Arduino Uno has one, for Timer1, but it can be clocked at 8 MHz maximum. The ATmega328 data sheet has the details.
Consider using a neutral density filter to reduce the photon count rate.
Yeah, using ND filters is the last resort. I'll check Cortex-M7 datasheet, do you have any other microcontroller in mind that can do better than 8 MHz? Thanks.
shandilya:
The photon counter gives a pulse of amplitude 3V, with ~15ns pulse width.
Do you know anything more?
Is it analog? 50-ohm? Single-ended or differential? If digital is it HCL, ECL or ... ? Is the output a BNC or a specialized high-speed digital connector?
I'm doubting that, for this sort of frequency, the output is a single-ended 3V square wave that can be directly connected to any microcontroller counter input pin; signal integrity on PCBs and interconnecting cables is definitely a thing for VHF. Even if you find a uC with the digital capability you may need an interface circuit of some sort.
Is it analog? 50-ohm? Single-ended or differential? If digital is it HCL, ECL or ... ? Is the output a BNC or a specialized high-speed digital connector?
I'm doubting that, for this sort of frequency, the output is a single-ended 3V square wave that can be directly connected to any microcontroller counter input pin; signal integrity on PCBs and interconnecting cables is definitely a thing for VHF. Even if you find a uC with the digital capability you may need an interface circuit of some sort.
Yes, it is analog, 50 Ohm. The output is BnC. I'm not sure about single-ended or differential. We can look at the pulse profile on the standard lab oscilloscope with a low enough rate if that answers the question in any way.
Yeah, interfacing is also an issue, but I didn't mention that in this post.