Forum: Mikrocontroller und Digitale Elektronik Fehlererkennung für PWM aus RC-Fernsteuerung


von Henning (Gast)


Lesenswert?

Hi,

ich bin dabei mir meinen eigenen Fahrtenregler aufzubauen, der das
Signal meiner RC-Fernsteuerung in ein PWM-Signal für die FET-Endstufe
umsetzen soll, um so den Motorstrom meines Rennbootes zu steuern.

Als MCU hab ich den Tiny12 ausgewählt, was ein wenig knapp ist, aber
funktioniert. ich lasse ihn mit 1.2MHz interen RCO laufen.

Soweit habe ich noch keine Probleme, die sache läuft eigentlich ganz
gut. Mein erster versuch hat mein Rennboot jedoch aufgrund von
störungen die Uferböschung hochgejagt, darum:

Wie kann ich sicherstellen, das das gemessene Eingangssignal wirklich
von meiner Fernsteuerung kommt?

Ein Paar dinge habe ich bereits eingebaut, aber noch ist es nicht
perfekt.
Das ankommende Signal besteht ja aus einem 1ms langem Hi Block und
einem daran angehängten max 1ms breiten "Datenblock" der den Wert
enthält.
Also: Wird innerhalb der 1ms eine flanke gefunden oder keine innerhalb
der 2ten ms so wird die Messung verworfen. zudem darf die änderung zur
letzten Messung Maximal +/- 10 Einheiten sein.

leider habe ich immernoch störungen, was habt ihr noch für ideen?

von ...HanneS... (Gast)


Angehängte Dateien:

Lesenswert?

Hi Henning...

Im Anhang findest du den Assembler-Quelltext für einen Fahrtregler für
H-Brücke mit Tiny12. Das Programm wurde für Automodelle geschrieben,
steuert also zusätzlich noch Bremslicht und Rückfahrlicht. Mit einer
Programmiertaste passt man den Regler an die vorhandene
Fernsteueranlage an.

Das Programm enthält Fehlererkennung für Impulsbreitenfehler sowie
Watchdog bei Impulsausfall.

Sieh es dir mal an, es ist üppig kommentiert, vielleicht findest du ja
einen Denkanstoß...

Bit- & Bytebruch...
...HanneS...

von Henning (Gast)


Lesenswert?

danke, ich werde mich da mal durchkämpfen. Kannst du mir den Schaltplan
auch mailen?

von ingo (Gast)


Lesenswert?

Hallo Henning,

zunächst brauchst Du einen "missing Puls Detector". Das meint, das
auf dem Kanal an dem der Regler angeschlossen ist nach spätesten 25
mSec. ein neuer Impuls auftauchen muss. Wenn ein Impuls da ist, dann
musst Du zuerst die Intigrität prüfen, das meint der Impuls muss
mindestens 1 mSec. breit und max. 2,1 mSec breit sein.
Trifft eines dieser Kriterien nicht zu, dann ist der Impuls eine
Störung oder wurde von einer Störung verzerrt.
Die Prüfung, ob der Impuls plausibel ist hast Du zwar in Deinem
Programm schon drinn, vieleicht solltest Du aber den Wert +-10
Einheiten überdenken. Ich weis nicht wie gross eine Zeiteinheit ist.
Was machst Du, wenn Du einen "falschen Impuls" bekommst, stopp der
Regler sofort? Ich habe bei mir eine Fehlertolleranz von 10 Impulsen
eingebaut. Wenn also 10 Impulse falsch sind, dann geht der Regler auf
"Stopp" und muss erst 20 normale Impulse empfangen in der
Senderstellung "Mitte".
Eine mögliche Fehler für Deine Störungen könnte sein, das Dein µC mit
5V läuft die Impulse aber nur 4V haben. Ist mir so gegangen bei meiner
Multiplex. Die sendet auch nur mit 40Hz Impulsfolge, daher die 25
mSec.

Hoffe ich konnte Dir ein wenig helfen
GRUSS
INGO

von ingo (Gast)


Lesenswert?

UUPPSS da war ich wohl zu spät!!!!
-- SORRY  --

GRUSS
INGO

von Henning (Gast)


Lesenswert?

@ingo zuspät nicht!

ich hab ne Futaba FC16 mit 45Hz Impulse.
die hat ebenfalls nur 4V impulse, aber der AVR erkennt alles was höher
als 0.6 * vcc liegt. bei 5V Vcc also min 3V -> Hi Pegel.

der differenzwert ist arg blöde, weil es das wertefollgen zu langsam
macht. bewegt man den knüppel zu schnell bleibt der wert stehen.

das prüfen, ob ein follgeimpuls kommt habe ich auch schon eingefügt,
und bin nun am fehlerzähler, aber noch ein ganzes stück chaos :)

noch ist das ganze aber nicht sehr toll. bzw. ich finde es geht noch
besser.

von ...HanneS... (Gast)


Lesenswert?

Hallo Henning...

Wozu Schaltplan??? - Die Anschlussbelegung steht doch im ASM-File. Da
ich nicht weiß, welchen Aufwand du in Punkto EMV treiben willst und was
du für eine Leistungsstufe baust, halte ich mich da zurück.

Der "missing Puls Detektor" ist da, er reduziert den
Impulsabstandzähler.
Fehlerhafte Impulsbreiten werden erkannt und reduzieren den
Impulsfehlerzähler.
Die Anzahl der erlaubten Fehler kann mit der Konstante 'errors'
eingestellt werden.
Impulse mit illegalen Werten werden ignoriert (was die Steuerung
betrifft) und gezählt.
Erreicht einer der Fehlerzähler 0, dann wird die Anlage deaktiviert und
erst nach Empfang von 'error' integeren Neutralimpulsen wieder
aktiviert. Auch beim Einschalten der Anlage brauch der Regler zuerst
'error' Neutralimpulse um "scharf" zu werden.

Den Nachlauf der Geschwindigkeit halte ich für nötig, hiermit werden
Störungen unterdrückt. Sicher reagiert der Regler dadurch etwas
langsamer auf abrupte Änderungen des Steuerknüppels, er bleibt aber
nicht stehen. Das schont aber Motor und Getriebe.

Im Übrigen habe ich das Programm nicht zur unbesehenen Nachnutzung oder
als "Nonplusultra" veröffentlich, sondern zum Analysieren und zum
Finden eigener Ideen. Das Programm ist keinesfalls optimal, aber es
funktioniert recht brauchbar. Es wird von mir nicht weiter entwickelt,
da ich inzwischen eine Version mit Tiny15 habe, die mit bedeutend
höherer Auflösung arbeitet. Hier ging es aber um den Tiny12...

Bit- & Bytebruch...
...HanneS...

von Henning (Gast)


Lesenswert?

mein ziel ist ja auch nicht gewesen die schaltung + Programm so zu
übernehmen. ich habe ja schon einen regler mit mäßigem erfolg aufgebaut
(komplett ohne signalfehlererkennung). und dann nach weiteren
informationen gesucht. da ich mir aber auch nicht ganz sicher bin, wie
ich die hw am besten aufbaue suche ich dazu auch noch mehr
informationen. bin mittlerweile bei mehreren parallel geschalteten
Mosfet´s (IRL3803) und das ganze über einen Mosfet-treiber (Max626)
angesteuert. bin gerade am löten. mal gucken, ob das ganze klappt.

später werde ich das ganze warscheinlich auf die besagte brücke
erweitern. im moment brauche ich in meinem neuen rennboot
(www.mestro.de/boot) aber noch weniger einen rückwärtsgang als einen
regler mit genug Stromfestigkeit.

morgen werd ich weiter programmieren. mal gucken, ob´s dann klappt.
dann nehme ich dein Programm auch ein weiteres mal unter die Lupe.

von ...HanneS... (Gast)


Lesenswert?

Hi Henning...

Die "hohen Ströme" können problematisch sein. Da der Motor in PWM
betrieben wird, können sehr leicht Störimpulse den AVR zum Absturz
bringen. Daher bin ich der Meinung, dass man für Höchstleistungen doch
lieber auf Marken-Fahrtregler zurückgreifen sollte. Die haben zwar
ihren Preis, da steckt aber (hoffentlich!!!) auch enorm viel
Entwicklungsarbeit drin. Ich beschränke mich da auf geringere
Leistungen. Da genügen einfache Bipolar-Brücken (4A).

Bit- & Bytebruch...
...HanneS...

von buz11 (Gast)


Lesenswert?

HanneS  hat es schon gut erkannt .

Der hohe Stromimpuls ist sehr problematisch .
Wenn der MC davon direkt gestört wird ,
dann hat die Impulsfehlererkennung viel zu tun .
Das ist also nix .

Bei meinen Eigenbau ( AT89C2051 @ 4 MHz )
muss ich den MC magnetisch abschirmen .

von Henning (Gast)


Lesenswert?

hmm, ihr meint also eher keine chance? ich will ja eigentlich nicht viel
mehr als vollgas und ein paar abstufungen. wirklich hochauflösend muss
das ganze nicht sein. würd es denn helfen den Lastkreis galvanisch von
meinem avr zu trennen oder meint ihr eher, das mein pwm, Fet´s, motor
den empfänger beeinflussen?
Das ganze im Metallgehäuse zu trennen ist natürlich eine gute idee.

dabei fällt mir noch ein, das man den hohen strom durch eine spule
glätten könnte. dan währe der pwm gemindert. nur entstehen natürlich
spannungsspitzen und der Kolektor funkt noch mehr. (verrenne ich mich
grad?)

ich mache das ganze eigentlich um geld zu sparen, sonnst hätte ich mir
natürlich auch gleich nen brushless motor + regler zugelegt :)

von ingo (Gast)


Lesenswert?

Hallo Leute,

ich habe (bitte nicht hauen) einen Regler für 20A mit einem PIC
aufgebaut. Die Stromimpulse sind meiner Erfahrung nach nicht das
Problem, da der Akku (bei mir NiCd) die Stromspitzen sehr gut bedient
und es dadurch nicht zu grossen Spannungseinbrüchen kommt. Das
Hauptproblem ist die Induktionsspannung des Motors, diese kann bis zu 2
* UB betragen!!! Je nachdem wie schnell die Transistoren der Endstufe
schalten (Stichwort Flankensteilheit). Ich habe zur Versorgung des PIC
ein extra Spannungsregler eingebaut, der die UB für die Elektronik aus
der Fahrspannung gewinnt. Wohl gemerkt es ist kein BEC-System!!!!!
Vor dem Spannungsregler liegt noch eine schnelle Z-Diode, die die
Spaunngsspitzen schon mal beschneidet. Am Spannungsregler selber habe
ich obligatorischen 100nF und am Ausgang noch mal 470 µF.
Ich hatte aber immer noch das Problem das es zu Störungen kam, ich habe
zwei Wochen geraucht um zu erkennen, dass der Motor den Empfänger
stört! Also habe ich aus einseitigem Platinenmateriel ein Gehäuse um
den Motor gebaut und das auf Masse gelegt.
So funzt die Geschicht schon ein Jahr ohne grosse Störungen und
Ausfälle.

GRUSS
INGO
PS: Es kommt auch auf die Kabelführung an!! Ich würde die
Servoleitungen und die Powerleitung für den Motor so weit wie möglich
auseinander legen.

von Henning (Gast)


Lesenswert?

hast du denn eine freilaufdiode (bzw. mehrere in der brücke). warum wird
sonst die induktionsspannung so hoch?

für die steilen Flanken habe ich ja extra den Gate-Treiber vorgesehen.
da werden die gates in den Fet´s mit insgesammt bis zu 2A umgeladen.
das sollte recht schnell gehen :)

könnte man nicht das Motorengehäuse auf Masse legen? da ist doch schon
ne menge Metall dran :)

von ingo (Gast)


Lesenswert?

Klar habe ich in der H-Brücke an jedem Zweig eine Freilaufdiode. Es
kommt aber trotzdem immer noch zu Spannungserhöhungen!
Ich habe auch schon mit Doppelzehnerdioden experimentiert, (1,5KE18CA)
bei 12V UB+. Da bleiben dann aber immer noch 18V die im Regler
herumvagabundieren!!
Die Treiber (ich nehme an die von Nessel tc4426) verwende ich auch!!
Sind mir X mal verreckt die Dinger bevor ich dahinter kam. Die haben
ein max. UB von 20 V und bei 2* 14.4 (voller Akku) haben die sich
gleich ins Wallhalla verabschiedet.
Motorgehäuse an Masse....HHMMM könnte gehen, was aber wenn Du einen
Isofehler hast, hats kürzlich ne Info von Wedico gegeben die hatten das
Problem das ein Pin mit Gehäuse verbunden war. Wenn Du an so einen
Motor gerätst, dann scheppert es gleich im Regler!!!

GRUSS
INGO

von buz11 (Gast)


Lesenswert?

Bei RC-Cars sind die (Anfahr-)Ströme jenseits von gut und böse ...
Und trotzdem funktionieren die Regler seit langem einwandfrei .
Und das bei minimalen Abmessungen .

Neuerdings sieht man bei den „besseren“ Reglern für ganz „heisse“
Motoren
Elkos direkt am Regler , parallel zum Akku .

Anfangs hielt ich die Elkos ( low ESR ! ) für Humbug .
Dann hatte ich selbst mal ab und zu unerklärliche Störungen beim Fahren
.
( Mit stärkeren Motörchen als bisher . )
Mit den Elkos ist es wieder OK .


