Forum: Mikrocontroller und Digitale Elektronik Polyphasen-Frequenzumrichter mit ARM


von Patrick W. (seennoob)


Lesenswert?

Hallo alle


Ich hab mir das Ziel gesetzt einen Polyphasen-Umrichter zu bauen auf 
basis der ARM Architektur. Aber die Problematik liegt darin ich benötige 
mehr als 3 Phasen also auch mehr als 3 PWM Einheiten um den Sinus zu 
erzeugen.Außerdem in der berechnung der Sinus Werte. (sollen stätig neu 
berechnet werden)

Also ich weiß nicht welches Entwicklungsboard diesen Ansprüchen stand 
halten kann. Darum möcht ich um euren Rat bitten.


MFG Patrick

von Patrick W. (seennoob)


Lesenswert?

Ich dachte an so was in der Art wie einem Lpc 2917 wobei ich aber 
Neuland für mich betretten würde. Außerdem bin ich mir nicht sicher ob 
dieser MCU genug Performance hat zur berechnung der Sinuswerte.

von Patrick W. (seennoob)


Lesenswert?

Hab etwas im Internet geschaut und bin der Meinung das ein normaler µC 
nicht genug Rechenleistung hat. Meine Frage ist also µC oder gleich DSP 
?

Welches Entwicklungsboard dann ?

von let (Gast)


Lesenswert?

Leistungselektronik ist zwar nicht mein Ding aber ich halte es
für unnötig die Sinuswerte zur Laufzeit zu berechnen.
Wäre es nicht sinnvoller die Werte im Vorraus zu ermitteln
und in einer Tabelle abzulegen?

von Patrick W. (seennoob)


Lesenswert?

Naja daran hätt ich auch schon gedacht aber die Tabelle wird verdammt 
groß wenn man nen hohen frequenzbereich abdeken muss. Naja wenn ich in 
0,1 Grad Schritten alles abdecke brauch ich min 900 Tabellen einträge

aber dann ist noch die Frage welches Entwicklungsboard soll ich nehmen 
um 12 Phasen zu generieren?

@let Danke für den Rat

von let (Gast)


Lesenswert?

Naja, selbst bei 9000 Einträgen würde z.B. ein ARM7 nur
müde lächeln.
Wenn das also ein Option ist, dürfte die Auswahl einen Boards
etwas leichter fallen, wobei zwölf PWM Kanäle schon ein Wort
ist. Ich habe mal einige Datenblätter von NXP, ST und Luminary
durchgesehen und nur den LPC2468 gefunden der so viele Kanäle
bietet. Olimex hat soweit ich weiß ein Eval-Board mit diesem
Controller. Vielleicht gibt es noch externe PWM Controller
die für diese Aufgabe besser geeignet wären. National, Ti
und ST wären meine ersten Anlaufstellen.

von Patrick W. (seennoob)


Lesenswert?

Die PWM's ansich sind kein Problem den zB bei 12 phasen sind eh immer 2 
gleich  also einfach den Interrupt der PWM abfangen (wenn vorhanden) und 
dann Spiegeln  das eigentliche prob sind dann eher noch die EMV sachen 
und natürlich die MOSFET Treiber.

Naja 9000 Einträge wären bei 8bit 9000byte (bei 16 bit 18 000byte) ob 
sich das wohl ausgeht beim LPC 2468 mit 9000 Einträge gg

von madler (Gast)


Lesenswert?

>0,1 Grad Schritten alles abdecke brauch ich min 900 Tabellen einträge
http://de.wikipedia.org/wiki/Interpolation bzw
http://de.wikipedia.org/wiki/Spline-Interpolation ?

von Patrick W. (seennoob)


Lesenswert?

Ich versteh jetzt nicht ganz wie das mit Interpolation gemeint ist aber 
trotzdem danke

von madler (Gast)


Lesenswert?

