Streszczenie
Red Pitaya i podobne platformy FPGA/ADC/DAC są pomostem między komputerem, oscyloskopem, generatorem, analizatorem widma i własnym przyrządem pomiarowym. Ich wartość w dydaktyce jądrowej nie polega na tym, że zastępują profesjonalny spektrometr, lecz na tym, że pokazują cały tor: próbkowanie, trigger, bufor, FPGA, aplikację i ograniczenia pomiaru.1,2
Najbezpieczniejszy sposób użycia takich platform to praca z sygnałami testowymi, generatorami impulsów o małej amplitudzie, danymi syntetycznymi i niegroźnymi torami elektronicznymi. W tej roli Red Pitaya dobrze uczy czasu martwego, pile-upu, filtracji cyfrowej, FFT, akwizycji okienkowej i synchronizacji, bez potrzeby wchodzenia w pracę z materiałami niebezpiecznymi.3,4
Rozszerzenie tematu
Przyrząd, nie tylko płytka
Typowa płytka mikrokontrolerowa jest głównie kontrolerem. Red Pitaya jest bliższa przyrządowi pomiarowemu: ma szybkie wejścia analogowe, szybkie wyjścia analogowe, układ Zynq łączący procesor ARM i FPGA, Linux, Ethernet oraz gotowe aplikacje. Można ją uruchomić jak mały oscyloskop w przeglądarce, a później zejść głębiej i zmienić logikę FPGA albo aplikację użytkownika.1
To czyni ją dobrym narzędziem dydaktycznym. Student nie dostaje czarnej skrzynki, jak w gotowym oscyloskopie, ale także nie musi od pierwszego dnia projektować płytki z ADC i FPGA. Może zobaczyć:
- sygnał analogowy na wejściu,
- próbkowanie przez ADC,
- buforowanie w pamięci,
- wyzwalanie,
- przetwarzanie w FPGA,
- przesłanie danych do procesora,
- wizualizację w aplikacji.
Właśnie ta przejrzystość jest najważniejsza dla tego serwisu. Dział Elektronika ma tłumaczyć nie tylko gotowe przyrządy, ale też to, co dzieje się między detektorem a liczbą na ekranie.
Co realnie ma Red Pitaya STEMlab 125-14
Klasyczny model STEMlab 125-14 ma dwa szybkie wejścia analogowe, dwa szybkie wyjścia analogowe, przetworniki 14-bit i częstotliwość próbkowania 125 MS/s. Sercem jest Xilinx Zynq 7010, czyli układ łączący procesor ARM z logiką FPGA. Producent pozycjonuje tę platformę jako oscyloskop, generator sygnałowy, analizator widma, analizator Bodego, analizator logiczny, SDR i bazę do własnych aplikacji.1
Te parametry trzeba czytać uczciwie:
| Parametr | Co daje | Czego nie obiecuje |
|---|---|---|
125 MS/s |
próbkę co 8 ns |
wiernego oglądania impulsów 1 ns bez analogowego front-endu |
14 bit |
dobry zakres kwantyzacji w dydaktyce | laboratoryjnej dokładności metrologicznej bez kalibracji |
Zynq 7010 |
FPGA + ARM w jednym układzie | nieograniczonej mocy obliczeniowej |
| Ethernet/Linux | łatwą pracę zdalną | twardego czasu rzeczywistego po stronie aplikacji |
| gotowe aplikacje | szybki start | pełnej kontroli nad każdym etapem bez programowania |
Red Pitaya jest więc świetnym narzędziem do nauki i prototypowania, ale nie należy jej przedstawiać jako zamiennika certyfikowanego toru dozymetrycznego ani profesjonalnego analizatora wielokanałowego. Jej siła polega na połączeniu dostępności, otwartości i wystarczającej szybkości dla wielu ćwiczeń.
Dlaczego 125 MS/s to dużo i mało jednocześnie
Próbkowanie 125 MS/s oznacza odstęp próbek 8 ns. To bardzo dużo dla wolnych przebiegów, filtracji, audio, prostych impulsów i wielu ćwiczeń z akwizycji. To mało, jeśli chcemy bezpośrednio oglądać zbocza subnanosekundowe albo bardzo wąskie impulsy z szybkich torów. Zgodnie z intuicją z artykułu o oscyloskopie, próbka co 8 ns nie wystarczy do wiernego odtworzenia zjawiska trwającego 1 ns.5
W dydaktyce to ograniczenie jest zaletą, bo wymusza właściwe pytania:
- czy mierzymy kształt impulsu, czy tylko jego obecność?
- czy potrzebujemy analogowego układu kształtującego?
- czy wystarczy zliczanie po dyskryminatorze?
- czy sygnał trzeba spowolnić filtracją?
- czy chcemy mierzyć widmo, czas, częstość, czy korelację?
Przykład: surowy, bardzo szybki impuls z detektora może być zbyt wąski dla bezpośredniego próbkowania. Ale jeśli przed Red Pitaya stoi bezpieczny, niskoenergetyczny tor kształtujący albo generator impulsów testowych, platforma może bardzo dobrze pokazać efekty pile-upu, zmianę linii bazowej i wpływ czasu kształtowania.
Architektura ćwiczenia radiometrycznego
Bezpieczne ćwiczenie z Red Pitaya nie musi używać źródła promieniotwórczego. Można użyć generatora impulsów albo pliku z syntetycznymi danymi. Typowa architektura:
- generator tworzy impulsy o regulowanej amplitudzie i częstości,
- wejście ADC próbuje je rejestrować,
- FPGA albo aplikacja wykrywa przekroczenie progu,
- dane trafiają do bufora,
- aplikacja liczy częstość, histogram amplitud i odstępy między impulsami,
- student zwiększa częstość i obserwuje pile-up oraz utratę zdarzeń.
To ćwiczenie odtwarza istotę toru radiometrycznego bez pracy z niebezpiecznym materiałem. Student widzi, że licznik nie mierzy „promieniowania” wprost. Mierzy impulsy przetworzone przez elektronikę i algorytmy. Jeśli algorytm nie rozróżnia dwóch nakładających się impulsów, wynik jest zaniżony albo zniekształcony.3,4
Red Pitaya jako oscyloskop dydaktyczny
Gotowa aplikacja oscyloskopu jest najprostszym wejściem. Pokazuje podstawowe pojęcia:
- próbkowanie,
- zakres pionowy,
- trigger,
- okno czasu,
- aliasing,
- FFT,
- zapis danych.
W porównaniu z klasycznym oscyloskopem edukacyjnym Red Pitaya ma zaletę otwartego środowiska: można z tego samego urządzenia pobrać dane do Pythona, zapisać je, przetworzyć i porównać z własnym algorytmem. To bardzo dobre do ćwiczeń z błędów pomiaru. Student może zobaczyć, jak zmiana progu triggera albo okna FFT zmienia wynik, zamiast traktować wykres jak prawdę absolutną.
Cyfrowe Przetwarzanie Sygnałów (DSP) na platformie FPGA
Jedną z największych zalet platformy z FPGA jest możliwość implementowania algorytmów DSP w sprzęcie, a nie w oprogramowaniu. Różnica między „DSP w sprzęcie" a „DSP w Pythonie na CPU" jest kluczowa dla aparatury czasu rzeczywistego:
Python na CPU (ARM Cortex-A9 w Zynq, 666 MHz):
- Latencja: ~10 μs do dziesiątek ms (zależnie od jądra Linux, przerwań, pamięci cache)
- Przetwarzanie: sekwencyjne (jeden rdzeń na raz, ze schedulingiem Linux)
- Użyteczne dla: histogramów po fakcie, interfejsów użytkownika, komunikacji sieciowej
FPGA (PL w Zynq):
- Latencja: 1–20 cykli zegarowych = 8–160 ns przy zegarze 125 MHz
- Przetwarzanie: równoległe (każdy element FPGA działa jednocześnie)
- Użyteczne dla: triggerów, formowania impulsów, liczników, generacji znaczników czasu
Przykład w kontekście akwizycji detekcji gamma: gdy foton trafi w scyntylator NaI(Tl) i pojawi się impuls na wejściu ADC, FPGA może w ciągu 20 ns:
- wykryć przekroczenie progu (komparator w PL),
- zapisać znacznik czasu z rozdzielczością 8 ns,
- zapoczątkować okno akwizycji 2 μs,
- zebrać 250 próbek (2 μs / 8 ns),
- przekazać do ARM przez DMA.
W tym czasie ARM mógłby ledwo wyjść z obsługi przerwania. FPGA nie ma tego problemu: wszystkie operacje są deterministyczne i synchroniczne z zegarem.
W dydaktyce warto to pokazać konkretnie: zaimplementuj próg w FPGA i sprawdź, czy fałszywe wyzwolenia zachowują się zgodnie z teorią Poissona. Zmień próg i obserwuj zmianę częstości false-positive. Porównaj z implementacją progu w Pythonie z pollingiem na DMA.
Synchronizacja i wielokanałowe systemy
Jednym z trudniejszych zagadnień platformy FPGA/ADC jest synchronizacja wielu kanałów. Red Pitaya ma dwa wejścia synchroniczne (wspólny zegar ADC), ale w eksperymentach z wieloma modułami synchronizacja staje się problemem systemowym:
Wewnętrzna synchronizacja (jeden moduł): Oba kanały ADC Red Pitaya korzystają z tego samego zegara próbkowania 125 MHz, więc próbki z kanału 1 i kanału 2 są zbierane jednocześnie (z precyzją jednego cyklu zegarowego = 8 ns). Skew między kanałami jest najczęściej determinowany przez różnice długości tras analogowych i kalibrację — producent podaje skew < 1 ns między kanałami.
Zewnętrzna synchronizacja (wiele modułów): Red Pitaya ma wyjście/wejście zegara zewnętrznego (SMA), co pozwala na synchronizację kilku płytek. W typowej konfiguracji jeden moduł jest masterem (generuje zegar 125 MHz), a pozostałe są slave (odbierają i synchronizują PLL do zewnętrznego zegara). Osiągalne jittery zegara między modułami: ~100–500 ps — wystarczające dla koincydencji z detektorem scyntylacyjnym, niewystarczające dla LYSO PET.
Protokoły synchronizacji: W profesjonalnych systemach White Rabbit (WR) lub IEEE 1588 PTP zapewniają synchronizację sub-nanosekundową przez sieć Ethernet. White Rabbit jest rozwinięciem przez CERN do < 1 ns dokładności synchronizacji. Systemy DAQ dla LHCb, Belle II i GSI FAIR używają WR jako sieci distribucji zegara. Red Pitaya nie implementuje WR natywnie, ale istnieją projekty open-source dodające tę funkcję.
Koincydencje w dydaktyce: Nawet bez White Rabbit, dwa zsynchronizowane moduły Red Pitaya mogą demonstrować pomiar koincydencji. Programując okno koincydencji w FPGA (np. ±100 ns) i analizując parę kanałów z dwóch scyntylatorów z tym samym generatorem pulserów jako wspólnym „źródłem", można ćwiczyć koncepcję okna koincydencji i tła losowego.
Aplikacje w spektrometrii gamma — od pomysłu do implementacji
Pełny cyfrowy spektrometr gamma na bazie Red Pitaya obejmuje kilka kroków, z których każdy można ćwiczyć niezależnie:
Krok 1: Front-end analogowy. Sygnał z fotopowielacza (PMT) ma amplitudę kilkudziesięciu do kilkuset mV i czas narastania 5–30 ns. Bezpośrednie podłączenie do Red Pitaya jest ryzykowne (zbyt krótki impuls dla 125 MS/s, możliwy przesterowanie). Opcje:
- Gotowy przedwzmacniacz ładunku (ORTEC, Canberra) → kształtowacz analogowy CR-RC → Red Pitaya
- Integrator wąskopasmowy → Red Pitaya (chwyta sumę ładunku impulsu PMT)
- Niskonapięciowy kształtowacz własny (100 ns peaking, 500 ns flat-top) → Red Pitaya
Krok 2: Próbkowanie i detekcja. FPGA wykrywa przekroczenie progu (rising edge), zapisuje znacznik czasu, zbiera okno 100–1000 próbek.
Krok 3: Ekstrakcja energii. Z okna próbek ARM oblicza całkę (dla sumowania ładunku) lub wartość szczytową (dla amplitudy szczytu) lub stosuje algorytm trapezoidalny. Każda metoda daje nieco inną rozdzielczość energetyczną.
Krok 4: Histogram. ARM buduje histogram wartości energii w N kanałach (np. 4096). Histogram jest aktualizowany przy każdym zdarzeniu.
Krok 5: Wyświetlanie i analiza. Przeglądarka pokazuje histogram z kalibrowaną osią energii (kalibracja za pomocą znanych linii Cs-137 662 keV, Co-60 1173/1333 keV). Python/NumPy/Matplotlib realizują dopasowanie gausów do linii i obliczanie rozdzielczości FWHM.
Pełna implementacja takiego systemu jest bardzo dobrym projektem semestralnym dla studenta fizyki jądrowej lub inżynierii biomedycznej. Nie wymaga źródeł izotopowych do testów — na etapie weryfikacji algorytmu wystarczy generator impulsów z precyzyjnie ustawioną amplitudą.
Pulse Shape Discrimination (PSD) — rozróżnianie typów promieniowania
Jeden z najważniejszych algorytmów DPP w spektrometrii to PSD (Pulse Shape Discrimination). W scyntylatorach ciekłych (stilbene, EJ-301, BC-501A) lub plastycznych scyntylatorach organicznych, kształt impulsu różni się dla neutronów i fotonów gamma ze względu na różnicę w mechanizmie wzbudzenia molekuły scyntylatora:
- Elektrony szybkie (gamma): dominuje szybka fluorescencja (t ≈ 2–4 ns)
- Cząstki ciężkie (protony z neutronów): dominuje wolna fosforescencja (t ≈ 50–300 ns)
Algorytm PSD w FPGA lub jako post-processing:
- Zbierz okno 500–1000 próbek (całe widmo czasowe impulsu)
- Oblicz sumę próbek w "early" oknie (pierwszych 20–30 ns) →
Q_fast - Oblicz sumę próbek w "late" oknie (30–300 ns) →
Q_slow - Parametr PSD:
PSD = Q_slow / (Q_fast + Q_slow)lubQ_slow / Q_total - Scatter plot (Q_total, PSD) shows two klastry: n i γ
Red Pitaya z próbkowaniem 125 MS/s (próbka co 8 ns) ma wystarczającą rozdzielczość dla tej metody dla impulsów > 300 ns. Dla krótszych scyntylatorów (LYSO, LaBr3) potrzeba szybszego ADC (500 MS/s+).
Ćwiczenie PSD na danych syntetycznych: wygenerować dwa typy impulsów (krótki i długi ogon) z dodanym szumem gaussowskim, przetworzyć algorytmem PSD i wyznaczyć Figure-of-Merit (FOM) separacji:
FOM = (μ_n - μ_γ) / (FWHM_n + FWHM_γ)
gdzie μ to środek klastra, FWHM to szerokość. FOM > 1 oznacza dobrą separację.
TCSPC — zliczanie fotonów z rozróżnianiem czasu
TCSPC (Time-Correlated Single Photon Counting) to technika używana w spektroskopii fluorescencyjnej, diagnostyce medycznej (PET, fNIRS) i fizyce jądrowej do mierzenia rozkładu czasów opóźnienia. Prosta implementacja na platformie FPGA:
- Impuls wyzwalający (laser, sygnał synchronizacyjny) → znacznik czasu T_start
- Impuls z fotopowielacza (pojedynczy foton lub impuls) → znacznik czasu T_stop
- Różnica: ΔT = T_stop - T_start → jedno zdarzenie w histogramie czasów
- Po N zdarzeń: histogram ΔT odpowiada rozkładowi czasu zaniku fluorescencji lub inna funkcja zaniku
Na Red Pitaya (8 ns kwant czasu) rozdzielczość TCSPC jest ograniczona do ~8 ns FWHM (rozrzut wynikający z dyskretyzacji + jitter). To wystarczy dla czasów zaniku > 50 ns (np. NaI(Tl): τ ≈ 250 ns, powolne scyntylatory organiczne).
Szybsze systemy TCSPC (PicoQuant, Becker & Hickl) osiągają 4–100 ps rozdzielczości dzięki interpolacji analogowej między próbkami i specjalnemu FPGA. Te systemy są stosowane np. w diagnostyce PET dla scyntylatora LYSO (τ ≈ 36 ns), gdzie rozdzielczość pikosekundowa ma znaczenie dla rozdzielczości czasowej systemu PET.
Generator i odpowiedź toru
Dwa szybkie wyjścia analogowe pozwalają tworzyć sygnały testowe. W bezpiecznej dydaktyce jądrowej można generować:
| Sygnał | Czego uczy |
|---|---|
| impuls prostokątny | trigger, próbkowanie, czas narastania ograniczony torem |
| impuls wykładniczy | model odpowiedzi przedwzmacniacza |
| seria impulsów Poissona | statystyka zliczeń i pile-up |
| sinusoida | FFT, aliasing, rozdzielczość częstotliwościowa |
| szum + impuls | progi dyskryminacji i fałszywe zliczenia |
Najbardziej wartościowe są sygnały, których prawdę znamy z definicji. Jeśli sami generujemy syntetyczną serię impulsów, wiemy, ile zdarzeń powinno zostać wykrytych. Możemy więc policzyć czułość, fałszywe alarmy i utratę zdarzeń. To jest dokładnie logika dobrego ćwiczenia z metrologii: nie tylko pokazać przebieg, ale sprawdzić algorytm wobec znanej prawdy.
FPGA w środku
Red Pitaya ma tę przewagę nad zwykłą kartą dźwiękową albo prostym oscyloskopem USB, że wewnątrz ma FPGA. To oznacza, że część operacji może odbywać się deterministycznie, przed przesłaniem danych do Linuksa:
- decymacja próbek,
- prosta filtracja,
- detekcja progu,
- liczniki impulsów,
- generacja markerów,
- ring buffer,
- synchronizacja wejścia i wyjścia.
Linux po stronie ARM jest wygodny, ale nie jest idealnym systemem czasu rzeczywistego. Dlatego rzeczy krytyczne czasowo powinny zostać w FPGA. Procesor może konfigurować parametry, pobierać wyniki, rysować wykresy i zapisywać pliki. Ta separacja jest dobrym modelem dla całej nowoczesnej aparatury: szybka logika robi czas, komputer robi interpretację.2,6
Modułowość: kiedy potrzebny jest front-end
Red Pitaya nie jest detektorem promieniowania. Jest platformą akwizycji/generacji. Żeby mierzyć realny detektor, potrzebny jest front-end dopasowany do detektora: zasilanie, przedwzmacniacz, kształtowanie impulsu, filtracja, ochrona wejścia i kalibracja. Bez tego można łatwo uszkodzić wejście albo otrzymać przebieg, który wygląda naukowo, ale nie ma sensu metrologicznego.7
Dlatego w serwisie najlepiej pokazywać trzy poziomy użycia:
| Poziom | Co robimy |
|---|---|
| syntetyczny | pliki danych albo generator sygnałów bez detektora |
| elektroniczny | niskoamplitudowy tor testowy, impulsy z generatora, filtry |
| radiometryczny | tylko w pracowni, przez gotowy front-end i zgodnie z procedurami |
Taki podział jest bezpieczny i uczciwy. Nie udaje, że Red Pitaya jest kompletnym spektrometrem. Pokazuje, gdzie kończy się platforma, a zaczyna specjalistyczna aparatura radiometryczna.
Przykładowe ćwiczenia dla tego serwisu
Najlepsze ćwiczenia z Red Pitaya powinny być powtarzalne i oparte na jawnych danych.
| Ćwiczenie | Forma |
|---|---|
| czas martwy | syntetyczna seria impulsów i licznik utraconych zdarzeń |
| FFT i aliasing | sinusoida o regulowanej częstotliwości |
| baseline restoration | impulsy na tle dryfu linii bazowej |
| pile-up | dwa impulsy o zmiennym odstępie |
| próg dyskryminacji | szum + impulsy o różnych amplitudach |
| histogram amplitud | generowane impulsy z rozrzutem Gaussa |
| okno pomiarowe | trigger i ring buffer przed/po zdarzeniu |
Każde z tych ćwiczeń da się wykonać bez źródeł promieniotwórczych. A gdy w przyszłości pojawi się pracownia z legalnymi źródłami dydaktycznymi, te same algorytmy można zastosować do realnych danych, pod nadzorem i z właściwą dokumentacją.
Dekompozycja ćwiczenia na warstwy — dydaktyka step-by-step
Najlepszy sposób użycia Red Pitaya w dydaktyce jądrowej to warstwy — od prostego do złożonego, przy czym każda warstwa dodaje jeden nowy element i pozwala go zrozumieć zanim przejdziemy do następnej.
Warstwa 0: Przeglądarka i obserwacja. Studenci uruchamiają aplikację oscyloskopu w przeglądarce, podłączają do wejścia generator funkcyjny na małej amplitudzie (100 mV), oglądają przebieg sinusoidalny i zmieniają czas trwania, amplitudę, częstotliwość. Cel: zrozumienie próbkowania, zakresu pionowego i poziomego.
Warstwa 1: Generowanie i obserwacja impulsów. Wyjście generatora Red Pitaya podłączone do wejścia ADC. Generujemy impulsy prostokątne 1 kHz z amplitudą 100 mV i szerokością 1 μs. Obserwujemy próbkowanie impulsu (ile próbek mieści się w impulsie 1 μs przy 125 MS/s? odpowiedź: 125 próbek). Liczymy ręcznie impulsy przez 10 sekund.
Warstwa 2: Czas martwy i pile-up. Zwiększamy częstotliwość impulsów do 100 kHz, potem 500 kHz, potem 1 MHz. Ćwiczenie: ile impulsów gubi algorytm detekcji progu przy danym czasie martwym? Porównujemy z modelem paralizable/non-paralizable.
Warstwa 3: Histogram amplitud. Zmieniamy amplitudę impulsów na gaussowy rozkład (generator z modulacją amplitudy lub plik syntetyczny). Implementujemy histogram w Pythonie i dopasowujemy gauss. Ćwiczenie: jak szerokość piku histogramu zależy od szumu ADC, jittera i algorytmu ekstrakcji amplitudy?
Warstwa 4: FFT i identyfikacja zakłóceń. Aplikujemy FFT na ciągłym sygnale z ADC. Identyfikujemy harmoniczne z zasilacza (50 Hz i harmoniczne), zegar FPGA (125 MHz i subharmoniczne) i zakłócenia zewnętrzne. Ćwiczenie: zaizoluj wejście ADC i sprawdź widmo szumu własnego. Oblicz SNR dla typowego impulsu z NaI.
Warstwa 5: Projekt własnego modułu FPGA. Dla zaawansowanych studentów: modyfikacja bitstreamu FPGA w Vivado. Dodajemy prosty licznik impulsów z progiem, który aktualizuje rejestr odczytywalny z Linuksa przez AXI. Ćwiczenie: zmierz czas martwego sprzętowo, porównaj z estymacją softwarową.
Taka stopniowa architektura jest sprawdzona w pedagogice: każdy krok buduje na poprzednim, żaden krok nie wymaga gotowej wiedzy z następnych etapów.
Porównanie z komercyjnymi spektrometrami: co Red Pitaya robi a czego nie
Komercyjny spektrometr gamma jak ORTEC digiBASE lub CAEN DT5780 ma certyfikowane oprogramowanie, kalibrowaną nielinearność ADC, wbudowany zasilacz HV, kalibrację energetyczną NIST-traceable i wsparcie techniczne. Taki przyrząd jest "narzędziem pomiaru" w sensie metrologicznym.
Red Pitaya jako spektrometr gamma to narzędzie badawczo-dydaktyczne. Jest użyteczne dla:
- Ćwiczeń laboratoryjnych z syntetycznymi danymi
- Prototypowania algorytmów DPP
- Demonstracji zasad spektrometrii
- Projektów studenckich z własnym front-endem
- Tanich jednorazowych pomiarów środowiskowych (nie certyfikowanych)
Nie jest użyteczne dla:
- Pomiarów wymagających certyfikatu (dozymetria, monitoring)
- Aplikacji wymagających MDA < 0,1 Bq/l
- Identyfikacji izotopów z FWHM < 3% przy 662 keV
Ta granica nie jest wadą Red Pitaya — to właściwa specyfikacja narzędzia. Dobry inżynier zna zakres stosowalności swoich przyrządów.
Synergia Red Pitaya z innymi artykułami serwisu
Platforma FPGA+ADC jest naturalnym centrum konwergencji wielu tematów opisywanych w dziale Elektronika:
- Czas martwy i pile-up — implementacja modeli paralizowalnych i nieparalizowalnych w FPGA, weryfikacja na danych syntetycznych
- Statystyka zliczeń — generowanie syntetycznych serii Poissona, estymacja χ² i wykrywanie odchyleń od Poissona
- Koincydencje i CTR — dwa kanały z generatorem wspólnym, pomiar okna koincydencji i tła przypadkowego
- Jitter i synchronizacja zegarów — obserwacja jittera wewnętrznego Red Pitaya przez self-trigger, porównanie jitter PLL i TCXO
- Oscyloskop nanosekundowy — Red Pitaya jako tani oscyloskop, ograniczenia pasma i próbkowania vs. impuls detektora
- Projektowanie PCB — co to znaczy zintegrować front-end detektora z ADC Red Pitaya na jednej płytce
Dla studenta przygotowującego pracę magisterską z fizyki eksperymentalnej taka platforma daje możliwość zbudowania kompletnego łańcucha od detektora przez przetwornik po histogram — i zrozumienia każdego elementu tego łańcucha w sposób, jakiego gotowy miernik nie pozwala. Metoda budowania od zera jest bardziej czasochłonna niż gotowe oprogramowanie, ale daje wiedzę, którą nie da się nabyć inaczej — wiedzę o tym, gdzie powstaje każda liczba w wyniku pomiaru.
Podsumowanie dydaktyczne
Red Pitaya i podobne platformy SoC z FPGA reprezentują demokratyzację aparatury fizyki jądrowej: to samo, co przez dekady wymagało stanowiska NIM za kilkadziesiąt tysięcy dolarów i specjalistycznej obsługi, można dziś zrealizować na płytce za kilkaset złotych i w projekcie studenckim. Warunkiem jest jednak zrozumienie ograniczeń: pasma analogowego, szybkości próbkowania, szumu ADC, latencji Linuksa i wymagań kalibracji.
Najważniejsza lekcja jest ta sama, co w całym naszym dziale Elektronika: przyrząd jest zawsze systemem, a nie tylko zestawem komponentów. Front-end, ADC, FPGA, oprogramowanie i algorytm razem definiują, co zostaje zmierzone. Zrozumienie każdego elementu z osobna i ich wzajemnych zależności jest celem kształcenia inżyniera fizyki jądrowej. Dlatego platforma otwarta — taka, w której można ingerować na każdym poziomie — jest bardziej wartościowa dydaktycznie niż gotowy, zaplombowany spektrometr, nawet jeśli ten ostatni daje formalnie lepsze wyniki metrologiczne. Oba typy narzędzi mają swoje miejsce: gotowy przyrząd w laboratorium certyfikacyjnym, platforma otwarta w laboratorium edukacyjnym.
RF, SDR i pomiary częstotliwościowe
W materiałach źródłowych pojawia się także wariant RF/SDR z pasmem radiowym, konwersją i parametrami takimi jak zakres częstotliwości, przepływność ADC/DAC i dokładność wzorca częstotliwości.2 Dla tego serwisu jest to interesujące pobocznie, bo wiele systemów monitoringu i synchronizacji korzysta z radiotechniki: GPSDO, SDR, detekcja widm radiowych, zegary odniesienia, łącza telemetryczne.
Nie należy jednak mieszać dwóch rzeczy. Red Pitaya STEMlab 125-14 jako platforma ADC/DAC do ćwiczeń czasowych to jedno. Warianty RF/SDR z mieszaczami, lokalnym oscylatorem i parametrami radiowymi to osobna aparatura. W artykułach warto je łączyć przez wspólną ideę: FPGA + przetworniki + zegar + komputer, ale nie udawać, że każdy model robi to samo.
Historia cyfrowego przetwarzania impulsów w fizyce jądrowej
Platformy takie jak Red Pitaya są pochodną długiej ewolucji akwizycji danych w fizyce jądrowej. Warto znać tę historię, bo wyjaśnia ona, dlaczego architektura FPGA+ADC+komputer jest standardem — i jaką drogę pokonały laboratoryjne systemy detekcji od analogowych „klocków" NIM do modularnych systemów cyfrowych.
Lata 60-te: standardy NIM i CAMAC. Nuclear Instrumentation Module (NIM) i Computer Automated Measurement and Control (CAMAC) były próbą standaryzacji modułów elektronicznych w laboratoriach jądrowych. Moduły NIM (zasilacze, wzmacniacze, dyskryminatory, bramki, scalery, TDC, ADC) mogły być składane w konfiguracje dla konkretnych eksperymentów. CAMAC dodawał możliwość komputerowego odczytu przez interfejs magistrali. To był przełom: dane nie musiały być odczytywane ręcznie z mierników ani zapisywane na papierze.
Lata 80-te: VMEbus i procesory TMS. VME (Versa Module Europa) zastąpił CAMAC jako standardowa magistrala dla szybszych systemów. Procesory sygnałowe TMS320 (Texas Instruments) pozwoliły na cyfrowe przetwarzanie impulsów w czasie rzeczywistym: cyfrowe kształtowanie (digital pulse shaping), ekstrakcja energii i filtry numeryczne mogły zastąpić analogowe scalone moduły kształtujące.
Lata 90-te: DPP (Digital Pulse Processing). Producenci jak CAEN, Mesytec, Struck, i4S zaczęli oferować moduły cyfrowe z ADC 12–14-bit i FPGA do przetwarzania impulsów. DPP-PSD (Pulse Shape Discrimination) pozwala FPGA na rozróżnianie impulsów różnych kształtów (np. gamma vs neutron w scyntylatorze ciekłym) przez analizę pola impulsu w dwóch oknach czasowych — bez analogowej elektroniki dyskryminacji.
Lata 2000-te: oprogramowanie MCA na PC. Wielokanałowe analizatory amplitudy (MCA) przeżyły ewolucję z dedykowanego sprzętu przez karty ISA/PCI do oprogramowania na zwykłym PC z kartą USB lub PCI-Express do akwizycji. Programy jak Genie 2000, Amptek MCA8000, MAESTRO, ORTEC 905-PC stały się standardem w laboratoriach radiometrycznych i dydaktycznych.
Lata 2010-te i dalej: SoC i platformy otwarte. Xilinx Zynq i Intel Cyclone/Stratix z wbudowanym procesorem ARM zdemokratyzowały FPGA: nie trzeba już osobnego komputera z driverem, bo CPU i FPGA są na jednym chipie z dostępem do RAM. Red Pitaya, Digilent Zybo, ZedBoard, Avnet Mercury+ i setki podobnych platform pozwoliły studentom i małym grupom badawczym mieć laboratoryjny przyrząd za ułamek ceny systemu NIM.
Dziś: w eksperymentach dużego wymiaru (LHC, Belle II, sPHENIX) systemy DAQ pobierają petabajty danych rocznie przy prędkościach terabit/sekunda. FPGA są sercem triggerów o latencji poniżej mikrosekund, a systemy chmurowe przetwarzają dane dalej. Red Pitaya jest na przeciwległym końcu tej skali, ale mechanizmy — FPGA, ADC, przesyłanie danych, interpretacja impulsów — są te same.
Architektura Zynq — co łączy PS i PL
Xilinx Zynq-7000 (używany w Red Pitaya) to SoC (System on Chip) łączący PS (Processing System, czyli ARM Cortex-A9 dual-core) z PL (Programmable Logic, czyli FPGA). Komunikacja między nimi odbywa się przez AXI (Advanced eXtensible Interface), czyli magistralę o przepustowości kilkudziesięciu GB/s.
Processing System (PS):
- ARM Cortex-A9, 666–1000 MHz
- Cache L1/L2
- DDR3/DDR3L RAM (512 MB w Red Pitaya)
- USB, Ethernet, UART, I2C, SPI, GPIO
- Linux (Buildroot lub Ubuntu) z jądrem skompilowanym pod Zynq
Programmable Logic (PL):
- Siatka CLB (Configurable Logic Block) — Zynq 7010 ma 28 tys. LUT
- DSP slices — zoptymalizowane dla mnożeń i akumulacji sygnałów
- Block RAM — wewnętrzna pamięć szybka
- I/O Bank — wyjścia cyfrowe i wejścia analogowe (przez XADC)
- Programowany w HDL (VHDL, Verilog) lub przez narzędzia wysokiego poziomu
Typowy podział pracy w aparaturze jądrowej na Zynq:
| Zadanie | Gdzie | Dlaczego |
|---|---|---|
| Akwizycja ADC, próbkowanie | PL | deterministyczny timing co cykl zegara |
| Detekcja progu, trigger | PL | latencja poniżej mikrosekund |
| Bufor cykliczny | PL (Block RAM) | szybki dostęp bez arbitrażu |
| Filtracja, DPP, FFT online | PL (DSP) | równoległe przetwarzanie próbek |
| Przesłanie do RAM | DMA przez AXI | duży blok danych naraz |
| Analiza, histogram, display | PS (ARM) | wygodne API, Python, web |
| Interfejs użytkownika | PS | Ethernet, przeglądarka, Python |
Ten podział jest modelem generalnym: krytyczna czasowo część w logice (FPGA), wygodna interpretacja w oprogramowaniu (CPU).
Porównanie platform: Red Pitaya vs inne systemy
| Platforma | ADC | FPGA | Zastosowanie główne | Cena |
|---|---|---|---|---|
| Red Pitaya STEMlab 125-14 | 2×14-bit 125MS/s | Zynq 7010 | dydaktyka, SDR, oscyloskop | ~300–400 EUR |
| Digilent Analog Discovery 2 | 2×14-bit 100MS/s | FPGA (SparQ) | edukacja, LabView | ~300 EUR |
| CAEN DT5724 | 4×14-bit 100MS/s | Virtex-5 | DPP-PSD w spectrometrii | ~10 000 EUR |
| CAEN N6724 | 8×14-bit 100MS/s | Virtex-5 | NIM w spektrometrii, DPP | ~15 000 EUR |
| Struck SIS3305 | 8×10-bit 5GS/s | Virtex-5 | szybkie koincydencje | ~40 000 EUR |
| NI FlexRIO (PCIe-7966) | zmienny | Virtex-5 | industrial DAQ | ~10 000+ EUR |
Red Pitaya jest najtańszą platformą z tej listy i ma najniższe parametry. Ale ma kompletne środowisko (Linux, Ethernet, web UI, Python SDK) i aktywną społeczność. CAEN i Struck to standard dla laboratoryjnych i komercyjnych systemów DAQ w fizyce jądrowej — zbyt drogie dla studenta, ale warto wiedzieć, że istnieją i jak się różnią.
Cyfrowe przetwarzanie impulsów — algorytm trapezoidalny
Jednym z kluczowych algorytmów DPP jest kształtowanie trapezoidalne (trapezoidal shaping). Zastępuje ono analogowy filtr kształtujący (CR-RC^n) przetwarzaniem numerycznym w FPGA lub DSP.
Idea: impuls z preamplifikatora ładunku ma kształt skoku napięcia z powolnym opadaniem (τ_feedback kilkuset mikrosekund). Algorytm trapezoidalny transformuje ten impuls na trapez o zdefiniowanych zboczach (peaking time k) i plateau (flat top p). Wartość plateau proporcjonalna jest do energii zdarzenia.
Uproszczona implementacja w FPGA:
Filtr trapezoidalny:
d[n] = x[n] - x[n-k] - x[n-m] + x[n-m-k]
gdzie: k = peaking time (liczba próbek)
m = flat top (liczba próbek)
Wersja dokładna uwzględnia korekcję chwilowego zaniku preamplifikatora (pole-zero cancellation) i kompensację linii bazowej. Ale nawet uproszczona wersja w FPGA z 14-bitowym ADC 125 MS/s Red Pitaya daje wyniki porównywalne z analogowymi kształtowaczami dla impulsów z NaI(Tl) lub HPGe — jeśli pas analogowy jest wystarczający.
Dlaczego to ważne dla dydaktyki? Bo uczy, że „analizator wielokanałowy" to nie jest magiczne urządzenie. To algorytm działający na liczbach z przetwornika. Implementacja w Pythonie na danych z Red Pitaya pozwala studentowi zobaczyć każdy krok: kształtowanie, wykrycie piku, histogram — i zrozumieć, co zmienia peaking time, flat top i próg dyskryminacji.
Polska perspektywa — platformy FPGA w aparaturze jądrowej
Instytut Fizyki Jądrowej PAN w Krakowie (IFJ PAN) w ramach uczestnictwa w eksperymentach LHC (ATLAS, CMS) rozwijał własne karty DAQ z FPGA. Specyficzną kompetencją IFJ PAN jest elektronika tylna (backend electronics) systemów triggerujących, w tym konwertery czasowo-cyfrowe (TDC) i systemy synchronizacji subnanosekundowej.
Akademia Górniczo-Hutnicza w Krakowie (AGH) — Katedra Elektroniki — prowadzi badania nad cyfrowymi spektrometrami gamma z FPGA, w tym nad implementacją algorytmów DPP dla HPGe i scyntylatorów. Prace magisterskie i doktorskie z tej dziedziny obejmują zarówno implementację na platformach komercyjnych (CAEN) jak i na otwartych (Xilinx eval boards).
Politechnika Krakowska i Wrocławska mają dobrze wyposażone laboratoria systemów wbudowanych z FPGA (Xilinx i Intel), gdzie studenci uczą się projektowania systemów SoC. Zynq-7000 jest standardowym chipem ćwiczeniowym w zajęciach z cyfrowego przetwarzania sygnałów.
Centrum Fizyki Teoretycznej PAN i Instytut Problemów Jądrowych (IPJ, obecny NCBJ) uczestniczyły w projektowaniu elektroniki odczytu scyntylatorów PET i SPECT. Nowoczesne skanery PET-MRI wymagają multipleksowanej akwizycji tysięcy kanałów z FPGA — co jest bezpośrednio powiązane z technikami opisywanymi w tym artykule.
Numeryczne przykłady dla dydaktyki
Przykład 1: Strumień danych ADC a pojemność pamięci
Red Pitaya STEMlab 125-14:
- Szybkość próbkowania: 125 MS/s per kanał
- Rozdzielczość: 14 bitów = 2 bajty per próbka
- Liczba kanałów: 2
- Strumień surowych danych:
2 kanały × 125 MS/s × 2 bajty = 500 MB/s
Ethernet 1G (GbE): przepustowość nominalna 125 MB/s, efektywna ≈ 100 MB/s.
Wniosek: ciągły transfer danych z 125 MS/s jest niemożliwy przez 1GbE. Konieczna jest decymacja w FPGA lub akwizycja okienkowa (trigger + bufor).
Przykładowe rozwiązanie: trigger przy przekroczeniu progu, bufor 4096 próbek (4096 × 2 bajty = 8192 bajtów ≈ 8 kB), czas okna 4096/125 000 000 = 32,7 μs. Przy zliczaniu impulsów 10 kHz (10 000 na sekundę) każde zdarzenie z buforem 8 kB daje strumień 10 000 × 8 kB/s = 80 MB/s — nadal dużo, ale porównywalnym z 100 MB Ethernet. Przy 1 kHz: 8 MB/s — komfortowe.
Przykład 2: FFT i rozdzielczość częstotliwościowa
Przy próbkowaniu fs = 125 MS/s i rozmiarze FFT N = 8192:
- Zakres częstotliwości: 0 – fs/2 = 62,5 MHz
- Rozdzielczość częstotliwościowa: Δf = fs/N = 125 MHz/8192 ≈ 15,26 kHz
Dla analizy widma impulsów z licznika GM (pik główny ≈ 10–100 kHz) ta rozdzielczość jest wystarczająca. Dla identyfikacji rezonansów w torze analogowym (Q-czynnik ~10 w filtrze CR-RC) rozdzielczość może być niewystarczająca — wymagałoby to większego N lub wyższego oversamplingu.
Przykład 3: Statystyka zliczeń i próg detekcji
Tło szumowe ADC z amplitudą RMS σ_szum = 5 LSB (przy zakresie ADC 1V → LSB = 1V/2^14 ≈ 61 μV, więc σ_szum ≈ 305 μV).
Impuls z detektora scyntylacyjnego NaI(Tl) dla fotonów 662 keV (Cs-137): typowa amplituda po kształtowaniu ≈ 50 mV.
SNR (signal-to-noise ratio): SNR = 50 mV / 0,305 mV ≈ 164 ≈ 44 dB
Próg dyskryminacji powinien być ustalony na poziomie np. 5σ_szum = 1,5 mV (0,03% pełnego zakresu), co daje fałszywy alarm ≈ 3×10^-7 na próbkę. Przy 125 MS/s: 3×10^-7 × 125×10^6 ≈ 37,5 fałszywych wyzwoleń na sekundę — zbyt dużo dla spektrometrii. Właściwy próg to często 10σ lub więcej, zależnie od wymagań.
Ograniczenia i kalibracja
Każde ćwiczenie z Red Pitaya powinno mieć sekcję „co mierzymy naprawdę”. Pytania kontrolne:
- czy wejście nie jest przesterowane?
- czy częstotliwość próbkowania wystarcza?
- czy widzimy aliasing?
- czy generator i ADC mają wspólny zegar?
- czy tor analogowy ma znane pasmo?
- czy skala napięcia jest skalibrowana?
- czy zapis danych nie gubi próbek?
- czy algorytm wykrywania impulsu ma znaną czułość?
Bez tych pytań platforma edukacyjna łatwo zamienia się w zabawkę pokazującą ładne wykresy. Z tymi pytaniami staje się pełnoprawnym narzędziem uczenia metrologii.
Dodatkowe materiały multimedialne
{{image:/assets/external-images/nowoczesna-elektronika/redpitaya.jpg|Red Pitaya STEMlab 125-14: mała platforma Zynq z dwoma szybkimi wejściami i wyjściami analogowymi. W dydaktyce jest szczególnie cenna dlatego, że łączy gotowy przyrząd z możliwością zejścia do poziomu FPGA i danych. Zdjęcie: Wikimedia Commons, RedPitaya STEMLab FPGA v1.1 topview.}}
Warto dodać interaktywny model: generator syntetycznych impulsów Poissona, próg dyskryminacji, okno próbkowania i wykres utraconych zdarzeń przy rosnącej częstości. Druga wizualizacja może pokazywać aliasing sinusoidy przy zmianie częstotliwości próbkowania.
Najkrótsze podsumowanie: Red Pitaya nie jest gotowym „licznikiem promieniowania”, ale jest bardzo dobrym laboratorium toru pomiarowego. Uczy, że wynik powstaje z połączenia analogowego front-endu, ADC, FPGA, algorytmu i kontroli jakości danych.
Ćwiczenia praktyczne
Pierwsze ćwiczenie: syntetyczne impulsy. Student generuje serię impulsów o znanej liczbie zdarzeń i zmiennym odstępie. Następnie stosuje próg detekcji i mierzy, ile impulsów zostaje wykrytych. W wariancie rozszerzonym dwa impulsy zbliża się do siebie, aby zobaczyć moment, w którym algorytm zaczyna traktować je jako jeden.
Drugie ćwiczenie: aliasing. Student generuje sinusoidy o rosnącej częstotliwości i obserwuje widmo FFT przy stałej częstotliwości próbkowania. Zadanie polega na wskazaniu, kiedy pojawia się alias i dlaczego widmo może wyglądać przekonująco mimo błędnej interpretacji.
Trzecie ćwiczenie: budżet danych. Przy próbkowaniu 125 MS/s i 14 bit student szacuje strumień danych dla jednego i dwóch kanałów, a następnie porównuje go z możliwościami zapisu ciągłego. Celem jest zrozumienie, dlaczego buforowanie, decymacja i trigger są konieczne nawet w małym przyrządzie.
Przejdź do ćwiczenia interaktywnego