ThunderFly-aerospace / TF-G2

UAV Autogyro training model and lightweight sensors carrier
https://www.thunderfly.cz/tf-g2.html
GNU General Public License v3.0
19 stars 4 forks source link

Otestovat použití TFRPM a TFSLOT na jedné sběrnici. #88

Closed roman-dvorak closed 3 years ago

roman-dvorak commented 3 years ago

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

roman-dvorak commented 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

kaklik commented 3 years ago

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:

image

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.

kaklik commented 3 years ago

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.

image

@slimonslimon nedovedeš vysvětlit jak je možné, že to pošle takhle velké záporné číslo?

kaklik commented 3 years ago

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):

Newfile4

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.

Newfile5

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.

Newfile6

image

Jedná se tak zjevně o HW problém.

kaklik commented 3 years ago

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.