Anleitung: PPM Encoder /PPM2PWM Converter bauen

Viele aktuelle Flightcontroller unterstützen die Entgegennahme von Steuersignalen über nur ein Kabel. Ein beliebter Vertreter dieser One-Wire-Techniken ist PPM (Puls-Pausen-Modulation). Fängt man jedoch an sich mit Flächenmodellen zu beschäftigen, so kommt man um den Einsatz von Servos nicht herum. Kann der Empfänger dann nur PPM ausgeben, muss ein PPM Encoder zwischen Empfänger und Servos / ESCs übersetzten. In dieser Anleitung beschreiben ich, wie ihr euch einen eigen PPM Encoder bauen könnt.

Überblick

Im Modellbau kommen in den allermeisten Fällen zwei Arten der (analogen) Signalübertragung zum Einsatz. Diese ist zum einen PPM (Puls-Pausen-Modulation) sowie PWM (Pulsweitenmodulation). In unserem Zusammenhang betrachten wir beide Verfahren im Kontext der Signalübertragung zwischen Empfänger (RX) und Servo, ESCs oder einem Flightcontroller. Während Flightcontroller oftmals die Möglichkeit bieten, die Steuersignale vom Empfänger entweder per PWM, PPM, über ein serielles Protokoll oder gar digital entgegen zu nehmen, verstehen Standard-RC-Komponenten wie Servos oder ESCs nur analoge PWM-Signale.PPM Encoder mit Servopins

Was genau ist der Unterschied zwischen PWM und PPM in der Praxis ?

Wenn ein Flightcontroller per PWM an den Empfänger angeschlossen wird, äußert sich dieses rein äußerlich bereits daran, dass jeder Kanal, der benutzt wird, mit einem eigenen Kabel zwischen Empfänger und Controller verbunden werden muss. PPM (auch Summensignal) kommt hingegen mit einem einzigen Kabel aus, da die Signale aller Kanäle in einem definierten Zeitzyklus nacheinander übertragen werden. Aktuelle PPM-Empfänger, wie beispielsweise der Jeti RSAT2 können, mit entsprechender Firmware, bis zu 16 und mehr Kanäle über ein einziges Kabel übertragen. Der große Vorteil im Flugmodellbau: Weniger Kabel, weniger Unordnung, weniger Gewicht.

Warum dann ein PPM Encoder?

Wer, wie ich, vollständig auf reine PPM-Empfänger (wie den RSAT2) setzt, kommt damit im Multicopter-Bereich wunderbar klar. Egal ob Naza, OpenPilot, Cleanflight oder Betaflight, alle großen Flightcontroller-Distributionen können mit PPM-Empfängern umgehen. Wozu also einen teureren, schwereren vollwertigen Empfänger mit einzelnen Kanalausgängen kaufen?Jeti RSAT2 Empfänger - PPM only

Problematisch wird es nur dann, wenn man ebenfalls mit Flächenmodellen rumspielt. Hier wird ein Großteil der Steuerbefehle von Servos umgesetzt. Natürlich könnte man einfach einen Flightcontroller, wie den CC3D oder Naze32, mit in das Flugzeug bauen und die Wandlerarbeit hier erledigen lassen, aber 1) sind diese Controller nur für diesen Zweck relativ teuer und 2) macht das Selberbauen Spaß! 🙂

Was genau macht ein PPM Encoder / PPM-to-PWM Coverter?

Eigentlich genau das, was der Name impliziert. Er nimmt ein One-Wire-PPM-Signal entgegen, wertete dieses aus und gibt es an die gewünschte Anzahl an Einzelkanälen aus. Er erlaubt also den Anschluss von PWM-Komponenten an einen PPM-Empfänger.

Benötigte Komponenten

Der hier vorgestellte PPM Encoder basiert auf der Arbeit des mikrocopter-Forenmitglieds „jreise„. Er hat die Firmware geschrieben, welche in einer Version für 8 und 12 Kanäle zum Download bereitsteht. Die Rechenarbeit wird von einem Atmel ATTiny 2313 Microcontroller erledigt. Diese Chips sind mittlerweile sehr günstig und eignen sich daher sehr gut, für solche Bastelprojekte. Diese Anleitung soll euch Schritt für Schritt durch den Aufbau führen. Eine Anleitung mit Schaltbildern finden sich unter anderem auch direkt beim Erfinder.

