-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: DAC für Microstepping

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2006
    Ort
    Baden
    Alter
    34
    Beiträge
    102

    DAC für Microstepping

    Anzeige

    Hallo zusammen,

    ich möchte meine Schrittmotorsteuerung mit L297 und L6203 gerne durch eine Schrittmotorsteuerung ersetzen die Microstepping unterstützt (bis allerhöchstens 1/64). Diese werde ich dann auch mit dem L6203 aufbauen, aber als Regel-IC den L6506 verwenden. Zusammen mit einem AVR, der dann die Steuerung übernimmt.

    Für die generierung der Referenzspannung benötige ich ja einen DAC. Dabei dachte ich an eine Auflösung von 8 Bit.
    Nach einigem lesen hier und auf anderen Seiten habe ich 4 Möglichkeiten gefunden dies zu realisieren.

    - R2R-Widerstandsnetzwerk
    - PWM + Tiefpass
    - seperater DAC-Chip (z.B. MAX522)
    - spezieller AVR mit eingebautem DAC

    Nun stellt sich mir die Frage welche für diesen Anwendungsfall die richtige ist. Dafür habe ich hier nun mal versucht die Vor- und Nachteile der einzelnen Lösungen aufzuschreiben.

    R2R:
    Vorteile:
    - sehr schnell
    Nachteile:
    - viele Bauteile
    - genaue Bauteile nötig (teuer)
    - viele Pins nötig

    PWM:
    Vorteile:
    - Einfacher Aufbau
    - nur 2 Pins nötig
    Nachteile:
    - evtl. "unsauberes" Signal

    DAC-Chip:
    Vorteile:
    - Einfacher Aufbau
    - wenige Pins notwendig
    Nachteile:
    - langsamer

    AVR mit DAC:
    Vorteile:
    - keine extra-Bauteile nötig
    Nachteile:
    - Spezialchip mit dem ich noch nie gearbeitet habe

    Was meint ihr was für diesen Anwendungsfall am besten ist?

    gruß
    Marius

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von ManuelB
    Registriert seit
    15.06.2006
    Alter
    38
    Beiträge
    1.246
    Also ich verwende einen DAC (MAX549) für die Referenzspannungserzeugung. Hatte vorher auch erst an PWM+Tiefpass gedacht aber die PWM Frequenz die ich mit dem AT Mega8 generieren konnte war zu niedrig. Da müsste man dann auf eine PWM Quelle zurückgreifen die schnell genug ist. R2R wäre mir zu platzverschwenderisch, man braucht ja auch noch für jede Phase ein eigenes.
    Bis 1/64 Auflösung könnte schwieriger werden mit dem L6506. In slow Decay kriege ich nur bis 1/8 Auflösung halbwegs vernünftig hin, dann wirds schwierig bei den kleinen Strömen diese sinnvoll genau zu regeln (pfeifen, Schwingungen zu niediger Strom, Fehlerkennung des Spitzenstromes)
    Bräuchte man mind. fast Decay besser mixed.

    MfG
    Manu

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2006
    Ort
    Baden
    Alter
    34
    Beiträge
    102
    Hi

    1/8 würde eigentlich auch schon fast reichen. Allerdings habe ich vor die Fast-Decay-Variante zu bauen die hier beschrieben ist (Figure 13b auf Seite 12). Ich muss dann halt probieren wie hoch ich gehen kann.

    R2R mit SMD wäre ja auch relativ klein. Da es mir nix macht wenn die Platine Euroformat hat ist der Platz auch egal. Sie wär halt wohl die schnellste.

    Wie schnell müsste denn die PWM denn sein? Ein Mega 8 kann ja bis zu 16Mhz Taktfequenz.

    Die Frequenz in der der DAC neue werte liefern muss wird ja immer höher, je kleiner die Schritte sind. also 1/16 schritt braucht die doppelte Frequenz wie 1/8 schritt. Wie schnell kommt da ein externer DAC mit?

    [/url]

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von ManuelB
    Registriert seit
    15.06.2006
    Alter
    38
    Beiträge
    1.246
    Ich habe als Controller den Mega8. Hier sind schon alle Ausgänge für die Ansteuerung einer Karte belegt ink. 2 mal PWM für die Ansteuerung der Stromregelung. R2R braucht ja auch noch einiges an Ausgängen zum Ansteuern und ich weiß nicht wie es unter Umständen ist mit Einsteuungen durch die ganzen Leiterbahnen.
    Der Mega 8 läuft jetzt auf 16MHz. Der DAC wird mit, wenn ich micht recht entsinne (ist schon ein Weilchen her), 8MHz via SPI mit Daten geladen. Für das rüberladen braucht man nicht all zu viel Zeit. Die paar 16 Bit Befehle rüber zu schieben. Register A neu Register B neu und zusammen ausgeben. Da dauert der Rest des Interrupts ja schon bald länger

    Der PWM Timer braucht dagegen recht lange zum hochzählen. Hatte es aber am Anfang nur mit 8MHz versucht, und da man deutlich fehler in der Referenzspannung gesehen hat bin ich gleich auf DAC übergegangen.
    Wollte es aber ev. noch mal mit einem separaten Tiny mit 20Mhz versuchen. Die sind ja auch nicht all zu teuer.

    Fast Decay ist ab und zu anfälliger in der Stromregelung, da der Ripplestrom höher ausfällt. Also muss man ev. mit dem Layout etwas spielen, niederinduktive Sense-Widerstände (SMD) usw.

    MfG
    Manu

  5. #5
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo!

    @ Majuz

    Der schnellster, günstiger und leicht erhältlicher mir bekannter 8-bit DAC, der laut Datenblatt mit 30 MHz wandeln kann, ist TDA8702 (beim Reichelt 2,15 €)

    MfG

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von ManuelB
    Registriert seit
    15.06.2006
    Alter
    38
    Beiträge
    1.246
    Hm, da bräuchte man, wenn ich das nach kurzen überfliegen richtig gesehen hab, aber zwei von pro Endstufe. Da ist der MAX nicht mehr viel von entfernt. Mit serieller Kommunikation spart man auch noch Ausgänge.

    MfG
    Manu

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2006
    Ort
    Baden
    Alter
    34
    Beiträge
    102
    ja, da bräuchte man 2. Und Ausgänge braucht man auch 16. Dann kann man auch R2R machen....
    Mal kurz mit den Pins rechnen:
    Die Ansteuerung der restichen Schaltung benötigt 6 Pins
    Als Eingänge braucht man mindestens 2 Pins (Takt + Richtung)
    bei R2R braucht man 2*8 für die DACs
    Macht insgesamt 24 Pins. Ein Mega8 hat ja 23 verwendbare Pins. Also reicht es net. Dann müsste ein Mega16 oder Mega32 her... ist aber irgendwie überdimensioniert.
    Wenn die PWM-Geschwindigkeit der Chips nicht ausreicht bleibt ja eigentlich nur ein externer Chip, der über SPI angesteuert wird (I2C ist wohl zu langsam)

    Was für AVRs mit internem DAC gibt es und hat jemand schon damit gearbeitet? Sind die sonst "identisch" mit "normalen" AVRs?

    Bis 1/64 Auflösung könnte schwieriger werden mit dem L6506
    Kannst du (oder jemand anderes) mir einen anderen Chip empfehlen, der einfach anzusteuern ist und gut zu bekommen? Ich bin da eigentlich offen. Bisher hab ich mit den L6203 halt gute Erfahrungen gemacht und wollte die wieder verwenden und habe dann diese Schaltung mit L6506 gefunden.

    Bräuchte man mind. fast Decay besser mixed.
    Was heißt "mixed" davon hab ich bisher noch nix gelesen... immer bloss slow oder fast decay.

    Ich hab auch noch eine Frage zu den Schaltbildern 13a und 13b in meinem verlinkten PDF bezüglich der µC-Ports "Px5" und "Px6". Ich meine es so verstanden zu haben, dass diese den Motor einschalten, also während sich der Motor dreht auf "dauer 1" sind. Im Text darüber verstehe ich es aber so, dass da ein PWM-Signal angeschlossen werden muss?? Oder verstehe ich es falsch und die reden da die ganze zeit von der Erzeugung der Referenzspannung?[/quote]

  8. #8
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    @ Majuz

    Die benötigte Pinzahl des µCs kann man mit Schieberegister und die Anzahl des DACs durch multiplexen erheblich reduzieren. Um beliebige Anzahl von Bits in Schieberegister zu übertragen, reichen nur zwei Pins.

    MfG

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2006
    Ort
    Baden
    Alter
    34
    Beiträge
    102
    ja, aber durch Schieberegister wird der geschwindigkeitsvorteil der parallelen Ausgabe ja wieder zunichte gemacht. Dann kann man auch gleich den MAX 549 mit SPI nehmen.

    Eine kleine Rechnung:
    SPI geht bis 10MHz. Da man 16 Bits übertragen muss erreicht man mit ein paar Bits Reserve 500kHz. Bei 1/64 Schritt und einem Motor mit 200 Schritte/Umdrehung entspricht das ca. 39U/sec also etwa 2300U/min. So viel schafft wohl kein Schrittmotor. Wie viel erreicht denn ein guter Schrittmotor? Ich hab 3 von diesen hier (Das Diagramm im Datenblatt geht bis 1000u/min).
    Diese haben folgende Daten:
    Schrittwinkel: 1,8°
    Spannung: 3,4V
    Strom: 2,8A.
    Widerstand: 1,2 Ohm
    Inductivität: 3,54mH
    Rotorträgheit: 570gcm²
    Haltemoment: 2,2Nm


    Außerdem habe ich noch 3 Motoren die momentan mit meiner L297/L6203 Combi gesteuert werden.
    Diese haben folgenden Daten:
    Schrittwinkel: 1,8°
    Spannung: 3,2V
    Strom: 2,8A
    Widerstand: 1,24Ohm
    Inductivität: 5mH/Phase
    Rotorträgheit: 480 gcm²
    Haltemoment: 1,9Nm

    (Welche sind denn davon besser?)

    Nun ist allerdings die Frage wie schnell man den SPI mit Bascom (was anderes kann ich leider net) hinbekommt.

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von ManuelB
    Registriert seit
    15.06.2006
    Alter
    38
    Beiträge
    1.246
    Also mixed Decay ist halt die Mischung aus fast und slow. Also Stromabbau erst langsam und dann schnell. Ist z.B. in den Datenblättern des Toshiba TB6560HQ dargestellt http://www.markusmechatronics.com/TB6560HQ_FG.pdf
    Also Brücken hab ich auch die L6203 im Einsatz aber halt nur bis 1/8 Schritt. Mit mixed hab ich auch noch nichts gemacht. Ich hatte nur mal mit der L297/L6203 Kombi die Fast Decay im Halbschritt ausprobiert, was sich in doch recht ordentlicher Geräuschemission geäußert hat.
    Müsste man aber ausprobieren. Ich habe den Stromregler derzeit aus Logikbausteinen aufgebaut aber noch slow Decay.

    Bezüglich des Datenblattes
    Das PWM-Signal auf den Enable wird bei Fast durch den L6506 generiert. Die Ports des µC (im Beispiel Px5 und Px6) brauchen dann nur High sein.

    MfG
    Manu

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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