Full-Bridge (H-Bridge) mit AVR ansteuern

Gast #455215
Lesenswert?
• ▲
▼
Mit den PWMs geht (fast) alles, also um Deine Frage zu beantworten: ja! 
Dein Programm muß lediglich dafür Sorge tragen, daß die OCRs zum 
richtigen Zeitpunkt übergeben werden. Und Du wirst 2 getrennte PWM-Timer 
für diese Impulsform brauchen, die zueinander sysnchron laufen müssen.
Gast #455311
Lesenswert?
• ▲
▼
Du brauchst nur einen PWM wenn du den einen Pfad (A) mit statischem 
Signal und den Anderen (B/) mit PWM ansteuerst. Mit einem 7400 kannste 
den PWM mit einem statischen Signal von Vorwärts auf Rückrarts 
umschalten (von B/ auf A/).
Gast #455335
Lesenswert?
• ▲
▼
Hast du Recht, das ist'n alter Entwurf eines RC-Fahrtreglers. Die 
statischen Signale dienen hier nur dazu, die PWM um- bzw. abzuschalten. 
Die versetzten Signale müssen zusätzlich in Abhängigkeit vom PWM 
geschaltet werden.
(Firma: TravelRec.) Persönliche Seite #456263
Lesenswert?
• ▲
▼
1. Antwort ganz oben auf Deine Frage:

>Und Du wirst 2 getrennte PWM-Timer für diese Impulsform brauchen, die zueinander 
sysnchron laufen müssen.

Wenn Du nun OCR1A und OCR1B nimmst, dann ist das 1 Timer, nämlich 
Timer1. Du mußt also Timer0 (bzw. Timer2, je nach Controller) und Timer1 
benutzen, mit den entsprechenden OCR-Pins.

Lesebrille putzen ;-)
Gast #456267
Lesenswert?
• ▲
▼
Du brauchst 4 Pins, also für jeden Transistor einen, wenn du keine 
weiteren (externen) Bauteile verwenden willst:
Die beiden OC-Ausgänge steuern die beiden oberen Transistoren an; zwei 
weitere Portpins steuern die beiden unteren an.
Will man jetzt in die eine Richtung "drehen" lassen, schaltet man den 
einen OC-Pin auf den Timer und den gegenüberliegenden Portpin ein.
In die andere Richtung halt den anderen OC-Pin und Transistor.
Man braucht nur einen Timer mit 2 OC-Interrupts...
OP #456663
Lesenswert?
• ▲
▼
Travel Rec. wrote:
> 1. Antwort ganz oben auf Deine Frage:
>
>>Und Du wirst 2 getrennte PWM-Timer für diese Impulsform brauchen, die zueinander 
sysnchron laufen müssen.
>
> Wenn Du nun OCR1A und OCR1B nimmst, dann ist das 1 Timer, nämlich
> Timer1. Du mußt also Timer0 (bzw. Timer2, je nach Controller) und Timer1
> benutzen, mit den entsprechenden OCR-Pins.
>
> Lesebrille putzen ;-)

ja das geht wenn ich einen Mega nehme, ich brauche ja den dritten Timer 
für die Zeit X (also die Differenz)
Gast #456700
Lesenswert?
• ▲
▼
Dann muss der Watchdog auch neue Leiterbahnen auftragen. Ist mir auch 
schon passiert, beim Programmieren noch den Akkupack dran, Vorwärts und 
Rückwärts (zufällig) gleichzeitig durchgesteuert, dicke MOSFETs => 
heller Blitz!
Gast #456721
Lesenswert?
• ▲
▼
>beim Programmieren noch den Akkupack dran...

MosFets an den ISP-Leitungen?! Oh Mann.... Andererseits klemmt man 
während des Programmierens doch wohl sicherheitskritische Sachen ab. Man 
irrt sich ja auch hin und wieder im Erstellen von Code. Dagegen hilft 
weder ein Hardware- noch ein interner Watchdog.
Gast #456724
Lesenswert?
• ▲
▼
Nö, die MOSFETs waren nicht an den ISP-Leitungen. Nur passiert einiges 
mit den Portpins, zumindest mit den Pullups wärend dem Programmieren, 
das langt den MOSFETs zum Durchsteuern. Im Eifer des Gefechtes kann's 
schon mal vorkommen dass man was vergisst, aber sowas nur einmal, grins!
(Firma: TravelRec.) Persönliche Seite #457053
Lesenswert?
• ▲
▼
>Nur passiert einiges mit den Portpins, zumindest mit den Pullups wärend dem 
Programmieren

Wie das? Normal werden die beim Programmieren durch den RESET hochohmig, 
mehr nicht. Dadurch könnten sich freilich die Gates an den MosFets durch 
Fremdspannungen aufladen. Deshalb habe ich an den MosFets immer 10k 
Widerstände vom Gate zur Source. Dann bleibt während des Proggens alles 
im Grünen Bereich.
Gast #457107
Lesenswert?
• ▲
▼
Hast recht, die werden hochohmig, d. h., der Portpin wird als Eingang 
definiert. Die Pullups, also das PORTx - Register wechselt aber während 
des Programmiervorganges unkontrolliert die Zustände. Das kann bei einer 
MOSFET-Gate zum Durchsteuern dicke reichen!
(Firma: TravelRec.) Persönliche Seite #457166
Lesenswert?
• ▲
▼
>Die Pullups, also das PORTx - Register wechselt aber während
>des Programmiervorganges unkontrolliert die Zustände

Halte ich für ein Gerücht. Der Controller ist während des gesamten 
Programmiervorgangs im RESET, hat also keinen Zugriff auf irgendwelche 
Register, also bleiben diese auch genau so, wie sie direkt vor dem RESET 
waren. Beim Löschen des Reset-Zustandes gehen alle I/O-Register, zu 
denen auch die PORTx-Register gehören, auf ihre INIT-Werte - in diesem 
Falle $00, also alles auf "Eingang, PullUp aus"; bis irgendwann das 
Anwenderprogramm dann etwas anderes vorgibt.

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.