wtorek, 18 sierpnia 2020

OpenSPAD


OpenSPAD (Single Photon Avalanche Diode - fotodioda lawinowa do pomiaru pojedynczych fotonów) to otwarty detektor światła, działający na zasadzie zliczania fotonów przez fotodiodę lawinową pracującą w tzw. układzie Geigera z układem aktywnego gaszenia lawiny.

Projekt stworzony został przez elektroników z GaudiLabs [1], jako prosty w wykonaniu detektor zdolny do detekcji pojedynczych fotonów. Zastosowania takich detektorów są ogromne, głównie stosuje się je w nauce - w spektrometrii, mikroskopii, fizyce kwantowej etc. Dzięki temu, że układ ten jest w stanie wykryć pojedynczy foton i dokładnie zlokalizować go w czasie, diody tego typu stosować można także w eksperymentach czasoworozdzielczych, takich jak na przykład TCSPC (Time Correlated Single Photon Counting - czasowo skorelowane zliczanie fotonów) do mierzenia czasów zaniku barwników itp. lub HBT (Hanbury-Brown-Twiss, od nazwisk twórców metody) do korelacji emisji fotonów np. w celu wykrywania źródeł pojedynczych fotonów. O tych metodach bliżej może kiedy indziej. Teraz - kluczowy element - sam detektor fotonów.

Schemat fotodiody z układem wyjściowym
i układem gaszenia przebicia lawinowego
Sercem układu jest fotodioda lawinowa. Jest to chyba jedyny realnie drogi i trudny do zdobycia element całego systemu. Jeszcze nie wybrałem konkretnej diody do modułu, ale jest w czym wybierać - wyspecjalizowane firmy, takie jak Perkin-Elmer, First Sensor czy Hamamatus, produkują szeroki wachlarz tych elementów.

APD to specjalny rodzaj diody, która pracuje powyżej regionu przebicia w polaryzacji zaporowej, w tak zwanym układzie Geigera. W układzie takim dioda jest spolaryzowana zaporowo wysokim napięciem (Vdrive), znajdującym się w regionie przebicia diody. W momencie, gdy w fotodiodę uderza foton, dochodzi do lawinowego wzmocnienia prądu - z uwagi na wysokie pole elektryczne w złączu P-N wygenerowane fotoelektrony są bardzo mocno przyspieszane i wybijają kolejne elektrony. Dzięki zjawisku lawinowemu, APD osiągać może wzmocnienie fotoprądu nawet rzędu miliona.

Sygnał wyjściowy z fotodiody mierzony jest z pomocą szybkiego komparatora TLV3501 (IC2) - w momencie gdy napięcie na R12 jest większe niż VREF wejście przyjmuje stan wysoki. W przypadku projektu OpenSPADa napięcie referencyjne równe jest 2,5 V, co oznacza prąd przebicia równy około 0,5 mA.

Schemat układu do kontroli aktywnego
gaszenia przebicia lawinowego i resetu fotodiody lawinowej
Po wyzwoleniu przebicia lawinowego dioda jest "resetowana" przez układ aktywnego gaszenia (active quenching), pokazany na schemacie. Układ zaczerpnięty jest z literatury [2-5]; jest on kontrolowany przez układ logiczny z liniami opóźniającymi DS1124 (IC7, IC8), które kontrolują czas trwania lawiny i czas resetu układu - gwarantują odpowiednio długi czas impulsu wyjściowego, a jednocześnie dostatecznie dużą "przepustowość" diody (im dłuży czas trwania lawiny i resetu układu, tym mniej fotonów na sekundę układ może wykryć, co jest m.in. przyczyną nieliniowości w działaniu tego rodzaju detektorów). Linie opóźniające IC7 i IC8 sterowane są poprzez interfejs SPI, co pozwala na zmianę czasu trwania impulsów już po złożeniu układu, bez konieczności ingerencji w sprzęt.

