ATMEL-AVR + PWM

Hallo NG,

ich möchte mit einem AT90S.... einen Regler/Steller für Modellbau-Elektromotoren aufbauen. Die Motoren werden IMHO durch PWM gesteuert.

Welche PWM-Frequenz sollte man hierfür verwenden? Gibt es IC´s, die die PWM selbstständig erzeugen?

Der µC hat schon genügend zu tun, dass ich zum erzeugen der PWM einen 2. µC einsetzen müsste. Er wertet das Signals des Empfängers aus, misst die Versorgungsspannung um den Motor bei Unterschreiten eines Schwellenwertes abzuschalten und soll noch die Temperatur der Mosfet´s überwachen.

Welche MOSFET´s werden für diese Aufgabe üblicherweise verwendet? Anforderungen:

- klein

- ausreichend schnell

- >=10A

- erschwinglich

Im Conrad-Katalog (Reichelt hab ich grad nicht da) habe ich ein SMD-MOSFET mit 15A gefunden. (14 04 49-88) Taugt das für diese Aufgabe? Wie warm darf so ein MOSFET max. werden?

Danke für Eure Hilfe!

Frank

Reply to
Frank Donauer_
Loading thread data ...

Du willst das Rad neu erfinden? Im weltweiten Netz gibt es etliche Schaltpläne und Anleitungen für sowas zu finden. Irgendeiner davon wird wohl auch Atmel verwenden.

Gruß, Michael

Reply to
Michael Hofmann

Hallo Frank,

wie viele Motoren mit welchen Daten sollen denn pro Atmel angeschlossen werden?

Eigentlich sollte ein Atmel doch genuegend Hardware-PWMs mitbringen, um ein paar Motoren damit zu steuern, beim Mega128 sind es 8 PWM Kanaele...

- niedriger R DS(on) um die Verlustleistung zu begrenzen.

Im Modellbaubereich setzt man eher min 30A Dauerstrom an, da fuer diesen Strom die ueblichen SUB-C-Zellen ausgelegt sind, bei blockiertem Motor, was insbesondere bei Modellautos auftreten kann, liegen die Stroeme kurzzeitig auch deutlich höher... IRFZ44 faellt mir dabei spontan bei konventioneller Bauform ein:

0,024 Ohm R DS(on), bis 50A Dauerstrom

Bye Daniel

--
  .~.    Daniel Schramm  Phone: +49 231 6108112   Mail:daniel.schramm@gmx.de
  /V\    Bruehlweg 36    Mobile:+49 178 8839848   ICQ: 35816985
 // \\   44379 Dortmund  Fax:   +49 231 96989961  WWW: pinguin.sauerland.de
/(   )\  Germany
 ^`~'^
Reply to
Daniel Schramm

Ja, aber einige davon verwenden normale BC547 als Treiber für die MOSFETs. Das ist nicht mehr als eine Spielerei, da so die FET's nicht schnell genug auf- bzw. zu gesteuert werden. Bessere Schaltpläne im Internet haben sogar Spannungsvervielfacher, um die MOSFET's sicher aufzusteuern.

Es gibt von Maxim einen eleganten Treiber für MOSFET's, den MAX620 bzw. MAX621. Der ist für diese Anwendungen (H-Brücke) wie geschaffen.

Ich will sowas auch bauen, hier neben meinem Schreibtisch liegt sogar ein "Prototyp", nur irgendwie komm ich nicht dazu, leider...

Gruß,

Christian

Reply to
Christian Fuchs

"Frank Donauer_" schrieb:

Wieso das? Alle besseren AVRs haben hardware-PWM, die größeren (allerdings dann wohl ATmega) sogar mehrere in einem Timer.

--
Jörg Wunsch

"Verwende Perl. Shell will man können, dann aber nicht verwenden."
				Kristian Köhntopp, de.comp.os.unix.misc
Reply to
Joerg Wunsch

Daniel Schramm schrieb:

Viel zu schlecht. Rechne mal nach was bei 50A und 24 mOhm an Leistung entsteht.

Dann schon eher SUP75N03-04, IRL2203N (TO220) oder IRF7413 (SO8, gibts bei Reichelt) und davon mehrere parallel.

Ich bastel grade was mit zwei IRF7413 und einem ATtiny12. Das ist zwar noch nicht fertig, aber ein/auschalten problemlos bei 17 Volt und 12 Ampere getestet (bleibt kalt). Ansteuerung über BC807 und BC817 im Gegentakt direkt aus der Fahrakkuspannung, level shifting mit BC846. Soll mit 3 kHZ PWM steuern (wenn der Assembler code fertig ist :-)

Schon fertig habe ich einen Regler mit einer H-Brücke aus 12 IRL2203N angesteuert über AT90S2313 (programmiert in C). Funktioniert auch sehr schön, aber ich hab keinen aktuellen Schaltplan mehr (zuviele Änderungen nach Aufbau der Platine :)

Für den OP mal ein interessanten Link:

formatting link
Ist zwar etwas Konfus die Seite, aber ein guter Händler.

Gruss Marcus

--
http://openbeos.org
Reply to
Marcus Overhagen

Hallo Michael

"Michael Hofmann" schrieb:

Ich bin mit den AT90.. am rumtesten. Habe 2 Tesboard`s aufgebaut, suche aber ständig nach sinnvollen Anwendungen. Diese Regler gibts schon ab 20¤, deshalb rechnet sich die Eigenentwicklung ohnehin nicht. Auf jeden Fall such ich jetzt mal nach einem Schaltplan eines fertigen Reglers wegen der externen Beschaltung.

Gruß, rank

Reply to
Frank Donauer_

Hallo Daniel,

"Daniel Schramm" schrieb:

1-2 Motoren unterschiedlicher Leistungsklassen von je 8A bis max. 30A.

ein

Da ich die µC mit Bascom programmiere, war mir nicht so ganz bewusst, was im fertigen Kompilat steht. Ich bin halt davon ausgegangen, dass wenn ich PWM am laufen habe, ich das Programm nicht in einer Warte- schleife belassen darf. Aber wenn es sich um Hardwarefunktionen handelt, sollte dies eigentlich kein Problem sein.

klar

Sanyo RC2400 IMHO bis 100A (gepusht u. selektiert)

Gruß, Frank

Reply to
Frank Donauer_

Hallo Jörg,

"Joerg Wunsch" schrieb:

Sind das die AVRs, welche 2 Timer besitzen, dann sollte das mit manchen AT90 auch gehen. Wo ist eigentlich der Unterschied zwischen AT90 und Atmega?

Gruß, Frank

Reply to
Frank Donauer_

Frank Donauer_ schrieb:

Ich habe bisher mit dem AVR4433 herumgebastelt und muß immer wiederholen: So schön die Hochsprachen für die Mikrokontroller auch sind, richtig kennen lernt man den Käfer nur mit Assembler.

--
Mit freundlichen Grüßen
  Andreas Bockelmann    
   V+49-172-6993141
Reply to
Andreas Bockelmann

"Frank Donauer_" schrieb:

Warum bist Du zu faul, mal selbst zu gucken?

formatting link

Da gibt's eine Spalte "PWM (Channels)".

Selbst der AT90S2313 hat also einen, der AT90S1200 dürfte der einzige AT90xxx sein, der keinen hat (aber das ist eher die Klasse eines ATtiny, der heißt mehr zufällig AT90, weil sie die Tinys damals noch nicht erfunden hatten).

Ist schon ausgiebig diskutiert worden. Von den nicht-wirklich-ATmegas mal abgesehen (ATmega103 und ATmega163, vielleich auch 323, den kenne ich nicht so genau), die noch AT90xxx Technologie sind, vor allem:

. neue Technologie (kleinere Strukturen), die bessere EMV-Festigkeit bringt sowie höhere Geschwindigkeit (zumeist 8 MHz bei 3 V, 16 MHz bei 5 V), bei gleichem Takt stromsparender

. neuer CPU-Kern, der u. a. einen Hardwaremultiplizierer hat, IMHO sind auch die 16-bit-Transfer-Befehle dort hinzugekommen (kenn mich da nicht so aus, das macht der Compiler für mich ;)

