Files
pcb/docs/INTERFACES.md
onur 1218c33aa4 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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012KaTmCCxCEW4awsmXRNT1d
2026-09-01 18:19:22 +03:00

192 lines
7.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Arayüzler ve net bağlantıları
Bu dokümanda ok yönü veri akışını gösterir. Parantez içindeki değer seri
sonlandırma veya bias elemanıdır.
## MAX2771 RF zinciri
```text
J2 SMA merkez
-> RF_SMA
-> D1 ESD501 (şönt ESD)
-> C83 27 pF DC block
-> RF_PRE_SAW
-> FL1 SF14-1582M5UUS2 GPS L1/L1C SAW
-> RF_POST_SAW
-> R39 0 ohm tuning link
-> MAX_MIXIN_HI
-> U21 pin 25 MIXIN_HI
```
`C84` (`RF_POST_SAW`-GND) ve `C85` (`MAX_MIXIN_HI`-GND) tuning şönt
footprintleridir ve varsayılan olarak DNP'dir. Böylece VNA ölçümünden sonra
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
J5 pin 1 = temiz 3.3 V
J5 pin 2 = ANT_BIAS_SEL
J5 pin 3 = SYS5
şönt 1-2 -> 3.3 V bias
şönt 2-3 -> 5 V bias
şönt yok -> OFF
ANT_BIAS_SEL -> U27 TPS22944, 100 mA limit
-> ANT_BIAS_SW -> L4 56 nH -> RF_SMA -> anten
```
`TP3 ANT OC`, U27'nin aktif-düşük over-current göstergesidir. Bias devresi
RF hattına L4 üzerinden girer; RF sinyali güç rayına taşınmamalıdır.
## MAX2771 saat, SPI ve ADC arayüzü
Saat ağacı:
```text
U23 16.368 MHz TCXO -> C90 10 nF -> U21 pin 3 XTAL
U24 40.000 MHz XO --+-> R44 33R -> U21 pin 5 ADC_CLKIN
+-> R56 33R -> U1 ball U17 CLK_40M_FPGA
U21 pin 4 CLKOUT -> R45 22R -> U1 ball B11 MAX_CLKOUT
```
`MAX_CLKOUT`, ADC örnekleme saatinin FPGA'ya source-synchronous kopyasıdır.
FPGA veri yakalama mantığı I/Q bitlerini bu saatle örneklemelidir.
Üç telli kontrol arayüzü:
| İşlev | FPGA | Seri eleman | MAX2771 |
|---|---|---|---|
| SCLK | U1 F16 `MAX_SCLK`, output, 3.0 V | R51 22R | U21 pin 8 `SCLK` |
| CS_N | U1 F17 `MAX_CSN`, output, 3.0 V | R52 22R | U21 pin 9 `CSN` |
| SDATA | U1 G16 `MAX_SDATA`, bidirectional, 3.0 V | R53 22R | U21 pin 7 `SDATA` |
| Shutdown | U1 G17 `MAX_SHDN`, output, 3.0 V | R54 22R | U21 pin 18 `SHDN` |
SDATA ayrı MOSI/MISO değildir; MAX2771'in tek bidirectional üç telli veri
hattıdır. `R55=100 kohm`, MAX2771 tarafındaki SHDN pinini FPGA konfigüre olana
kadar düşük tutar.
ADC/status çıkışları:
| MAX2771 pini | Seri eleman | FPGA ball/net | Yön |
|---|---|---|---|
| pin 10 Q1 | R49 22R | E11 `MAX_Q1` | MAX2771 -> FPGA |
| pin 11 Q0 | R48 22R | E10 `MAX_Q0` | MAX2771 -> FPGA |
| pin 12 I0 | R46 22R | D10 `MAX_I0` | MAX2771 -> FPGA |
| pin 13 I1 | R47 22R | D11 `MAX_I1` | MAX2771 -> FPGA |
| pin 17 LD | R50 22R | F11 `MAX_LD` | MAX2771 -> FPGA |
| pin 4 CLKOUT | R45 22R | B11 `MAX_CLKOUT` | MAX2771 -> FPGA |
Tüm bu pinler Ti375 BR0 bankındadır ve `VCC3V0_DIG=3.0 V` kullanır. SCLK,
CSN, SDATA ve SHDN ise aynı 3.0 V standardındaki TR0 bankındadır.
Başlangıç register görüntüsünün önemli seçimleri:
| Register | Değer | Karar |
|---|---|---|
| 0x0 | `0xBEA71619` | MIXIN_HI, iki LNA kapalı, 23.4 MHz 5. derece LPF |
| 0x3 | `0x698C0008` | Integer-N GPS L1 PLL |
| 0x4 | `0x00C08080` | NDIV=1540, RDIV=16; 1575.42 MHz |
| 0x7 | `0x110061B2` | Harici 40 MHz ADC sampling clock |
| 0xA | `0x010061B4` | ADC sampling clocku CLKOUT'a yönlendir |
Tam görüntü `max2771_registers.csv` dosyasındadır.
## SCH16T-K01 SafeSPI arayüzü
| İşlev | FPGA ball/net | Seri eleman | SCH16T pini | Yön |
|---|---|---|---|---|
| SCK | A8 `IMU_SCK` | R57 22R, FPGA yanında | pin 21 SCK | FPGA -> IMU |
| MOSI | A9 `IMU_MOSI` | R58 22R, FPGA yanında | pin 23 MOSI | FPGA -> IMU |
| CS_N | B10 `IMU_CS` | R59 22R, FPGA yanında | pin 22 CS | FPGA -> IMU |
| MISO | B9 `IMU_MISO` | R60 22R, IMU yanında | pin 19 MISO | IMU -> FPGA |
| Data-ready / sync | A11 `IMU_DRY_SYNC` | doğrudan | pin 20 DRY_SYNC | çift yönlü |
| Harici reset | C10 `IMU_EXTRESN` | R61 10k pulldown | pin 6 EXTRESN | FPGA -> IMU |
SafeSPI clock mode 0 kullanılır. SCH16T V3P3 girişleri `VCC3V3` üzerinden FB1
600 ohm@100 MHz ferritle `IMU_3V3` rayına ayrılır. VDDIO doğrudan 3.3 V'tur.
Murata'nın dahili regülatör pinlerinde C105 10 uF (`VREGA2`) ve C106 1 uF
(`VREGD`) bulunur. `IMU_EXTRESN` pulldown nedeniyle FPGA resetten çıkıp pini
aktif olarak yükseltmeden sensör çalışmaya başlamaz.
## FPGA konfigürasyon flashı
| IS25WP512M pini | Net | Ti375 ball / dedicated işlev |
|---|---|---|
| 1 CS_N | `QSPI_CS_N` | A7 / SSL_N |
| 2 IO1 | `QSPI_IO1` | H5 / CDI1 |
| 3 IO2 | `QSPI_IO2` | G5 / CDI2 |
| 5 IO0 | `QSPI_IO0` | H4 / CDI0 |
| 6 SCLK | `QSPI_SCLK` | G6 / CCK_PLLIN0 |
| 7 IO3 | `QSPI_IO3` | B7 / CDI3 |
| 8 VCC | `VCC1V8` | 1.8 V config domain |
CS_N, IO2/WP_N ve IO3/HOLD_N 10 kohm ile 1.8 V'a çekilir. Ti375 `TEST_N`,
`CSI` ve open-drain `CDONE` pinlerinde de Efinix'in istediği 10 kohm 1.8 V
pull-up'lar vardır.
## FT4232H arayüzleri
| USB interface | FTDI pinleri | FPGA işlevi | FPGA ball'ları |
|---|---|---|---|
| A / interface 0 | ADBUS0 TCK, 1 TDI, 2 TDO, 3 TMS | RISC-V JTAG | F12, V19, T18, P18 |
| B / interface 1 | BDBUS0 TCK, 1 TDI, 2 TDO, 3 TMS | FPGA hard JTAG | G10, G9, G13, G12 |
| B | BDBUS4 | Aktif-düşük FPGA reset isteği | CRESET_N open-drain fan-in |
| C / interface 2 | CDBUS0 TXD, CDBUS1 RXD | UART0 | P17 RX, R17 TX |
| D / interface 3 | DDBUS0 TXD, DDBUS1 RXD | UART1 | R18 RX, T19 TX |
| D | DDBUS2 | Debug GPIO | U19 |
FTDI'den FPGA'ya giden TCK/TDI/TMS, UART RX ve debug çıkışları U29/U30
bufferlarından ve ardından 33 ohm seri dirençlerden geçer. FPGA'dan FTDI'ye
giden TDO/UART TX yönleri 33 ohm seri dirençlidir. JTAG hatlarının FPGA
tarafında 10 kohm idle pull-up vardır.
## USB-C güç ve veri
Üç konnektör birbirinden bağımsızdır: `J7` yalnızca USB-C güç girişi, `J3`
yalnızca harici 5 V güç girişi, `J1` ise yalnızca JTAG/UART debug portudur.
J1 hiçbir zaman SYS5'i beslemez; bu yüzden J1'e bağlı bir host, kartın 5 V
gücüne back-feed edemez.
- J1 CC1/CC2 -> U5 TUSB320LAI; PORT=GND ile UFP/sink; OUT1/OUT2 kullanılmıyor.
- J1 D+/D− -> U6 TPD2EUSB30A -> R63/R64 27 ohm -> U2 FT4232H.
- J1 VBUS -> yalnızca yerel algılama: 900 kohm bölücüyle U5 `VBUS_DET`,
4.7 k/10 k bölücüyle self-powered FT4232H `RESET_N`.
- J7 CC1/CC2 -> U35 TUSB320LAI; PORT=GND ile UFP/sink.
- J7 VBUS -> U7 TPS259470A -> `USB5_PROT` -> U9 TPS2121 -> `SYS5`.
- Harici J3 5 V -> U8 TPS259470A -> `EXT5_PROT` -> U9 TPS2121 -> `SYS5`.
- U10/U11, J7 3 A ilanı veya seçilmiş harici kaynak yoksa ana FPGA güç
converterlarını kapalı tutar.
## Test noktaları
| TP | Net | Amaç |
|---|---|---|
| TP1 | `U7_FLT` | USB eFuse fault |
| TP2 | `U8_FLT` | Harici giriş eFuse fault |
| TP3 | `ANT_BIAS_OC` | Aktif anten over-current |
| TP4 | `VBUS_RAW` | J7 USB-C güç girişi VBUS'ı |
| TP5 | `EXT5_RAW` | Harici 5 V giriş |
| TP6 | `SYS5` | Seçilmiş sistem 5 V |
| TP7 | `VCC3V3_AUX` | Her zaman açık yardımcı 3.3 V |
| TP8 | `VCC0V95` | FPGA core 0.95 V |
| TP9 | `VCC1V8` | FPGA AUX/config 1.8 V |
| TP10 | `VCC3V3` | FPGA/IMU/PMOD 3.3 V |
| TP11 | `VCC3V0_RF` | MAX2771 analog 3.0 V |
| TP12 | `VCC3V0_DIG` | MAX2771/FPGA bank 3.0 V |
| TP13 | `FPGA_CRESET_N` | FPGA reset durumu |
| TP14 | `FPGA_CDONE` | Konfigürasyon tamamlandı |
| TP15 | `GND` | Ölçüm referansı |