I2C Fehler bei Leitungsberührung?

Status
Nicht offen für weitere Antworten.

eXc

Erfahrener Benutzer
#1
Hallo,

ich habe mir ein neues Gimbal zusammengebaut und habe Probleme bei der Datenübertragung der IMU zum Hauptboard (AlexMos).
Musste aufgrund der Größe die Silikonleitung verlängert und nun passiert folgendes. Werden die Leitungen zu stark geknickt, oder wenn man sie zwischen den Fingern verdreht (egal an welcher Stelle), dann steigt der Fehlerwert für I2C plötzlich an. Liegt das vielleicht daran, dass ich normale 0,14 Leitung zum verlängern genommen habe?

Wie handhabt Ihr das, wenn die urspüngliche Verbindung in der Länge nicht reicht und woher können diese Fehler kommen.

mfg Christian
 

ApoC

Moderator
#3
In der Tat ist der I²C Bus leider viel zu zickig für diese Anwendung. Nimmt man die normale Idee, die Philips dahinter sah, würden garkeine "langen" Leitungswege vorkommen. (TV Bereich) Natürlich ist ein Feldbus bei dieser Anwendung overpowerd, aber an CAN (ist ja auch ne Art Feldbus) hätte man trotzdem denken können.

Wiederum sind die Leitungslängen durchaus kurz zu halten, was bei normalen Gimbals durchaus reicht. Aber in Sachen EMV ist der I²C Bus sehr störanfällig. Zumal es keinerlei Fehlererkennung auf der SDA Leitung gibt.

Und auch klar ist, warum I²C - schnell zu coden, einfacher Aufbau, mit nem Atmel sogar ohne zusätzliche Bauelemente realisierbar.
Dadurch ist der Controller günstiger.

Lange Kabel, welche womöglich noch von Interferenzen, zb den Magnetfeldern der Motoren, dem Antriebsströmen usw, gestört werden, gehören zu den "Worst Cases" auf dem I²C Bus. Wir mussten - beruflich - schon einige Niederschläge einstecken deswegen - aber in der Automation werden auch heute noch - systemkritische Komponenten - seriell mit 9600 Baud angesprochen. ;)

Und man muss sich eben im Klaren sein, das das alles "Bastelprojekte" sind, seien es die BG Controller, "Billig FCs", oder sogar manche "grosse" FC, die sich für gross hält, aber immer ein Bastelprojekt bleiben wird.

Und da zählt eben eins: Einfach, billig, schnell, ohne grossen Aufwand. I²C eben ^^

Das hatte bei MWii schon angefangen, als externe Sensoren kamen. Kaum war die Verbindung zwischen Sensor und FC nur ein paar mm zu lang, nur Fehler.

Es ist billig - aber nicht mehr zeitgemäss.

AQ machts richtig - weg von I²C, hin zu CAN (ist noch so, oder Norbert?). Sollten einige "Profis" mal drüber nachdenken.
 

kinderkram

Erfahrener Benutzer
#5
Is schon richtig: I2C is billich & willich. Weit verbreitet, gut dokumentiert und im Zusammenspiel mit Atmel/Arduino ruckzuck gecodet.

Mikrokopter hat damit immerhin Weltruhm erlangt :p aber aus gutem Grund die ESCs immer nahe der Centerplate gehalten, um Kabelwege möglichst kurz zu halten. Applikationen wie FCs und kleine Gimbals haben damit wenig am Hut - außer man kreuzt die I2Cs mit Powerkabeln oder führt die an streuenden Units vorbei.

Solange es aber für ein paar Cents Work-Arounds gibt wie den Ferritring, wird wohl auch weiterhin die billig&schnell Variante zum Einsatz kommen...
 
#6
Ja, nicht zu vergessen das die verwendeten Sensoren eben von Haus aus i2c sprechen, mit anderem Bus wäre hier auf beiden Seiten was zu ändern. Ich denke verdrillte Kabel evtl mit Schirmung sollten auch etwas helfen, sind ja keine Meter von denen wir hier sprechen.

Weiß jemand ob DJI den externen Kompass beim Phantom auch per i2c ansteuert oder hier wie bei den anderen Komponenten CAN verwendet?
 

JUERGEN_

Generation 60++
#7
.
nun ratet doch mal, warum auf einem PC-Motherboard massenhaft von 22ohm Widerstände verbaut sind ? :D

schon mal etwas von Leitungsanpassung gehört?

und die aller einfachste Methode um Reflexionen zu unterdrücken, sind die zu dämpfen.
d.h. einfach mal einen 22ohm in die Leitung einfügen.


UND;
die GND Verbinung ist immer noch die wichtigste Verbindung in einem System.

:)

einige Ursachen;
-> http://www.vias.org/mikroelektronik/line_termination.html
 
Zuletzt bearbeitet:

Andi

Erfahrener Benutzer
#11
hmm,
hab das jetzt mit Ferritring und den Widerständen probiert , die IC2 Fehler zählen jetzt etwas langsamer hoch aber eine wirkliche verbesserung bekomme ich nicht hin , allerdings hatte ich mit der originallänge ( 25cm)auch schon viele Fehler ,ich brauch (40cm)
Zählt hoch auf ~30.000 Fehler , geht ins negative und zählt zurück , es ist nur das GimbalBoard ( AlexMos)und und die IMU angeschlossen sonst nix . Hat die IMU nen Knacks ?

edit : sehe gerade mit der 2.04er Firmware ( Alexmos) kan man interne Pullups aktivieren jetzt ist ruhe !?
 
Zuletzt bearbeitet:

Andi

Erfahrener Benutzer
#13
hilft aber nur bedingt .
Hab gelesen das mit 0,09m² Kabelquerschnitt bis ca 50cm gehen soll.(Möglichst dünnes ) find nur die beschreibung nicht mehr
 

Andi

Erfahrener Benutzer
#14
nun ,nach einigen Test:
was hilft bei langen Leitungen bis ca. 50cm ist ein geschirmtes Mikrofonkabel ,bei allen anderen Versuchen musste ich mindest 15 cm Abstand zu den Motoren halten .
 

eXc

Erfahrener Benutzer
#15
Ich habe einfach von einer alten Tastatur die geschirmte Anschlussleitung genommen, bin aber bis jetzt noch zu keinem Test gekommen.
Werde aber berichten sobald ich Ergebnisse habe.
 

otti20vt

Erfahrener Benutzer
#16
Hallo Leute,

Ich habe nun wohl auch ein I2C problem bei meinem neuen Gimbal.

Könnte mir jemand sagen wo man die I2C fehler abrufen oder einsehen kann?
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten