Hallo,
ich habe vor mit einem Attiny44-20 ein PPM Signal auszulesen, zu
analysieren und dann wieder auszugeben. Das Signal wird dann mit einem
4017 in die einzelnen Kanäle für maximal 10 Servos aufgeteilt.
Jetzt meine Frage: Da nicht immer alle 10 Kanäle genutzt werden, möchte
ich an jeden Ausgang zusätzlich eine LED hängen, die dann mit dem PWM
Signal blinken soll.
Kann ich die Schaltung etwa so aufbauen? Oder könnte es da
Störungen/Probleme für das Signal geben? 4017-Ausgang -> PWM Abgreifen
für Servo -> Widerstand -> LED -> GND?
Der allgemeine Aufbau wird sein:
Attiny44-20 mit 16Mhz Quarz.
Timer1 mit Prescaler 8 = 2Mhz = 2000 Schritte/ms
Input Capture für das Einlesen und ein Output Compare "Timeout" für PPM
Der andere Output Compare Channel gibt das bearbeitete PPM Signal aus
(Ausgang Toggle)
Hat jemand bedenken dass es Zeitliche Probleme bei der Eingabe und
Ausgabe geben könnte? In den Interrupt-Routinen steht lediglich das
allernötigste wie Auslesen des ICP Wertes oder Aktualisierung oder
Output Compare Channel, alles andere wird in FiFo's zwischen gespeichert
und in der normalen "while-Schleife" abgearbeitet.
MfG
Philipp
MaWin schrieb:> Nimm einen Atmega88 und vergiss den CD4017.
Richtig! Wobei der Tiny2313 auch reichen würde.
Oder lass den AVR weg und spendiere dem 4017 (oder einem
Schieberegister) ein RC-Glied zum Erzeugen eines Reset-Impulses aus der
Synchronpause.
...
Hannes Lux schrieb:> Oder lass den AVR weg und spendiere dem 4017 (oder einem> Schieberegister) ein RC-Glied zum Erzeugen eines Reset-Impulses aus der> Synchronpause.
Ohne AVR gehts nicht, da auch noch eine Calibrierung mit eingebaut wird,
die über den AVR laufen wird.
MaWin schrieb:> Nimm einen Atmega88 und vergiss den CD4017.
Ich denke, der AVR dürfte weniger ausgelastet sein wenn er ein PPM
Signal an einem OC Pin erzeugt, als einzelne PWM Signale an separaten
Pins. Ich kann das schlecht einschätzen wie viel der AVR wirklich
ausgelastet wird, aber da er noch das PPM Einlesen muss und danach auch
noch mit den Kalibrierungsdaten verrechnen muss, bin ich eher für die
Lösung mit dem 4017.
Rein vom Platz sind beide Lösungen passend. Ich lasse dafür Platinen
herstellen und mache die gesamte Schaltung in SMD. Ich habe bereits ein
bisschen mit Eagle rumprobiert und ich bekomme das ganze gut auf eine
35x40mm Platine. ISP, Statusleds und Kalibrierungsbutton fehlen noch.
Aber nochmal zu meiner eigentlichen Frage: Ist es Problemlos möglich am
gleichen 4017 Ausgang eine LED und den PWM Eingang des Servos zu haben,
ohne dass das PWM z.b. gestört wird?
Philipp schrieb:
> Hat jemand Tipps oder verbesserungsvorschläge?
Wurde "nimm einen AVR mit einer ausreichenden Anzahl an Pins" schon
genannt?
Oder gibt es einen besonderen Grund, warum Du am Tiny44 festhälst?
(Franzis-Lernpaket oder so)
Aber wo wir schon dabei sind:
-Du willst die Servos abwecheln ansteuern, indem Du mit dem C4017 die
Versorgungsspannung an- und ausschaltest? Damit verlieren sie ihr
Drehmoment, lassen sich also frei drehen. Wenn das ein Feature ist: OK.
- Bitte nicht zuviel mit Netznamen spielen. Leitungen ziehen ist hier
deutlich besser.
- Wenn 6 Pads eine ISP-Buchse sein sollen, bietet es sich an, auch
wirklich eine Buchse zu nehmen und nicht Pads in der Weltgeschichte zu
verteilen.
- Die Blockkondensatoren an den Servosteckern fehlen.
Das war's fürs erste... erstmal das eine verbessern, dann die restlichen
Fehler suchen.
Mann, was bin ich heute wieder ätzend.
Nicolas S. schrieb:> Wurde "nimm einen AVR mit einer ausreichenden Anzahl an Pins" schon> genannt?
Ja
> Oder gibt es einen besonderen Grund, warum Du am Tiny44 festhälst?> (Franzis-Lernpaket oder so)
Im großen und ganzen weil ich noch ein paar Tinys und 4017 hier zuhause
gefunden habe und ich keine relevanten Vorteile feststellen konnte,
einen AVR mit mehr Pins zu verwenden.
> -Du willst die Servos abwecheln ansteuern, indem Du mit dem C4017 die> Versorgungsspannung an- und ausschaltest? Damit verlieren sie ihr> Drehmoment, lassen sich also frei drehen. Wenn das ein Feature ist: OK.
Viele ältere RC Empfänger arbeiten mit diesem Chip, indem sie ein PPM
Signal an den Eingang legen, wie ich es vorhatte. An den Ausgängen kommt
dann das ganz normale 50Hz PWM Signal raus, welches bei allen Empfängern
das gleiche ist. Da dürfte kein Drehmoment verloren gehen.
> - Wenn 6 Pads eine ISP-Buchse sein sollen, bietet es sich an, auch> wirklich eine Buchse zu nehmen und nicht Pads in der Weltgeschichte zu> verteilen.
Auf dem angehängten Bild kann man den Prototypen der Platine sehen.
Unten Links sind 3 Pins des ISP und auf der Rückseite die anderen drei.
So kann ich zum Programieren eine leicht verbogene Stiftleiste
draufschieben. Das ist Platzsparender als einen 6Pol ISP oben auf der
Platine.
> - Die Blockkondensatoren an den Servosteckern fehlen.
Welche Werte sollte ich am besten nehmen? Die kommen dann direkt an den
Servostecker und sind zwischen GND und PWM Leitung? Würden zusätzliche
10k Widerstände zwischen 4017 und Servo sinn machen?
> Der 4017 hat lauf Datenblatt 16 Beine, im Layout sehe ich nur 14 Pads.
Oben ist der Attiny44, der 4017 ist auf der Rückseite und hat 16 Beine.
Ich hab im Anhang mal die eagle Files mit hochgeladen. (Version 5.9)
Philipp schrieb:> Welche Werte sollte ich am besten nehmen? Die kommen dann direkt an den> Servostecker und sind zwischen GND und PWM Leitung? Würden zusätzliche> 10k Widerstände zwischen 4017 und Servo sinn machen?
Nö, zwischen VCC und GND der Servos.
Ich hatte die Servo-Pinbelegung falsch in Erinnerung; habe den
Multiplex-Ausgang als VCC-Pin interpretiert. So sollte das gehen.
Nicolas S. schrieb:> Nö, zwischen VCC und GND der Servos.
Ok, hatte es auch gearde in einem anderem Schaltplan gefunden. Sind 10uF
ok? Reicht es wenn ich die links und rechts neben den 10 Stiftleisten
einen Kondensator hinpacke, oder lieber einen einzelnen für jeden Servo?