Powell
30.03.2007, 16:44
Hallo
Ich habe ein Problem: Ich habe eine Schaltung mit Mikrocontroller gebaut die in einem Kart als Zündunterbrecher dienen soll. Dabei wird ganz einfach die Primärspannung der Zündspule (ca. 300V) über ein Relais kurzgeschlossen und somit die Zündung für eine definierte Zeit zwischen 20 und 80 msec unterbrochen sodass man ohne Kupplung schalten kann. Das Relais wird durch den Mikrocontroller über die Dauer der vorprogrammierten Zeit angesteuert.
Bis ca. 10000 U/min funktioniert das ganze auch hervorragend, darüber macht sich der Controller aber selbständig. Will im Konkreten Fall heißen: Das Relais wird mehrfach angesteuert ohne dass der Befehl gegeben wird. Und zwar führt der Controller die Routine exakt aus, unterbricht also immer wieder für eine exakte Zeitspanne. Das Resultat ist ein stottern des Motors, es ist umso schlimmer je länger man die Unterbrecherzeit einstellt.
Nun meine Frage: Wer kann sich eine Ursache dafür erklären? Vielleicht noch ein paar Randinformationen:
- Platine sitzt in einem Aluminiumgehäuse was nicht mit der Masse der Zündanlage verbunden ist
- Primärspannnung von 300 V wird in das Gehäuse auf die Platine geführt (Signalform: steigt exponentiell innerhalb von ca. 6ms auf ca.300V und fällt dann schlagartig wieder auf 0V (Zündung), Frequenz des Signal entspricht Motordrehzahl, bei 10000min-1 also ca. 166Hz)
Wenn ich logisch denke muss es ja so sein, dass am Mikrocontrollereingang eine Spannung abfällt und er dadurch das Signal bekommt. Ich arbeite mit internem Pullup (ATTiny13) und frage die abfallende Signalflanke ab, der Eingang muss also auf GND gelegt werden damit der Befehl ausgeführt wird. Jetzt hätte ich zwei Ideen: Entweder der Eingang wird wirklich auf GND gezogen (wie? woher?) oder die Spannungsversorgung am uC steigt auf min 8V an (3V Differenz= High Signal). Da der Eingang noch entprellt wird (25ms) ist das für mich allerdings höchst seltsam.... wer kann es sich erklären?
Zu den Lösungen: Was für möglichkeiten habe ich um meine Schaltung immun gegen Störungen von Außen zu machen? Ich kenne mich mit Entstörungstechnik nicht sonderlich aus...
Eine Idee die ich habe ist einen externen, kleinen Pullup (1K) zu schalten, sodass die Störquelle schon einen relativ geringen Innenwiderstand haben muss um den Spannungsfall am Controller zu bewirken. Rechnerisch liegt der aber schon unter 6K da es ja gelingt den 10K Pullup auf Logisch 0 (<3V) zu ziehen.
Eine andere Idee ist eine Kapazität parallel zwischen Eingang und +5V zu schalten, sodass der Kondensator erst entladen werden muss bis ein Low-Signal erkannt wird, was eine gewisse Energie des Signals voraussetzt. Ist dieser Ansatz richtig? Wie groß muss der Kondensator dann sein? Ich wollte es mal mit 4,7uF probieren... komme halt erst am Montag zum Testen, daher hoffe ich kann mir jemand von euch ein paar nützliche Infos geben, das würde mich sehr freuen.
Viele Grüße
Paul
Ich habe ein Problem: Ich habe eine Schaltung mit Mikrocontroller gebaut die in einem Kart als Zündunterbrecher dienen soll. Dabei wird ganz einfach die Primärspannung der Zündspule (ca. 300V) über ein Relais kurzgeschlossen und somit die Zündung für eine definierte Zeit zwischen 20 und 80 msec unterbrochen sodass man ohne Kupplung schalten kann. Das Relais wird durch den Mikrocontroller über die Dauer der vorprogrammierten Zeit angesteuert.
Bis ca. 10000 U/min funktioniert das ganze auch hervorragend, darüber macht sich der Controller aber selbständig. Will im Konkreten Fall heißen: Das Relais wird mehrfach angesteuert ohne dass der Befehl gegeben wird. Und zwar führt der Controller die Routine exakt aus, unterbricht also immer wieder für eine exakte Zeitspanne. Das Resultat ist ein stottern des Motors, es ist umso schlimmer je länger man die Unterbrecherzeit einstellt.
Nun meine Frage: Wer kann sich eine Ursache dafür erklären? Vielleicht noch ein paar Randinformationen:
- Platine sitzt in einem Aluminiumgehäuse was nicht mit der Masse der Zündanlage verbunden ist
- Primärspannnung von 300 V wird in das Gehäuse auf die Platine geführt (Signalform: steigt exponentiell innerhalb von ca. 6ms auf ca.300V und fällt dann schlagartig wieder auf 0V (Zündung), Frequenz des Signal entspricht Motordrehzahl, bei 10000min-1 also ca. 166Hz)
Wenn ich logisch denke muss es ja so sein, dass am Mikrocontrollereingang eine Spannung abfällt und er dadurch das Signal bekommt. Ich arbeite mit internem Pullup (ATTiny13) und frage die abfallende Signalflanke ab, der Eingang muss also auf GND gelegt werden damit der Befehl ausgeführt wird. Jetzt hätte ich zwei Ideen: Entweder der Eingang wird wirklich auf GND gezogen (wie? woher?) oder die Spannungsversorgung am uC steigt auf min 8V an (3V Differenz= High Signal). Da der Eingang noch entprellt wird (25ms) ist das für mich allerdings höchst seltsam.... wer kann es sich erklären?
Zu den Lösungen: Was für möglichkeiten habe ich um meine Schaltung immun gegen Störungen von Außen zu machen? Ich kenne mich mit Entstörungstechnik nicht sonderlich aus...
Eine Idee die ich habe ist einen externen, kleinen Pullup (1K) zu schalten, sodass die Störquelle schon einen relativ geringen Innenwiderstand haben muss um den Spannungsfall am Controller zu bewirken. Rechnerisch liegt der aber schon unter 6K da es ja gelingt den 10K Pullup auf Logisch 0 (<3V) zu ziehen.
Eine andere Idee ist eine Kapazität parallel zwischen Eingang und +5V zu schalten, sodass der Kondensator erst entladen werden muss bis ein Low-Signal erkannt wird, was eine gewisse Energie des Signals voraussetzt. Ist dieser Ansatz richtig? Wie groß muss der Kondensator dann sein? Ich wollte es mal mit 4,7uF probieren... komme halt erst am Montag zum Testen, daher hoffe ich kann mir jemand von euch ein paar nützliche Infos geben, das würde mich sehr freuen.
Viele Grüße
Paul