Naja das beste ist halt, einige Werte in einer Tabelle abzulegen und den 
Rest durch interpolieren auszurechnen. Im einfachsten Fall mit einer 
Grade.
Die Sinusfunktion ist ja sehr rund (also kein abrupten Sprünge) und 
teilweise sogar fast wie eine Gerade.
So kannst Du viel Speicherplatz sparen.

von Patrick W. (seennoob)


Lesenswert?

Hmm das mit dem Speicherplatz war eigentlich nur ein Scherz aber die 
find ich nicht einmal so schlecht. Bei den Frequenzen von 0 bis 6 Hz ist 
die Lösung sicher sehr vorteilhaft aber für meinen 8051er oder Atmega 
ist das sicher keine so gute Lösung sein. (zu langsam und nur 8bit )

von C. H. (_ch_)


Lesenswert?

Im Prinzip reicht ja eine sin-90° Tabelle. Die restlichen Werte kannst 
du durch Offset bzw. Vorzeichen Erschlagen.

Gruß
Christian

von Patrick W. (seennoob)


Lesenswert?

Ok jetzt bräucht ich nur noch ein passendes Entwicklungsboard

von let (Gast)


Lesenswert?

Wenn du dann mit sechs Kanälen auskommst, hast du bei ARM7 und M3
dann praktische freie Auswahl. Gut, der STM32 fällt raus da
anscheinend nur vier Kanäle. Aber LPC23xx und die Luminary
haben sechs bzw. acht Kanäle (die LPC23xx können 6x32Bit, die
Luminaries 8x16Bit, alles unverbindlich).
Der Vorteil der 23xx gegenüber dem 2468 ist das kleinere
Gehäuse. Der 2468 hat 208 Pins die 23xx haben nur 100- bzw. 144 Pins.
Wenn das auch noch zu groß ist gibt es noch den 213x/214x mit 64 Pins.
Bei Luminary habe ich nicht nachgesehen was die 64 Pin Versionen
können. Diese Luminary Teile haben allerdings trotz vieler Pins nur
relativ wenige IOs.
Achja, es gibt da noch die AT91SAM Reihe von Atmel. Warum weiß ich
nicht ;).

Eval-Boards: Speziell für PWM Anwendungen ist mir bisher noch
nichts aufgefallen. Ansonsten gibt es bei Olimex schöne Sachen.
Für den LPC2368/LPC2378 ist das MCB2300 von Keil weit verbreitet.
Embedded Artists hat ein paar nette Boards, die jedoch recht
teuer sind (habe lange nicht mehr nachgesehen).
Diese Boards würden dir aber nur die nackten PWM Signale liefern.
Alles weitere mußt du selber dranfummeln.

von Patrick W. (seennoob)


Lesenswert?

danke let

Das konzept sieht von Haus aus vor ein zentrales Steuermodul und 
einzelne Leistungsteile (ein board 3 Phasen).

Die Leistungsteile sind ansich nur MOSFET und der Treiber (vielleicht 
noch ein kleiner Tempsensor auf oneWire basis oder I²C ) also das rohe 
signal müsste reichen.

Außerdem ich bleib lieber bei einem Entwiclungsboard weil diese Art von 
FU nie die Serienproduktion erreichen wird. Außerdem wo gibts Motoren 
mit mehr als 3 phasen ? Bessere Frage wo für braucht man so etwas ?

Naja Verwendung könnte dies vielleicht in der Antriebstechnik finden ...

let noch eine frage hast du selbst auch mit der ARM Architektur zutun 
wegen diesem Wissen ?

von let (Gast)


Lesenswert?

Ich mache seit ca. anderthalb Jahren mit den LPCs von NXP rum.
Erst nur privat, inzwischen auch beruflich. Die 236x ersetzen
bei uns in der Firma langsam aber sicher die PICs/AVRs.
Vor allem in den vergangenen sechs Monaten ist viel passiert.
Jetzt ab Juli beginnt eine neue Phase der Hardware-Entwicklung,
nachdem wir zwei Jahre lang fast nur Software gemacht haben (vier
Projekte bisher mit ARM7). Am Freitag gab es bereits Champus zum
Einstieg.
Soviel steht schon fest: 8-Bitter werden da keine Rolle mehr spielen.
Der M3 kommt zu spät, deshalb wird wohl alles auf den 2368
hinauslaufen.

