Closed roman-dvorak closed 3 years ago
Tady asi chybí nějaké "měření/pokusy" který by zjisti, kde je problém.
Driver neprovádí novou inicializaci RPM senzoru. Ale je potřeba vyzkoušet že reset rpm driveru stačí na obnovení funkčnosti.
Originally posted by @slimonslimon in https://github.com/ThunderFly-aerospace/TF-G2/issues/76#issuecomment-781265065
Zatím jsem nerozběhl obě čidla, protože je potřeba změnit firmware, nicméně jsem měřil jak vypadá komunikace po I2C s TFRPM a objevil jsem tam tohle:
Je nepříjemné, že tam jsou ty krátké zákmity podstatně kratší než běžné bity. Může to způsobovat přeslechy a tím pádem hazardní stavy na sběrnici.
Tak jsem asi zprovoznil oba drivery. Nicméně zatím nemůžu potvrdit, zda to funguje, nebo nikoliv. Podezřelé ale je, že TFRPM senzor je nyní schopen dávat nesmyslné hodnoty.
@slimonslimon nedovedeš vysvětlit jak je možné, že to pošle takhle velké záporné číslo?
Tak pokud se zapojí TFSLOT do série s TFRPM tak se s docela velkou pravděpodobností na SDA stane tohle (za pozornost stojí zejména to, že generované obdélníky jsou na 6 MHz, tedy naprosto mimo pásmo běžné I2C signalizace):
Vznikne to následující sekvencí příkazů:
icm20948i2c start -X -b 4
V tomto okamžiku je sběrnice ještě v pořádku. Rozbije se až následujícím příkazem:
sdp3x_airspeed start -X
Pokud se TFASPDIMU odpojí a připojí zpátky, tak se sběrnice zotaví a jsou na ní normální data.
Pokud se k autopilotovi připojí pouze TFASPDIMU na krátké dráty (15cm), tak I2C částečně funguje. Zákmity vznikají jen mezi bity, kdy je sběrnice zřejmě buzena pouze pull-upy.
Jedná se tak zjevně o HW problém.
Po vložení sériového rezistoru 82 Ohm mezi konektor a napěťový translátor na signál SDA se situace stabilizovala a zařízení začalo být použitelné. Dalšího zlepšení lze zřejmě dosáhnout optimalizací hodnoty rezistoru. Viz issue: https://github.com/ThunderFly-aerospace/TFASPDIMU01/issues/5
Závěr však je, že obě zařízení na stejné sběrnici technicky mohou být provozovány.
A jak to teď vlastně je s použitím TFRPM driveru na stejné sběrnici jako TFSLOT? Funguje to, nebo ne?
Protože k TFSLOT se stejně I2C na pylon bude tahat, takže nevidím moc rozdíl v tom tam vést dvakrát I2C, nebo I2C a servokablík.
Z hlediska HW by bylo nejlepší řešení jen jedno I2C na které by byly připojeny oba senzory, díky tomu, že TFRPM je průchozí. Vím ale že dříve jsme s tímto řešením měli potíže. Je tak otázka zda je to však relevantní i pro současný software?
Originally posted by @kaklik in https://github.com/ThunderFly-aerospace/TF-G2/issues/76#issuecomment-780865480