Forum: Mikrocontroller und Digitale Elektronik Microcontroller [Kaufberatung]


von Jonn17 (Gast)


Lesenswert?

Hallo zusammen,

ich hoffe das ihr mir Weiterhelfen könnt und zwar bin ich auf der Suche 
nach einem geeigneten Mikrocontroller um einen DC-Motor zu regeln.

Der Microcontroller soll Signale vom einem Kombinierten Momenten- und 
Winkelsensor verarbeiten und dann einen BLDC-Motor (24 V , max. 10 A) 
regeln, womöglich wird noch ein Leistungssteller zwischen MC und Motor 
geschaltet.

Momentensensor
-Ausgang: -10....10 V
-Messbereich :0...50 Nm (auf 0,1 Nm genau)

Winkelsensor Ausgang:
-Ausgang: 0 -10 V
-Messbereich: +-450° (auf 0,1° genau)

Um die Benötigte Auflösung zu erhalten brauche ich nach meinen 
bisherigen Erknntnissen einen 16 Bit Mikrocontroller.
Außerdem wäre ein integrierter ADC und genügend Anschlüsse von Vorteil.
Der Preis ist relativ egal, kann auch etwas teuerer werden.

Hat jemand von euch einen Vorschlag für mich?

Grüße, Jonn

von Florian Z. (Gast)


Lesenswert?

Jonn17 schrieb:
> ich hoffe das ihr mir Weiterhelfen könnt und zwar bin ich auf der Suche
> nach einem geeigneten Mikrocontroller um einen DC-Motor zu regeln.

Das kann jeder.

Jonn17 schrieb:
> Momentensensor
> -Ausgang: -10....10 V
> -Messbereich :0...50 Nm (auf 0,1 Nm genau)

da muss man die Spannung noch irgendwie auf 0-5V umwandeln. Ansonsten 
kann das kein Mikrocontroller verarbeiten.

Jonn17 schrieb:
> Um die Benötigte Auflösung zu erhalten brauche ich nach meinen
> bisherigen Erknntnissen einen 16 Bit Mikrocontroller.

Falsch

Jonn17 schrieb:
> integrierter ADC

eine gute Idee

Schau dir mal die ATtiny an. Sind billig, leicht zu programmieren und 
der Support hier im Forum ist riesig.

http://de.wikipedia.org/wiki/Atmel_AVR
http://www.mikrocontroller.net/articles/AVR
Hier mal eine kleine Starthilfe: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

von Peter D. (peda)


Lesenswert?

Jonn17 schrieb:
> Um die Benötigte Auflösung zu erhalten brauche ich nach meinen
> bisherigen Erknntnissen einen 16 Bit Mikrocontroller.

Nein.
Die Bitbreite der CPU hat damit nichts zu tun.
Um die Rechengenauigkeit kümmert sich allein der C-Compiler.

Ein ATmega48 sollte für Deine Zwecke richtig sein.
Er hat einen 10Bit-ADC mit 6 Eingängen und max 23 IO-Pins.


Peter

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jonn17 schrieb:
> Um die Benötigte Auflösung zu erhalten brauche ich nach meinen
> bisherigen Erknntnissen einen 16 Bit Mikrocontroller.
Das Eine hat mit dem Anderen nur über den Faktor Rechenzeit was zu tun. 
Auch auf 8-Bit Controllern kann mit den Datentypen short und long und 
sogar float gerechnet werden...

> Momentensensor
> -Ausgang: -10....10 V
> -Messbereich :0...50 Nm (auf 0,1 Nm genau)
sind 500 Schritte...
> Winkelsensor Ausgang:
> -Ausgang: 0 -10 V
> -Messbereich: +-450° (auf 0,1° genau)
sind 4500 Schritte...

Peter Dannegger schrieb:
> Er hat einen 10Bit-ADC
Reicht mit seinen 1024 Schritten also nur mit Einschränkungen bei der 
Winkelgenauigkeit...

