Document fusion handoff and PPS lock diagnosis

This commit is contained in:
2026-07-16 13:45:10 +03:00
parent dd6569c025
commit 927f6e2858
4 changed files with 155 additions and 32 deletions
+19 -15
View File
@@ -15,7 +15,7 @@ ST LSM6DSOX ------/
- `src/tdk_icm42688.c`: TDK ICM42688'e ozel SPI, register, interrupt ve
ham-veri donusumu.
- `src/st_lsm6dsox.c`: STEVAL-MKI217V1 uzerindeki ST LSM6DSOX'e ozel SPI,
register, foreground polling ve ham-veri donusumu.
register, INT1 data-ready interrupt ve ham-veri donusumu.
- `src/imu_sensor.c`: ortak init/start/stop/IRQ/service/measurement arayuzu.
- `src/imu_calibration.c`: markadan bagimsiz bias, 3x3 scale/cross-axis/mounting
donusumu ve opsiyonel sicaklik katsayisi.
@@ -70,23 +70,27 @@ secer. Bu ozellikle `auto` icin onemlidir; TDK ve ST'nin ortak bir ODR degeri
yoktur. Desteklenen ODR'ler TDK icin 25/50/100/200/500/1000 Hz, ST icin
52/104/208 Hz'dir.
TDK veri-hazir interrupt'i ile calisir ve ana dongu `wfi` kullanir. Mevcut ST
baglantisinda interrupt pini bagli olmadigi icin ST surucusu foreground'da
ODR'nin iki kati hizda status poll eder; yeni ornekleri sensor ODR'sinde
uretir. Bu yontem fonksiyoneldir fakat CPU'nun `wfi` ile uyumasini engeller.
Uzun WLS islemi sirasinda foreground durdugu icin sensorun yeni ornekleri
overwrite olabilir. Bu nedenle interruptsiz ST yolu stationary bring-up ve log
testi icindir; hareketli fusion icin kayipsiz bir yol kabul edilmez.
Uretim baglantisinda ST INT pini eklendiginde yalniz ST backend acquisition
yontemi interrupt'a cevrilecek (alternatif olarak sensor FIFO ve sensor
timestamp'i kullanilacak); ortak arayuz ve ESKF degismeyecektir.
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`
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
gerekirse sonraki gelistirme sensor FIFO + sensor timestamp kullanmaktir;
ortak IMU arayuzu ve ESKF bunun icin degismeyecektir.
Sensor ODR'si ile GPS nav-solve periyodu birbirinden bagimsizdir. Her IMU ve GPS
olcumu ayni local monotonic CPU tick domaininde kendi olcum zamaniyla tasinir;
ESKF olaylari timestamp sirasinda isler. TDK interrupt timestamp'i data-ready
kenarini yakindan temsil eder. Poll edilen ST timestamp'i ise data-ready'nin
foreground'da goruldugu andir ve bir polling gecikmesi tasir. Hareketli nihai
sistemde ST INT veya FIFO timestamp kullanma gereksiniminin nedeni budur.
ESKF olaylari timestamp sirasinda isler. TDK ve ST ISR timestamp'i data-ready
kenarini yakindan temsil eder. Daha kesin ve WLS/interrupt latency'sinden
bagimsiz yuksek-ODR zamanlama gerekirse sensor FIFO timestamp'i kullanilmalidir.
### Kalibrasyon ve sicaklik politikasi