J-Log.eu - Forum

JLF ------ SPAM Bots! Bitte nach Registrierung eine Email an mich zur Freischaltung! / After registration drop me an email please for clearing! ===Nenne/name the NICK you used to register with!=== Email address: -> http://j-log.eu/impressum
Aktuelle Zeit: 13. Mär 2020, 06:49

Alle Zeiten sind UTC + 1 Stunde




   [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: JLog und Xbus
Verfasst: 28. Feb 2017, 01:54 
The Madman from Laboratory 4

Registriert: 8. Jun 2011, 14:28
Beiträge: 4760
https://www.rc-heli.de/board/showthread.php?t=259674

Es wäre schon wichtig, möglichst keine elektromagnetischen Störungen auf dem Kabel einzufangen.
Zur Erklärung:

Das ist I²C, auch TWI genannt, weil es ein 2-Draht-Interface ist.
Im Gegensatz zum sonst in RC verbreiteten "dummen" asynchron-seriellen Interface auf einem 1-Wire (z.B. SPEKTRUM SRXL) ist das störanfälliger, hat mehr Resynchronisationsprobleme.

Der generelle Grund ist zunächst, dass, - wenn kein sog. "Bitbang" gemacht wird (in Software, Assembler Code). was man nur tut, wenn man kein I²C mehr frei hat am Microcontroller (JLog2.6's Datenbus-Interface ist Bitbang), und man tut es besser nicht, wenn man nicht Busmaster ist, als Slave interruptgesteuert sein muss, - dann ist Hardware auf beiden Seiten beteiligt, ein I²C Controller im Microcontroller. (sorry für den Schachtelsatz )

Diese Hardware im Prozessor und ihre relativ komplexe Driver Software kann durch harten Eingriff in die Signale u.U. in einen Deadlock getrieben werden. Aus bis zum Repower oder Watchdog Reset des Interfaces.

Hier, beim Xbus kommen aber noch andere Aspekte hinzu, die ein Aufhängen des Busses noch mehr befördern:
Ein Datenpaket, woraus ein Sensor nach einem Interrupt, weil seine (Sensor-)Adresse angesprochen wurde, aussenden muss, besteht aus 16 Bytes.
Wenn jetzt die Abfrage eines Bytes durch Störung nicht ankommt, oder der Master (TM1000) die Antwort nicht hört, dann kann das Ganze asynchron werden. Grund: Die Bytes werden nicht adressiert, man fragt sie einfach nacheinander ab.

Mit JLog kommt hinzu, dass der nicht ein Sensor (Adresse) ist, sondern im Augenblick bis zu 6 (S32). Einem I²C Interface im Microcontroller kann man maximal 2 Adressen sagen, auf die er als Slave hören (antworten) soll. Weil es aber 6 sind, schalten diese sich ebenso sequentiell durch: Eine Reihe von Adressen, - immer, wenn eine 16Byte-Abfrage bedient wurde, bereitet man sich auf die nächste Adresse vor, initialisiert das I²C Interface entsprechend. Zum Glück weiß man, dass die Adressen (Sensoren) vom TM1000 nicht wahllos abgefragt werden, sondern in aufsteigender Abfolge.

Es gibt also 16*6=96 mögliche Anlässe zum Asynchronwerden, wenn jemand die Leitung stört.

JLog (und S32==JLog3) hat Mechanismen zur Resynchronisation eingebaut, die erschöpfend funktionieren. Das sind Watchdogs, die sein Interface und die das Xbus Interface kontrollierende State Machine resetten, wenn 200ms Dunkeltuten war.
(Ich habe jetzt eben Tests gemacht und noch etwas nachgelegt in S32, doppelt hält besser. Das wird dann gleich die Firmware (S32 app) 1.41)

Nun ist aber natürlich auch die andere Seite der I²C Kommunikation zu betrachten, der TM1000.
Der hat noch eine andere Hürde zu meistern: Der Sender bestimmt, ob er abfragt oder nicht. Der Sender bestimmt sogar, welche Adressen in der Reihe er fragt, - nachdem TM1000 dem Sender nach seinem initialen Scan mitteilte, welche Sensoren da sind (im Scan antworteten).
Somit ist auch das Handling der aktivierten Telemetrie-Displays im Sender beteiligt, - und dessen State Machine ist nicht wirklich fehlerfrei.

Jedenfalls passiert folgendes:
Ich stecke S32 während des Betriebs x-mal ab/an, versorge ihn dabei über einen anderen Port mit Betriebsspannung (Port 3 oder 4). Damit simuliere ich böse Störungen.
Simuliere ich immer nur einzelne Störungen (ab/an/ab/an/...), dann kann ich das ewig treiben.
Dann werde ich aber gemein: Ganz schnell immer nur ganz kurz Verbindung. Und bald: Dunkeltuten.

Wer ist schuld, wer hat sich bzgl. Xbus aufgehängt? S32?
Nö. Logic Analyzer ran, und man sieht, dass der TM1000 meist gar keine Adresse mehr fragt, manchmal noch 1..3.
Ob der TM1000 der Schuldige ist oder ein verwirrter Sender.. Who knows? Das Ganze kriegt sich nicht mehr ein, solange der TM1000 dem Sender keinen neuen Scan mitteilen darf. Dazu müssen aber beide 1x aus gewesen sein, was schon mal auf Sender-Beteiligung deutet.

Da sind wir dann als JLog am Ende mit unserem Latein, so weit geht die "Freundschaft" nicht, dass man uns die Sourcen von Sender(n) und TM1000 überlässt, um Ursache und Fix zu finden.
Offenbar gibt es keine Watchdogs dafür in den beiden, Tx und TM1000.

EDIT: Es könnte allerdings auch anders sein, sieht mir inzwischen fast so aus: Mein fickriger Wackelkontakt, der ganz böse Störungen simulieren soll, führt einfach dazu, dass die Antworten aller abgefragten Sensoren Schrott sind. Ob nun TM1000 selbst oder Sender, offenbar lautet dann die endgültige Entscheidung seitens SPEK: Die sind wech, die fragen wir nich mehr. Bingo!
Ich kann das sogar einem bestätigenden Test unterziehen: Mache ich das böse Spiel nicht zu lange, bleiben einzelne Sensoren aktiv im Sender.
Tja.., da kann ich nur untiges wiederholen: Lass das nicht SPEK sehen. dass Sensordaten zur Ungültigkeit verstümmelt werden. Also tu' alles, um Interferenzen fernzuhalten.

Das Problem für SPEK ist nicht, wenn ein beim Scan festgestellter Sensor nicht antwortet, das kann offenbar ruhig lange der Fall sein.
Das Problem ist, wenn dessen Antwort ungültig ist. (Da gibt's dann auch eine Ungereimtheit im Tx: Oft frieren die letzten Werte das gerade angezeigten Displays nur ein, statt Timeout "----" zu zeigen. Dabei bleibt es dann auch, besonders gern "Strom" und "ESC". Schaltet man dann auf das Display eines anderen Sensors im Sender, dann zeigt das Timeout.)
Ich rufe bei Meier an, jemand geht ran, ich verstehe Müller, und daraufhin beschließe ich, nie mehr beim vermeintlichen Meier anzurufen.
Wer weiß..., vielleicht haben die Entwickler mal negative Erfahrungen gemacht, das deshalb eingebaut.. z.B. massiv Fehlalarme. Das Protokoll hat ja auch keinerlei Checksumme..

Die Quintessenz ist also: Nicht der Bus hängt sich auf, - SPEK (TM1000 und/oder Sender) sind eingeschnappt wg. verstümmelter Daten.


Damit bleibt dann nur, zu sagen: Bitte mach die Strippe nicht zu lang, verdrillt und kein Drahtverhau. Bitte meide Nähe des Motors und Verlegung parallel zu Leitungen, die von dickem Strom durchflossen sind.
Vermeide auch Erdschleifen! Eine Masse! Besonders kritisch ist die Masse am Spannungssensor des TM1000. Nicht anschließen!

_________________
Tom


Nach oben
   
 
 Betreff des Beitrags: Re: JLog und Xbus
Verfasst: 28. Feb 2017, 08:35 

Registriert: 14. Aug 2015, 08:35
Beiträge: 53
Hi Tom,

wie immer super Infos! Ich habe ein Modell, bei dem das X-Bus Kabel aufgrund der Komponentenanordnung den Motorleitungen nahe kommen muss.

Frage: Kann man zusätzlich zur Verdrillung dem Kabel noch etwas Gutes tun (Schirmung?)?

Gruß,
Martin

_________________
TDR, Diabolo 550, Protos 500, Trex 250 // BeastX


Nach oben
   
 
 Betreff des Beitrags: Re: JLog und Xbus
Verfasst: 28. Feb 2017, 11:37 
The Madman from Laboratory 4

Registriert: 8. Jun 2011, 14:28
Beiträge: 4760
Tja.., das ist so 'ne Sache.. Es sind relativ niederfrequente elektromagnetische Felder.

Gegen die magnetische Komponente hülfe nur Umwickeln mit Mu-Metall , Fe und Ni.
Wir sind im Nahfeld, die elektrische Komponente überwiegt, da hülfe dann Schirmung..
Wir wissen aber, dass viel Strom fließt, dass das magnetische Feld der Hammer ist.

Wie immer, leider kann man keine Eisenfeilspäne auf die Feldlinien schütten.

Viel, hilft viel, Schirmung wäre prinzipiell nicht verkehrt, obwohl die gegen die magnetische Komponente gar nix bewirkt (Cu).
Wahrscheinlich bringt es sogar was, die Strippe moderat länger zu machen, wenn man sich dadurch orthogonal und in mehr Abstand zu den Feldquellen bewegen kann.
Das Verlegen auf CF könnte sogar helfen, solange da nicht aus Versehen Saft durch fließt.

Was auf jeden Fall hilft, ist das Vermeiden von Ground Loops, gerade, weil auf der RC Spannungsmasse heutzutage so viel Strom fließt.
Im speziellen Falle reicht auf jeden Fall die Masse vom Xbus für S32, zum ESC hin (JIVEpro) ist der sowieso galvanisch entkoppelt.
Wenn S32 nur am Xbus und JIVEpro hängt, ist eine Ground Loop als Ursache für Ärger zw. Master und Slave eigentlich auszuschließen. Allerdings könnte eine Loop auf Seiten des TM1000 trotzdem dem I²C Interface von dessen MCU Offset bescheren.
Leider ist I²C genauso wie leider alles andere in unseren Modellen single-ended (CANbus wäre besser, S32 kann das, macht es mit DJI NAZA), - und on top ist unser Single Ground katastrophal, vor allem durch die Servosteckverbinder, die heutigen Strömen überhaupt nicht mehr adäquat sind. (Ich könnte mich immer totlachen, wenn ich über den UltraGuard lese, der würde ja nur im Falle des Falles.. Haha, wenn die Poster solchen Wissens wüssten, wie viel mal pro Sekunde der UG als Bügeleisen einspringt. Wir sind längst dort angelangt, wo Richtigmachen nicht möglich ist (diese Verbinder sind nun mal da), nur noch "Kitten" hilft, und wie das hilft!)

Sorry für die salomonische und ersatzweise lange Antwort.. Probieren geht über Studieren, wenn man begrenzte Möglichkeiten hat.
- Abstand halten
- nicht parallel verlaufen lassen
- trotzdem möglichst kurz (die Antennenfläche verringern)
- Ground Loops vermeiden
- Schirmung für ein besseres Gefühl , aber das zuletzt
- Fenster öffnen und die Blumen regelmäßig gießen

_________________
Tom


Nach oben
   
 
 Betreff des Beitrags: Re: JLog und Xbus
Verfasst: 28. Feb 2017, 12:08 

Registriert: 14. Aug 2015, 08:35
Beiträge: 53
Na dann gehe ich mal Blumen gießen

_________________
TDR, Diabolo 550, Protos 500, Trex 250 // BeastX


Nach oben
   
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
   [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de