Initial Ti375 GNSS IMU board design and documentation
This commit is contained in:
@@ -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 |
|
||||
Reference in New Issue
Block a user