mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik application note bldc


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich wollte mal fragen ob einer schonmal den application note 
AVR447
( Sinusoidal driving of three-phase permanent magnet motor using 
ATmega48/88/168 )  von Atmel ausprobiert hat und mir helfen könnte. Ich 
versuche das jetzt schon eine Ewigkeit. Ich benutze IAR Embedded 
Workbench IDE und gehe dort auf "release" und dann "Rebuild all" 
Natürlich mache ich auch die in Doxigen aufgelisteten nötigen 
Einstellungen in den options. Dann erhalte ich eine Datei mit .a90 am 
Ende. Dann wechsel ich zu AVR Studio und speichere damit diese Datei im 
Atmega48. Ist das soweit sconmal richtig oder darf ich vielleicht nicht 
avr-Studio verwenden? Es läuft überhaupt nicht.

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du brauchst eher eine .hex ...

Was hat Doxygen damit zu tun?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das habe ich mir nämlich auch gedacht mit der .hex Datei.
Das ganze Programm ist ziemlich gut mit Doxigen dokumentiert und da 
stehen unter anderem auch einige vorzunehmende Einstellungen für IAR 
Embedded
Workbench drin. Welches Programm dehme ich dann am besten um den code in 
den Controller zu kriegen. So wie ich das sehe, kann IAR Embedded
Workbench das nämlich nicht.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder weiß jemand zufällig woher man noch ein Beispielprogramm zur
BDLDC-Sinuskommutierung bekommen kann. Am besten für ATmega Controller

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat jemand denn überhaupt schonmal ne Sinuskommutierung mit BLDC-Motoren 
hinbekommen? Egal wie.

Autor: Michael Leusink (hasimaus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ich

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber irgendjemand hat es doch bestimmt auch schonmal geschafft den 
application note AVR447 umzusetzen oder? Der code ist ja schon da und 
die Schaltung ist auch in den Unterlagen. Der code muss ja im Grunde nur 
noch in den Controller gebracht werden. Es will einfach nicht funzen.

Autor: Andreas Klafft (lowrider)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin da auch gerade bei, AVR447 umzusetzen. Allerdings versuche ich, den 
ganzen code in AVR-GCC zu portieren. Es scheint mir eine uferlose Story 
zu werden. Prinzipiell funktioniert das ganze bei mir schon soweit, 
Interrupts sind OK. Allerdings kommt aus den Phasen-Ausgängen nichts 
raus. Ich vermute mal, dass da irgendwie der Wurm drin ist.
Bräuchte da jemanden, der mir mal die Unterschiede zwischen IAR und 
AVR-GCC erklärt. Hier nur ein Beispiel aus dem AVR447, dass so nicht 
funktionieren kann:
// #pragma inline=forced
inline static void MotorSynchronizedUpdate(void)
{
static uint8_t synchCount = 0;

  PMSMflags_t tempFlags;

  tempFlags = fastFlags;

  if ((tempFlags.desiredDirection == tempFlags.actualDirection) &&
      (tempFlags.motorStopped == FALSE) && (tempFlags.motorSynchronized == FALSE))
  {
    synchCount++;
    if (synchCount >= SYNCHRONIZATION_COUNT)
    {
      fastFlags.motorSynchronized = TRUE;
    }
  }
  else
  {
    fastFlags.motorSynchronized = FALSE;
    synchCount = 0;
  }
}

In der ersten Zeile wird die Variable synchCount auf Null gesetzt. Wird 
die erste IF-Anweisung erfüllt, wird sie um eins erhöht, hat dann den 
Wert=1. Die Funktion wird danach verlassen.
SYNCHRONIZATION_COUNT wird durch PMSM.h auf 2 gesetzt. Dieser Wert wird 
allerdings nie erreicht, da beim nächsten Aufruf der Funktion der Wert 
von synchCount wieder auf Null gestzt wird?!?!
Wundert euch bitte nicht über das auskommentierte #pragma... Ich habe 
nur versucht diese Zeile in AVR-GCC umzusetzen.

Wäre nett, wenn irgendwer darauf eine Antwort hat.

Gruß Andreas

Autor: Werner P. (wpfundstein)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> da beim nächsten Aufruf der Funktion der Wert
> von synchCount wieder auf Null gestzt wird?!?!

Falsch. synchCount ist static.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.