From 38a96dd88f4905ab508b6c1919398881ef093902 Mon Sep 17 00:00:00 2001 From: onur Date: Thu, 16 Jul 2026 17:51:43 +0300 Subject: [PATCH] Document STEVAL INT1 hardware verification --- soc/software/fusion/README.md | 46 ++++++++++++--------- soc/software/gps_system/README.md | 13 +++--- soc/software/steval_mki217v1_test/README.md | 44 +++++++++++++++++--- targets/fpga/genesys2/README.md | 9 ++-- 4 files changed, 78 insertions(+), 34 deletions(-) diff --git a/soc/software/fusion/README.md b/soc/software/fusion/README.md index 49e2afd..d4b44d6 100644 --- a/soc/software/fusion/README.md +++ b/soc/software/fusion/README.md @@ -45,38 +45,46 @@ Doğrulama durumu: - Linux/GCC sentetik hareket, stationary, ani ivmelenme/fren, dönüş, ZUPT, GPS NIS rejection, gecikmiş GPS replay, covariance invariantları ve 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 - stationary ham veri kaydı gerçek Genesys2 kartında doğrulandı. Bu, tek başına - bütünleşik fusion doğrulaması değildir. +- STEVAL-MKI217V1 üzerindeki LSM6DSOX'un SPI Mode-0 okuması, 60 saniyelik + stationary ham veri kaydı ve fiziksel INT1 yolu gerçek Genesys2 kartında + 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 ASIC/Questa simülasyonunda geçti. -- Genesys2 fiziksel sensör interrupt girişi son tasarımda `JC9/AK30`, GPS PPS - çıkışı `JC10/AK28`'dir. JC9'a geçişin kaynak/XDC/standalone test değişiklikleri - 2026-07-16 denetiminde henüz ayrı commit/push yapılmamıştı. +- Genesys2 fiziksel sensör interrupt girişi son tasarımda `JB1/V29`, GPS PPS + çıkışı `JC10/AK28`'dir. Eski `JC9/AK30` dokümantasyonu geçersizdir. STEVAL + `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 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ı değildir. -Git devralma durumu: aktif branch `tdk_ekf`, yerel HEAD `35fbc5b` ve -`origin/tdk_ekf` `df563aa` idi; yani yerel branch remote'dan bir commit ilerideydi. -Çalışma ağacında JC9 XDC/wrapper/test değişikliklerinin yanında çok sayıda -üretilmiş bitstream, object, simülasyon ve log dosyası bulunuyordu. Yeni oturum -önce `git status`, `git diff` ve `git log --oneline --decorate -5` ile tekrar -kontrol etmeli; üretilmiş dosyaları ayırmadan `git add -A` kullanmamalıdır. +Git devralma durumu: aktif branch `tdk_ekf`'dir. Çalışma ağacında GPS/nav-timer +kaynak değişiklikleri ile çok sayıda üretilmiş bitstream, object, simülasyon ve +log dosyası bulunabilir. Yeni oturum önce `git status`, `git diff` ve +`git log --oneline --decorate -5` ile tekrar kontrol etmeli; üretilmiş dosyaları +ayırmadan `git add -A` kullanmamalıdır. Sonraki ana adımlar: -1. JC9 kaynak/XDC ve test dokümanlarını seçerek commit etmek ve remote'a push - 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 +1. `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/ 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. -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 diff --git a/soc/software/gps_system/README.md b/soc/software/gps_system/README.md index dc7191e..b053e14 100644 --- a/soc/software/gps_system/README.md +++ b/soc/software/gps_system/README.md @@ -71,18 +71,19 @@ yoktur. Desteklenen ODR'ler TDK icin 25/50/100/200/500/1000 Hz, ST icin 52/104/208 Hz'dir. 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 surucusu LSM6DSOX accel data-ready olayini INT1'e yonlendirir; ISR local CLINT timestamp'ini basta alir, latched kaynagi temizler, ayni sample'in gyro ve sicaklik alanlarini okuyup statik SPSC kuyruğa koyar. `imu_sensor_service()` interrupt backend'lerde no-op'tur. -Standalone LSM6DSOX SPI okuma ve stationary log kartta dogrulanmistir. Buna -karsilik JC9 fiziksel interrupt yolu ile GPS + ST + ESKF'nin ayni urun firmware -kosusundaki end-to-end testi henuz tamamlanmis sayilmamalidir. ASIC/Questa -simulasyonunda asynchronous input -> 3FF -> PLIC device 11 -> C ISR yolu -gecmistir. Yuksek ODR ve uzun WLS sirasinda sample kaybini daha da azaltmak +Standalone LSM6DSOX SPI okuma, stationary log ve `INT1 -> JB1 -> 3FF -> PLIC +11 -> C ISR` fiziksel yolu kartta dogrulanmistir. 2026-07-16 canli sayac +snapshot'inda 4084 interrupt'in 4084'u sample'a donusmus; read-fail, queue +overflow, unexpected IRQ ve trap sayilari sifir kalmistir. Buna karsilik GPS + +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; ortak IMU arayuzu ve ESKF bunun icin degismeyecektir. diff --git a/soc/software/steval_mki217v1_test/README.md b/soc/software/steval_mki217v1_test/README.md index 583eb13..790e78a 100644 --- a/soc/software/steval_mki217v1_test/README.md +++ b/soc/software/steval_mki217v1_test/README.md @@ -14,13 +14,15 @@ be integrated separately after the IMU link is verified. | SDA | JC2 | SPI MOSI / SDI | | SDO | JC3 | SPI MISO | | SCL | JC4 | SPI clock / SPC | -| INT1 | JC9 | active-high data-ready interrupt | -| VDD | 3.3 V | sensor supply | -| VDDIO | 3.3 V | digital I/O supply | -| GND | GND | common ground | +| INT1 | JB1 | active-high data-ready interrupt | +| VDD | JC6 / 3.3 V | sensor supply | +| VDDIO | JC12 / 3.3 V | digital I/O supply | +| GND | JC5 or JC11 | common ground | -`CS` is mandatory for four-wire SPI. Never feed 5 V to VDDIO. JC9 is routed -through the FPGA 3FF synchronizer to PLIC device 11. +`CS` is mandatory for four-wire SPI. Never feed 5 V to VDDIO. The current +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) @@ -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, 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 From the repository root: diff --git a/targets/fpga/genesys2/README.md b/targets/fpga/genesys2/README.md index 3086b0a..6af5ced 100644 --- a/targets/fpga/genesys2/README.md +++ b/targets/fpga/genesys2/README.md @@ -127,12 +127,15 @@ pmod_spi_dq[3] AG30 JC8 Pin constraintleri `hardware/fpga/genesys2/constraints/genesys2_pmod_spi.xdc` dosyasindadir ve Vivado akisi tarafindan her RF modunda okunur. -Sensorden gelen external interrupt hatti SPI'dan bagimsizdir. `pmod_irq` -olarak JC9'a cikar ve PLIC'te `BSP_PMOD_IRQ` (`11`) ID'siyle gorunur. +Sensorden gelen external interrupt hatti SPI'dan bagimsizdir. Guncel pin +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 port FPGA pin PMOD pin -pmod_irq AK30 JC9 +pmod_irq V29 JB1 ``` Pin constraintleri `hardware/fpga/genesys2/constraints/genesys2_pmod_irq.xdc`