Introduzione
Nella fotometria di deboli sorgenti luminose (ad esempio nel campo della fluorescenza) spesso si utilizza la tecnica del “Photon Counting” : questa tecnica consiste nel conteggio dei fotoni e nella conseguente valutazione della intensità della sorgente luminosa in termini di numero di fotoni nell’unità di tempo. Naturalmente è necessario utilizzare rivelatori sensibili al singolo fotone, come i tubi fotomoltiplicatori, oppure dispostivi a stato solido come i SiPM (fotomoltiplicatori al silicio) o gli SPAD (Single Photon Avalanche Diode).
Oltre ai rivelatori è necessario disporre di una adeguata elettronica veloce di conteggio che sia in grado di acquisire gli impulsi brevi generati dai dispositivi ed in grado di lavorare con alte frequenze di conteggio.
Sono inoltre molto utili funzionalità come :
– conteggio all’interno di una finestra temporale (Time Gated Counting);
– misura temporale (timing) tra un impulso ed il successivo;
– misura del timing tra un impulso di trigger ed il primo impulso ricevuto (start-stop timer);
In questo post andremo a descrivere il “Photon Counter” che abbiamo realizzato in casa, allo scopo di ottenere le funzionalità descritte sopra.
La Scelta del PSoC
Il nostro “Photon Counter” è basato sul componente PSoC. PSoC è la sigla di Programmable System on Chip, ovvero chip che integrano un microcontrollore e dei componenti analogici e digitali a logica programmabile. In questo modo è possibile avere in un singolo chip tutto il necessario per svolgere compiti complessi.
Come per i loro stretti parenti FPGA (i quali sono però limitati ai soli componenti digitali), i tool di sviluppo disponibili permettono di programmare il chip come se si stesse procedendo al disegno di un circuito elettronico, collegando tra loro amplificatori, convertitori, ADC e DAC, filtri, comparatori e quant’altro necessario.
Una volta programmato, il chip si comporta come se fosse un componente hardware a tutti gli effetti. Inoltre, la presenza del microcontrollore permette di integrare una logica sequenziale ed eventualmente anche di riprogrammare le funzioni hardware.
La sigla PSoC è relativa ai circuiti integrati prodotti dalla Cypress Semiconductor. Nella nostra applicazione abbiamo utilizzato il modello PSoC 5LP.
I punti di forza del PSoC sono la facilità di utilizzo e programmazione unita ad una buona dotazione di componenti HW/SW già pronti che si integrano facilmente. La velocità di clock è medio-alta, fino ad un massimo di 80MHz. Nel nostro progetto abbiamo utilizzato un clock base di 40MHz che corrisponde ad un periodo T = 25ns, di questo ne dobbiamo tenere conto per stabilire i limiti massimi di conteggio e di durata temporale degli impulsi in input.
L’immagine sotto mostra l’interno del Photon Counter con la basetta del PSoC 5LP.
Funzionalità ed Interfaccia Con Raspberry Pi
Le funzionalità del Photon Counter sono le seguenti :
- Simple Counter : fa il conteggio degli impulsi e ne calcola rateo (in CPS) e scarto quadratico medio.
- Time Gated Counter : fa il conteggio degli impulsi ricevuti all’interno di una finestra temporale determinata dall’impulso di Gate, il conteggio è abilitato quando l’ingresso di Gate è a livello alto.
- Fast Timer : misura l’intervallo temporale tra un impulso di Trigger ed il primo impulso ricevuto.
- Pulse Interval : misura l’intervallo temporale tra un impulso ed il successivo.
Per realizzare queste funzionalità il dispositivo che abbiamo realizzato ha quindi due ingressi :
– Pulse Input : ingresso per gli impulsi che vengono conteggiati.
– Gate/Trigger Input : ingresso per l’impulso di Gate e per l’impulso di Trigger (utilizzano il medesimo ingresso).
Il Photon Counter ha inoltre display LCD 4×20, tre tasti di controllo e LED di stato.
Nelle modalità di Time Gated Counter, Fast Timer e Pulse Interval, i risultati delle misurazioni vengono trasmessi via interfaccia UART (seriale) ad un Raspberry PI che provvede alla memorizzazione su file dei dati per una successiva elaborazione.
Nella immagine sotto si vede il Photon Counter collegato al Raspberry PI.
Software
Nelle immagini riportate sotto vediamo le parti principali del software caricato sul microcontrollore. Sia per l’ingresso che riceve gli impulsi da acquisire e sia per l’ingresso che riceve l’impulso di trigger, il segnale viene inviato ad un comparatore con isteresi che effettua la comparazione con una soglia predefinita : questo ci permette di ottenere un fronte di salita indipendente dalla ampiezza del segnale in ingresso. Questo segnale, inviato ad un Flip Flop di tipo D, con componenti R e C esterni, ci permette di produrre un impulso con durata fissa di 50ns.
L’impulso di trigger e l’impulso di conteggio vengono inviati al Timer_Trigger il quale, quando il dispositivo è in modalità “Fast Timer” effettua la misurazione dell’intervallo temporale fra questi due impulsi.
Gli impulsi di conteggio e di Gate vengono inviati ai moduli contatori che effettuano conteggio degli impulsi. Il Timer_Pulse fa anche la misurazione degli intervalli temporali fra un impulso e l’altro.
Il diagramma seguente mostra i tre pulsanti (Start/Stop, Control e Reset) ed il segnale Pulse Out. Questo segnale è un impulso positivo da 10ms attivato quando il pulsante di start viene premuto, questo segnale è utile, per esempio, allo scopo di controllare una sorgente di luce esterna (laser di eccitazione).
Nello schema in basso vengono rappresentati i collegamenti fisici con i tre pulsanti (Start/Stop, Controllo e Reset), con il LED di stato e con i segnali in ingresso (Pulse e Gate/Trigger) e di uscita (Pulse Out).
Conclusioni
Il dispositivo realizzato si è dimostrato un apparato versatile ed affidabile. La possibilità di lavorare con il PSoC a frequenze di clock relativamente elevate permette di acquisire segnali impulsivi di breve durata (30ns) a frequenze abbastanza elevate. In un solo dispositivo sono presenti le principali funzionalità di conteggio impulsi e misura di intervalli temporali. Naturalmente ci sono delle limitazioni : gli intervalli temporali che si possono misurare con precisione si collocano più nel range dei microsecondi che nel range dei nanosecondi, per molte applicazioni però questo è più che sufficiente.
Se ti è piaciuto questo articolo puoi condividerlo sui “social” Facebook, Twitter o LinkedIn con i pulsanti presenti sotto. In questo modo ci puoi aiutare ! Grazie !
Donazioni
Se vuoi contribuire allo sviluppo di questo sito ed allo sviluppo di nuove attività sperimentali puoi fare una donazione, Grazie !