Komponentenliste

  1. Atmel ATTiny 2313
  2. Pin-Header für ATTiny (optional, um den µ-Prozessor später noch herausnehmen zu können)
  3. Stiftleiste im 2,54-mm-Rastermaß
  4. Kupferlackdraht (Kabel funktioniert genauso, der Draht ist nur schön leicht)
  5. Lochrasterplatine
  6. Kondensator 10 V, 100 nF

Werkzeuge

  1. Ausrüstung zum Löten
  2. USBasp Programmierer, von oder kompatibel mit dem Treiber von Thomas Fischl
  3. Bread Board
  4. Steckbrücken

Ich empfehle den Bau nur, wenn man löt-technisch ein weniger versiert unterwegs ist und man keine Angst vor der Arbeit mit der Kommandozeile hat. 😉

Flashen des Controllers

Die größte Herausforderung ist eigentlich das Übertragen der Firmware auf den ATTiny 2313 Controller. Im Gegensatz zum Arduino Uno, bei dem die Programme einfache über die komfortable IDE über USB übertragen werden können, benötigt der Atmel Controller einen Programmer. Ein USBasp-Programmiergerät eignet sich für unsere Aufgabe und ist bereits für unter 20 Euro zu haben. Wer ESCs beispielsweise mit SimonK selbst geflasht hat, der hat ein entsprechendes Tool sowieso bereits zu Hause. Auf geht’s!

Schritt 1: WinAVR installieren. Diese Programmierer-Umgebung enthält das Tool AVRDude, welches wir zum Flashen des ATTiny 2313 benutzen. Bei der Installation darauf achten, dass die „PATH“-Option gesetzt ist. Damit lässt sich AVRDude global im System (Windows) über die Kommandozeile aufrufen.

Schritt 2: USBasp Treiber installieren. Wie das im Detail geht, vor allem unter Windows 8.1 und 10, ist auf der Downloadseite beschrieben. Eigentlich reicht die normale Installation und das anschließende Anstecken des Programmers aus, um den Treiber respektive den Programmer zum Laufen zu bekommen.

Schritt 3: Firmware Datei herunterladen. Im Mikrokopter-Forum sind zwei Versionen der Firmware verlinkt. Es gibt eine Version für 8-Kanäle und eine Variante für 12-Kanäle. Nachdem Download die entsprechende HEX-Datei in das gewünschte Arbeitsverzeichnis auf eurem Computer verschieben.

Schritt 4: ATTiny 2313 mit dem Programmer verbinden. Dazu werfen wir einen Blick ins Datenblatt des Controllers. Auf Seite 2 ist die Pin-Belegung der PDIP/SOIC-Version beschrieben. Wir konzentrieren uns auf: VCC, GND, PA2 (Reset), PB7 (SCL), PB8 (MISO), PB9 (MOSI). Die folgende Tabelle zeigt die korrespondierenden Anschlüsse am USBasp.

WICHTIG: Je nach Programmer können die Pins abweichen. Mein verwendeter Programmer hat 10-Pins mit Vollbelegung.

Anzeige
USBasp (Pin)ATTiny 2313
5V (2)VCC
GND (3 / 8 / 10)GND
Reset (5)PA2
SCK (7)PB7
MOSI (1)PB9
MISO (9)PB8

Ist die Verdrahtung erledigt, welche sich am besten auf einem Bread Board erledigen lässt, kann der Programmer mit dem Computer verbunden werden. Wenn alles „richtig“ ist, raucht jetzt nichts 😀

Schritt 5: Fuses mit AVRDude setzten. ATTiny Controller werden über sogenannte Fuses (auch Fuse Bits) konfiguriert. Der Controller kann so den Bedürfnissen nach eingestellt werden. Ein sehr nützliches Tool zur Berechnung der Fuse Bits, welche in Hex-Code übermittelt werden müssen, ist der Engbedded Atmel AVR Fuse Calculator.

Im Auslieferunszustand hat unser µ-Controller die Fusebits:

lfuse: 0x64, hfuse: 0xdf, efuse: 0xff

Wir müssen „CKDIV8“-Option deaktiveren. Die richtigen Fuses heißen also:

-U lfuse:w:0xe4:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m

Angegeben ist dabei bereits die Kommandooption, wie sie von AVRDude verarbeitet wird.

Über Windows + R -> cmd -> avrdude tippen lässt sich das Programmiertool aufrufen. Über die Konsole in das Arbeitsverzeichnis navigieren indem die HEX-Datei liegt. Mit dem nachfolgenden Befehl werden die Fusebits richtig gesetzt. Erhaltet ihr an dieser Stelle einen Fehler, dass keine Verbindung hergestellt werden kann, so liegt es in 99% der Fälle tatsächlich daran, dass die Verdrahtung fehlerhaft oder nicht ordentlich ausgeführt wurde (Wackelkontakt). Nicht direkt aufgeben und alles noch einmal prüfen!

avrdude -c usbasp -p t2313 -B 4 -U lfuse:w:0xe4:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m

Hat das geklappt, kann direkt das Programm auf den ATTiny 2313 übertragen werden. Dieses geht mit:

avrdude -c usbasp -p t2313 -B 4 -U flash:w:ppm2servo.hex

AVRDude quittiert einem den Erfolg direkt, wenn alles geklappt haben sollte. Das war’s! Der Chip ist nun bereit seine Aufgabe als PPM Encoder aufzunehmen, dazu fehlt natürlich noch ein Teil der Hardware.

Schritt 6: Platinenlayout erstellen

Für eine simple Schaltung, wie diese hier, macht die Herstellung einer Platine mit geätzten Leiterbahnen wenig Sinn. Außer natürlich, man macht gerne alles ganz genau oder will extrem kompakt bauen. Ein Stück Lochrasterplatine in der Größe von 25 x 35 mm tut es aber auch. Wichtig ist, dass der Controller, die Servopins und der Kondensator Platz finden. Ein allgemeines Layout vorzugeben ist hier schwierig. Jeder nutzt ein wenig andere Teile und es ist daher vernünftig, sich sein eigenes Layout zu überlegen.

Der PPM Encoder ist dabei so ausgelegt, dass er 8 PWM-Signalausgänge, einen PPM-Signaleingang sowie einen separaten Eingang zur Spannungsversorung hat, sollte diese nicht über das BEC im Regler realisiert werden.

Anmerkung: Der Aufbau sieht keine Schutzwiderstände vor, um möglichst einfach aufgebaut zu sein. Sollte also eine Verpolung der Stecker stattfinden, kann der ATTiny 2313 zerstört werden!

In Anlehnung an das Beschaltungsbild von Jörg Reisener ist der die folgende Beschaltung entstanden. Extra ausgeführt ist hier der RESET-Pin, um spätere Umprogrammierung ohne großen Aufwand zu ermöglichen (alle anderen Programmier-Pins sind über die Servostecker erreichbar).

Beschaltung ATTINY 2313 PPM Encoder

Übertragen auf die Lochrasterplatine sieht das Ganze dann folgendermaßen aus. Wobei die Servopins an der oberen Seite angesiedelt sind. Alle roten Linien stellen elektrische Verbindungen dar. Benachbarte Verbindungen sind mit Lötzinn ausgeführt, längere Verbindungen mit Kupferlackdraht.

Lötbild PPM Encoder

Verlötet kann der PPM Encoder dann beispielsweise so aussehen:

PPM Encoder verlötet

Mein erster Encoder besitzt ein leicht anderes Layout:PPM Encoder gerade verlötet

Fertig aufgebaut sieht der PPM Encoder dann so aus – einmal mit 90°-Pins und einmal gerade:

PPM Encoder 90 Grad Pind Draufsicht PPM Encoder - Gerade Pins Draufsicht

Schritt 7: Einschrumpfen. Ganz am Ende, nachdem die Funktion getestet ist und alles klappt, empfiehlt es sich, den neu gebauten PPM Encoder einzuschrumpfen.

Schlusswort

Ganz am Ende wird nun der Empfänger mit dem Input-Pin verbunden. Servos und ESCs finden an einem der acht Kanäle Anschluss. Je nach Fernsteueranlage muss nun noch die Servozuweisung im Sender erfolgen. Danach kann der PPM Encoder mit Spannung versorgt werden. Entweder über den dediziert ausgeführten Anschluss oder über einen der acht Kanäle via Regler BEC. Wichtig ist, dass hier maximal 5V anliegen dürfen. Mit einem 6V-BEC macht ihr den ATTiny kaputt. Also immer auf die richtige Versorgungsspannung achten!

Nils Waldmann

Nils Waldmann

...Student des Wirtschaftsingeneurwesens und Qualitätsmanagements, leidenschaftlicher Modellbauer, Hobby-Fotograf, Motorsportfan und freier Redakteur bei dem Computer-Onlinemagazin Allround-PC.com.

Das könnte auch interessant sein...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.