von Patrick W. (seennoob)


Lesenswert?

Naja von den 8 bitern hab ich die Nase voll. Einer Profs hat auch den 
8bit vogel naja und sein liebling ist das Flexgate 3 . Aber die 8051er 
sind ned ganz meins einfach zu Programmieren aber Performance usw ist 
aber auch ned das ideale. Naja ich steig jetzt wegen dem Projekt auf 
32iger um und dann mal sehen. Vielleicht bastel ich danach mit clustern 
herum oder was weiß ich.

Mich würde interessieren wie die Firma heißt bei der du arbeitest.

von ich (Gast)


Lesenswert?

@let
Ich habe den LPC2368 auch schon lieb gewonnen, funktioniert sehr gut :)
(mit Eclipse, Arm-Elf-... usw...)

Aber an einem Problem kämpfe ich noch, haben Sie Ethernet schon zum 
Laufen bekommen? Wenn ja, mit welchem PHY?
Irgendwie funktioniert es mit meinem Micrel 8721 nicht.

von let (Gast)


Lesenswert?

@Patrick
Lieber nicht. Wenn ich mich hier zum Troll mache ist das eine Sache
aber die Firma halte ich da besser raus.

@du
Ich verwende den DP83848V von National der auch auf dem MCB2300
sitzt. Passender Code (lwIP) dafür ist im FreeRTOS als Beispiel 
enthalten.
Den RTOS Kram habe ich allerdings rausgeschmissen. Die Beispiele
für den LPC2368 (es ist nicht nur FreeRTOS) die ich seinerzeit
gefunden habe sind für die 'initial revision' geschrieben. Bei den 
Nachfolgern muß die EMAC Einheit etwas anders initialisiert werden.
1
/* Enable P1 Ethernet Pins. */
2
//PINSEL2 = 0x55555555; // Rev. -
3
PINSEL2 = 0x50150105;   // Rev. B
4
//PINSEL3 = (PINSEL3 & ~0x0000000F) | 0x00000005; // Rev. -
5
PINSEL3 = 0x00000005; // Rev. B

Vielleicht liegt es ja daran.

von ich (Gast)


Lesenswert?

Den PINSEL hatte ich schon richtig. In der Zwischenzeit bin ich auch ein 
bischen weiter. Der Micrel Chip hat die Eigenschaft, dass er auch beim 
Reset über den Status an mehreren Pins parametriert wird. Und so waren 
an den Pins im Reset Zustand zum Teil Pegel anstehend, die nicht so 
gewollte waren. Also hatte der sich auf eine PHY_ADDR 0x19 und nicht 
0x01 initialisiert.
Jetzt habe ich mir eine Routine geschrieben, den erst mal den PHY auf 
seiner Adresse sucht, dann ist mir der Reset-Zustand egal.

RTOS finde ich auch ist quatsch, nur gibt es von denen ein Eclipse 
LPC2368 Projekt, nur so zum Test mit uIP, was aber nicht funktioniert.
Wenn jemand ordentlich programmiert kann auch ohne diese speziellen 
Tasks eigene Tasks schreiben, also nur Funktionen die in der Main 
"while(1)" nacheinander alle aufgerufen werden. Es darf natürlich 
niemals ein Task warten, der muss dann immer wieder raus und kommt dann 
im nächsten Main-Loop wieder dran. (Derzeit bin ich bei 120000 Zyklen in 
der Sekunde, ich denke da ist RTOS eher langsamer :) Und der Rest geht 
über ISR.

Wird eigentlich der National Chip warm während dem Betrieb? Der Micrel 
wird zwar nicht sehr heiß, aber ordentlich warm schon.
Wenn der National nicht so heiß wird, dann würde ich meine Schaltung 
nochmals umdesignen. (Strom Sparen ist mir persönich wichtig, der Umwelt 
zu liebe...wenns auch nur ein paar mA sind.)

