Forum: Mikrocontroller und Digitale Elektronik I2C wird durch Motor gestört.


von Christoph H. (christoph_b)


Lesenswert?

Hallo

Ich habe folgendes Problem.
Mein I2C Signal wird durch einen Motor "etwas" gestört.
Bei einer Induktiven Last(Glühlampe) bleibt der Bus schön auf dem Oszi 
sichtbar.

Am besten sieht man das auf dem Video das ich auf Dropbox hochgeladen 
habe.
Im Video habe ich den Motor über I2C an und wieder ausgeschaltet.
http://dl.dropbox.com/u/41976379/Projekt/Allerlei/PICT0030.MOV
Achtung hat 30Mb.
Mich wundert das der I2C Bus trotzdem noch funtktioniert.


Der Aufbau schaut momentan so aus.
Funk Modul am PC-->)))Funk Modul auf Platine->I2C an Master 
(Atmega2560)-->SPI an Motorplatine(Atmega90PMW3B).

Ja alle Platinen liegen auf der Masse. Die Bus Verbindung (I2C) ist ca 
20cm lang und über ein verdrilltes Aderpaar ausgeführt.(Steckbrett)
Bevor ich die Master Platine aufbaue würde ich noch gerne die Störungen 
rausbekommen.

Was kann ich dagegen unternehmen.Später soll ein Cat5 Kabel mit einem 
SUB-D Stecker für die Verbindung verwendet werden. Reicht das? oder wie 
kann ich sonst noch den Bus besser gegen "Einstreuungen" schützen.

Gruß Christoph

von bitte löschen (Gast)


Lesenswert?

Christoph B. schrieb:
> Bei einer Induktiven Last(Glühlampe) ..
Ja klar doch... ;-)

Werden I²C-Übertragungsfehler erkannt und protokolliert oder wird es bei 
einer fehlgeschlagenen Übertragung einfach probiert bis es klappt?

Das flackert etwas am Anfang und während der Motor läuft ist Dein Signal 
nicht mehr synchron mit der X-Achse. Ich würde mir an deiner Stelle den 
Luxus gönnen und dem Trigger-Eingang Deines Oszis zumindest in dieser 
Entwicklungsphase einen eigenen Pin vom AVR leihen.
Falls meine Vermutung stimmt wirst Du möglicherweise erkennen, dass 
einige Übertragungen zwischen 2 Motorstörimpulsen liegen oder die 
Amplituden der Störimpulse vielleicht nicht ausreichen. Mit dem 
Oszi-Bild wie es im Moment ist, kann man nur raten, in welche Richtung 
die Lösung gehen könnte.

Wie gut hast Du den Motor versorgungsseitig vom AVR getrennt? Wenn Dein 
Oszi 2 Kanäle hat, könntest Du testweise der Versorgung auch einen 
gönnen.
Wo (wie nahe am AVR) ist der GND vom Oszi angeklemmt?

Nachtrag:
Der film ist ein .MOV! Apple/Quicktime -Phobiker wie mein PC und ich 
sollten etwas Zeit mitbringen... ;-/

von Christoph H. (christoph_b)


Lesenswert?

Hallo Philipp

Ich werde noch mal mit dem 2 Eingang die Versorgung aufzeichnen.
Der I2C Bus ist auf einer Eigenen Platine. Die Motorplatine hat nur SPI. 
Den Motor steuere ich über eine H-Brücke an. Der Motor hat einen Eigenen 
Ausgang des Labornetteils. (24V) Die Platine mit dem I2C Bus und den 
Master(2560) habe ich über die USB Schnittstelle versorgt. Von daher 
sollte es kein Problem ergeben.

Habe mal testweise einen P82B96 eingebaut da ich den Bus auf max 3V 
laufen lassen kann und ich gerne auf der "Leitung" zwischen den Atmegas 
gerne einen 5V Pegel hätte. Doch damit kommt keine Übertragung mehr 
zustande. Sobald der Motor läuft stürzt der Bus ab. Erst nach einem 
Reset des Masters geht es wieder. (Master selbst hängt sich nicht auf).

Gruß Christoph

von spess53 (Gast)


Lesenswert?

Hi

Wie gross sind denn deine Pull-Up-Widerstände an SCL und SDA?

MfG Spess

von Christoph H. (christoph_b)


Lesenswert?

Die Pullups sind 4.7k Ohm groß

von Uwe (Gast)


Lesenswert?

Tja Motorplatine entstören (Entstörkondensatoren in die 
Versorgungspannung nahe bei den Motortreibern, Drossel rein, bzw. 
Filterschaltung aus C und L auf die Motorplatine, sternförmige 
Masseführung bzw. Masseführung verbessern)

von spess53 (Gast)


Lesenswert?

Hi

>Die Pullups sind 4.7k Ohm groß

Dann geh mal weiter runter. Bei 5V liegt Rpmin bei ca. 1,3k.

MfG Spess

von Christoph H. (christoph_b)


Lesenswert?

momentan habe ich es auf 3V laufen. Werde mal auf ca 1.5k gehen.

von Christoph H. (christoph_b)


Lesenswert?

habe mir mal 3 Keramik Kondensatoren mit 100nF organisiert. Werde sie in 
den nächsten Tagen einmal einbauen um den Motor zu entstören.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.