Schemat układu generatora napięcia
polaryzacji fotodiody lawinowej
Fotodioda polaryzowana jest relatywnie wysokim napięciem. Fotodiody lawinowe polaryzuje się nawet napięciami dochodzącymi do 1000 V, jednakże w tym układzie nie są one aż tak wysokie. Za  generację i stabilizację napięcia polaryzacji Vdrive odpowiedzialny jest dedykowany układ MAX1932 (IC1) w swojej typowej aplikacji. Układ ten może generować napięcie polaryzacji od 4,5 V do 90 V. Posiada wbudowane zabezpieczenie nadprądowe (opornik R1 do pomiaru prądu) i automatycznie wykrywa wystąpienie przebicia lawinowego. Przetwornica ta kontrolowana jest poprzez interfejs SPI, dzięki czemu możliwe jest programowe zmienianie napięcia polaryzacji diody. Dzięki temu możliwe jest dobranie go do konkretnego egzemplarza APD, celem uzyskania optymalnej czułości i niskiego prądu ciemnego. Jest to o tyle istotne, że wzmocnienie lawinowe, ilościowo, jest uzależnione od wielu czynników, m.in. temperatury samej fotodiody [6-8].

Jeśli już o temperaturze mowa - dioda jest utrzymywana w stałej, relatywnie niskiej temperaturze, przez moduł Peltiera, sterowany z mikrokontrolera. Do pomiaru temperatury przewidziano do zastosowania prosty, scalony sensor temperatury, taki jak LM35, który zintegrowany może być z nią mechanicznie, w celu zapewnienia dobrego kontaktu termicznego. Do sterowania pracą modułu Peltiera wykorzystano zwykły PWM, kluczujący prąd w module. Napięcie dla modułu Peltiera stabilizowane jest lokalnie, tak by dopasować je do konkretnego modułu Peltiera.

Schemat bufora
wyjściowego układu
Wyjście sygnału buforowane jest prze zrównoleglone bramki NAND. Nie zniekształca to sygnału, ani nie dodaje zbędnych opóźnień - bramki te są dosyć szybkie i jedyne co może martwić to rozrzut czasów propagacji, co w tej sytuacji spowodować może nieznaczne poszerzenie impulsu lub zwiększenie szumu fazowego. Tego najpewniej dowiemy się dopiero w praktyce.

Cały system sterowany jest przez moduł Arduino Nano. Odpowiada ono za konfigurację przetwornicy polaryzacji APD i linii opóźniających w module sterowania, a także pomiar temperatury i generowanie sygnału PWM dla modułu Peltiera. Oznacza to konieczność implementacji jakiegoś algorytmu (PID?) w układzie... na Arduino jeszcze tego nie robiłem. Nie powinno to być dużym problemem, ponieważ oprócz tego, Arduino nie będzie musiało zajmować się żadnymi innymi czynnościami w czasie rzeczywistym.

Moduł Arduino wyposażony jest w złącze USB, przez które może łączyć się z komputerem PC (jako wirtualny port COM). Dodatkowo w celu ułatwienia debugowania, na płytce znajdują się cztery diody LED, sterowane bezpośrednio z wyprowadzeń Arduino. Nie wykluczone, że dodam więcej LEDów, jeśli zmieszczą mi się na tylnym panelu - przydadzą się, aby sygnalizować różne rzeczy w czasie pracy urządzenia.

Cały system zasilany jest z zewnętrznego źródła zasilania (około 15 V) z którego stabilizowane są napięcia do zasilania układu. Linie 12 V oraz 5 V, które zasilają logikę diody, układy polaryzacji i gaszenia lawiny oraz moduł Arduino Nano, stabilizowane są z pomocą liniowych stabilizatorów z rodziny MCP1117 (IC3, IC4), a zasilanie dla modułu Peltiera stabilizowane jest przetwornicą impulsową step-down TPS562200 (IC12), gdyż nie wymaga ona tak wysokiej jakości zasilania, by uzasadni stosowanie stabilizatora liniowego (poza tym, moduł Peltiera pobierać może dosyć duży prąd).
Cały schemat implementacji OpenSPADa
Do układu zaprojektowałem płytkę drukowaną, która mieści się w obudowie 1455J1202BK firmy Hammond. Płytka została zaprojektowana w KiCadzie (#newToMe trochę) jako dwuwarstwowe PCB o wymiarach 90 mm x 75 mm (żeby się zmieścić w tanich chińskich PCB 😉). Płytka ma miejsce na montaż diody na PCB, jak i złączę, do jej podłączenie, z czego korzystać będę przy integracji systemu, ponieważ fotodioda znajduje się obok płytki - musi być umieszczona w elemencie chłodzącym i module Peltiera.

Moduł Peltiera (TEC1-12706 póki co) znajduje się w przedniej części obudowy. Na nim zamontowany jest mosiężny uchwyt na fotodiodę lawinową z miejscem do wklejenia termometru (LM35 w obudowie TO-92). Dioda jest zamontowana w otworze ściśniętym śrubą (powyżej diody), a termometr zostanie wklejony na klej termoprzewodzący. Niektóre APD posiadają wbudowane termometry w strukturę (najczęściej w postaci termistora) - w takiej sytuacji do układu pewnie dojdzie mała płytka, przekształcająca sygnał z termistora w sygnał analogowy, taki jak z LM35. Tak samo można zainstalować w systemie termoparę, korzystając z scalonego przetwornika termopary odpowiedniego typu. Gorąca strona modułu Peltiera jest przymocowana do dolnej części obudowy, która pełni rolę radiatora (także dla innych elementów, takich jak np. tranzystor MOSFET kluczujący PWM Peltiera). Docelowy sposób chłodzenia APD i jej montażu uzależniony będzie od tego, jaki moduł zostanie wybrany do realizacji (wykorzystany póki co jest po prostu najpopularniejszym i najtańszym w krajowej sieci dystrybucji).

Oprogramowanie do modułu jeszcze nie powstało. Docelowo napisane zostanie w Arduino IDE (w zupełności wystarczy). Od strony komputera OpenSPAD obsługiwany będzie przez skrypt napisany w LabVIEW. Za zliczanie fotonów (impulsów wyjściowych) odpowiedzialna będzie karta pomiarowa NI w komputerze lub - później - dedykowany system, np. do eksperymentów czasoworozdzielczych.


[1] - http://www.gaudi.ch/GaudiLabs
[2] - Zappa, F., Ghioni, M., Cova, S., Samori, C., & Giudice, A. C. (2000). An integrated active-quenching circuit for single-photon avalanche diodes. IEEE Transactions on Instrumentation and Measurement, 49(6), 1167–1175. doi:10.1109/19.893251 https://sci-hub.tw/10.1109/19.893251)
[3] - Stipčević, M. (2009). Active quenching circuit for single-photon detection with Geiger mode avalanche photodiodes. Applied Optics, 48(9), 1705. doi:10.1364/ao.48.001705   https://sci-hub.tw/10.1364/ao.48.001705
[4] - Dhulla, V. H., Gudkov, G., Gavrilov, D., Stepukhovich, A., Tsupryk, A., Kosobokova, O., … Gorfinkel, V. (2007). Single Photon Counting Module Based on Large Area APD and Novel Logic Circuit for Quench and Reset Pulse Generation. IEEE Journal of Selected Topics in Quantum Electronics, 13(4), 926–933. doi:10.1109/jstqe.2007.903005 https://sci-hub.tw/10.1109/JSTQE.2007.903005
[5] - Zheng, F., Wang, F., Wang, C., Sun, Z., & Zhai, G. (2015). Free-running InGaAs/InP single photon detector with feedback quenching IC. Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment, 799, 25–28. doi:10.1016/j.nima.2015.07.023 https://sci-hub.tw/10.1016/j.nima.2015.07.023
[6] - L. Tirino, M. Weber, K. F. Brennan, E. Bellotti, and M. Goano, “Temperature dependence of the impact ionization coefficients in GaAs, cubic SiC, and zinc-blende GaN,” J. Appl. Phys. 94(1), 423–430 (2003)
[7] - J. Wan, X. Wu and Y. Li, "Temperature Compensation for Gain of Avalanche Photodiode in Laser Gyro," 2008 3rd International Conference on Innovative Computing Information and Control, Dalian, Liaoning, 2008, pp. 407-407, doi: 10.1109/ICICIC.2008.534.
[8] - J. Xie, J. S. Ng and C. H. Tan, "An InGaAs/AlAsSb Avalanche Photodiode With a Small Temperature Coefficient of Breakdown," in IEEE Photonics Journal, vol. 5, no. 4, pp. 6800706-6800706, Aug. 2013, Art no. 6800706, doi: 10.1109/JPHOT.2013.2272776.

Brak komentarzy:

Prześlij komentarz