Ten dokument opisuje odłączalny moduł testowy LED, który pozwala zmontować i przetestować całą elektronikę sterującą bez silnika, cewek i toru mocy — oraz organizację pracy trzech równoległych ekip (CNC / cewki / elektronika).

1. Zasada modułu testowego

Zamiast podów produkcyjnych w port Zmod A wpinany jest gotowy breakout Opal Kelly SZG-BRK-STD, a do niego ring 32× WS2812 — adresowalne diody RGB sterowane jedną linią danych. Dzięki temu:

  • 28 diod (indeksy 0–27) świeci dokładnie wtedy, kiedy docelowo byłaby zasilana odpowiednia cewka (0 = najniższa, 27 = najwyższa),
  • kolor koduje nastawę prądu: niebieski = prąd trzymania (sekwencja 1), czerwony = prąd impulsowy (sekwencja 2),
  • 4 diody statusowe (28–31): zasilanie/awaria, sekwencja 1, sekwencja 2, tryb diagnostyczny,
  • całość montuje się bez lutowania (goldpiny + płytka stykowa),
  • po testach moduł się odpina, wpina pody produkcyjne i przebudowuje firmware — architektura sterownika pozostaje identyczna.

2. Lista zakupowa modułu testowego

Element Przykład Ilość Uwagi
Breakout SYZYGY Opal Kelly SZG-BRK-STD (~30 USD) 1 DNA fabrycznie zaprogramowane (VIO 1,2–3,3 V); headery w rastrze 2 mm
Ring LED moduł 32× WS2812 5050, Ø110 mm, 5 V (np. mikrobot.pl) 1 jedna linia danych; pobór przy jasności 40/255 < 150 mA
Przewody 2 mm → 2,54 mm kabelki żeńskie 2 mm + zestaw zworek 2,54 mm 1 kpl. headery breakoutu mają 2 mm — zworki od Arduino NIE pasują wprost
Płytka stykowa dowolna 400/830 pól 1 punkt zbiorczy, zero lutowania
Rezystor 330 Ω THT, wpinany w płytkę 1 szeregowo w linii danych ringu (ochrona pierwszej diody)
Kondensator 470 µF / ≥6,3 V THT 1 przy zasilaniu ringu (dobra praktyka WS2812)
Dioda 1N4148/1N5817 THT 1 patrz uwaga o poziomach niżej
Przycisk START monostabilny NO 1 na kabelkach do Pmod A
Przełącznik E-STOP grzybek NC (albo zwykły przełącznik na czas testów) 1 rozwarcie = zadziałanie
Przełącznik DIAG dwupozycyjny 1 kluczyk niepotrzebny na stole
(opcjonalnie) drugi SZG-BRK-STD do portu Zmod B 1 symulacja czujników przełącznikami — patrz §8

Zasilanie ringu: 5 V z headera breakoutu (port Zmod udostępnia szynę 5V0; budżet 1 A na port — zapas duży). Jeśli dana rewizja breakoutu nie wyprowadza 5V0 — dowolny zasilacz 5 V/1 A (wspólna masa z breakoutem!).

3. Okablowanie co-do-pinu

Ring WS2812 ← breakout (Zmod A)

Sygnał ringu Skąd Przez co
DIN (dane) linia S0 portu Zmod A (header breakoutu) rezystor 330 Ω
+5 V 5V0 z headera breakoutu (lub zasilacz zewn.) dioda 1N5817 (patrz niżej) + kondensator 470 µF do GND
GND GND breakoutu wprost (masa wspólna!)

Uwaga o poziomach: WS2812 zasilany z 5 V formalnie wymaga „1" ≥ 0,7·5 V = 3,5 V, a FPGA daje 3,3 V. Przy krótkim przewodzie zwykle działa, ale pewne rozwiązanie kosztuje jedną diodę: zasilić ring przez diodę (5 V − 0,4 V ≈ 4,6 V), wtedy próg spada do ~3,2 V < 3,3 V ✓.

Przyciski operatorskie → Pmod A

Wejścia czytane przez axi_gpio_operator; w projekcie stołowym FPGA ma włączone wewnętrzne pull-downy (patrz XDC), więc rozwarty przycisk = 0.

Pin Pmod A Bit firmware Element Podłączenie
pin 1 WE_START przycisk NO pin 1 ↔ przycisk ↔ VCC Pmod (3,3 V)
pin 2 WE_ESTOP_OK grzybek NC pin 2 ↔ styk NC ↔ 3,3 V (wciśnięcie rozwiera → 0 → STOP)
pin 3 WE_DIAG przełącznik pin 3 ↔ przełącznik ↔ 3,3 V
pin 4 WE_FAULT niepodłączony (pull-down = brak awarii); do testu FAULT: chwilowo zewrzeć z 3,3 V

VCC (3,3 V) i GND są na pinach 6/12 i 5/11 złącza Pmod.

Mapa diod ringu

Diody Znaczenie Kolor
0–27 cewki 0–27 (0 = najniższa; indeks 0 przy strzałce na module) niebieski = prąd trzymania, czerwony = impulsowy
28 zasilanie / stan zielony = praca, czerwony = STOP AWARYJNY
29 sekwencja 1 w toku niebieski
30 sekwencja 2 w toku pomarańczowy
31 tryb diagnostyczny fioletowy

