Files
pcb/scripts/README.md
T

145 lines
4.9 KiB
Markdown
Raw 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.
# Ü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 |