\chapter{Elettronica di controllo}
\label{app:electronics}

Il sistema elettronico che consente di applicare il ciclo di retroazione
tra la posizione rilevate della microsfera nelle trappole e la posizione di
queste ultime nel campione è reso particolarmente complesso dalla necessità
di operare le correzioni in un tempo estremamente breve, per raggiungere un tempo
di reazione significativamente inferiore al tempo di rilassamento diffusivo
(\SI{100}{\us}, limite inferiore dei tempi di vita osservabili).

Per questo motivo, e per rendere il processo di controllo del ciclo di
retroazione indipendente da eventuali rallentamenti dei computer utilizzati
per il controllo dell'esperimento, si è scelto di utilizzare una scheda FPGA
dedicata.

Una scheda FPGA (\textit{Field Programmable Gate Array}) è un dispositivo
utilizzato in elettronica digitale costituito essenzialmente da una matrice
di \textit{blocchi logici programmabili} interconnessi.
Questi possono essere configurati, in fase di programmazione della scheda,
per eseguire determinate funzioni logiche.
Una volta programmata, la scheda è in grado di eseguire le funzioni logiche
impostate e elaborare segnali proveniente dall'esterno attraverso dei \textit{pin} di input.
Il risultato dell'elaborazione può essere immagazzinati in appositi registri
(code) e letto su richiesta (ad esempio di un computer esterno), oppure
utilizzato per comandare dei \textit{pin} di output presenti sulla scheda.

La programmazione della scheda FPGA consiste nel descrivere e formalizzare
le componenti del circuito logico richiesto e quindi configurare i blocchi
della scheda per \textit{realizzare} le funzioni del circuito integrato
disegnato.

Uno dei principali vantaggi dell'uso di schede FPGA sta nel fatto che il tempo
di esecuzione delle singole operazioni è deterministico e riproducibile tra una
iterazione e all'altra, a differenza di quanto accade nei PC dove l'accesso
di ogni applicazione ai cicli di processore viene controllato da priorità
e schedulatori del sistema operativo.

Per gli scopi di questa tesi è stata programmata una scheda FPGA per leggere
i valori dei fotodiodi a quadrante (da cui si può estrapolare la posizione
relativa delle microsfere rispetto al centro della trappola) e controllare
l'angolo di deflessione dei laser delle trappole (e quindi la loro posizione
nel campione).

Per ottenere questo risultato è stata scelta una scheda prodotta FPGA prodotta
da National Instrument (USB-7855), programmabile attraverso interfaccia USB,
dotata di 48 canali digitali configurabili come output o input e 8 convertitori
analogico-digitali (ADC) integrati.

La logica di funzionamento è stata definita utilizzando l'ambiente di sviluppo
LabVIEW FPGA: questo permette di disegnare sotto forma di diagramma a blocchi
la sequenza di funzioni da applicare sui dati ingresso.
A partire da questo diagramma LabVIEW FPGA è in grado di generare il circuito
logico necessario e descriverlo (secondo le specifiche del linguaggio VHDL).
Un ulteriore passaggio converte il codice VHDL in istruzioni di programmazione
della scheda, che vengono eseguite attraverso la connessione USB.

\begin{figure}[ht]
    \centering
    \includegraphics[width=\linewidth]{images/elettr.pdf}
    \caption{Schema delle connessioni tra fotodiodi a quadrante (QPD), scheda
    FPGA, generatori diretti di segnale (DDS) e deflettori acusto ottici (AOD).}
    \label{fig:elettr}
\end{figure}

Nel nostro caso, il segnale in ingresso è la tensione prodotta dagli
amplificatori dei fotodiodi a quadrante. L'uscita di questi viene
collegata direttamente ai convertitori analogico/digitali dell'FPGA.

La differenza tra il segnale misurato in ingresso e il set-point viene
trasformata, attraverso un fattore di conversione determinato in fase di
calibrazione, in una variazione della frequenza del segnale elettronico
inviato ai trasduttori presenti sui modulatori acusto ottici.

La generazione del segnale elettronico alla frequenza richiesta è
delegata a due generatori digitali di segnale (DDS, Direct Digital
Synthetizer), forniti da Analog Devices (AD9852), in grado di
modificare la frequenza generata a un rate di \SI{100}{\MHz}.

L'impostazione della frequenza sui DDS si esegue attraverso
l'immissione di tre \textit{word} di 8 bit in appositi registri su ciascuna
delle schede utilizzate. Le schede presentano due \textit{bus}, uno per la
selezione dell'indirizzo del registro, uno per la lettura o scrittura
di una \textit{word} nel registro selezionato. Una volta impostati indirizzo e
valori su ciascun \textit{bus} è necessario avviare il trasferimento
della \textit{word} nel registro di memoria interno impostando su ON un
ulteriore pin.

La scheda FPGA, una volta determinata la frequenza da inviare a ciascun
AOD, procede alla programmazione simultanea delle due schede Analog
Devices, inviando in sequenza le tre \textit{word} necessarie e
sincronizzandone il trasferimento nei registri di memoria.

Il massimo rate di aggiornamento della frequenza che siamo riusciti a
raggiungere è inferiore sia a quello supportato dai DDS sia al rate
di esecuzione del ciclo di retroazione sulla FPGA.

Infatti, tentando di comandare i DDS alla massima velocità possibile
supportata dalla FPGA, si è osservata la comparsa di anomalie nel
funzionamento dell'apparato in prossimità di certi valori di frequenza.
Il \textit{debugging} di questa problematica non è stato affatto semplice
e ha richiesto un'analisi precisa del segnale trasportato su ciascun
conduttore del bus tra FPGA e DDS.
In ultima analisi si è rilevato come fenomeni di \textit{diafonia} tra
i vari conduttori presenti sul cavo utilizzato per connettore l'FPGA ai DDS
(cavo fornito da National Instrument) portino ad un allungamento del 
transiente necessario affinché tutti i bit del bus raggiungano il valore
impostato.

Si è quindi dovuto procedere a rallentare la velocità di scrittura
delle singole \textit{word} sui DDS, inserendo un piccolo tempo morto
(nell'ordine dei nanosecondi) tra la scrittura della word e il trasferimento
nel registro di memoria.

In conclusione si è osservata una completa risoluzione dei problemi osservati
con una variazione dei tempi di reazione del sistema ampiamente trascurabile
rispetto al limiti dettati dal rate di campionamento del segnale dei QPD.