. Bootloader-fähig (d. h. der ROM kann vom Programm aus neu geschrieben werden)

. um einiges erweiterte Timer (fast PWM mode, CTC-Modus hat keinen off-by-one error mehr, wenn Vorteiler benutzt werden, viele Kleinigkeiten)

. TWI (aka I²C) Interface (hat auch der ATmega163 schon, hat aber dem Vernehmen nach dort noch Bugs)

. JTAG-Interface bei MCUs >= 16 KB ROM

. kalibrierten on-chip RC-Oszillator

. Watchdog-Oszillator ist deutlich spannungsstabiler als bei AT90

. ADC wahlweise differentiell und mit Vorverstärker

. sicher habe ich was vergessen ;-)

Einige der Features aus der neuen Technologielinie haben sich dann auch in neueren ATtinys wiedergefunden.

--
Jörg Wunsch

"Verwende Perl. Shell will man können, dann aber nicht verwenden."
				Kristian Köhntopp, de.comp.os.unix.misc
Reply to
Joerg Wunsch

Hallo Jörg,

"Joerg Wunsch" schrieb:

Habe hier kein Web-Zugang u. zuhause geht News im Moment nicht (bin zu faul mal einen gescheiten Spam-Filter zu installieren).

Danke für die vielen Infos!

Was ist das denn?

Gruß Frank

Reply to
Frank Donauer_

Hallo Andreas,

"Andreas Bockelmann" schrieb:

Ist schon klar, aber so weit wollte ich in die Materie nie einsteigen. Wer programmiert denn heute noch in Assembler?

Gruß Frank

Reply to
Frank Donauer_

"Frank Donauer_" schrieb:

Ein RC-Oszillator für den Haupttakt, teilweise 1 MHz, bei einige Typen auch 1/2/4/8 MHz, bei dem Atmel Dir für Vcc = 5 V ein Kalibrierbyte im EEPROM mit auf den Weg gibt (leider nur vom Programmiergerät auslesbar). Dieses Kalibrierbyte wiederum, beim Start in ein internes IO-Register geschrieben, sagt Dir, daß der Takt jetzt (± was weiß ich wieviel %) dem Sollwert entspricht.

Den Prozeß, daß mitgelieferte Kalibrierbyte auszulesen und z. B. in den Programm-seitig lesbaren EEPROM zu kopieren, kann man sich automatisieren, wenn man eine Serienfertigung machen möchte. Damit hat man dann eine einigermaßen genaue Taktbasis, die allemal ausreicht, um z. B. eine UART zu betreiben. Vorteil gegenüber Quarz ist der (IMHO) geringere Stromverbrauch und vor allem der viel schnellere Start. Letzteres kann besonders dann von Interesse sein, wenn man den Prozessor öfter mal schlafen legen möchte, um Strom zu sparen.

Ein Quarz ist eigentlich nur noch nötig, wenn man wirklich eine genaue (und langzeitstabile) Frequenz haben muß.

Übrigens auch noch vergessen: der ADC hat jetzt wahlweise eine interne Referenzspannungsquelle (bandgap reference).
--
Jörg Wunsch

"Verwende Perl. Shell will man können, dann aber nicht verwenden."
				Kristian Köhntopp, de.comp.os.unix.misc
Reply to
Joerg Wunsch

Die ist aber beeindruckend ungenau.

Olaf

--
D.i.e.s.S. (K.)
Reply to
Olaf Kaluza

Olaf Kaluza schrieb:

Im Sinne von fester Abweichung (ja, das habe ich gelesen) oder Kurz-/Langzeitstabilität?

--
Jörg Wunsch

"Verwende Perl. Shell will man können, dann aber nicht verwenden."
				Kristian Köhntopp, de.comp.os.unix.misc
Reply to
Joerg Wunsch

Ueber Langzeitstabilitaet kann ich nicht nichts sagen. Ich mein die feste Abweichung. Da kann man durchaus 10-20% erleben. (AT Tiny15)

Olaf

--
D.i.e.s.S. (K.)
Reply to
Olaf Kaluza

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.