- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 8 von 8

Thema: i2c rs232 Motor-Servo Controller

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    04.01.2008
    Beiträge
    41

    i2c rs232 Motor-Servo Controller

    Hi,
    ich bin gerade dabei, einen Motor- und 8-Fach Servocontroller mit I2C und RS232 Interface zu bauen. Der Schaltplan ist gerade eben fertig geworden und ich wollte euch bitten, mal schnell drüber zu fliegen um so noch versteckte Fehler zu finden.
    BILD
    danke!
    mfg Philip

    Edit von BASTIUniversal: Bitte auf die Bildgröße achten!
    Edit: habe ein paar kleinere Fehler entfernt. Link auf neue Version geändert.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.11.2006
    Beiträge
    463
    Hallo,

    ich habe mir die Schaltung mal kurz angesehen. Hier sind ein paar Punkte, die mir aufgefallen sind:

    1. Die ISP-Programmierung verwendet die selben IO-Pins wie die Servos. Das kann zu unkontrollierten Servo-Bewegungen sowie eventuell zu Signalstörungen bei der Programmierung durch Reflektionen nach den Servoleitungen führen. Eventuell muss man daher die Servos zum Programmieren abstecken. Einfacher wird das, wenn du gleich einen grösseren Controller (ATMega16) nimmst.

    2. Was bringt die Diode bei der Stromversorgung der Servos?

    3. Warum sind im Schaltplan für den Motortreiber Z-Dioden eingezeichnet? Normalerweise verwendet man für so etwas Shottky-Dioden oder gewöhnliche Si-Dioden. Je nach Dimensionierung kann man die Dioden auch ganz weglassen und die eingebauten Dioden der Mosfets nehmen. Was ist eigentlich die Betriebsspannung der Schaltung? Welche Mosfets verwendest du? Welchen Strom soll die Schaltung liefern können?

    4. Mosfet-Ansteuerung: Das Einschalten der unteren Mosfets per Pull-Up Widerstand ist relativ langsam, was bei hohen Strömen und hoher PWM-Frequenz zu hohe Schaltverluste im Mosfet erzeugen würde. Ich würde für die unteren Mosfets Logic-Level Fets nehmen und diese über einen kleinen Widerstand (10-100 Ohm) direkt mit dem µC-Pin ansteuern. Das spart Bauteile und ist auf jeden Fall schneller als die jetzige Lösung. Die Ansteuerung der oberen Mosfets kann man so lassen, da hier nur selten (bei Richtungswechsel) geschaltet werden muss.

    Gruss
    Jakob

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    04.01.2008
    Beiträge
    41
    Hi,
    danke für die Antwort.

    zu 1: Der mega8 ist perfekt, es werden alle Pins benutzt. Zum Programmieren stecke ich die Servos ab.

    zu 2: Schutz gegen Verpolung. Ich weiß nicht ob das sinnvoll ist, weil Servos das vllt schon eingebaut haben.

    zu 3: Das sind Schottkydioden. Das Symbol sieht denen der Z-Dioden sehr ähnlich. Externe Dioden sind schon erfoderlich für hohe Schaltfrequenzen.

    zu 4: Danke für den Tipp. Das habe ich in der neuen Version berücksichtigt (siehe weiter unten). Sicher, dass das so ein kleiner Widerstand sein kann? Ich hätte jetzt eher 10k oder irgendwas genommen, was gerade so rumfliegt.

    Hier ist die aktuelle Version (hat sich heute bestimmt 10mal geändert )
    http://i36.tinypic.com/2qtlsig.jpg

    Bei drei Sachen bin ich mir noch unsicher: Bei der Diode und bei dem Elko (100µF) in der Servospannung. Kann ich beides weglassen? Brauche ich einen Pullup oder Pulldown Widerstand an Rx? Oder nehme ich hier den Internen?

    Ich habe vorher noch nie PWM bei Motoren benutzt. Welche Schaltfrequenzen sind üblich? Ich dachte zuerst an ca 2Khz, aber das hört man bestimmt.

    mfg Philip

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.678
    Hi Philip,
    Zitat Zitat von Nerb
    ... habe vorher noch nie PWM bei Motoren benutzt. Welche Schaltfrequenzen sind üblich ...
    Das kommt auf die Motorgröße drauf an - und selbst dann gibt es noch deutllch unterschiedliche Meinungen. Das hatte ich hier ziemlich "abgeklopft". Meine kleinen Hackeservomotoren laufen mit 1,22 kHz, das geht sehr ordentlich. Geräusche gibt es ja eher beim unterschwelligen Ansteuern, kurz bevor der Motor anfängt sich zu drehen. Damit hatte man z.B. beim asuro Musikstücke gespielt *ggg*.
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.11.2006
    Beiträge
    463
    Die 10k zwischen µC und Mosfet sind definitiv zu hoch. Schau dir mal an, welche Ladung ein Mosfet braucht, um voll durchzuschalten.

    Für Rx braucht man an sich keinen besonderen Widerstand. Das Signal wird ja von der anderen Seite gesteuert. Wenn du jedoch automatisch erkennen willst, ob die serielle Schnittstelle oder I2C verwendet wird, dann wäre ein Widerstand nach GND oder 5V eventuell sinnvoll, um Fehlerkennungen durch Signalstörungen zu vermeiden. Wenn an dem Rx Pin kein langes, ungeschirmtes und nicht angeschlossenes Kabel hängt, dann sollte auch der interne Pull-Up reichen.

    Bei PWM sind sehr unterschiedliche Frequenzen möglich und üblich. Das kann von 100 Hz bis einige 10 kHz gehen. Ich würde erst mal mit ein paar kHz anfangen. Wenn es zu störenden Geräuschen kommt, dann kann man immer noch eine höhere Frequenz versuchen.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    18.04.2010
    Beiträge
    53
    Das mit ISP seh ich auch problematisch, das sagt man zwar vorher immer so, aber wenn man das Teil debuggt flasht man mindestens jede Minute das teil Neu.

    Ich würde da eher die 5v Stromversorgung aller Servos über einen Jumper laufen lassen und den zum flashen einfach ziehen, dann sollte den Servos nichts mehr passieren können

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    04.01.2008
    Beiträge
    41
    So, habe nun ein Layout gemacht und den Schaltplan entsprechend angepasst:

    Schaltplan: http://i34.tinypic.com/fjeuc1.jpg
    Layout: http://i36.tinypic.com/ehm93c.jpg

    Ich muss erst noch ein paar Teile bestellen, bevor ich die Platine fertigen kann und somit anfangen kann zu programmieren.
    Eine Frage habe ich aber noch: Kann ich den AREF Pin einfach in der Luft hängen lassen? Den AD-Wandler brauche ich nicht.

    mfg

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    18.04.2010
    Beiträge
    53
    Jo, kannst du einfach nicht beschalten

Berechtigungen

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

LiFePO4 Speicher Test