Document STEVAL INT1 hardware verification

This commit is contained in:
2026-07-16 17:51:43 +03:00
parent 927f6e2858
commit 38a96dd88f
4 changed files with 78 additions and 34 deletions
+27 -19
View File
@@ -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
+7 -6
View File
@@ -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.
+38 -6
View File
@@ -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: