
Als nächste Stufe der Fahrregler habe ich den Atmel 90S2313
ausgesucht. Grund dafür waren die rudimentären
Interrupteigenschaften
des 89C2051 (nur neg. Flankengetriggert oder Pegel), sowie weil der
2051
trotz 24Mhz durch die interne Teilung durch 12 eigentlich zu langsam
ist
komplexere Aufgaben zu bewältigen. Außerdem hat der AVR Chip
auch noch ein internes eEprom zum abspeichern der Servoparameter. Diese
Funktion wird aber in der aktuellen Softwareversion noch nicht benutzt.
Wird immer die gleiche Fernsteuerung verwendet, ist das aber wiederum
nicht
unbedingt ein Nachteil und verkürzt die Softwareentwicklung
ungemein
;-)
Das Layout ist, ermöglicht durch die Pinkompatibilität der
Chips beinahe identisch mit dem 89C2051
Regler. Als zusätzliche Feature ist noch eine Messung des
Kanales3
(wo vorhanden) der Fernsteuerung eingebaut, mit der einige
Sonderfunktionen
realisiert werden können. Mehr dazu bei der Softwarebeschreibung.
Achtung: Die Schaltung besitzt
keinen BEC Ausgang für den
Empfänger,
also einen BEC Empfänger benutzen, oder eine separate BEC
Schaltung
vorsehen. Am Servoanschluss werden jedoch die 5V vom Empfänger
überwacht,
so dass beim ausschalten oder Ausfall der Empfängerspannung der
Motor
angehalten wird.
R7: Dieser Vorwiderstand entkoppelt die Spannungsversorgung
vor
den negativen Impulsen, die durch die von Motor erzeugte Gegenspannung
entstehen.
Falls der Regler, insbesondere bei leerer werdendem Akku (= hoherer
Innenwiderstand des Akkus) häufiger aussetzt kann man
versuchsweise
eine Induktivität einsetzen. Diese gleicht die negativen
Spannungsspitzen
teilweise wieder aus. (SMD Induktivität z.B. JCI 2012 0,68yH, Reichelt)
ZD1: Begrenzt die "Hochspannung" auf max. 20V, da der FET Treiber und die meisten FETs nicht mehr vertragen. Bei Versorgungsspannungen > 9V erforderlich.
R18, R19: Bei nicht invertierenden FET Treibern (MC4427 ->Nessel ) erforderlich. Bei Ansteuerung mit invertierenden Treibern dürfen sie nicht bestückt werden, außerdem muss natürlich die Software geändert werden.
R1-R3: Bestimmen Maßgeblich die Flankensteilheit der FET Ansteuerung. Wird der Wert verringert, schalten die FETs schneller und produzieren dadurch weniger Verlustleistung. Allerdings erhöht sich dadurch auch die Störspannung auf der Versorgungsspannung, was zum "hängenbleiben" des Prozessors und sonstigen Fehlfunktionen führen kann. Bei mir gab es bei kleinen Werten (< 1K) Störungen bei einem 40Mhz AM Empfänger, während ein anderer 40Mhz FM Empfänger dann immer noch einwandfrei funktionierte. Wenn unerklärliche "Phänomene" auftreten kann es nicht schaden den Wert testweise zu erhöhen.
R4, R5: Bestimmen das Einschalten der BremsFET. Hier sollten kleinere Widerstandswerte eingesetzt werden, damit ev. auftretende Storimpulse über den FET Treiber sicher abgeleitet werden.
FET:
Als FETs zur eigentlichen Motoransteuerung sind prinzipiell alle
Standart
FET mit der entsprechenden Strombelastbarkeit geeignet. Entscheidend
für
die Leistung ist aber auch der RDSon Widerstand bei durchgesteuerten
FET.
Für die Bremse sind diese Standart FETs allerdings nicht bei 6
oder
7 Zellen Akkus geeignet, da die Ansteuerspannung dafür etwas
gering
ausfällt. Für die Bremse sind 5V FETs zu empfehlen. Ich habe
dafür überall den Typ IRL3803 vorgesehen. Diese FETs sind
sehr
Leistungsfähig und haben einen geringen Restwiderstand.
(Bezugsquelle
z.B.Fa. Nessel,
dort gibt es z.B. auch eine Übersicht über die
Leistungsfähigkeit
verschiedener Typen).
MOS-FET Treiber:
Sind etwas schwer zu beschaffen, eine gute und recht preiswerte Quelle
ist ebenfalls, wie auch für die meisten FETs die Fa. Nessel.
Auch die Servokabel, sowie die dicken Silikonkabel und Goldstecker usw.
sind dort erhältlich. Alle anderen Bauteile sind z.B. bei Reichelt
zu bekommen.
Platine:
Durch die hohen Ströme im Bereich des Leistungsteiles ist
natürlich
die Gefahr des Durchbrennens der Leiterbahn bei ungenügender
Breite
gegeben. Verzinnen hilft, zumindest beim ableiten der Wärme,
besser
ist es eventuell eine Leiterplatine mit doppelt dicker
Kupferbeschichtung
zu verwenden (z.B. von Bungard, Conrad Best.# 529729). Die
benötigten
Löcher für die FETs "fräse" ich an den Seite etwas
breiter,
so dass der FET ganz bis zum Gehäuse in die Platine gesteckt
werden
kann. Wenn man jetzt die Anschlüsse nicht zu kurz abschneidet kann
man diese auf der Lötseite umbiegen und ebenfalls als Leiter
mitbenutzen.
Nachteil: die FETs sind danach nur noch schwer wieder auszulöten.
Noch ein paar Worte zur Motorentstörung:
Sie sollte auf keinen Fall vernachlässigt werden, da sie Ursache
für viele Probleme und unerklärliche "Aussetzer" des
Fahrtreglers
sein kann. Wichtigstes Bauteil ist die Schottky Diode z.B. 2SB550.
Diese
Diode leitet die Spannungsimpulse des Motors ab, die beim abschalten
der
Ansteuerimpulse auftreten, und entgegen der Versorgungsspannung gepolt
sind. (auf die Einbaurichtung achten).
VR1: Ist ein Spannungsabhängiger Widerstand, der zusätzlichen
Schutz vor Spannungsspitzen gibt, wird eigentlich nur bei
vorwärts/rückwärts
Reglern benötigt, da dort keine Diode eingebaut werden kann.
Cx: Kondensatoren die mit dem Motorgehäuse verbunden sind.
In der aktuellen Software ist, trotz Vorhandensein der nötigsten Hardwarefeatures (eEprom und freie Portpins) noch keine selbstständige Einstellung auf das Servosignal. Ein Schwachpunkt für den, der mit Assemblerprogrammierung nichts am Hut hat. Relativ leicht geht das Einstellen beim Nullpunkt, da dieser auf den meisten Fernsteuerungen gleich sein sollte und notfalls an der Fernsteuerung angepasst werden kann. Dieser Wert (Nullval) kann normalerweise beibehalten werden. Angepasst werden müssen normalerweise nur die beiden Endwerte. Bei den einfacheren Fernsteuerungen, die keine Einstellung des Servosignales erlauben, dürfte dieser Wert so um die 34 Hex betragen (MinVal und MaxVal). Gute Dienste beim Ermitteln des Wertes liefert mein mobiler Servosignaltester der die gleiche Routine zum messen des Servosignales benutzt. Bei meiner Graupner XR6 kann ich dieses Signal auf ca. 125% verlängern, was einem Wert von 40HEX entspricht. Die Interruptroutine (INT0 und INT1) legt den ermittelten Wert in der Speicherzelle "K2Val" ab. Mit diesem Wert als Index wird die entsprechende Speicherstelle in den Tabellen adressiert, und der dort eingetragene Wert wird als Wert für die Motoransteuerung benutzt.
Hier liegt nun der eigentliche Vorteil dieses Reglers:
Abhängig vom verwendeten Motor, der Übersetzung und dem
gewünschten
Fahrverhalten des Fahrzeuges können die Werte unter Beibehaltung
des
ganzen Regleweges der Fernsteuerung genutzt werden. Insbesondere kann
durch
"Spreizung" des Mittelbereiches ein feinfühligeres Steuern des
Modells
ermöglicht werden. Falls z.B. ein langsameres Modell
gewünscht
wird, bleibt trotzdem der gesamte Regelweg erhalten. Genutzt wird diese
Funktion in diesem Regler bei der eingebauten Sonderfunktion, über
den Kanal 3.
Folgende Schutzmaßnahmen sind derzeit eingebaut und werden in dieser Reihenfolge nach Einschalten ausgeführt:
Sind während des Betriebes hintereinander mehr
als 5 Servosignalimpulse ungültig, wird voll gebremst und auf 5
gültige
"neutral" Signale gewartet.
| In der aktuellen Software habe ich die Sonderfunktion zur
Simulation
eines Formel 1 Rücklichtes benutzt. Das Rücklicht eines F1
hat
zwei Funktionen: 1. ein Regenlicht, das dauernd ein ist. 2: eine Anzeige der Motorbegrenzung, verwendet beim Speed Control in der Boxengasse. Natürlich ist die Blinkgeschwindigkeit in der Software
einzustellen. |
![]() |
Ist ein 3. Kanal bei der Fernsteuerung nicht vorhanden, wird am einfachsten die INT1 Funktion abgeschaltet. Siehe hierzu auch die Kommentare im Source.