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.
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
@ 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
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???
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
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
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
@ 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
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?
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°