1. Dlaczego wybraliśmy Eclypse Z7

  • Jako jedyna z listy ma złącza Zmod / SYZYGY Standard (2 porty po 28 linii I/O). Red Pitaya ma zwykłe złącza szpilkowe E1/E2, bez SYZYGY.
  • 2 × 28 linii pokrywa potrzeby bez żadnego multipleksowania: 28 bramek (Zmod A) + czujniki (Zmod B) + sygnały operatorskie (Pmod A) + nastawa prądu (Pmod B). Każdy sygnał to jeden nazwany drut — projekt trywialny do niezależnej weryfikacji.
  • Konsekwencja standardu SYZYGY: każdy pod musi mieć EEPROM z rekordem DNA. Mikrokontroler płyty (PMCU) czyta rekord po I²C i dopiero na jego podstawie ustawia oraz załącza napięcie VIO portu (SmartVIO). Bez poprawnego DNA port zostaje niezasilony. Dlatego nasze pody mają pamięć, mimo że funkcjonalnie to bufory/transoptory.

2. Co daje (i czego nie daje) Red Pitaya

Złącza E1/E2 to zwykłe goldpiny: I/O na stałe 3,3 V, zasilanie zawsze obecne, zero negocjacji — nie ma PMCU, SmartVIO ani DNA. Pamięć EEPROM i cała warstwa identyfikacji znika. To jedyny realny zysk.

