- 3D-Druck Einstieg und Tipps         
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 35

Thema: I²C - Motortreiber

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    31.12.2010
    Ort
    BW
    Alter
    32
    Beiträge
    18

    I²C - Motortreiber

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich habe grad ein echt blödes Problem. Es geht um einen Roboter. Dieser verwendet die Motortreiber MD03 mit I²C-Interface. Die Steuerspannung ist 5V über einen Schaltregler (4A) erzeugt und die Arbeitsspannung ist 24V.

    Jetzt zum eigentlichen Problem: Sobald die Motortreiber eine PWM ausgibt, bricht der I²C-Bus (nach einigen Sekunden) zusammen und das Err-Bit in Bascom liefert eine 1. Das Problem lässt sich auch nur mit dem Wegnehmen der Versorgungsspannung bzw. Reset des Controllers wieder zurückstellen.
    Ich Suche schon ewig den Fehler. Zuerst dachte ich, es wäre ein Problem durch Induktion zwischen I²C-Leitung und PWM-Leitung. Jetzt habe ich aber die Motoren testweise vom Motortreiber abgeklemmt. Dann war das Problem aber immer noch da, sobald der Treiber PWM ausgab wars das mit dem I²C. Also kanns ja folglich kein Problem durch Induktion sein, denn eine Induktion kommt ja durch wechselndem Strom zustande...

    Beim überprüfen der Datenleitung mit dem Oszi hab ich dann festgestellt, dass in den Datenleitungen vom I²C feine "Nadeln" (synchron zur PWM) auftauchen (siehe Bild). Die "Nadeln" tauchen auch in der 5V-Versorung etwas schwächer auf. Ich vermute darin die Ursache für mein Problem. Ich es mit einem fetten Elko+großem Folienkondensator in der 5V-Leitung versucht. Hat aber ebenfalls nicht geholfen...

    Hoffe, dass ich nichts vergessen hab zu schreiben, sonst editier ichs hier rein...

    Hoffentlich kann mir jemand helfen, bin echt verzweifelt mit dem Problem.


    Gruß
    Michael






    Bild hier  

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555

    Re: I²C - Motortreiber

    Zitat Zitat von MichaelH
    Hallo,


    Jetzt zum eigentlichen Problem: Sobald die Motortreiber eine PWM ausgibt, bricht der I²C-Bus (nach einigen Sekunden) zusammen
    Du solltest Dich einmal eingehend mit dem Datenblatt befassen.

    http://www.roboter-teile.de/datasheets/md03.pdf

    Icvh kann so gut wie kein Englisch aber ich verstehe da der Treiber selber kein PWM liefert sondern das auf einer der I²C Anschlüsse ein PWM Signal angelegt werden soll?

    Der Treiber hat verschiedene Betriebsmodi und kann anscheinend auch mit Gleichspannung geregelt werden und sogar auch mit PPM = Funkfernsteuerung.....

    Gruß Richard

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Wie groß sind denn die PullUps an SDA und SCL? Je kleiner umso störsicherer.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    31.12.2010
    Ort
    BW
    Alter
    32
    Beiträge
    18
    Hallo,

    doch klar, der Motortreiber erzeugt PWM (siehe Bild, oberer Channel). Es gibt nur mehrere Möglichkeiten, wie man ihn seinen Soll-Tastgrad und die Drehrichtung vorgeben kann. Ich hab mich halt für I²C entschieden, da ich den Bus auch noch für nen anderen Sensor brauche.

    Ich hatte noch vergessen, zu erwähnen, dass die Motortreiber in einem früheren Aufbau problemlos gingen. Als ich dann etwas Ordnung in die Verdrahtung (die war ziemlich wurstelig...) rein gebracht hab kam es zu dem oben genannten Problem. Die Verdrahtung ist aber korrekt, sonst würde es nicht kurzzeitig gehen...



    Die Pullups bei SDA und SCL liegen bei 4,7kΩ. hab auch mal testweise noch jeweils nen zweiten 4,7kΩ parallel dazu gehängt. Hat sich aber ned viel geändert (ich bin mir ned sicher, aber es kann sein, dass es länger gedauert hat, bis o.g. Fehler auftrat).



    Achja, die Masse am Logikteil hab ich nicht angeschlossen (um Masseschleifen zu vermeiden...), da diese bereits intern auf dem Treiber gebrückt sind.


    Gruß
    Michael

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Mit I2C habe noch nicht so viel gemacht, das letzte waren zwei PCF8574 als Porterweiterungen. Das funktionierte erst zuverlässig, nachdem ich zusätzlich zu den schon vorhandenen 4k7 noch jeweils 1k als PullUps eingebaut hatte.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.11.2006
    Beiträge
    463
    Die Störsicherheit des I2C-Busses könnte man einerseits durch eine Reduzierung der Pullup-Widerstände und andererseits auch durch zusätzlich eingebaute Kapazitäten zwischen SDA bzw. SCL und GND erhöhen. Die Kapazitäten helfen gegen die kurzzeitig eingekoppelten Störsignale von dem Motortreiber, begrenzen aber auch die maximal mögliche Busgeschwindigkeit. Laut Spezifikation darf die Gesamtkapazität maximal 400 pF sein. Da könnte man also testweise mal ca. 100-300 pF zusätzlich einbauen.

    Das mit der nicht angeschlossenen Masse des Logikteils könnte auch der Fehler sein. So hat man wahrscheinlich eine relativ grosse Fläche zwischen der Groundleitung über den Leistungsteil und den I2C-Steuerleitungen. Über die Fläche können induktiv Störungen einegkoppelt werden. Das ist auch der Grund, warum man bei einem Oszilloskop immer den Masseanschluss von jedem Tastkopf anschliesst, auch wenn die Massen schon anderweitig (z.B. Schutzleiter) verbunden sind. Die Tatsache, dass kein Motor angeschlossen ist, heisst auch nicht zwangsläufig, dass bei den PWM-Schaltvorgängen nicht doch kurzzeitig ein recht hoher Strom fliesst (Umladen von Kapazitäten oder kurzzeitiger Kurzschluss durch gleichzeitiges Leiten der beiden Leistungstranistoren).

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Verdrahtung wurstelig --> geht
    Verdrahtung geordnet --> geht nicht

    Da bist Du nicht der Erste, dessen (?kopplungsarmer?) Drahtverhau besser funktioniert als die aufgeräumte Variante.

    Kommt der Fehler mit PWM auch, wenn die Versorgung der Brücke weg ist?

    Weitere Maßnahmen, ergänzend zu Jakob L. :
    - Induktions- und widerstandsarme Zuleitungen auf der Leistungsseite.
    Kurz und dick schadet hier nie.
    - Räumliche Trennung von signal- und energieführenden Leitungen.
    Erschwert der bösen Induktion ihr übles Treiben.
    - Batterieabgriff für die Logikversorgung unmittelbar am MD03.
    So hat Dein µC bestmögliche Tuchfühlung zur MD03-Masse.
    - Besser noch: getrennte Versorgung. Die wird ja wärmsten empfohlen.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    31.12.2010
    Ort
    BW
    Alter
    32
    Beiträge
    18
    Hallo,

    erstmal danke für die Tipps. Aber leider hab ichs immer noch nicht hinbekommen...

    Zitat Zitat von Jakob L.
    Die Störsicherheit des I2C-Busses könnte man einerseits durch eine Reduzierung der Pullup-Widerstände und andererseits auch durch zusätzlich eingebaute Kapazitäten zwischen SDA bzw. SCL und GND erhöhen.
    Ich habs mal ausprobiert (sowohl beides einzeln, als auch beides zusammen). Widerstände auf ca. 1k reduziert und Kondensatoren mit ca. 200pF eingebaut. Das Bild am Oszi ist aber leider (bis auf die runderen Flanken) gleich.

    Zitat Zitat von Jakob L.
    Das mit der nicht angeschlossenen Masse des Logikteils könnte auch der Fehler sein.
    Das wird es vermutlich aber bei mir nicht sein, weil ich die Masse erst abgeklemmt hab, als der Fehler auftrat (habe gedacht, das könnte die Fehlerursache sein, u.a. da im Herstellerdokument auch das Thema Masseschleife angesprochen wird...).

    Zitat Zitat von Jakob L.
    Umladen von Kapazitäten oder kurzzeitiger Kurzschluss durch gleichzeitiges Leiten der beiden Leistungstranistoren.
    Ok, du hast recht. Das würde auch mit dem Oszibild übereinstimmen. Da ja quasi bei jeder Änderung vom Mosfet (sowohl steigende, als auch fallende Flanke) diese blöde "Nadel" auftritt.

    Zitat Zitat von RoboHolIC
    Kommt der Fehler mit PWM auch, wenn die Versorgung der Brücke weg ist?
    Ich hab die 24V Versorgung der Brücke weggenommen (5V Logikteil hatte noch Saft) und da ist er nicht vorhanden.

    Zitat Zitat von RoboHolIC
    - Induktions- und widerstandsarme Zuleitungen auf der Leistungsseite.
    Kurz und dick schadet hier nie.
    Der Querschnitt ist etwa 2,5x so hoch, wie er eigentlich für die Maximallast des Motors (läuft gerade bei nur einem Bruchteil von dessen) sein müsste.
    Zusätzlich hab ich diese Leitung heute geschirmt neu gelegt.

    Zitat Zitat von RoboHolIC
    - Räumliche Trennung von signal- und energieführenden Leitungen.
    Erschwert der bösen Induktion ihr übles Treiben.
    Soweit es möglich war, gemacht.

    Zitat Zitat von RoboHolIC
    - Besser noch: getrennte Versorgung. Die wird ja wärmsten empfohlen.
    Das werd ich morgen mal mit einem zweiten Netzteil (läuft momentan noch nicht mit Akkus) versuchen. Der momentan verbaute Schaltregler hat nämlich keine galvanische Trennung. Von dem her eine gute Idee.



    Ich vermute mittlerweile, dass die Störung hauptsächlich über das Massesignal kommt. Wenn ich nämlich zwischen Netzteil-GND und zwischen meinem "Logikpegel"-GND messe, hab ich auch diese netten Störungen auf meinem 0V-Signal. Die Störung ist auch zwischen GND und 24V messbar.

    Wäre es ansonsten mal zu empfehlen vor meinem Schaltregler eine Entstörschaltung aus dem KFZ-Bereich einzubauen?



    Gruß
    Michael

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    31.12.2010
    Ort
    BW
    Alter
    32
    Beiträge
    18
    Guten Morgen,

    Zitat Zitat von MichaelH
    Zitat Zitat von RoboHolIC
    - Besser noch: getrennte Versorgung. Die wird ja wärmsten empfohlen.
    Das werd ich morgen mal mit einem zweiten Netzteil (läuft momentan noch nicht mit Akkus) versuchen. Der momentan verbaute Schaltregler hat nämlich keine galvanische Trennung. Von dem her eine gute Idee.
    Ich hab das grad mit nem getrennten 2. Netzteil versucht, hat leider keine Änderung gebracht...


    Gruß
    Michael

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.06.2007
    Ort
    München
    Alter
    61
    Beiträge
    199
    hast Du schon mal versucht, an den PWM Leitungen zum Motor Entstörkondensatoren anzuschließen?
    Empfehlung: sowohl direkt am Motortreiber als auch direkt am Motor 100nF Keramik Kondensatoren.

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen