Dwie płytki, których nie da się kupić gotowych: pody wpinane w porty Zmod sterownika Digilent Eclypse Z7. Reszta elektroniki (drivery IGBT, LEM, zasilacze itd.) to gotowe moduły — patrz elektryka.md, sekcja 3.3.

Płytka Funkcja
Pod A — bramki wyprowadza 28 sygnałów zapłonu z portu Zmod A do driverów IGBT
Pod B — czujniki wprowadza sygnały czujników 24 V do portu Zmod B (przez transoptory)

Pliki SVG to layouty poglądowe (rozmieszczenie elementów i wymiary) — pełny opis połączeń jest tekstowy, w sekcjach „Netlista" poniżej.

Wymagania wspólne

Parametr Wartość
Obrys 84 × 42 mm (zbliżony do Digilent Zmod; 4 otwory M2,5 w narożach, 3,5 mm od krawędzi)
Złącze SYZYGY Samtec 40-pin 0,8 mm, seria QSE/QTE — stronę (QSE vs QTE) i fizyczne numery pinów wziąć z SYZYGY Specification V1.1 (syzygyfpga.io) oraz z rysunku złącza na Eclypse Z7; złącze na dolnej krawędzi, wyśrodkowane
Warstwy 2 (góra: sygnały + komponenty, dół: wylewka masy + rozprowadzenie zasilań)
Laminat FR-4 1,6 mm, Cu 35 µm, wykończenie ENIG (raster 0,8 mm)
Min. ścieżka/odstęp 0,15 / 0,15 mm przy złączu; 0,25 mm poza nim
Format produkcyjny Gerber RS-274X + Excellon; patrz „Zamówienie" na końcu

Sygnały dostępne na złączu SYZYGY Standard (nazwy logiczne wg spec V1.1; fizyczne numery pinów — z tabeli pinoutu w spec):

Grupa Sygnały Użycie na naszych podach
Linie I/O S0 … S27 (28 szt.) kanały bramek / czujników
Zegar carrier→pod C2P_CLK_P / C2P_CLK_N pod A: ENABLE (linia P, jako zwykłe GPIO); pod B: nieużywane
Zegar pod→carrier P2C_CLK_P / P2C_CLK_N nieużywane
I²C SCL, SDA EEPROM DNA (U1)
Zasilania 5V0, 3V3 (stałe), VIO (załączane po odczycie DNA), GND patrz netlisty

Po co EEPROM na „zwykłej przejściówce"? — SYZYGY DNA i SmartVIO

Pod SYZYGY nie może być tylko złączem z konwerterami poziomów, bo tak jest skonstruowany standard i sam Eclypse Z7:

  1. Bank I/O układu FPGA, do którego prowadzi port Zmod, jest zasilany z regulowanej szyny VADJ (1,2–3,3 V) — różne pody wymagają różnych napięć I/O.
  2. Po włączeniu zasilania mikrokontroler płyty Eclypse (PMCU, ATmega328PB) odpytuje po I²C EEPROM na podzie o tzw. rekord DNA.
  3. Z rekordu DNA PMCU dowiaduje się, jakiego zakresu VIO pod wymaga i ile prądu pobierze; sprawdza budżet mocy (wspólne 3 A na 5 V itd.) i dopiero wtedy ustawia i załącza VADJ.
  4. Brak/uszkodzony rekord DNA = port zostaje niezasilony (VIO wyłączone, linie S martwe). To zabezpieczenie przed spaleniem poda lub banku FPGA złym napięciem — i dokładnie dlatego EEPROM jest obowiązkowy, mimo że funkcjonalnie płytka to bufory/transoptory.

EEPROM jest zasilany ze stałej szyny 3V3 złącza (nie z VIO!) — musi odpowiadać PMCU, zanim VIO w ogóle powstanie.

