www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC Wandlung verzögert Kommutierung von BLDC-M


Autor: Dmytro M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Mit einem Atmega8 steuere ich BLDC-Motor mit PWM, PWM wird auf dem Poti 
eingestellt also durch AD-Wandler, doch diese Umwandlung verzögert die 
Kommutierung(8 MHz Clock, ADC Verteiler-2).Jetzt habe ich eine 
alternative lösung aber nicht rationale, sodass der ADC wird 1 mal pro 
255 tiks eingeschaltet, das ergibt 1 verzögerte Kommutierung von 255 
Schleifen(diese Schleifen überprüfen die 3 Comparator Kanäle und sorgen 
für die Kommutierung)
Hardware von Mega8 erlaubt nicht gleichzeitig Comparator und ADC laufen, 
ist auch normal, die Frage jetzt ob ich mit dem poti es irgendwie besser 
machen kann und bitte euch um ein Ratschlag. Ich will abr nicht mit 
Tasten oder externerer PWM den Motor steuern, also nur mit Poti.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>8 MHz Clock, ADC Verteiler-2

Soll das Vorteiler 2 heißen? Wenn ja, ganz schön mutig. Schätzen wäre in 
diesem Fall genauer.
Wenn der Rest genauso ist. Mahlzeit.

MfG Spess

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Dmytro M (Gast)

>Mit einem Atmega8 steuere ich BLDC-Motor mit PWM, PWM wird auf dem Poti
>eingestellt also durch AD-Wandler, doch diese Umwandlung verzögert die
>Kommutierung

Dann ist dein Programm im Ansatz falsch. Der ADC arbeitet alleine, ohne 
CPU. Das Ergebnis kann man besonders in deinem Fall zu einem beliebigen 
Zeitpunkt später abholen. Das Zauberwort lautet nichtblockierende 
Arbeitsweise, aka Multitasking.

>Hardware von Mega8 erlaubt nicht gleichzeitig Comparator und ADC laufen,

Aber sicher. Null Problemo.

Poste Code und eine Schaltung im Anhang unter Beachtung der 
Bildformate.

MfG
Falk

Autor: Dmytro M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:
> Dann ist dein Programm im Ansatz falsch. Der ADC arbeitet alleine, ohne
> CPU. Das Ergebnis kann man besonders in deinem Fall zu einem beliebigen
> Zeitpunkt später abholen.

Ohh, da habe ich aber total beschränkt gedacht, danke für den Tipp


>>Hardware von Mega8 erlaubt nicht gleichzeitig Comparator und ADC laufen,

>Aber sicher. Null Problemo.

Die Rhetorik macht mich durcheinander,also wie jetzt???

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Dmytro M (Gast)

>Die Rhetorik macht mich durcheinander,also wie jetzt???

Man kann den ADC und den Comparator problemlos parallel verwenden.

MfG
Falk

Autor: Dmytro M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:
>>Die Rhetorik macht mich durcheinander,also wie jetzt???
>
> Man kann den ADC und den Comparator problemlos parallel verwenden.

Für die BEMF Anerkennung jeder Phase brauche ich 3 Kanäle , die dann mit 
dem Comparator verbunden werden , aber was ist dann mit Bits ACME und 
ADEN
>When this bit is written logic one and the ADC is switched off (ADEN in ADCSRA is 
zero (c)doc2486.pdf

Autor: Dmytro M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:
> Man kann den ADC und den Comparator problemlos parallel verwenden.

Meinen Sie den Basiskanal mit dem Pin AIN1?

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ADME brauchst du nicht. Du hast ja eine fixe Komperatorbeschaltung.
ADME ist der interne Multiplexer der für den ADC oder Comperator
verwendet werden kann. Du schaltest über den Mux auf deinen
Poti und fertig.

avr

Autor: Dmytro M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avr schrieb:
> das ADME brauchst du nicht. Du hast ja eine fixe Komperatorbeschaltung.
> ADME ist der interne Multiplexer der für den ADC oder Comperator
> verwendet werden kann. Du schaltest über den Mux auf deinen
> Poti und fertig.

Table 72. Analog Comparator Multiplexed Input(1)
ACME ADEN MUX2..0 Analog Comparator Negative Input
0 x xxx AIN1
1 1 xxx AIN1
1 0 000 ADC0
1 0 001 ADC1
1 0 010 ADC2
1 0 011 ADC3
1 0 100 ADC4
1 0 101 ADC5
1 0 110 ADC6
1 0 111 ADC7

Motor hat 3 phasen, für jede eizelne brauche ich einen Kanal, also 
schalte ich nacheinander von ADC0 bis ADC2 Kanäele , die ergebnise von 
ACO schreibe ich in einen Register. so bestimme ich die Kommutierung. IN 
DEM FALL MUSS BIT ACME GESTELLT WERDEN (1<<ACME) aber laut der 
doc2486.pdf ACME=nicht(ADEN)
ADEN brauche ich für ADC somit für Poti

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Benutzt du Hallsensoren?

MfG Spess

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Dmytro M (Gast)

>Motor hat 3 phasen, für jede eizelne brauche ich einen Kanal, also
>schalte ich nacheinander von ADC0 bis ADC2 Kanäele , die ergebnise von

Schon klar.

>ADEN brauche ich für ADC somit für Poti

Ja. Aber du musst ja nicht PERMANENT die Kommutierung erkennen, es gibt 
da ja bestimmte Zeitfenster, in denen das passiert. Dazwischen kann man 
die Potis auslesen.

MfG
Falk

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  spess53 (Gast)

>Benutzt du Hallsensoren?

Eher nicht, wenn er eine BEMF-Erkennung nutzt.

MfG
Falk

Autor: Dmytro M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Hi
>
> Benutzt du Hallsensoren?
>
> MfG Spess

NEIN in keinem Fall, sonst im Albtraum. Ich nutze die EMK unbestrommter 
Phase

Autor: Dmytro M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:
> Ja. Aber du musst ja nicht PERMANENT die Kommutierung erkennen, es gibt
> da ja bestimmte Zeitfenster, in denen das passiert. Dazwischen kann man
> die Potis auslesen.

das sind 60° , sofort nach Kommutierung springe ich zum ADC von Poti, 
danach wieder zu den Komparatoren, so richtig?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Dmytro M (Gast)

>das sind 60° , sofort nach Kommutierung springe ich zum ADC von Poti,
>danach wieder zu den Komparatoren, so richtig?

genau.

Autor: Dmytro M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dmytro M schrieb:
> danach wieder zu den Komparatoren

Ach nein, ich habs kapiert, da muss ich so schreiben, NUR 1 UMWANDLUNG 
pro Kommutierung erfolgt, also 1 pro 60°

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.