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


von Dmytro M (Gast)


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.

von spess53 (Gast)


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

von Falk B. (falk)


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

von Dmytro M (Gast)


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???

von Falk B. (falk)


Lesenswert?

@  Dmytro M (Gast)

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

Man kann den ADC und den Comparator problemlos parallel verwenden.

MfG
Falk

von Dmytro M (Gast)


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

von Dmytro M (Gast)


Lesenswert?

Falk Brunner schrieb:
> Man kann den ADC und den Comparator problemlos parallel verwenden.

Meinen Sie den Basiskanal mit dem Pin AIN1?

von avr (Gast)


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

von Dmytro M (Gast)


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

von spess53 (Gast)


Lesenswert?

Hi

Benutzt du Hallsensoren?

MfG Spess

von Falk B. (falk)


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

von Falk B. (falk)


Lesenswert?

@  spess53 (Gast)

>Benutzt du Hallsensoren?

Eher nicht, wenn er eine BEMF-Erkennung nutzt.

MfG
Falk

von Dmytro M (Gast)


Lesenswert?

spess53 schrieb:
> Hi
>
> Benutzt du Hallsensoren?
>
> MfG Spess

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

von Dmytro M (Gast)


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?

von Falk B. (falk)


Lesenswert?

@  Dmytro M (Gast)

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

genau.

von Dmytro M (Gast)


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°

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.