Co jest w pamięci (rekord DNA wg SYZYGY DNA Specification V1.1; dokładny układ bajtów — w spec, nie powielamy go tu, by nie rozjechać się z wersją):

  • nagłówek binarny: wersja DNA (major/minor), długość rekordu,
  • wymagany zakres VIO (min–max; u nas 3,3–3,3 V),
  • deklarowane pobory prądu z szyn 5V0, 3V3 i VIO (u nas: 5V0 ≈ 0, 3V3 < 10 mA, VIO < 300 mA),
  • atrybuty poda (typ: standard / transceiver, szerokość: pojedynczy / double-wide, obecność LVDS itd.),
  • łańcuchy tekstowe: producent, nazwa produktu, numer modelu, numer seryjny (u nas np. „SLNG" / „SLNG-GATES-28" / „r1" / kolejny numer),
  • suma kontrolna rekordu.

Cały rekord to ~100–200 bajtów; 24LC32A (4 KB) ma ogromny zapas — wybrany, bo jest tani, wszędzie dostępny i typowy w podach. Rekord generuje się narzędziem z ekosystemu SYZYGY (repozytorium Opal Kelly na GitHubie, narzędzia szg-dna) i wgrywa programatorem I²C przed pierwszym użyciem; po zaprogramowaniu zwiera się zworkę JP1 (WP → 3V3), żeby PMCU ani nikt inny przypadkiem rekordu nie nadpisał.


Pod A — bramki („SLNG-GATES-28")

Zasada działania

28 linii portu Zmod A (wyjścia FPGA, poziom VIO = 3,3 V) przechodzi przez bufory 74LVC541A i rezystory szeregowe na złącza J2/J3, skąd trafiają do wejść logicznych płytek driverów IGBT. Bufory dają: wzmocnienie prądowe, ochronę pinów FPGA i — co najważniejsze — sprzętowo bezpieczny stan spoczynkowy: dopóki FPGA nie ściągnie linii ENABLE do 0, wyjścia buforów są w wysokiej impedancji, a rezystory podciągające do masy na wyjściach trzymają wszystkie bramki wyłączone (start, programowanie FPGA, reset).

Netlista — zasilanie i sieci wspólne

Sieć Połączenia
GND piny GND złącza J1 (wszystkie) → wylewka masy (warstwa dolna) → U2–U5 pin 10 (GND) → U1 pin 4 (VSS) → J2 piny 17–20 → J3 piny 15–20 → bieguny GND kondensatorów
VIO (3,3 V, załączane) piny VIO złącza J1 → U2–U5 pin 20 (VCC) → C2–C5 (100 nF, po jednym przy pinie 20 każdego bufora) → C7 (10 µF zbiorczy) → R1 (górny koniec pull-upu ENABLE) → górne końce drabinek RN5–RN8 nie! (RN5–RN8 to pull-downy → GND, patrz niżej)
3V3 (stałe) piny 3V3 złącza J1 → U1 pin 8 (VCC) → C1 (100 nF przy U1) → R2, R3 (pull-upy I²C) → JP1 (zworka WP)
SCL pin SCL złącza J1 → U1 pin 6; R2 = 2,2 kΩ z SCL do 3V3
SDA pin SDA złącza J1 → U1 pin 5; R3 = 2,2 kΩ z SDA do 3V3
ENABLE pin C2P_CLK_P złącza J1 → U2 pin 1, U2 pin 19, U3 pin 1, U3 pin 19, U4 pin 1, U4 pin 19, U5 pin 1, U5 pin 19 (wszystkie wejścia /OE1 i /OE2 czterech buforów, spięte jedną ścieżką) → R1 = 10 kΩ do VIO (pull-up: stan domyślny „1" = wyjścia wyłączone; /OE jest aktywne w stanie niskim)
Adres/WP EEPROM U1 piny 1, 2, 3 (A0–A2) → GND (adres 0x50); U1 pin 7 (WP) → środkowy pad zworki JP1; JP1-a → 3V3 (zapis zablokowany, stan roboczy), JP1-b → GND (zapis możliwy, tylko do programowania DNA)

Netlista — kanały bramek

Pinout 74LVC541APW (TSSOP-20): pin 1 = /OE1, piny 2–9 = wejścia A1–A8, pin 10 = GND, piny 11–18 = wyjścia Y8–Y1 (uwaga: kolejność odwrócona — pin 18 to Y1, pin 11 to Y8), pin 19 = /OE2, pin 20 = VCC.

Tor każdego kanału jest identyczny (na przykładzie kanału 0):

J1 (SYZYGY) linia S0
  → ścieżka (top, max ~50 mm) → U2 pin 2 (wejście A1)
U2 pin 18 (wyjście Y1)
  → RN1 element a (33 Ω szeregowo)
  → węzeł CH0: • RN5 element a (10 kΩ do GND — pull-down stanu bezpiecznego)
               • J2 pin 1

Pełne przypisanie wszystkich 28 kanałów:

Kanał (cewka) Linia SYZYGY Bufor: we. (pin) → wy. (pin) Rezystor szereg. Pull-down Pin złącza
CH0 S0 U2: A1 (2) → Y1 (18) RN1a RN5a J2-1
CH1 S1 U2: A2 (3) → Y2 (17) RN1b RN5b J2-2
CH2 S2 U2: A3 (4) → Y3 (16) RN1c RN5c J2-3
CH3 S3 U2: A4 (5) → Y4 (15) RN1d RN5d J2-4
CH4 S4 U2: A5 (6) → Y5 (14) RN1e RN5e J2-5
CH5 S5 U2: A6 (7) → Y6 (13) RN1f RN5f J2-6
CH6 S6 U2: A7 (8) → Y7 (12) RN1g RN5g J2-7
CH7 S7 U2: A8 (9) → Y8 (11) RN1h RN5h J2-8
CH8 S8 U3: A1 (2) → Y1 (18) RN2a RN6a J2-9
CH9 S9 U3: A2 (3) → Y2 (17) RN2b RN6b J2-10
CH10 S10 U3: A3 (4) → Y3 (16) RN2c RN6c J2-11
CH11 S11 U3: A4 (5) → Y4 (15) RN2d RN6d J2-12
CH12 S12 U3: A5 (6) → Y5 (14) RN2e RN6e J2-13
CH13 S13 U3: A6 (7) → Y6 (13) RN2f RN6f J2-14
CH14 S14 U3: A7 (8) → Y7 (12) RN2g RN6g J2-15
CH15 S15 U3: A8 (9) → Y8 (11) RN2h RN6h J2-16
CH16 S16 U4: A1 (2) → Y1 (18) RN3a RN7a J3-1
CH17 S17 U4: A2 (3) → Y2 (17) RN3b RN7b J3-2
CH18 S18 U4: A3 (4) → Y3 (16) RN3c RN7c J3-3
CH19 S19 U4: A4 (5) → Y4 (15) RN3d RN7d J3-4
CH20 S20 U4: A5 (6) → Y5 (14) RN3e RN7e J3-5
CH21 S21 U4: A6 (7) → Y6 (13) RN3f RN7f J3-6
CH22 S22 U4: A7 (8) → Y7 (12) RN3g RN7g J3-7
CH23 S23 U4: A8 (9) → Y8 (11) RN3h RN7h J3-8
CH24 S24 U5: A1 (2) → Y1 (18) RN4a RN8a J3-9
CH25 S25 U5: A2 (3) → Y2 (17) RN4b RN8b J3-10
CH26 S26 U5: A3 (4) → Y3 (16) RN4c RN8c J3-11
CH27 S27 U5: A4 (5) → Y4 (15) RN4d RN8d J3-12

Piny niewykorzystane:

  • U5 wejścia A5–A8 (piny 6–9): do GND (wejść CMOS nie wolno zostawiać wiszących); wyjścia Y5–Y8 (piny 11–14) — niepodłączone;
  • RN4 elementy e–h i RN8 elementy e–h — niepodłączone (lub pominąć i użyć drabinek 4-elementowych);
  • J3 piny 13–14: rezerwa (niepodłączone).

Złącza wyjściowe (IDC-20, raster 2,54 mm, z kluczem):

Złącze Piny 1–16 / 1–12 Piny masy
J2 CH0–CH15 (kolejno) 17, 18, 19, 20 → GND
J3 CH16–CH27 (kolejno), 13–14 rezerwa 15, 16, 17, 18, 19, 20 → GND

Okablowanie do driverów: wiązka ekranowana; każdy sygnał najlepiej skręcić z żyłą GND (żyły GND rozszyć na piny mas złącza), ekran na GND tylko od strony poda. Poziom logiczny sygnałów: 3,3 V — drivery muszą to akceptować (patrz elektryka.md 3.3).

BOM (pod A)

Ozn. Element Obudowa Ilość
J1 złącze SYZYGY Samtec QSE/QTE-020-01-F-D-A SMD 40-pin 0,8 mm 1
J2, J3 IDC-20 męskie proste z kluczem THT 2×10, 2,54 mm 2
U1 24LC32A-I/SN (EEPROM DNA) SOIC-8 1
U2–U5 74LVC541APW TSSOP-20 4
RN1–RN4 drabinka rezystorowa 8× 33 Ω (izolowana) array 1206×8 4
RN5–RN8 drabinka 8× 10 kΩ (pull-down wyjść do GND) array 1206×8 4
R1 10 kΩ (pull-up linii ENABLE do VIO) 0603 1
R2, R3 2,2 kΩ (pull-up I²C do 3V3) 0603 2
C1–C5 100 nF X7R (U1 + po jednym na bufor) 0603 5
C7 10 µF 0805 1
JP1 zworka lutowana 3-padowa (WP: 3V3 / GND) SMD 1

Pod B — czujniki („SLNG-SENS-28")

Zasada działania

Wejścia 24 V (czujniki optyczne PNP) trafiają przez rezystory ograniczające na diody transoptorów LTV-847. Tranzystory transoptorów, z pull-upami do VIO i filtrem RC, podają sygnały 3,3 V na linie S portu Zmod B. Strona 24 V i strona logiki są galwanicznie odseparowane (LTV-847: 5 kV) — masy GND24 i GND łączą się wyłącznie „przez światło" w transoptorach.

Logika: czujnik aktywny (PNP podaje 24 V) → dioda świeci → tranzystor przewodzi → stan niski na linii S. Inwersję wykonać w bloku AXI GPIO w FPGA (i odnotować w protokole uruchomienia).

Netlista — zasilanie i sieci wspólne

Sieć Połączenia
GND (logiki) piny GND złącza J1 → wylewka masy tylko po stronie logiki (poniżej bariery) → U2–U8: piny emiterów 9, 11, 13, 15 → dolne końce C101–C128 → U1 pin 4 → bieguny GND kondensatorów blokujących
GND24 (masa czujników) J2 piny 17–20 + J3 piny 15–20 → osobna wylewka tylko po stronie 24 V (powyżej bariery) → U2–U8: piny katod 2, 4, 6, 8. Żadnego połączenia z GND! Przerwa w wylewkach pod linią bariery na obu warstwach
VIO (3,3 V) piny VIO złącza J1 → górne końce drabinek pull-up RN1–RN4 → C2 (100 nF), C3 (10 µF)
3V3 (stałe) piny 3V3 złącza J1 → U1 pin 8 → C1 (100 nF) → R2, R3 (pull-upy I²C) → JP1
SCL / SDA / WP / A0–A2 identycznie jak w podzie A (U1: piny 6 / 5 / 7 / 1–3)

Netlista — kanały wejść

Pinout LTV-847 (DIP-16): strona wejściowa — pin 1 = anoda k. 1, pin 2 = katoda k. 1, pin 3 = anoda k. 2, pin 4 = katoda k. 2, pin 5 = anoda k. 3, pin 6 = katoda k. 3, pin 7 = anoda k. 4, pin 8 = katoda k. 4; strona wyjściowa (lustrzanie) — pin 16 = kolektor k. 1, pin 15 = emiter k. 1, pin 14 = kolektor k. 2, pin 13 = emiter k. 2, pin 12 = kolektor k. 3, pin 11 = emiter k. 3, pin 10 = kolektor k. 4, pin 9 = emiter k. 4.

Tor każdego kanału (na przykładzie wejścia WE0):

J2 pin 1 (WE0, +24 V z czujnika)
  → R101 (2,4 kΩ / 0,5 W szeregowo)                [strona 24 V]
  → U2 pin 1 (anoda k. 1); U2 pin 2 (katoda) → GND24
─── bariera izolacji (transoptor) ───
U2 pin 16 (kolektor k. 1) = węzeł K0:
  • RN1a (10 kΩ do VIO — pull-up)                  [strona logiki]
  • C101 (100 nF do GND — filtr)
  • RN5a (1 kΩ szeregowo) → J1 linia S0
U2 pin 15 (emiter k. 1) → GND

Pełne przypisanie (schemat powtarzalny — podano tory skrajne i regułę):

Wejście Pin złącza R wej. Transoptor: kanał (piny A/K → C/E) Pull-up C filtr R szereg. Linia SYZYGY
WE0 J2-1 R101 U2 k.1 (1/2 → 16/15) RN1a C101 RN5a S0
WE1 J2-2 R102 U2 k.2 (3/4 → 14/13) RN1b C102 RN5b S1
WE2 J2-3 R103 U2 k.3 (5/6 → 12/11) RN1c C103 RN5c S2
WE3 J2-4 R104 U2 k.4 (7/8 → 10/9) RN1d C104 RN5d S3
WE4–WE7 J2-5…8 R105–R108 U3 k.1–4 (jw.) RN1e–h C105–C108 RN5e–h S4–S7
WE8–WE11 J2-9…12 R109–R112 U4 k.1–4 RN2a–d C109–C112 RN6a–d S8–S11
WE12–WE15 J2-13…16 R113–R116 U5 k.1–4 RN2e–h C113–C116 RN6e–h S12–S15
WE16–WE19 J3-1…4 R117–R120 U6 k.1–4 RN3a–d C117–C120 RN7a–d S16–S19
WE20–WE23 J3-5…8 R121–R124 U7 k.1–4 RN3e–h C121–C124 RN7e–h S20–S23
WE24–WE27 J3-9…12 R125–R128 U8 k.1–4 RN4a–d C125–C128 RN8a–d S24–S27

Reguła ogólna dla wejścia WEi: pin złącza = J2-(i+1) dla i = 0–15 albo J3-(i−15) dla i = 16–27; rezystor wejściowy R(101+i); transoptor U(2+⌊i/4⌋), kanał (i mod 4)+1; linia SYZYGY Si.

Przydział wejść w systemie (zgodnie z firmware): WE0–WE13 = czujniki przy cewkach parzystych 0, 2, …, 26; WE14–WE15 = czujniki krańcowe dół/góra; WE16–WE27 = rezerwa. Wejścia rezerwowe zostają podciągnięte do VIO przez pull-upy — czytają się jako stały stan wysoki (po inwersji w FPGA: nieaktywne).

Złącza wejściowe (IDC-20):

Złącze Piny 1–16 / 1–12 Piny masy 24 V
J2 WE0–WE15 (kolejno) 17, 18, 19, 20 → GND24
J3 WE16–WE27 (kolejno), 13–14 rezerwa 15, 16, 17, 18, 19, 20 → GND24

BOM (pod B)

Ozn. Element Obudowa Ilość
J1 złącze SYZYGY Samtec QSE/QTE-020-01-F-D-A SMD 40-pin 0,8 mm 1
J2, J3 IDC-20 męskie proste z kluczem THT 2×10, 2,54 mm 2
U1 24LC32A-I/SN (EEPROM DNA) SOIC-8 1
U2–U8 LTV-847 (transoptor 4-kanałowy) DIP-16 / SMD-16 7
R101–R128 2,4 kΩ 0,5 W (wejściowe 24 V) 1206 28
RN1–RN4 drabinka 8× 10 kΩ (pull-up do VIO) array 1206×8 4
RN5–RN8 drabinka 8× 1 kΩ (szeregowe do linii S) array 1206×8 4
C101–C128 100 nF (filtr przy kolektorach) 0603 28
R2, R3 2,2 kΩ (pull-up I²C do 3V3) 0603 2
C1–C3 100 nF ×2 + 10 µF (blokujące) 0603/0805 3
JP1 zworka lutowana 3-padowa (WP) SMD 1

Zamówienie (propcb.pl lub inna płytkarnia)

Parametry do formularza zamówienia:

  • 2 warstwy, FR-4 1,6 mm, miedź 35 µm,
  • wykończenie ENIG (wymagane: złącze 0,8 mm),
  • maska zielona, opis biały, obie strony,
  • min. ścieżka/odstęp 0,15 mm, min. otwór 0,3 mm,
  • wymiar 84 × 42 mm, po 2 szt. każdej płytki (+ zapas),
  • pliki: Gerber RS-274X + Excellon.

Status plików: ten katalog zawiera kompletny wsad projektowy (specyfikacja, netlisty co-do-pinu, BOM, layout poglądowy w SVG). Finalne Gerbery wyeksportować z KiCada po odwzorowaniu netlist — footprint złącza SYZYGY pobrać z biblioteki Samtec (samtec.com udostępnia modele do KiCada/Altium), pozostałe footprinty są standardowe. Ręczne generowanie Gerberów dla rastra 0,8 mm bez weryfikacji DRC byłoby zbyt ryzykowne — nie robić tego na skróty.