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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.