Bufory i transoptory na podach nie istnieją z powodu SYZYGY — pełnią funkcje, które nie znikają wraz ze złączem:

  • ochrona pinów FPGA (bufor jest tanim „bezpiecznikiem" toru),
  • izolacja galwaniczna pola czujników 24 V od logiki,
  • sprzętowo bezpieczny stan „wszystko wyłączone" (Hi-Z + pull-downy), zanim firmware przejmie kontrolę.

Budżet linii — twardy problem

Zasób Red Pitaya 125-14 Ilość Zapotrzebowanie systemu
GPIO cyfrowe (E1) 16 28 bramek + 4 operatorskie + 1 nastawa prądu
Wolne wejścia analogowe (E2, XADC, 0–3,5 V) 4 16 czujników
Wyjścia RF 50 Ω (SMA, DAC ±1 V) 2

49 sygnałów vs 16 GPIO — bez multipleksowania się nie da, a klasyczne multipleksowanie (rejestry przesuwne, dekodery) to układy scalone.

Wariant „prawie pasywny" (gdyby kiedyś był potrzebny)

Da się zejść do elementów dyskretnych:

  1. Bramki: matryca 4×7 w numeracji serpentynowej — 11 GPIO; każde wejście drivera dostaje dwa szeregowe tranzystory (wiersz AND kolumna). Działa logicznie, bo sekwencje zapalają jednocześnie co najwyżej parę sąsiednich cewek (wynika z tabel czasowych w firmware), a przy serpentynie sąsiednie cewki zawsze dzielą wiersz albo kolumnę — matryca nie generuje „duchów".
  2. Czujniki: kodowanie rezystorowe na 4 wejściach analogowych — każdy czujnik wpina inny rezystor w dzielnik; pierścień mija czujniki pojedynczo (rozstaw 240 mm vs pierścień 48 mm), więc poziom napięcia wskazuje aktywny czujnik.
  3. Operator: 4 pozostałe GPIO (dzielniki 24→3 V + pojedynczy MOSFET).
  4. Nastawa prądu: wyjście RF DAC 50 Ω jako analogowa nastawa regulatorów histerezowych (ładniejsze niż 1-bitowy wybór 10/40 A).

Bilans: 11 + 4 + 1 = dokładnie 16 GPIO. Arytmetycznie się domyka.

3. Analiza awarii — dlaczego ten wariant odrzucono

Poniżej porównanie skutków typowych usterek. „1:1" = Eclypse z podami (każdy sygnał osobnym drutem); „matryca" = Red Pitaya w wariancie pasywnym.

3.1 Zwarcia i utknięcia linii bramek

Usterka Architektura 1:1 (Eclypse) Matryca 4×7 (Red Pitaya pasywna)
Linia utknięta w „1" (zwarcie do 3,3 V, przebity bufor/tranzystor) Jedna cewka stale zasilana. Regulator histerezowy ogranicza prąd do nastawy; przy nastawie trzymania cewka grzeje ~200 W — dopuszczalne ciągle. Usterka lokalna, jednoznaczna, łatwa do wskazania Utknięty wiersz: każda aktywacja dowolnej kolumny zapala dodatkową cewkę z tego wiersza — podczas wyrzutu kolumny przełączają się szybko, więc przypadkowe cewki wzdłuż całej rury strzelają w trakcie lotu pierścienia (hamowanie wsteczne, szarpnięcia — realne zagrożenie mechaniczne). Utknięta kolumna: analogicznie 4 cewki
Linia utknięta w „0" / przerwa Jedna cewka martwa. Sekwencja 2: ubytek ciągu wykrywany kontrolą czujnika górnego (pierścień nie dojdzie / dojdzie za wolno → STOP AWARYJNY). Sekwencja 1: para trzymająca ma chwilowo jedną cewkę — pozycje sąsiednie nadal trzymają Przerwa wiersza/kolumny wyłącza 7 albo 4 cewki naraz — w sekwencji 1 pierścień może zostać upuszczony z wysokości kilkudziesięciu cm (uderzenie ~39 kg w dolną zatyczkę), w sekwencji 2 duża „dziura" w ciągu
Zwarcie między sąsiednimi żyłami wiązki Dwie konkretne cewki sprzężone (zapalają się razem) — efekt stały, powtarzalny, natychmiast widoczny w trybie DIAG Zwarcie wiersz–kolumna lub wiersz–wiersz: efekt zależny od aktualnej kombinacji sterowania — usterka objawia się losowo, tylko przy niektórych krokach sekwencji; diagnostyka bardzo trudna
Skutek dla audytu Analiza pojedynczej usterki (SFA) mieści się w jednej tabeli: 1 linia → 1 cewka Każdą usterkę trzeba analizować względem wszystkich 28 kombinacji; tryb DIAG przestaje być reprezentatywny (inne kombinacje niż w locie)

3.2 Awarie po stronie czujników

Usterka Transoptory (pod B) Kodowanie rezystorowe (RP pasywna)
Zwarcie 24 V do linii sygnałowej Ginie transoptor (~3 zł), logika nietknięta — izolacja 5 kV robi swoje 24 V ląduje na pinie XADC/GPIO → uszkodzenie banku I/O, wymiana całego modułu RP, przestój atrakcji
Dryf rezystancji (korozja złącza, temperatura, starzenie) Bez znaczenia — sygnał binarny z dużym marginesem Poziom analogowy pełza; przy 16 poziomach na 3,5 V krok to ~220 mV — dryf rzędu ±100 mV daje błędną identyfikację czujnika (aliasing)
Dwa czujniki aktywne jednocześnie (stan przejściowy na krawędziach, odbicie światła) Po prostu dwa bity — firmware widzi oba Suma prądów daje poziom innego, trzeciego czujnika — fałszywa pozycja pierścienia
Przerwa przewodu czujnika Bit stale nieaktywny — wykrywalne (czujnik „nigdy nie widzi") Nieodróżnialne od „brak pierścienia" na całej grupie kanałów tego dzielnika

3.3 Awarie sterownika i stany nieustalone

Scenariusz Eclypse + pody RP pasywna
FPGA nieskonfigurowane (boot, wgrywanie, reset) Bufory poda A w Hi-Z (pull-up na /OE), wyjścia ściągnięte pull-downami — bramki twardo w 0 niezależnie od stanu pinów FPGA Tylko zewnętrzne pull-downy na liniach matrycy; piny FPGA w nieznanym stanie przejściowym sterują matrycą bezpośrednio
Zawieszenie procesora Watchdog w PL gasi bramki; dodatkowo firmware może zablokować bufory (linia ENABLE) — dwie niezależne warstwy w torze sygnałowym Watchdog w PL — jedna warstwa; brak odpowiednika blokady buforów
Awaria zasilania interfejsu Port bez VIO = bufory bez zasilania = wyjścia bierne, pull-downy trzymają 0 Brak osobnego zasilania interfejsu — nie dotyczy, ale też nic nie odcina

3.4 Co pozostaje wspólne (i nienaruszalne)

Niezależnie od platformy: E-STOP jest sprzętowy — grzybek → przekaźnik bezpieczeństwa (PL d) → stycznik K1 po stronie AC. Żadna z powyższych usterek interfejsu nie unieważnia tej drogi. Ale E-STOP to ostatnia linia: architektura sterowania ma nie doprowadzać do sytuacji, w których trzeba go użyć.

4. Werdykt

Kryterium Eclypse Z7 + pody Red Pitaya pasywna
Wymóg klienta (SYZYGY/Zmod) spełniony niespełniony
Liczba linii 1:1, bez multipleksowania matryca + kodowanie analogowe
Analiza pojedynczej usterki 1 linia → 1 cewka 1 linia → 4–7 cewek, efekty kombinacyjne
Izolacja pola 24 V galwaniczna (5 kV) brak (dzielniki)
Stan bezpieczny przy starcie podwójny (Hi-Z + pull-down) tylko pull-downy
Koszt „aktywności", którą eliminujemy ~15 układów po 2–3 zł

Wariant pasywny na Red Pitaya jest technicznie wykonalny (bilans linii domyka się co do sztuki), ale optymalizuje złą zmienną: oszczędza kilkadziesiąt złotych w częściach, a płaci pogorszeniem dokładnie tych własności, które nadzór techniczny ogląda najuważniej — jednoznaczności skutków pojedynczej usterki, izolacji i prostoty audytu. Do tego łamie wymóg SYZYGY.

Rekomendacja: Digilent Eclypse Z7 + dwa pody. Wariant Red Pitaya trzymać w zanadrzu wyłącznie na wypadek, gdyby klient zdjął wymóg Zmod i podniósł priorytet minimalizacji liczby części — wtedy ten dokument jest punktem startu (matryca serpentynowa, wartości rezystorów kodujących i firmware pod skanowanie do rozpisania).