von bastler (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Jonn17 schrieb:
>> Um die Benötigte Auflösung zu erhalten brauche ich nach meinen
>> bisherigen Erknntnissen einen 16 Bit Mikrocontroller.
>
> Nein.
> Die Bitbreite der CPU hat damit nichts zu tun.
> Um die Rechengenauigkeit kümmert sich allein der C-Compiler.

Leider holt man sich damit einen entscheidenen Nachteil ins Design.
Man erkauft sich die Genauigkeit nur durch die entsprechenden 
Software-Routinen die somit Rechenzeit und Flash-Speicher kosten.

Viele 16 und 32 bit µC sind heute schon im Preisbereich der hier so 
geliebten ATmegas und Pics angekommen.

Jonn Du hast leider nichts zur Deinen Anforderungen bezueglich der 
Regelung des Motors genannt. Die solltest Du bei Deiner µC-Auswahl mit 
berücksichtigen.

Ansonsten geht es nur in Slow-motion, aber nicht in Deiner 
Anwendungsgeschwindigkeit.

Ich selbst wuerde einen cortex-M3 von NXP oder TI nehmen.
Software (compiler/debugger) gibt es als opensource dafuer.

LG

ein bastler

von Bernhard R. (barnyhh)


Lesenswert?

Zunächst einmal sind die Anforderungen an die Genauigkeit (und 
Auflösung) recht "sportlich", nämlich mehr als 12 Bit Auflösung für den 
Winkelsensor. Die internen AD-Wandler der 8 Bit AVRs reichen daher nicht 
aus.

Bernhard

von Jonn17 (Gast)


Lesenswert?

Danke für die schnellen Antworten und Vorschläge, ich werde mir die 
Micros mal angucken.

Florian Z. schrieb
> da muss man die Spannung noch irgendwie auf 0-5V umwandeln. Ansonsten
> kann das kein Mikrocontroller verarbeiten

Wie könnte man das anstellen? Durch einen Spannungteiler könnte man ja 
schonmal die Spannung auf -5V - 5V halbieren, oder?

Jonn17 schrieb
> Winkelsensor Ausgang:
> -Ausgang: 0 -10 V
> -Messbereich: +-450° (auf 0,1° genau)

Ich hab nochmal nachgefragt, der Winkel muss zum Glück doch nur mit 
einer Aulösung von 1° arbeiten. Also müssten ja 10 Bit reichen.

bastler schrieb:
> Jonn Du hast leider nichts zur Deinen Anforderungen bezueglich der
> Regelung des Motors genannt. Die solltest Du bei Deiner µC-Auswahl mit
> berücksichtigen.

Der Motor sollte eine Reaktionszeit von <0.05 s haben und auch auf 1° 
genau regeln.
Außerdem soll er Drehmomentgeregelt sein, und laut Datenblatt muss eine 
Spannung von 24 Volt anliegen und über die Stromstärke kann man 
Drehmoment regeln. Da frag ich mich wie man das machen könnte, außer 
über einen veränderbaren Widerstand. Weil PWM funktioniert ja nur mit 
Spannung, und die soll ja gleich bleiben soweit ich das verstehe.

Grüße

von Sergey (Gast)


Lesenswert?

Viele 8-bit PICs und auch 16-bit dsPICs/PIC33 haben 12-Bit ADCs, 
ausserdem gibt es auch die 16-Bit Familie der dsPICs die speziell für 
Motorsteuer-Anwendungen ausgelegt ist.

von PICler (Gast)


Lesenswert?


von MagIO (Gast)


Lesenswert?

@Jonn17:
Sagt Dir R=U/I was?

Was muss man also bei einem Motor tun, um den Strom zu ändern?

von l0wside (Gast)


Lesenswert?

Jonn17 schrieb:
> Hallo zusammen,
>
> ich hoffe das ihr mir Weiterhelfen könnt und zwar bin ich auf der Suche
> nach einem geeigneten Mikrocontroller um einen DC-Motor zu regeln.
>
> Der Microcontroller soll Signale vom einem Kombinierten Momenten- und
> Winkelsensor verarbeiten und dann einen BLDC-Motor (24 V , max. 10 A)
> regeln, womöglich wird noch ein Leistungssteller zwischen MC und Motor
> geschaltet.

Willst Du Sinus- oder Blockkommutierung machen? Ersteres braucht eine 
ganze Ecke mehr Rechenleistung, und Du brauchst im Grunde (mindestens) 
drei Timer (für jedes der drei Sinussignale einen).

Überlege Dir mal grob Deinen Regelalgorithmus, wie Du ihn umsetzen 
willst, welche Auflösung Dein PWM haben sollte und welche PWM-Frequenz 
Du möchtest (über ca. 20 kHz hat es den Vorteil, dass der Mensch das 
Pfeifen nicht mehr hört). Dann kannst Du abschätzen, wie schnell Dein uC 
sein soll (und Du kommst recht schnell auf ziemlich hohe Anforderungen 
an die Rechenleistung).

von Hubert G. (hubertg)


Lesenswert?

Ist der Winkelsensor mit +-450° nicht etwas übertrieben?
Das wären 900° also etwa 2,5 Umdrehungen.
Oder doch eher +-45°

von Carsten S. (dg3ycs)


Lesenswert?

Hi,

wie schon geschrieben, es gibt von einigen Herstellern gue Lösungen um 
deine Anforderungen an die Motorsteuerung zu realisieren. Sowohlmit 
optimierter Hardware wie auch mit vorbereiteten Codebeispielen und 
Librarys...

Es gibt also keinen Grund deine Anforderungen zu senken nur damit man 
den von einigen hier in fast Religiöser Veehrung vorgeschlagene AVR 
verwenden kann.

Ein Hersteller mit solchen Lösungen ist Microchip, wo sowohl Lösungen 
für 8Bit, 16Bit und 32 Bit Architekturen existieren. (Die 32Bit Pics 
basieren übrigends auf dem MIPS kern.)

PICler schrieb:
> Guck'st Du:
> 
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en021551

Ich würde als Link eher diesen hier vorschlagen:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2125&param=en026178
Der ist allgemeiner.

Daneben gibt es es auch noch unter den Vertretern der ARM/Cortex 
Familien einige sehr gut geeignete Lösungen. Ich hatte auch noch einen 
Link für den STM32 in den Favoriten, leider ist der nach der Umstellung 
der ST Website tot und irgendwie mag mich die neue Navigation nicht.
Auf jeden Fall gibt es da aber auch was - incl. speziellem Dev. Board
 und Codebeispielen. Und ich würde jede Wette eingehen das es sowohl bei 
den Cortex M3 Vertretern von TI wie auch von NXP ähnliche Lösungen gibt!

Schaue dir diese Familien mal an.
Was du verwendest ist letztendlich egal. In erster Linie würde ich das 
von der Eignung abhängig machen. Wenn du aber evtl. mehrere Gleichwertig 
geeignete Lösungen findest dann kannst du schauen wo dir die 
Dokumentation des Herstellers am ehesten liegt, wo man am meisten zu im 
Netz findet und wir die Verfügbarkeit der Produkte ist.

Ich mag eigendlich Microchip gerne, gut Verfügbar und der Hersteller 
stellt eine komplette Einsteigerfreundliche Software (IDE und Compiler) 
und viele Beispiele aus dem eigenen Haus zur Vefügung. Bedeutet alles 
aus einer Hand. (Gilt sowohl für 8/16 als auch 32Bit Architekturen)

Bei den ARM hast du das -aus einer Hand- nicht so starkt, auch bei der 
Toolchain musst du erst mal ein wenig mehr arbeit investieren bis alles 
ordentlich läuft da viele Lösungen diverser HErsteller zusammenarbeiten 
müssen, aber ist das alles erledigt sind das auch hervorragende 
Architekturen.

Also reine Geschmackssache...

Gruß
Carsten

von Wolfgang (Gast)


Lesenswert?

Tja, auch ich halte die Anforderungen für einen AVR zu groß. Lieber 
einen Schein mehr ausgeben für die Entwicklungsumgebung, aber dafür 
nicht Gefahr laufen, hinterher auf das verkehrte Pferd gesetzt zu haben. 
Ich würde einen ARM-M3 nehmen: inzwischen einigermaßen gut erhältlich 
(kommt auf die Type und den Hersteller an), spottbillig und sehr 
schnell.

Das STM3210C, das ich immer wieder bei solchen Fragen empfehle (ich 
weiß, wird manchem schon zum Hals 'raushängen) hat sogar schon einen 
Steckverbinder extra für solche Motorsteuerungsgeschichten. Schau Dir 
halt einfach mal die Kiste an.

Gruß - Wolfgang

von Peter D. (peda)


Lesenswert?

Schon erstaunlich, wenn man es wagt, einen 8-Bitter vorzuschlagen, wird 
das fast schon als Beleidigung empfunden.
Natürlich braucht man ja schon für ne Blink-LED mindestens einen 64-Bit 
Quadcore.

Vielleicht sollte man erstmal von der Hardware her rangehen. Was ist das 
für ein Motor. Hat er Hallsensoren, interne Kommutierung, sind die 
Spulenanschlüsse überhaupt einzeln herausgeführt?

Und man muß auch nicht alles selber programmieren. Es gibt fertige ICs, 
die einem den Großteil der Arbeit und Entwicklungszeit abnehmen, z.B.:

http://www.trinamic.com/tmc/render.php?sess_pid=446

Und dann tuts auch ein 8-Bitter und langweilt sich noch.


Peter

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.