BLDC Halbbrückenansteuerung

OP #3111085
Lesenswert?

Hallo Zusammen,

unter dem Artikel Brushless-Controller für Modellbaumotoren gibt es 
einen Schaltplan zum Beispiel einer Halbbrück inklusive Strommessung. 
Dazu wird beschrieben: "Der Widerstand R20 ist dazu da, dass auf dem 
Treiber das PWM-Signal liegt, sobald die Leitung „IN_A“ in der Luft 
hängt (uC Pin als Eingang definiert). So wird nur ein einziger 
PWM-Ausgang vom Mikrocontroller benötigt für alle drei Phasen, erfordert 
also kein Soft-PWM oder sonst irgend ein Murks."

Link: 
http://www.mikrocontroller.net/articles/Brushless-Controller_f%C3%BCr_Modellbaumotoren

Das wollte ich jetzt testen. Der Controller ist ein Atmega 16. An PD7 
liegt das PWM Signal. PD6 stellt IN_A da. Der Widerstand R20 wurde wie 
in dem Beispiel gewählt. Zum Test habe ich anstatt des 
Halbbrückentreibers eine LED genommen. Doch leider ist die LED nicht 
aus.

1
#define F_CPU 8000000
2
#include <avr/io.h>
3
#include <stdlib.h>
4
#include <util/delay.h>
5

6
int main (void) {
7

8
DDRD |= (1<<PD7);
9
TCCR2 |= (1<<COM21);
10
TCCR2 |= (1<<WGM21) | (1<<WGM20);
11
TCCR2 |= (1<<CS22) | (1<<CS21) | (1<<CS20);
12
OCR2 = 128;
13

14
DDRD &= ~(1<<PD6);
15

16
//PORTD |= (1 << PD6);
17

18
while (1) 
19
{
20
  //blank
21
}
22
return 0;
23
}

Vielen Dank. Gruß Steffen
Angehängte Dateien:
(Firma: Promaxx.net) #3111818
Lesenswert?

Auch wenn die die Atmels nicht anpacke...


Der Treiber soll Highside durchschalten: IN_A (PD6) auf high schalten 
und als Ausgang definieren.

Der Treiber soll Lowside durchschalten: IN_A (PD6) auf low schalten und 
als Ausgang definieren.

Der Treiber soll die PWM durchschalten: IN_A (PD6) auf egal schalten und 
als Eingang definieren.


PD6 kann das PWM-Signal übersteuern, das durch den Widerstand schwächer 
ist.
OP #3144172
Lesenswert?

Hallo Zusammen,

ich bin noch dabei mir einen BLDC Regler zu bauen. Damit ich nicht drei 
Timer zur PWM Erzeugung nutzen muss habe ich einen Timer gewählt der 
permanent läuft und jeweils über Widerstände auf die Ports der 
Higsidefets geht. Somit müsste sich doch die PWM überlagern können und 
der Fet entweder die PWM durchschalten oder abgeschaltet sein. Den 
Schaltplan habe ich angehängt. Würde das so funktionieren?

Vielen Dank. Gruß Steffen

1
//PHASE1 (U)
2
#define UH_ON  DDRD &= ~(1<<7); PORTD |= (1<<7); //PD7
3
#define UH_OFF  DDRD |= (1<<7); PORTD &= ~(1<<7);
4

5
#define UL_DDR  DDRD |= (1<<3); //PD3
6
#define UL_ON  PORTD |= (1<<3);
7
#define UL_OFF  PORTD &= ~(1<<3);
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren