Initial Ti375 GNSS IMU board design and documentation

This commit is contained in:
2026-08-15 18:09:17 +03:00
commit b706197667
69 changed files with 132859 additions and 0 deletions
+144
View File
@@ -0,0 +1,144 @@
# Üretim, doğrulama ve routing akışı
## Gereksinimler
- KiCad 10.x ve `kicad-cli`.
- KiCad ile aynı sürümden `/usr/bin/python3` ve `pcbnew` modülü.
- Python paketleri: `pip install -r requirements.txt`.
- Yoğun sinyal routing aşaması için isteğe bağlı Freerouting 2.3.x.
`pcbnew` kullanan scriptler sistem Python'u ile çalıştırılmalıdır. Normal
Python ortamına yalnızca `pip install pcbnew` yapmak KiCad ABI uyumluluğunu
garanti etmez.
## Dosya üretim sırası
Repository kökünden:
```bash
python3 scripts/generate_footprints.py
python3 scripts/generate_kicad.py
python3 scripts/generate_design_tables.py
/usr/bin/python3 scripts/generate_pcb.py
```
Bu sıralama:
1. Özel footprintleri üretir.
2. `design_data.py` üzerinden şema hiyerarşisini ve BOM'u üretir.
3. Efinity C529 paket verisine karşı pin tablolarını doğrular ve üretir.
4. 8 katmanlı stackup, kurallar, zone'lar ve placement ile PCB'yi üretir.
`design_data.py` çalıştırıldığında dahili bağlantı assertion'ları da yürütülür:
```bash
python3 scripts/design_data.py
```
## Şema ve placement doğrulaması
```bash
kicad-cli sch erc --severity-all \
-o outputs/erc_final_reset.rpt hardware/board.kicad_sch
kicad-cli pcb drc --severity-all \
-o outputs/drc_final_placement.rpt hardware/board.kicad_pcb
```
Unrouted placement aşamasında unconnected-pad ve isolated-zone kayıtları
beklenir. Clearance, short, courtyard, solder-mask, edge ve footprint hataları
beklenmez.
## Routing sırası
### 1. BGA escape
```bash
/usr/bin/python3 scripts/preroute_bga.py \
hardware/board.kicad_pcb hardware/board_prerouted.kicad_pcb
```
Ti375'in bağlı ball'larına kilitli 0.8 mm pitch dogbone/via escape ekler.
### 2. Yerel plane bağlantıları
```bash
/usr/bin/python3 scripts/stitch_plane_pads.py \
hardware/board_prerouted.kicad_pcb \
hardware/board_plane_stitched.kicad_pcb
```
Yalnızca altında gerçekten aynı nete ait dolu plane bulunan SMD güç/GND
padlerini kısa dogbone ile bağlar. Bu işlem yüksek akım buck loop routinginin
yerini tutmaz.
### 3. Güç katı
KiCad içinde önce aşağıdaki hatlar elle route edilmelidir:
- TPS6287B15 giriş kapasitörü, SW, indüktör, çıkış kapasitörü ve remote-sense.
- TPS62867 1.8 V ve 3.3 V converter loopları.
- SYS5 dağıtımı ve ana güç geçişleri.
- LDO giriş/çıkış bypass bağlantıları.
SW node bakırı küçük tutulmalı; feedback/sense hatları SW ve indüktörden uzak,
Kelvin bağlantılı götürülmelidir. Autorouter bu kararları vermez.
### 4. Freerouting için sınıf bazlı DSN
```bash
/usr/bin/python3 scripts/export_routing_stage.py \
hardware/board_plane_stitched.kicad_pcb outputs/signal_stage.dsn \
--classes "Default;BGA_ESCAPE;CLOCK" \
--preview outputs/signal_stage_preview.kicad_pcb
python3 scripts/prepare_freerouting_dsn.py \
outputs/signal_stage.dsn outputs/signal_stage_freerouting.dsn
```
İkinci script Freerouting 2.3.0/KiCad 10 DSN clearance ölçek farkını düzeltir;
koordinatlara, track genişliklerine, via veya keepoutlara dokunmaz. Freerouting
arayüzünde düzeltilmiş DSN açılır, en fazla 8 thread kullanılır ve sonuç `.ses`
olarak kaydedilir.
RF, USB, güç converter loopları ve hassas clock kararları otomatik sonuca
bırakılmamalıdır. `to route` sayısının uzun süre düşmemesi halinde aynı işlemi
saatlerce sürdürmek yerine placement/escape/keepout çatışması incelenmelidir.
### 5. Kritik hatları kur ve session'ı sonlandır
```bash
/usr/bin/python3 scripts/finalize_routing.py \
outputs/signal_stage.ses \
--output hardware/board_routed.kicad_pcb
```
Bu işlem Freerouter'ın RF ve USB üzerindeki copperını kaldırır, denetlenmiş
RF/USB geometrisini ekler, RF GND via fence'i kurar ve zone'ları doldurur.
### 6. Final kontroller
```bash
kicad-cli pcb drc --severity-all --schematic-parity --refill-zones \
--save-board -o outputs/drc_final_routed.rpt \
hardware/board_routed.kicad_pcb
```
Final kartta unconnected item, short, clearance, isolated copper veya
schematic-parity hatası kabul edilmez. RF uzunlukları, USB eşleşmesi, güç
loopları, return path ve test-point erişimi görsel olarak da incelenmelidir.
## Script özeti
| Script | Görev |
|---|---|
| `design_data.py` | Tek kaynak komponent/net verisi ve bağlantı assertion'ları |
| `generate_footprints.py` | Üretici land-patternlerinden özel footprint üretimi |
| `generate_kicad.py` | Şema, sembol ve BOM üretimi |
| `generate_design_tables.py` | Ti375 pinout/constraint ve MAX2771 tablo üretimi |
| `generate_pcb.py` | Stackup, rule, zone ve deterministic placement üretimi |
| `preroute_bga.py` | Kilitli Ti375 dogbone escape |
| `stitch_plane_pads.py` | Yerel pad-to-plane bağlantıları |
| `export_routing_stage.py` | Seçili net-class için DSN üretimi |
| `prepare_freerouting_dsn.py` | Freerouting 2.3 clearance düzeltmesi |
| `finalize_routing.py` | SES importu ve denetlenmiş RF/USB geometrisi |