4. Firmware i projekt FPGA w wariancie stołowym

  1. Firmware: budować z flagą -DTRYB_STOLOWY=1 (bez edycji plików). Różnice względem eksploatacyjnego — patrz tabela w firmware/README.md (ring aktywny, +~1 ms na przełączenie, pominięta kontrola czujnika, baner ostrzegawczy na UART). Odcisk FNV tabel pozostaje ten sam.
  2. Projekt sprzętowy: jak produkcyjny, plus:
    • w konfiguracji Zynq PS włączyć SPI0 przez EMIO; MOSI wyprowadzić jako port ws2812_do i przypiąć do pinu linii S0 Zmodu A (w wariancie stołowym S0 nie jest podpięte do bramki_tri_o[0]),
    • pull-downy na wejściach Pmod A (set_property PULLTYPE PULLDOWN). Wzorce w firmware/constraints/eclypse-z7.xdc.
  3. Dane do ringu nadaje sprzętowo kontroler SPI (1 bit WS2812 = 3 bity SPI @ ~2,6 MHz) — bez bit-bangowania, szczegóły w firmware/src/ws2812.c.

5. Scenariusz testu odbiorczego (stół)

# Akcja Oczekiwany efekt na ringu
1 włączenie zasilania dioda 28 zielona, reszta zgaszona; baner „KOMPILACJA STOLOWA" na UART
2 START dioda 29 niebieska; para niebieskich diod wędruje 27→0 co 400 ms (~11 s)
3 koniec opuszczania świeci tylko dioda 0 (niebieska) + 28 zielona — stan OCZEKIWANIE
4 START (ponownie) dioda 30 pomarańczowa; pojedyncza czerwona dioda przebiega 0→27 coraz szybciej (całość <1 s, końcówka zlewa się w smugę — to poprawne)
5 po wyrzucie wszystko gaśnie poza 28 zieloną — stan SPOCZYNEK
6 przełącznik DIAG + pełny cykl dioda 31 fioletowa; oba przebiegi krokowo co 1 s (dobrze widać przekazywanie par)
7 E-STOP w trakcie dowolnej sekwencji natychmiast: wszystkie diody cewek gasną, dioda 28 czerwona
8 reset E-STOP + START dioda 28 wraca na zielono — stan SPOCZYNEK
9 zwarcie pinu FAULT z 3,3 V w trakcie sekwencji jak w kroku 7

Wynik każdego kroku odnotować w protokole razem z odciskiem FNV z banera.

6. Przejście z testów na produkcję (moduł jest odłączalny)

  1. wypiąć breakout + ring (zostają jako narzędzie serwisowe),
  2. wpiąć pody produkcyjne w Zmod A i B,
  3. przebudować projekt FPGA w wariancie produkcyjnym (S0 → bramki_tri_o[0], bez SPI0/EMIO) i firmware z TRYB_STOLOWY=0,
  4. potwierdzić na UART: brak banera ostrzegawczego + zgodny odcisk FNV.

7. Podział pracy na trzy ekipy

Ekipa Zakres Dokumenty wejściowe
A — mechanika (CNC) rura PMMA, zatyczki, tłok, pierścienie wyliczenia.md + STL/DXF/SCAD z kreatora
B — cewki 28 cewek z karkasami, pomiary odbiorcze elektryka.md §2.2–2.4
C — elektronika szafa (tor mocy), pody, sterownik, firmware elektryka.md §3–7, pcb/, firmware/, ten dokument

Zamówienia długoterminowe — złożyć od razu (niezależnie od ekip): spieki WHA (4–8 tyg.), rura PMMA 3,6 m (zamówienie specjalne), moduły IGBT, Eclypse Z7 + SZG-BRK-STD, złącza Samtec.

Punkty integracji (każdy z protokołem):

  • I. Stół (tylko ekipa C) — ten dokument, §5. Zero wysokiego napięcia, można wykonać w pierwszym tygodniu.
  • II. Ława z jedną cewką (C + B) — pierwsza prawdziwa cewka od ekipy B podpięta do jednej gałęzi toru mocy: weryfikacja drivera, regulacji histerezowej 10/40 A, pomiar rzeczywistych R/L i czasu narastania prądu (tu wraca uwaga z elektryka.md §3.1 o ograniczeniu di/dt!). Zasilanie przez autotransformator, wygrodzone stanowisko.
  • III. Montaż na silniku (A + B + C) — cewki na rurze, czujniki przez przezroczystą ścianę, pierwsze przebiegi wyłącznie w trybie DIAG.

Protokół odbiorczy każdej cewki (ekipa B, przed przekazaniem do C):

Nr cewki R [Ω] (norma: wyliczona ±5%) L [mH] R izolacji [MΩ] (≥100 @ 500 V) Oznaczony początek uzwojenia Podpis
1–28 tak/nie

Wersjonowanie: każdy protokół (stół, ława, silnik) musi zawierać odcisk FNV tabel czasowych z banera UART oraz informację o fladze TRYB_STOLOWY — dzięki temu nadzór techniczny wie dokładnie, który przebieg został sprawdzony którym firmware.

8. Opcja: symulacja czujników (drugi breakout)

Kompilacja stołowa pomija kontrolę czujników, więc do podstawowych testów Zmod B może być pusty. Jeśli chcesz przetestować też logikę czujników (np. przed integracją II), wepnij drugi SZG-BRK-STD w Zmod B i podłącz przełączniki suwakowe między linie S0–S15 a 3,3 V (pull-downy w FPGA analogicznie jak dla Pmod A). Wtedy buduj firmware bez TRYB_STOLOWY — kontrola czujnika po sekwencji 2 będzie aktywna i można ręcznie symulować „pierścień doszedł do góry" (przełącznik S14/S15).