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:
- 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.
- Po włączeniu zasilania mikrokontroler płyty Eclypse (PMCU, ATmega328PB) odpytuje po I²C EEPROM na podzie o tzw. rekord DNA.
- 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.
- 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.