Hallo allerseits, ich brauche für eine Anendung einen Mikrocontroller, mit dem man 18 PWMs erzeugen kann. Ich habe schon überall gesucht und keinen gefunden. Mit den PWMs möchte ich 6 Bürstenlose Gleichstrommotoren betreiben. Ich währe euch für jede Hilfe dankbar. Notfalls lasse ich auch mehrere Mikrocontroller synchron laufen. Es währe super, wenn ihr mir welche empfiehlt, mit den ihr erfahrung hattet.
:
Verschoben durch Moderator
Rachid schrieb: > Notfalls lasse ich auch mehrere > Mikrocontroller synchron laufen Den Weg würde ich gehen. Pro Motor einen µC, Sollwertvorgabe z.B. über gemeinsamen i²c-Bus.
Ralf Schwarz schrieb: > Soft-PWM Bei einer Motorsteuerung, bei der jede Software-Malaise sofort die Hardware husten lässt?
A. K. schrieb: > Bei einer Motorsteuerung, bei der jede Software-Malaise sofort die > Hardware husten lässt? Sind wir denn kleine Mädchen? ;-)
Danke für die Antorten. Die Softwarelösung möchte ich meiden, da die PWM Signale zu ungenau waren. Einen Mikrocontroller pro Motor muss ich wohl notfalls nehmen. Da ich jedoch sehr wenig Platz für die Elektronik habe, währe es nicht schlecht, wenn ich etas mehr reduziere. Außerdem habe ich noch keine Erfahrung mit der Synchronisation von Mikrocontrollern. Ist es ohne weiteres möglich, sieben Mikrocontroller synchron laufen zu lassen? Der zusätzliche Mikrocontroller ist dann für den Hauptprogramm.
Rachid schrieb: > Ist > es ohne weiteres möglich, sieben Mikrocontroller synchron laufen zu > lassen Die müssen doch garnicht synchron laufen. Jeder kümmert sich um seinen Motor und sonst nix. Die Steuerdaten über I2C oder UART oder SPI erfordern auch nicht, dass die µCs mit gleichem Takt o.Ä. laufen.
Die Motoren sind von einander abhängig. Jeder Motor bewegt jeweils ein Gelenk eines Schlangenartigen Roboters. Jedes Gelenk ist vom Winkel des Anderen Gelenks abhängig.
Dann brauchst du eher Schrittmotoren. Oder Servos. Oder hast du Getriebe + Encoder an den BLDC-Motoren? in dem Fall: jeder µC kriegt vom Master einen "Soll-Winkel" angegeben, und fährt diesen selbständig an. => keine Synchronität nötig.
Ich habe an jedem Motor einen Winkelsensor. An den Motoren und an der Mechanik kann ich nichts mehr ändern. Mein Plan war es, die sechs Winkel im Hauptprogramm zu ermitteln anschließend die Sollwinkel. Danach Manipuliere ich die PWMs so, dass die Sollposition immer erreicht wird. enn ich für jeden Motor einen Mikrocontroller benutze, muss ich jedem Mikrocontroller die sollpsition übergeben und ständig aktualisieren.
Genau das würde ich in die "Pro Gelenk" µC auslagern. Also: Jeder der 6 µCs hat seinen Winkelsensor und seinen Motor und kümmert sich um beides. alles an einen Bus, der Zentral-µC kann bei jedem Gelenk den aktuellen Winkel abfragen, und ihm einen neuen Soll-Winkel vorgeben (ggfs: Drehrichtung, Winkelgeschwindigkeit, ...), und muss sich um die Ansteuer-Details keine Gedanken machen. Vorteil: Modulares System, leicht auf mehr oder weniger Gelenke anpassbar und bei Hardwarewechsel (auf Servos oder Schrittmotoren) müssen nur die Gelenk-µCs angepasst werden.
Alles Klar, ich danke dir für die Antorten. Ich werde es so versuchen.
Wäre halt der Weg, den ich gehen würde, muss deshalb nicht der einzig wahre sein... Großer µC mit vielen PWM-Kanälen oder SoftPWM ginge natürlich auch... Obwohl, Schul- oder Uniprojekt? Mit der modularen Lösung kriegst du drei extra-Kapitel für die Ausarbeitung geschenkt, Systemaufbau, Gelenk-Steuer-Einheit und Kommunikationsprotokol :)
Rachid schrieb: > Hallo allerseits, > > ich brauche für eine Anendung einen Mikrocontroller, mit dem man 18 PWMs > erzeugen kann. Infineon TriCore TC1796?
Es ist auch eine Frage der Störsicherheit. Wenn Du 18 Leistungs-PWM auf langen Kabeln rumsauen läßt, ist das vielleicht ein guter Handy-Blocker. Wenn aber jeder Motor direkt seinen MC + Leistungsteil hat, mußt Du nur unkritischen Gleichstrom (z.B. 24V) übertragen. Für den Datenbus bietet sich CAN an. Dann muß man nicht mehr viel Protokoll selber schreiben, die CAN-Hardware macht das gröbste selber (Arbitrierung, Retry, Adressierung, Fehlererkennung). Peter
>Mit den PWMs möchte ich 6 Bürstenlose Gleichstrommotoren betreiben.
Viel zuviel für einen uC.
würde je Motor einen uC nehmen. ist viel besser scalier u. handhabbar.
Als Bus kan man auch ein 'richtigen' Adr/Daten-bus nehmen, der ist dann
sehr schnell.
TI TMS470 ( ARM7 TDMI) kann bis zu 32 IO Kanäle mit unabhängigen PWM betreiben. µC Modul dazu nennt sich HET
Hi, der Atmel AT89C51AC3 (auch nett ist der AT89C51ED2) hat eine PCA-Einheit. Die kann 5 PWMs erzeugen und läuft nach Initialisierung unabhängig von der Software. Dann könnte man z.B. auch mehrer MCUs mit SPI (Master/Slave) oder UART im 9Bit Mode miteinander verknüpfeln. Da geht Einiges ... http://www.atmel.com/dyn/resources/prod_documents/doc4383.pdf Ist vielleicht einen Versuch wert. Gruß RABIS
Oder ein FPGA zuhilfe nehmen. Ich bin gerade dabei, mir einige Überlegungen zu einer Steuerelektronik für vier Brushless-Motoren (nur Kommutation) basierend auf einem ProAsic von MicroSemi (früher Actel) zu bauen. Aber eben, das sind erst allererste Überlegungen und einige wenige Zeilen VHDL. Die Idee besteht im Moment darin, über ein SPI (o.ä.) Interface die vier "Spannungen" (für jeden Motor eine) in den FPGA zu laden. Dazu für jeden Motor drei Eingänge für Komparatoren, die den Kommutierungszeitpunkt feststellen, dann halt einge SM, PWM-Generatoren etc... Über SPI gingen die Drehzahlen zurück; mit Strommessung hätte das FPGA nichts am Hut. Und auch nicht für Regelungen irgendwelcher Art. Das würde dann der uC machen. Mal sehen, ob was draus wird... Gruäss Simon
Der STM32 kann bis zu 32 PWM Kanäle. Mehr gibt es im Artikel STM32 zu lesen. (Timer können bis zu 4 PWM Ausgänge haben, die separat programmierbar sind)
Daran habe ich auch gedacht. Für einen Brushless hätte der auch wirklich eine wunderschöne Unit, mit komplementärausgängen, Totzeit etc... Die restlichen Units sind dann aber ein bisschen spartanischer. Ich muss gestehen, dass ich es (noch) nicht genauer angeschaut habe, aber vier oder gar 6 Brushless mit Kommutation in einem STM32 ohne externe Hardwareunterstützung unterzubringen halte ich für sportlich. Aber das ist bloss ein Bauchgefühl.
Peter Dannegger schrieb: > Für den Datenbus bietet sich CAN an. Wenn die neuen Befehle nicht allzu oft kommen, genügt wahrscheinlich sogar I²C. Arbitrierung braucht man eigentlich nicht, weil's nur einen dedizierten Busmaster gibt.
Für den TC1797 gibt es dazu ein Application Note: AP32148 Multi-axis motion control. Findest Du unter http://www.infineon.com/search/en?q=AP32148&sd=PRODUCTS
Wichard schrieb: > Für den TC1797 gibt es dazu ein Application Note Ob er nicht nach nur vier Monaten sein Problem allmählich gelöst hat?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.