From 1218c33aa4c76ed080c092f0d69d5f3dd2ddc37d Mon Sep 17 00:00:00 2001 From: onur Date: Tue, 1 Sep 2026 18:19:22 +0300 Subject: [PATCH] Add the fabrication spec and document the RF constraints a reviewer flagged Four RF points came back from review. Two were real gaps, two were already sound but undocumented, and one premise was stale. Real gap 1 - nothing told the fab this is a controlled-impedance board. docs/FABRICATION.md now carries the stackup (JLC08161H-3313, layer by layer with dielectric heights and Er), the two impedance targets (RF50_CPWG 50 ohm at 0.164/0.200 on F.Cu over L2, USB90_DIFF 90 ohm at 0.135/0.150), the process minima, and an explicit request that the vendor confirm the widths with their own field solver. It records that JLC models this as CoatedCoplanarWaveguideWithLowerGnd1B assuming 1.6 mil finished outer copper, 0.6 mil soldermask at Er 3.8 and top width = base - 0.7 mil, and that copper thickness alone moves this geometry by more than 10 ohm - which is why the number has to be fixed by the vendor's model rather than ours. It also states the decision rule: 44 ohm is still 24 dB return loss and not the worst term in the chain, so the geometry should not be changed unless the vendor reports below that. Real gap 2 - the active-antenna requirement was implied everywhere but never quantified. hardware/README.md and docs/INTERFACES.md now state it plainly: with both internal LNAs off the mixer input is the first active stage at 10.3 dB NF, so a ~25 dB active antenna gives ~1.65 dB system NF while a passive antenna puts it above 12 dB and the receiver is unusable. The same section now explains why the SAW is not optional either. Documented, not changed - the launch relief. Its ~37 ohm / 30 dB figure is a 2D quasi-static estimate of a genuinely 3D transition (connector, board edge, pad overhang) and is now labelled as such, with 3D EM or VNA named as what would settle it. The unrelieved case was 10.7 ohm / 12 dB, so the improvement holds regardless of the exact figure. Documented, not changed - the bias choke. Its 2.1 GHz SRF sits above 1575 MHz, so the choke is still inductive and the proximity raises |Z| from 554 to about 1270 ohm, which helps a bias tee rather than hurting it. Swept +/-10% on both L and SRF: |Z| stays above 900 ohm, return loss above 30 dB, insertion loss below 0.003 dB. Stale premise - the review tied the impedance to "the inconsistent stackup". That inconsistency was fixed in 791ca5c, and the F.Cu-to-L2 construction that sets the RF impedance (3313 prepreg, 0.0994 mm, Er 4.1) was in fact identical in both the old ten-layer and the current eight-layer stacks, so the CPWG geometry never actually moved. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_012KaTmCCxCEW4awsmXRNT1d --- README.md | 1 + docs/FABRICATION.md | 80 +++++++++++++++++++++++++++++++++++++++++++++ docs/INTERFACES.md | 8 +++++ docs/README.md | 1 + hardware/README.md | 13 ++++++++ 5 files changed, 103 insertions(+) create mode 100644 docs/FABRICATION.md diff --git a/README.md b/README.md index 99d97e7..ae1bbcb 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,7 @@ ve placement kararları önce ilgili Python kaynağına işlenmelidir. - [MAX2771, SCH16T, QSPI, FTDI ve test noktası bağlantıları](docs/INTERFACES.md) - [Ti375 ball, bank, gerilim ve PMOD pin seçimi](docs/FPGA_PINOUT.md) - [Ayrıntılı güç ağacı, sıralama ve reset davranışı](docs/POWER_TREE.md) +- [Üretim ve kontrollü empedans şartnamesi](docs/FABRICATION.md) - [Üretim, kontrol ve routing akışı](scripts/README.md) - [Pin tabloları ve türetilmiş veriler](docs/README.md) - [Güncel çıktılar ve raporların anlamı](outputs/README.md) diff --git a/docs/FABRICATION.md b/docs/FABRICATION.md new file mode 100644 index 0000000..1f1644d --- /dev/null +++ b/docs/FABRICATION.md @@ -0,0 +1,80 @@ +# Üretim ve kontrollü empedans şartnamesi + +Bu dosya üreticiye verilecek şartnamedir. Gerber ve drill dosyaları tek +başlarına kontrollü empedansı ısmarlamaz; sipariş sırasında aşağıdaki stackup +ve empedans hedefleri açıkça belirtilmelidir. + +## Kart + +| Öğe | Değer | +|---|---| +| Boyut | 155.05 x 90.05 mm | +| Katman | 8 | +| Kalınlık | 1.6 mm | +| Stackup | **JLC08161H-3313** (JLCPCB standart 8 katman) | +| Dış bakır | 1 oz baz | +| İç bakır | 0.5 oz | +| Yüzey | ENIG | +| Min hat/aralık | 0.10 mm / 0.10 mm | +| Min delik | 0.225 mm | +| Min annular ring | 0.1125 mm | + +## Katman dizilimi + +``` +F.Cu sinyal + RF 35 um + prepreg 3313 0.0994 mm er 4.1 <-- RF empedansını bu belirler +L2_GND kesintisiz GND 15.2 um + core 0.1000 mm er 4.36 +L3_SIG sinyal 15.2 um + prepreg 3x2116 0.3568 mm er 4.16 +L4_PWR güç plane 15.2 um + core 0.3000 mm er 4.41 +L5_SIG sinyal 15.2 um + prepreg 3x2116 0.3568 mm er 4.16 +L6_SIG sinyal + VCC1V8 15.2 um + core 0.1000 mm er 4.36 +L7_GND kesintisiz GND 15.2 um + prepreg 3313 0.0994 mm er 4.1 +B.Cu sinyal + VCC3V3 35 um +``` + +## Kontrollü empedans hedefleri + +| Net sınıfı | Yapı | Katman | Referans | Geometri | Hedef | +|---|---|---|---|---|---| +| `RF50_CPWG` | Coplanar waveguide + alt GND | F.Cu | L2_GND | hat 0.164 mm, GND aralığı 0.200 mm | 50 ohm tek uçlu | +| `USB90_DIFF` | Coplanar diferansiyel çift | F.Cu | L2_GND | hat 0.135 mm, çift aralığı 0.150 mm | 90 ohm diferansiyel | + +**Üreticiden istenen:** yukarıdaki hedefler için kendi field-solver'ı ile hat +genişliğini doğrulaması ve gerekirse düzeltilmiş genişliği bildirmesi. +JLCPCB'nin modeli `CoatedCoplanarWaveguideWithLowerGnd1B`'dir ve 1 oz dış bakır +için 1.6 mil bitmiş bakır kalınlığı, 0.6 mil solder mask (er 3.8) ve +taban genişliği - 0.7 mil üst genişlik varsayar. + +Tasarımın kendi hesabı 0.164 mm / 0.200 mm için yaklaşık 44-50 ohm verir +(bkz. `scripts/finalize_routing.py` `route_rf`). Bakır kalınlığı bu geometride +sonucu 10 ohm'dan fazla kaydırdığı için nihai değer üreticinin modeliyle +sabitlenmelidir. 44 ohm bile 24 dB return loss demektir ve RF zincirinin en +kötü terimi değildir, dolayısıyla üretici 44 ohm'un altını bildirmedikçe +geometri değiştirilmemelidir. + +## Alan çözücü ile doğrulanması gereken tek yapı + +J2 edge-launch SMA pad'i 1.5 mm genişliğindedir ve 0.164 mm'lik hattan çok +daha geniştir. Pad'in altında L2 ve L3 `RF_LAUNCH_RELIEF` ile boşaltılmıştır; +referans 0.587 mm aşağıdaki L4'e iner. Tasarımın 2B yarı-statik tahmini bu +launch için yaklaşık 37 ohm ve 30 dB return loss verir. + +Bu bir 2B tahmindir. Konnektör geçişi, kart kenarı ve pad taşması gerçek bir +3B yapıdır; kesin değer 3B EM simülasyonu veya VNA ölçümü ister. Boşaltmasız +hâli 10.7 ohm ve 12 dB idi, yani boşaltma her hâlükârda büyük bir iyileştirmedir; +doğrulama, iyileştirmenin ne kadar olduğunu belirlemek içindir. + +## Anten şartı + +Kart **aktif anten gerektirir**. MAX2771'in dahili LNA'ları kapalıdır ve mixer +girişi doğrudan sürülür; bu girişin gürültü figürü **10.3 dB**'dir. Yaklaşık +25 dB kazançlı ve 1.5 dB NF'li bir aktif antenle sistem NF'i ~1.65 dB olur. +**Pasif antenle sistem NF'i 12 dB'in üzerine çıkar ve alıcı kullanışsızdır.** +J5 ile anten beslemesi OFF / 3.3 V / 5 V seçilir; U27 akımı 100 mA ile sınırlar. diff --git a/docs/INTERFACES.md b/docs/INTERFACES.md index b96927c..dadf4e2 100644 --- a/docs/INTERFACES.md +++ b/docs/INTERFACES.md @@ -23,6 +23,14 @@ footprintleridir ve varsayılan olarak DNP'dir. Böylece VNA ölçümünden sonr pi-match kurulabilir. MAX2771'in LNAIN_HI/LNAIN_LO ve LNA çıkışları bağlı değildir; register 0 her iki LNA'yı kapatır ve yüksek-band mixer girişi seçilir. +MAX2771'in dahili LNA'ları kapalı olduğu için mixer girişi ilk aktif kattır ve +NF'i 10.3 dB'dir. Bu yüzden **kart aktif anten gerektirir**: ~25 dB kazanç ve +~1.5 dB NF'li bir antenle sistem NF'i ~1.65 dB olur, pasif antenle 12 dB'in +üzerine çıkar. FL1 SAW'ı da bu yüzden gereklidir; mixer out-of-band IIP3'ü +-9 dBm olduğundan, filtresiz bir aktif anten yakındaki bir telefonun sinyalini +mixer'i tıkayacak seviyeye yükseltir. SAW hücresel ve WiFi bantlarında 35-45 dB +bastırma verir ve sistem NF'ine yalnızca ~0.15 dB ekler. + Aktif anten bias yolu: ```text diff --git a/docs/README.md b/docs/README.md index 66ea048..32f91d9 100644 --- a/docs/README.md +++ b/docs/README.md @@ -38,3 +38,4 @@ Script aşağıdaki koşulları doğrular: Hard JTAG yalnızca kart üzerindeki FT4232H interface 1 üzerinden erişilir; harici ARM/JTAG headerı yoktur. `FPGA_CRESET_N`, açık-drenç power/FTDI/harici reset fan-in'i olarak belgelenmiştir. +- [Üretim ve kontrollü empedans şartnamesi](FABRICATION.md) diff --git a/hardware/README.md b/hardware/README.md index df1f36f..41139fc 100644 --- a/hardware/README.md +++ b/hardware/README.md @@ -96,6 +96,19 @@ yoktur. başladığı yerde durur; hat kendi L2 referansını korur. - D1 ESD klemp doğrudan hattın üzerindedir. 1.34 mm'lik bir stub ucunda 0.3 pF, L1'de -j228 ohm görünüp 3.4 dB return loss'a mal oluyordu. +- Launch boşaltmasının ~37 ohm / 30 dB değeri 2B yarı-statik bir tahmindir. + Konnektör geçişi gerçek bir 3B yapıdır; kesin değer için 3B EM veya VNA + gerekir (bkz. `../docs/FABRICATION.md`). Boşaltmasız hâli 10.7 ohm / 12 dB + olduğu için iyileştirme her hâlükârda büyüktür. +- L4 bias-tee choke'unun SRF'i (2.1 GHz) 1575 MHz'e görece yakındır, ama bu + yararlıdır: 1575 MHz hâlâ SRF'in altındadır, choke endüktiftir ve rezonansa + yakınlık |Z|'yi 554 ohm'dan ~1270 ohm'a çıkarır. L ve SRF'te +/-%10 tolerans + ile |Z| > 900 ohm ve return loss > 30 dB kalır; insertion loss 0.003 dB'in + altındadır. Tek gerçek risk SRF'in 1575 MHz'in altına düşmesidir ki bu + parçada 2.1 GHz nominalden çok uzaktır. +- **Kart aktif anten gerektirir.** Dahili LNA'lar kapalı olduğu için mixer + girişinin NF'i 10.3 dB'dir. ~25 dB kazançlı aktif antenle sistem NF'i + ~1.65 dB; pasif antenle 12 dB'in üzerine çıkar ve alıcı kullanışsız olur. - SMA, ESD, bias-tee, SAW ve MAX2771 MIXIN_HI arasındaki RF güzergâhında dijital route veya via kullanılmaz. - USB2 diferansiyel çift 0.135 mm hat ve 0.150 mm coupled gap kuralındadır.