Document STEVAL INT1 hardware verification
This commit is contained in:
@@ -45,38 +45,46 @@ Doğrulama durumu:
|
|||||||
- Linux/GCC sentetik hareket, stationary, ani ivmelenme/fren, dönüş, ZUPT,
|
- Linux/GCC sentetik hareket, stationary, ani ivmelenme/fren, dönüş, ZUPT,
|
||||||
GPS NIS rejection, gecikmiş GPS replay, covariance invariantları ve
|
GPS NIS rejection, gecikmiş GPS replay, covariance invariantları ve
|
||||||
ASan/UBSan testleri geçti. Ayrıntılı sonuçlar aşağıdadır.
|
ASan/UBSan testleri geçti. Ayrıntılı sonuçlar aşağıdadır.
|
||||||
- STEVAL-MKI217V1 üzerindeki LSM6DSOX'un SPI Mode-0 okuması ve 60 saniyelik
|
- STEVAL-MKI217V1 üzerindeki LSM6DSOX'un SPI Mode-0 okuması, 60 saniyelik
|
||||||
stationary ham veri kaydı gerçek Genesys2 kartında doğrulandı. Bu, tek başına
|
stationary ham veri kaydı ve fiziksel INT1 yolu gerçek Genesys2 kartında
|
||||||
bütünleşik fusion doğrulaması değildir.
|
doğrulandı. 2026-07-16 canlı tekrarında 4084 interrupt'ın tamamı sample'a
|
||||||
|
dönüştü; read-fail, queue overflow, unexpected IRQ ve trap sayıları sıfırdı.
|
||||||
|
Ölçülen 105.789 Hz hız yapılandırılan 104 Hz ODR ile uyumluydu. Bu, tek
|
||||||
|
başına bütünleşik fusion doğrulaması değildir.
|
||||||
- PMOD asynchronous input -> 3FF synchronizer -> PLIC device 11 -> C ISR yolu
|
- PMOD asynchronous input -> 3FF synchronizer -> PLIC device 11 -> C ISR yolu
|
||||||
ASIC/Questa simülasyonunda geçti.
|
ASIC/Questa simülasyonunda geçti.
|
||||||
- Genesys2 fiziksel sensör interrupt girişi son tasarımda `JC9/AK30`, GPS PPS
|
- Genesys2 fiziksel sensör interrupt girişi son tasarımda `JB1/V29`, GPS PPS
|
||||||
çıkışı `JC10/AK28`'dir. JC9'a geçişin kaynak/XDC/standalone test değişiklikleri
|
çıkışı `JC10/AK28`'dir. Eski `JC9/AK30` dokümantasyonu geçersizdir. STEVAL
|
||||||
2026-07-16 denetiminde henüz ayrı commit/push yapılmamıştı.
|
`INT1 -> JB1 -> 3FF synchronizer -> PLIC 11 -> C ISR` yolu gerçek kartta
|
||||||
|
kesintisiz sample akışıyla doğrulandı.
|
||||||
- GPS + ST/TDK + ESKF'nin aynı gerçek firmware koşusunda hareketli platform
|
- GPS + ST/TDK + ESKF'nin aynı gerçek firmware koşusunda hareketli platform
|
||||||
testi, Rocket `rdcycle` yük ölçümü, mounting dönüşümü ve sample-loss testi
|
testi, Rocket `rdcycle` yük ölçümü, mounting dönüşümü ve sample-loss testi
|
||||||
henüz tamamlanmadı. Sentetik metre sonuçları gerçek saha accuracy iddiası
|
henüz tamamlanmadı. Sentetik metre sonuçları gerçek saha accuracy iddiası
|
||||||
değildir.
|
değildir.
|
||||||
|
|
||||||
Git devralma durumu: aktif branch `tdk_ekf`, yerel HEAD `35fbc5b` ve
|
Git devralma durumu: aktif branch `tdk_ekf`'dir. Çalışma ağacında GPS/nav-timer
|
||||||
`origin/tdk_ekf` `df563aa` idi; yani yerel branch remote'dan bir commit ilerideydi.
|
kaynak değişiklikleri ile çok sayıda üretilmiş bitstream, object, simülasyon ve
|
||||||
Çalışma ağacında JC9 XDC/wrapper/test değişikliklerinin yanında çok sayıda
|
log dosyası bulunabilir. Yeni oturum önce `git status`, `git diff` ve
|
||||||
üretilmiş bitstream, object, simülasyon ve log dosyası bulunuyordu. Yeni oturum
|
`git log --oneline --decorate -5` ile tekrar kontrol etmeli; üretilmiş dosyaları
|
||||||
önce `git status`, `git diff` ve `git log --oneline --decorate -5` ile tekrar
|
ayırmadan `git add -A` kullanmamalıdır.
|
||||||
kontrol etmeli; üretilmiş dosyaları ayırmadan `git add -A` kullanmamalıdır.
|
|
||||||
|
|
||||||
Sonraki ana adımlar:
|
Sonraki ana adımlar:
|
||||||
|
|
||||||
1. JC9 kaynak/XDC ve test dokümanlarını seçerek commit etmek ve remote'a push
|
1. `gps_system` içinde ST veya TDK seçerek GPS + IMU + ESKF UART telemetry'sini
|
||||||
etmek; build/sim çıktısını bu commite karıştırmamak.
|
|
||||||
2. Genesys2 üzerinde fiziksel JC9 interrupt sayacı ile LSM6DSOX INT1/sample
|
|
||||||
sayısını birlikte doğrulamak.
|
|
||||||
3. `gps_system` içinde ST veya TDK seçerek GPS + IMU + ESKF UART telemetry'sini
|
|
||||||
gerçek karttan toplamak; fused LLH/ENU, hız, motion state, NIS, GPS accept/
|
gerçek karttan toplamak; fused LLH/ENU, hız, motion state, NIS, GPS accept/
|
||||||
reject, IRQ/sample-loss ve queue sayaçlarını kaydetmek.
|
reject, IRQ/sample-loss ve queue sayaçlarını kaydetmek.
|
||||||
4. Stationary -> ani hareket -> sabit hız -> fren -> tekrar stationary testini
|
2. Stationary -> ani hareket -> sabit hız -> fren -> tekrar stationary testini
|
||||||
yapmak; hareket sırasında ZUPT'nin kapalı kaldığını doğrulamak.
|
yapmak; hareket sırasında ZUPT'nin kapalı kaldığını doğrulamak.
|
||||||
5. PPS için aşağıdaki lock teşhisini tamamlamak.
|
3. PPS için aşağıdaki lock teşhisini tamamlamak.
|
||||||
|
|
||||||
|
Prototip montaj notu: STEVAL jumper kablolarıyla serbest durduğu için başlangıç
|
||||||
|
sensor yönü sabit kabul edilmemelidir. Her açılışta en az iki saniye stationary
|
||||||
|
gravity/bias başlangıcı yapılmalı; roll/pitch gravity'den bulunmalı ve başlangıç
|
||||||
|
yaw'ı ayrı bir mutlak gözlem yoksa keyfi referans olarak kalmalıdır. Sensör bir
|
||||||
|
fusion koşusu başladıktan sonra gövdeye göre yön değiştirirse bunu yalnız
|
||||||
|
accel/gyro ile araç hareketinden güvenilir biçimde ayırmak mümkün değildir;
|
||||||
|
hareketli test boyunca sensör geçici de olsa rijitlenmeli veya filtre yeniden
|
||||||
|
başlatılmalıdır.
|
||||||
|
|
||||||
### PPS çıkmıyor: lock problemi ve teşhis
|
### PPS çıkmıyor: lock problemi ve teşhis
|
||||||
|
|
||||||
|
|||||||
@@ -71,18 +71,19 @@ yoktur. Desteklenen ODR'ler TDK icin 25/50/100/200/500/1000 Hz, ST icin
|
|||||||
52/104/208 Hz'dir.
|
52/104/208 Hz'dir.
|
||||||
|
|
||||||
TDK ve ST veri-hazir interrupt'i ile calisir ve ana dongu `wfi` kullanabilir.
|
TDK ve ST veri-hazir interrupt'i ile calisir ve ana dongu `wfi` kullanabilir.
|
||||||
Genesys2 son pin planinda ortak aktif sensor interrupt girişi `JC9/AK30`
|
Genesys2 son pin planinda ortak aktif sensor interrupt girişi `JB1/V29`
|
||||||
uzerinden wrapper'daki 3FF synchronizer'a, oradan PLIC device 11'e gider. ST
|
uzerinden wrapper'daki 3FF synchronizer'a, oradan PLIC device 11'e gider. ST
|
||||||
surucusu LSM6DSOX accel data-ready olayini INT1'e yonlendirir; ISR local CLINT
|
surucusu LSM6DSOX accel data-ready olayini INT1'e yonlendirir; ISR local CLINT
|
||||||
timestamp'ini basta alir, latched kaynagi temizler, ayni sample'in gyro ve
|
timestamp'ini basta alir, latched kaynagi temizler, ayni sample'in gyro ve
|
||||||
sicaklik alanlarini okuyup statik SPSC kuyruğa koyar. `imu_sensor_service()`
|
sicaklik alanlarini okuyup statik SPSC kuyruğa koyar. `imu_sensor_service()`
|
||||||
interrupt backend'lerde no-op'tur.
|
interrupt backend'lerde no-op'tur.
|
||||||
|
|
||||||
Standalone LSM6DSOX SPI okuma ve stationary log kartta dogrulanmistir. Buna
|
Standalone LSM6DSOX SPI okuma, stationary log ve `INT1 -> JB1 -> 3FF -> PLIC
|
||||||
karsilik JC9 fiziksel interrupt yolu ile GPS + ST + ESKF'nin ayni urun firmware
|
11 -> C ISR` fiziksel yolu kartta dogrulanmistir. 2026-07-16 canli sayac
|
||||||
kosusundaki end-to-end testi henuz tamamlanmis sayilmamalidir. ASIC/Questa
|
snapshot'inda 4084 interrupt'in 4084'u sample'a donusmus; read-fail, queue
|
||||||
simulasyonunda asynchronous input -> 3FF -> PLIC device 11 -> C ISR yolu
|
overflow, unexpected IRQ ve trap sayilari sifir kalmistir. Buna karsilik GPS +
|
||||||
gecmistir. Yuksek ODR ve uzun WLS sirasinda sample kaybini daha da azaltmak
|
ST + ESKF'nin ayni urun firmware kosusundaki end-to-end testi henuz tamamlanmis
|
||||||
|
sayilmamalidir. Yuksek ODR ve uzun WLS sirasinda sample kaybini daha da azaltmak
|
||||||
gerekirse sonraki gelistirme sensor FIFO + sensor timestamp kullanmaktir;
|
gerekirse sonraki gelistirme sensor FIFO + sensor timestamp kullanmaktir;
|
||||||
ortak IMU arayuzu ve ESKF bunun icin degismeyecektir.
|
ortak IMU arayuzu ve ESKF bunun icin degismeyecektir.
|
||||||
|
|
||||||
|
|||||||
@@ -14,13 +14,15 @@ be integrated separately after the IMU link is verified.
|
|||||||
| SDA | JC2 | SPI MOSI / SDI |
|
| SDA | JC2 | SPI MOSI / SDI |
|
||||||
| SDO | JC3 | SPI MISO |
|
| SDO | JC3 | SPI MISO |
|
||||||
| SCL | JC4 | SPI clock / SPC |
|
| SCL | JC4 | SPI clock / SPC |
|
||||||
| INT1 | JC9 | active-high data-ready interrupt |
|
| INT1 | JB1 | active-high data-ready interrupt |
|
||||||
| VDD | 3.3 V | sensor supply |
|
| VDD | JC6 / 3.3 V | sensor supply |
|
||||||
| VDDIO | 3.3 V | digital I/O supply |
|
| VDDIO | JC12 / 3.3 V | digital I/O supply |
|
||||||
| GND | GND | common ground |
|
| GND | JC5 or JC11 | common ground |
|
||||||
|
|
||||||
`CS` is mandatory for four-wire SPI. Never feed 5 V to VDDIO. JC9 is routed
|
`CS` is mandatory for four-wire SPI. Never feed 5 V to VDDIO. The current
|
||||||
through the FPGA 3FF synchronizer to PLIC device 11.
|
Genesys2 constraint routes JB1 (`V29`) through the FPGA 3FF synchronizer to
|
||||||
|
PLIC device 11. Older README revisions named JC9 (`AK30`); that mapping is no
|
||||||
|
longer valid. JC10 is reserved for the GPS PPS output.
|
||||||
|
|
||||||
## Hardware bring-up results (2026-07-13)
|
## Hardware bring-up results (2026-07-13)
|
||||||
|
|
||||||
@@ -65,6 +67,36 @@ These measurements are for the stationary board in its test orientation. The
|
|||||||
nonzero gyro mean is startup bias to be estimated by stationary calibration,
|
nonzero gyro mean is startup bias to be estimated by stationary calibration,
|
||||||
not angular motion.
|
not angular motion.
|
||||||
|
|
||||||
|
### INT1 live recheck (2026-07-16)
|
||||||
|
|
||||||
|
The current `tdk_ekf` Genesys2 bitstream was reused without synthesis. The
|
||||||
|
standalone ELF was loaded into DTIM through the already-running OpenOCD/GDB
|
||||||
|
server and UART was observed on `/dev/ttyUSB2` at 115200 baud.
|
||||||
|
|
||||||
|
With only SPI connected, all eight `WHO_AM_I` probes returned `0x6c`,
|
||||||
|
configuration read-back was `CTRL1_XL=0x40`, `CTRL2_G=0x40`,
|
||||||
|
`CTRL3_C=0x44`, `STATUS=0x07`, and foreground polling returned coherent
|
||||||
|
samples. No `IMU_RAW` rows arrived from the interrupt test and the final
|
||||||
|
`interrupt_count` was zero. This separated a working SPI/data path from a
|
||||||
|
missing physical interrupt connection.
|
||||||
|
|
||||||
|
After STEVAL `INT1` was moved to Genesys2 JB1, the same ELF immediately
|
||||||
|
produced continuous interrupt-driven `IMU_RAW` rows. A live counter snapshot
|
||||||
|
showed:
|
||||||
|
|
||||||
|
- `interrupt_count=4084` and `interrupt_sample_count=4084`;
|
||||||
|
- `interrupt_read_fail_count=0` and `queue_overflow_count=0`;
|
||||||
|
- `unexpected_irq_count=0` and `unexpected_trap_cause=0`;
|
||||||
|
- sequence 0 through 1165 covered 11.012478 seconds, corresponding to
|
||||||
|
105.789 Hz and a 9.453 ms mean period for the configured 104 Hz ODR.
|
||||||
|
|
||||||
|
One representative stationary sample was accel `[-3854, -9397, -13071]`,
|
||||||
|
gyro `[35, -4, -32]`, and temperature raw `1265`. The sequence continued
|
||||||
|
monotonically during the observed UART window. This verifies the physical
|
||||||
|
STEVAL INT1 -> JB1/V29 -> 3FF synchronizer -> PLIC 11 -> C ISR -> SPI burst ->
|
||||||
|
SPSC queue path. It does not yet constitute a combined GPS + ST + ESKF moving
|
||||||
|
platform test.
|
||||||
|
|
||||||
## Build and load
|
## Build and load
|
||||||
|
|
||||||
From the repository root:
|
From the repository root:
|
||||||
|
|||||||
@@ -127,12 +127,15 @@ pmod_spi_dq[3] AG30 JC8
|
|||||||
Pin constraintleri `hardware/fpga/genesys2/constraints/genesys2_pmod_spi.xdc`
|
Pin constraintleri `hardware/fpga/genesys2/constraints/genesys2_pmod_spi.xdc`
|
||||||
dosyasindadir ve Vivado akisi tarafindan her RF modunda okunur.
|
dosyasindadir ve Vivado akisi tarafindan her RF modunda okunur.
|
||||||
|
|
||||||
Sensorden gelen external interrupt hatti SPI'dan bagimsizdir. `pmod_irq`
|
Sensorden gelen external interrupt hatti SPI'dan bagimsizdir. Guncel pin
|
||||||
olarak JC9'a cikar ve PLIC'te `BSP_PMOD_IRQ` (`11`) ID'siyle gorunur.
|
planinda `pmod_irq` PMOD JB pin 1'e cikar ve PLIC'te `BSP_PMOD_IRQ` (`11`)
|
||||||
|
ID'siyle gorunur. Eski `JC9/AK30` eslemesi 2026-07-14'te `JB1/V29` olarak
|
||||||
|
degistirildi; mevcut XDC ve bitstream icin sensor `INT1` hatti JB1'e
|
||||||
|
baglanmalidir. JC10 GPS PPS cikisidir.
|
||||||
|
|
||||||
```text
|
```text
|
||||||
port FPGA pin PMOD pin
|
port FPGA pin PMOD pin
|
||||||
pmod_irq AK30 JC9
|
pmod_irq V29 JB1
|
||||||
```
|
```
|
||||||
|
|
||||||
Pin constraintleri `hardware/fpga/genesys2/constraints/genesys2_pmod_irq.xdc`
|
Pin constraintleri `hardware/fpga/genesys2/constraints/genesys2_pmod_irq.xdc`
|
||||||
|
|||||||
Reference in New Issue
Block a user