Beim Eigenbauregler habe ich den MC magnetisch abschirmen müssen ,
egal wie ich die Leiterbahnen und Strippen verlege ...

von Henning (Gast)


Lesenswert?

in welchem bereich sollte den die kapazität des Elkos sein? und gibt´s
die auch bei reichelt? alle die ich mit dem vermerk Low ESR gefunden
habe sind bei dem Becherelkos mit großer kapazität oder hoher spannung
(über 200V)
es gibt noch wechselstromfähige elkos bei den Tonfrequenzelkos. sind
auch um einiges billiger, aber kein low esr, oder?

habe auch vor, das ganze mit 12 Zellen zu betreiben. dann muss ich mir
ja noch was einfallen lassen, für die spannungsversorgung der
Gatetreibern.

Ok, dann werd ich mir was überlegen, wie ich den Motor geschirmt
bekomme. könnte ich denn auch eine seite des kastens auflassen? hab den
Motor an der Motorspannt. vorne sitzt der Regler, dann der motor, dann
die akkus, und in 30cm abstand zum Motor dann der empfänger. zwischen
motor und akku steht die motorspant, an der ich schlecht ne platine
(scheint mir ideal) zur schirmung befestigen kann. kann ich die zur
"not" auch weglassen? dh. muss der kasten um den motor wirklich
geschlossen sein. bzw. muss ich den empfänger oder den regler vorm
motor schützen?

von buz11 (Gast)


Lesenswert?

470 yF sollten reichen .

Versuche es mal , nur den MC abzuschirmen , nicht den Motor .
Zum Beispiel mit Platinenmaterial oder Alufolie .

von ingo (Gast)


Lesenswert?

Ich weis nicht wirklich was besser ist, die Störung an der Wurzel packen
(Motor abschirmen) oder die Wirkung in einzelnen Teilen verringern (MC
abschirmen) hast Du mit der Motorabschirmng schlechte Erfahrung,
buz11?
Was ist  mit den Störungen, die dann von den Kabeln aufgenommen
werden?

GRUSS
INGO

von buz11 (Gast)


Lesenswert?

Ich habe schon mehrere hundert Modell-Autos ,
Flugzeuge und Boote gesehen ...
Aber noch nie mit einer Motorabschirmung .
Wäre manchmal evtl. nicht so verkehrt .
Aber die Motorkabel "strahlen" ja trotzdem ...

Am Motor selbst habe ich immer :
eine Schottky ( NUR bei Regler mit nur einer Fahrtrichtung ! )
zwei ker.kond. 22nF , je einen pro Pol gegen Gehäuse .
einen ker.kond. 47nF von Pol zu Pol .
einen 470yF low ESR am Regler .

Beim schwachen Motor kann mann auf den Elko verzichten .
Bei ganz schwachen reicht meistens nur der 47nF .


Warum ich meinen AT89C2051 abschirmen muss weiss ich nicht so recht .
Aber bei mir reicht schon ein bischen Alufolie auf'm Chip .

von ...HanneS... (Gast)


Lesenswert?

Nimmt man nicht im Schaltschrankbau für Frequenzumrichter abgeschirmte
Kabel? Wenn ich mich recht erinnere, auch für die Leistung. Und deren
Flanken sind nicht ganz so steil wie PWM...

Bit- & Bytebruch...
...HanneS...

von Ingo (Gast)


Lesenswert?

Ich überlege gerade was passiert wenn man mit einer PWM-Frequenz von ca.
1,5 - 3KHz fährt und in den Empfängerstromkreis einen Bandfilter
(Saugkreis)einbaut. Der Schingkreis müsste die PWM-Frequenz das
Resonanz haben, denn müsst er die Störstrahlung "wegsaugen".
Oder liege ich da jetzt völlig falsch?????

GRUSS
INGO

von Henning (Gast)


Lesenswert?

@ingo
Das kann ich dir nun nich beantworten.

Aber ich hab noch ne Frage mehr:
Würdet ihr den Prozessor mit einem Quarz betreiben? die Größe ist in
diesem Fall nicht so wichtig, das passt noch alles rein, aber wie
sieht´s mit der Störanfälligkeit aus? wird dadurch auch nicht unbedingt
besser, oder?
Zweck währe mehr Rechenpower für den PWM und die Zeitmessung übrig zu
haben. Die erscheint mir im Mom ein wenig holprig. Wie sieht´s mit dem
externen RC-Glied aus? bei dem Motor in der nähe eher nicht?!

von ...HanneS... (Gast)


Lesenswert?

@Ingo,
die Störungen entstehen doch nicht durch (und damit in) der Frequenz
der PWM sondern durch die steilen Flanken. Sie sind also breitbandig
und hochfrequent. Ein Filter auf die PWM-Frequenz würde sich also
totlachen...

Vielleicht hilft es ja, wenn du MC und Leistung räumlich trennst?
MC zum Empfänger, FETs zum Motor, Akkuspannung am FET mit dickem Elko
und Keramik-C gestützt. Das könnte den HF abstrehlenden Teil drastisch
verkleinern, so dass sich Abschirmung (Metall-Fliegengitter? (wegen
Wärmeabfuhr)) wieder lohnt...

Und schau mal, welches Potenzial die Kühlfahne des FET führt (PWM...),
vielleicht sollte man den isoliert montieren damit der Kühlkörper nicht
als Sendeantenne wirkt (Kühlkörper an GND?)...

 - Ist aber alles nur Hypothese, ich selbst befasse mich nicht mit PWM
und hohen Strömen, da ich mir der Störanfälligkeit bewusst bin.

Bit- & Bytebruch...
...HanneS...

von Ingo (Gast)


Lesenswert?

@  ...HanneS...
STIMMT!!!!!!!!!  Du hast Recht! Es ist nicht die PWM sondern die
Oberwellen, die tanzen natürlich auch da rum. OK, wenn sich das
Bandfilter auf PWM totlacht (womit Du recht hast) wie ist es dann mit
einem Tiefpass in der Versorgung des µC bzw. Empfängers!?!?
Das der Kühlkörper des FET als Sendeantenne dient glaube ich eigentlich
weniger. Denn wenn man elektromagnetische Felder erzeugen will muss
auch die Abstimmung passen und ne einfache Metallplatte........ naja
ich will es nicht von der Hand weisen. Was sagt der Rest dazu!?!?

@ Henning
Ich würde den µC auf jeden Fall mit einem Quarz betreiben, zwar nicht
wegen der Srörungen oder Rechenpower, sondern vielmehr wengen der
Stabilität der Zeitkonstanten. Wenn Du einen einfachen Oszi (R/C)
dranhängst, dann ergeben sich Schwankungnen von bis zu 20%. Ich weiss
nicht ob Du bei der Vermessung des Signales über einen Timer Hardware
oder Software) mit einer Messgenauigkeit von 20% leben kannst!?!

GRUSS
INGO

von Henning (Gast)


Lesenswert?

sind quarze denn wirklich so schlagempfindlich, wie allgemein gesagt
wird? ("1 modellflugzeug absturz und ich würd´s nicht wieder
verwenden")
das währe für mich nämlich das letzte gegenargument. denn wenn das ding
in einem ungünstigen moment ausfällt steht der motor auf vollgas. Das
sollte aber wohl kaum vorkommen, oder?

Die idee mit dem Tiefpass ist garnicht so schlecht. das währe wohl noch
eine sinvolle maßnahme.

wenn ich mcu und fet räumlich trenne habe ich das problem, das die
Fet´s sich nicht mehr so steil schalten lassen, wegen der
leitungskapazität. währe aber eine idee, das vor dem Fet-Treiber zu
tuen (wenn ich den nicht wieder ausbaue). Aber warscheinlich ist die
leitungscapazität so verschwindend gering :) (...worüber ich mir alles
Gedanken mache..."

und der kühlkörper als antenne? der hat doch einen viel zu grosse
masse, die geladen werden müsste, oder? (hab aber noch nix mit funk zu
tuen gehabt) normalerweise sind antenen doch lang und schmal, und nicht
so ein block, wie der kühlkörper.

von Ingo (Gast)


Lesenswert?

Hallo Henning,
also ich bin mit meinen Reglern schon mehr als einmal vor eine Wand
gefahren. Einmal war der ganze Renner SCHROTT. Den Regler habe ich raus
genommen und anderweitig verwendet. Funzt immer noch. Das die Quarze
schlagempfindlich sind, höhre ich zum ersten mal!!!
Kommt vieleicht aus der Fliegerei, aber die Jungs sind zum Teil so
schräg drauf, das sie einmal im Jahr ihr Akkus austauschen aus Angst
der könnte in Luft seinen Geist aufgeben. Aber bei den Jungs gehts auch
um ganz andere Geldwerte und Kräfte.

GRUSS
INGO

von Henning (Gast)


Lesenswert?

ja, zahlreiche flieger sind in der tat seltsam. vieleicht finde ich ja
noch ein datenblatt, in dem stoßbeanspruchungen eingetragen sind.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.