let, Sie sind ja schon eine ganze weile hier im Forum, ich wechsle öfter 
mein pseudo name. Im Internet bin ich ohnehin schon viel zu 
bekannt...Echt Toll dieses Forum, dass man ohne Logon was schreiben 
kann, weiter so. (Und ich hoffe alle halten sich auch Zukünftig an die 
Regeln...)

von Patrick W. (seennoob)


Lesenswert?

Naja das mit dem Troll kenn ich gg da gibts ja auch so leute die nich 
der Deutschen Sprache mächtig sind. Wenn das Datenblatt auf Engkisch ist 
stehts schon komplett an naja wenn man Ihnen erklärt hilfts auch nicht 
wirklich viel. Naja wenn ich Geld für Nachhilfe verlangen würde müsst 
ich nicht jammern das die Entwicklungsboard so teuer sind gg


mfg Knecht der Dummen

von let (Gast)


Lesenswert?

@du
Die PHY von National wird gut warm. Da scheinen sich die
Implementierungen verschiedener Hersteller kaum zu unterscheiden.
Bei meiner letzten Messung bin ich auf knapp 300mW für den DP
gekommen.

von Patrick W. (seennoob)


Lesenswert?

Wie ist eigentlich mit so einem ARM eine Display ansteuerung zu 
realisieren ?
Ich muss ehrlich zugeben ich hab von Displays 0 Ahnung und auch noch nie 
die Zeitgefunden um im Internet zu suchen.
Was auch noch interessant wär wär ein Touchscreen (bis auf den Preis ) 
wie funktionier da die auswertung ?

und mal ein herzlichen Dank an den let und alle anderen die mir mit 
ihren Kompetenten Antwort meine Frage versuchen zu lösen

von ich (Gast)


Lesenswert?

Ich hab zwar noch nie ein Display selbst programmiert, aber es hat ein 
Display normalerweise für jede Frabe Datenleitungen und die werden mit 
einem Prozessor (mit LCD-Interface) verbunden, in der Regel sind es 4-8 
Bit je Farbe und noch ein paar Synchronisationsbefehle.

Der Touch ist im Prinzip eine Folie mit einem Widerstand, der einmal von 
links nach rechts und von oben nach unten gemessen wird. Dazu wird am 
Prozessor ledeglich 2 AD Eingänge und eventuell 2 Ausgänge benötigt.

Details gibts im Datenblatt der LCDs.

Der LPC2368 hat kein LCD Controller.

Einfache Text-Displays oder kleinere Grafik-Displays können auch über 
SPI angesteuert werden, nur ein Film kann damit nicht abgespielt werden, 
da zu langsam.

@let: wegen dem PHY würde ich einen neuen thread starten, ich denke dies 
ist besser so, da es mit der Frage hier nichts zu tun hat.

von Patrick W. (seennoob)


Lesenswert?

Braucht man eigentlich für die ARM ein besonderes JTAG Programmiergerät?
Das ist die letzte Frage bevor ich mal bestelle ;-)

von Johannes (Gast)


Lesenswert?

>Der M3 kommt zu spät, deshalb wird wohl alles auf den 2368
>hinauslaufen.


Wobei laut NXP Präsentation die LPC236xer einen äquivalenten M3-Bruder 
bekommen werden und somit dann die 236xer auslaufen werden, da langsamer 
und schlechter (Interruptlatenz, etc.).
Spielt sich allerdings in einem Zeitraum von Jahren ab...

von Patrick W. (seennoob)


Lesenswert?

Hallo wiedermal alle

Ich hätt jetzt noch eine Frage. Wie kann man den Spannungsverlauf via 
Software bei einem FU auf Lastschwankungen optimieren. Naja für nen Fu 
hört sich das etwas absurd an wegen der Induktivetät der Motorspulen. 
Aber mich würds einfach mal interessieren ;-)


MFG Patrick

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.