Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

BK_2009

RCLine Neu User

  • »BK_2009« ist der Autor dieses Themas

Wohnort: Göttingen

Beruf: Mechanik

  • Nachricht senden

1

Samstag, 17. Januar 2009, 20:38

PCM Empf. und Summensignal Ausgang (Suche Schaltung)

Hallo an ALLE

Ich bin seit heute Mitglied hier im Forum. Aufgrund euer starken Truppe hier, Such ich eine Lösung für mein PCM Empfänger.
Ich benötige ein Summensignal aus einem PCM Empf. Bekannt ist ja, das diese Empfänger saubere Servosignale ausgeben, diese sind jedoch nicht als Summensignal sondern durcheinander. Ich habe schon alles probiert (analog)
bin jedoch gescheitert. Vielleicht gibt es hier einige die sowas kennen.
Also ich brauche ein Composignal, wie man es aus normalen PPM Empf. kennt.

Gruß
Bartek

Space

RCLine User

Wohnort: Hasloh b. Hamburg

  • Nachricht senden

2

Samstag, 17. Januar 2009, 23:30

Ein analoges Servo Summensignal wirstdu an einem PCM Empfänger mit hoher Warscheinlichkeit nicht finden. PCM setzt einen Prozessor im Empfänger voraus.Der Prozessor wertet das PCM Signal aus und erzeugt die Servoimpulse für die einzelnen Servos. Wenn er auch ein Summensignal ausgeben soll, dann muss der Software des Empfängers das beigebracht werden. Ich wüsset allerdings keinen Grund (ausser deinen), warum ein Hersteller sich diese Mühe machen sollte.
Bei einem herkömmlichen älteren analogen Empfänger (einer ohne erweitere Featers wie Servohold, Failsafe, etc.) ist das Summensignal ein Abfallprodukt der Verfahrens.
Gruß

Thomas

3

Sonntag, 18. Januar 2009, 10:02

... eine weitere Möglichkeit wäre das PCM Signal im Empfänger schon vor dem Microcontroller abzufangen, zu dekodieren und daraus ein Summensignal zu generieren.
Das ist im Prinzip auch das was der Microcontroller im Empfänger tut.
Nur das dieser die Kanäle an einzelnen Ausgängen ausgibt.

Da man aber über das PCM Übertragungsprotokoll der einzelnen Hersteller so gut wie keine Unterlagen findet, wird das ein schwieriges Unterfangen werden.

Ich hab schon mal versucht die PCM Codierung von JR zu entschlüsseln.
Im Internet hab ich nur ein paar Quellen mit ungenauen Angaben gefunden.
Einen Logic Analyser, zum selber messen, hab ich leider nicht im meinem Messgerätezoo.
Schließlich hab ich es dann aufgegeben.

o.dippel

RCLine User

Wohnort: Büdingen / Hessen

Beruf: Software-Developer

  • Nachricht senden

4

Sonntag, 18. Januar 2009, 10:58

So gehts,

PCM -> ACT->Seriell(->Summen-Signal)

Was hast du denn vor ?



:w

BK_2009

RCLine Neu User

  • »BK_2009« ist der Autor dieses Themas

Wohnort: Göttingen

Beruf: Mechanik

  • Nachricht senden

5

Sonntag, 18. Januar 2009, 17:27

Hi,

erstmal danke, das ihr Interesse zeigt.

Ok, das stimmt, oft wird sowas nicht gebraucht, fast garnicht. :shake:

Ich brauch einfach ein Summensignal, weil die Steuerung alle Servopulse nach der Reihe abarbeitet bis eine Pause kommt ca. ( 3ms-5ms) und dann wieder von vorne.
Wie ihr das so schön beschrieben habt, geben PCM Empf. direkt nach der decodierung die PWM Signale an die Servos.
Mein Problem ist halt, dass die Signale nicht nach der Reihe kommen sondern, immer Kanal 1,2 dann 3,4 dann 5,6 und 7,8 übereinander liegen.
Ich habe versucht, einen analogen Tiefpass und dann mit der Spannung auf einen PWM Modulator zu gehen, hat auch funktioniert, bloß das ganze war zu Temperatur empfindlich. Somit blieb wieder mein PPM Empf. im Vordergrund.
Was mir evt. helfen könnte, wäre ein Pic oder AVR der, die 4-5 Kanäle direkt hinter dem PCM Empf. abtastet und ein langsames Summensignal ausgibt.
Es reicht eine Abtastrate von 50-70 Hz vollkommen aus.
Leider schaffe ich es nicht zu programmieren, obwohl es vom Prinzip einfach aussieht.

Schöne Grüße
Bartek

BK_2009

RCLine Neu User

  • »BK_2009« ist der Autor dieses Themas

Wohnort: Göttingen

Beruf: Mechanik

  • Nachricht senden

6

Sonntag, 18. Januar 2009, 17:39

Noch zu ergänzen,

mit Abtastrate meine ich nach dem PIC oder AVR die Periode 50-70Hz.

Der interne Takt von Microkontroller evt. 4 Mhz.
Ich habe kleine PIC`s zum Probieren hier.
PIC16F628A, PIC16F84(A), oder AVR Mega8 16AU.
Compiler usw. Brenner alles da. Habe öfters schon andere kleinigkeiten gemacht.
Gruß

7

Montag, 19. Januar 2009, 17:20

lässt sich das Summensignal nicht einfach per Dioden zusammenhängen oder gibt der verwendete Controller alle Servosignale quasi zeitgleich raus?

BK_2009

RCLine Neu User

  • »BK_2009« ist der Autor dieses Themas

Wohnort: Göttingen

Beruf: Mechanik

  • Nachricht senden

8

Montag, 19. Januar 2009, 19:24

Zitat

dass die Signale nicht nach der Reihe kommen sondern, immer Kanal 1,2 dann 3,4 dann 5,6 und 7,8 übereinander liegen


Es sind immer Pakete übereinander.

Normalerweise, könnte ich Kanal 1 und 3 und 5 und 7 hintereinander schalten.
Also mit Dioden Aussummieren. Das Problem ist, das die Pause hinter dem letzten Signal zu kurz kommt, Meine Steuerung erkennt dies nicht mehr als summensignal. Außerdem haben hierbei alle PWM Pulse immer die selbe Startposition. Besser wäre, wenn angenommen Puls 1 aufhört und dann kurze Pause und weiter mit puls 2, ABER wenn ich den 1 Puls veränder müssten die Restlichen weiterfolgend mitverschoben werden.
Es ist nicht so ganz einfach auf den Trick zu kommen...hmm
Hat den keiner eine Idee es mit einem PIC zu lösen?? ???

9

Dienstag, 20. Januar 2009, 03:10

Ich meine mit einem Atmel Controller könnte das gehen.
Ich verwende am liebsten die Bausteine aus der ATMEGA Reihe.

Da man ja 8 Eingänge braucht würd ich das eventuell über polling zu lösen versuchen.
Allerdings darf dann der Controller nicht mit vielen anderen Aufgaben beschäftigt werden und der Takt sollte möglichst hoch angesetzt werden.

Die Servoimpulsausgabe kann man recht schön über die Output Compare Interrupts lösen.
Allerdings wird man durch das Polling am Eingang immer einen kleinen Impulsjitter in Kauf nehmen müssen.

Eine andere Möglichkeit wäre einen Controller zu nehmen, der einen Pin Change Interrupt auf mindestens 8 Eingängen unterstützt. Da wäre z.B. der ATMEGA 88 ein Kandidat.

Wie Du im Forum an ein paar Stellen nachlesen kannst sind möglichst kurze Interruptroutinen der Schlüssel zum Erfolg.

^____

RCLine User

  • »^____« wurde gesperrt

Wohnort: anonymisiert

Beruf: anonymisiert

  • Nachricht senden

10

Mittwoch, 21. Januar 2009, 03:09

Hallo,

Es wird mit Dioden nicht gehen was ihr da vorhabt. Das Problem kenne ich auch. Die erste positive Flanke startet den ersten Servoimpuls. Die erste negative Flanke beendet ihn aber die erste positive Flanke von Impuls 2 leigt zeitlich genau gleich.
Schaltet man alle Ausgänge über Dioden mit gemeinsamer Kathode und Pull Down Widerstand nach Masse erhält man als Summe die Zeitdauer aller Einzelmpulse.

Eine Lösung wäre, nur die postiven Flanken an acht einzelnen Eingängen eines uP abzufragen und daraus ein serielles Protokoll generieren. Man erhält dann das klassische PPM Signal wie es bei PPM Empängern am Basisbandausgang des HF Chip ansteht.
Dieses Signal könnte dann auf einfache Art mit einem 4017 Ringzähler wieder dekodiert werden.

Gruss Bruno

BK_2009

RCLine Neu User

  • »BK_2009« ist der Autor dieses Themas

Wohnort: Göttingen

Beruf: Mechanik

  • Nachricht senden

11

Donnerstag, 22. Januar 2009, 21:22

Hallo,
danke für die Antworten.

Ich werde mich versuchen an ein Projekt mit AVR zu wagen.

Habe gedacht an die SISY AVR software, kennt jemand diese? Kann man damit was anfangen? Ich habe noch mehrere ATmega 8 hier liegen, würde gerne damit so einen Parallel to serial wandler bauen.

Ich brauche ja einen PWM out für das Summensignal und 4-8 Eingänge, bloß mit I/0 kann ich doch keine Servosignale ermittlen, dort verschiebt sich ja die Pulsbreite. oder geht das einwandfrei?

Gruß

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BK_2009« (22. Januar 2009, 21:26)


12

Freitag, 23. Januar 2009, 09:36

Zitat

Ich brauche ja einen PWM out für das Summensignal und 4-8 Eingänge, bloß mit I/0 kann ich doch keine Servosignale ermittlen, dort verschiebt sich ja die Pulsbreite. oder geht das einwandfrei?

Das geht schon über normale I/O.
Alledings müssen die dann ständig abgefragt werden, was man allgemein als "Polling" bezeichnet.
Da aber immer nur mal wieder nachgeschaut wird ob sich auf einem Eingang was tut, kann die Impulsdauer nicht immer 100% ig ermittelt werden.
Es kann mal ein wenig zu kurze oder auch zu lange Werte ermittelt werden.
Das wirkt sich dann bei einem nachgeschalteten Servo als zittern aus.

Die bessere Lösung wäre die Eingänge über Interrupts zu verarbeiten.
Ein ATMEGA8 hat meines Wissens aber nur 4 externe Interruptquellen die verwendet werden können ( ICP, INT0, INT1, Analog Komperator ).
Das könnte gerade noch so ausgehen.

Du könntest natürlich auch einen Controller mit Pin Change Interrupts verwenden.
Da wäre zum Beispiel der ATMEGA88 ein Kandidat. Der hätte 23! Pin Change Interrupt Quellen. Das sollte für Deine Anwendung mehr als genug sein.

Eine Krux bei den Pin Changes ist, das man rauskriegen muß welcher Pin den Interrupt ausgelöst hat.

13

Freitag, 23. Januar 2009, 16:44

Servus,

ein Grundproblem bleibt aber auch mit den Interrupts, denn wenn hier wirklich völlig asynchron Impulse hereinkommen und auch erzeugt werden sollen (auch per Interrupt), gibt es immer wieder das Problem, daß der Prozessor gerade mit der Verarbeitung einer Impulsflanke (Ein- oder Ausgabe) im Interrupt beschäftigt ist, wenn woanders eine Flanke ansteht, die ausgewertet oder erzeugt werden muß. Dadurch ergeben sich immer wieder Verzögerungen im Bereich von einigen Mikrosekunden (je nach Laufzeit der entsprechenden Routinen).
Möglicherweise kann man das Servozittern dadurch verhindern, daß man "Mut zur Lücke" hat und es in Kauf nimmt, daß eben nicht jeder Impuls ausgewertet wird. So kann bei zwei Impulsen, die sich überlagern, z.B. der Interrupt jewils nur für einen von beiden freigegeben werden, und der andere wird dann beim nächsten Durchlauf ausgewertet, während dann der erste gesperrt wird. Dadurch wird zwar die Reaktionszeit auf Signaländerungen reduziert, aber Impuls-Jitter durch sich überlagernde Verarbeitungszeiten eliminiert!

Grüße,

Thomas

o.dippel

RCLine User

Wohnort: Büdingen / Hessen

Beruf: Software-Developer

  • Nachricht senden

14

Freitag, 23. Januar 2009, 16:51

Wenn du noch keinen PCM-Empfänger hast,
solltest du den ACT-Weg gehen.

Der Empfänger gibt seine Puls-Werte digital an einer Seriellen-Schnittstelle aus.
Die lassen sich per AVR einlesen und weiter verarbeiten.

:w

Problem: welches PCM-System (Futaba, Simprop, MPX, JR, ...) ???

15

Freitag, 23. Januar 2009, 21:00

Zitat

Dadurch ergeben sich immer wieder Verzögerungen im Bereich von einigen Mikrosekunden (je nach Laufzeit der entsprechenden Routinen).

Damit hast Du schon recht.
Allerdings liegt das auch in dem Fehlerbereich, den ein 1024 Schritte PCM macht.
Pro µs um die 0,1% .
Interruptroutinen sollten natürlich so kurz wie nur irgend möglich sein, am Besten in Assembler und ohne die Sicherung nicht benötigter Register.
Diesen Weg würde ich wohl gehen.

Inline Assembler für eine Programmiersprache zu erstellen ist aber sicher keine leichte Aufgabe für Anfänger.
Bei der Taktfrequenz des Controllers würd ich da aber schon eher an die obere Grenze gehen - umso besser wird das Ergebnis, allerdings bei höherem Stromverbrauch.

Den Weg den Olli vorschlägt ist auch ganz gut, allerdings mit etwas höheren Kosten verbunden.
Dafür kann der Controller die gestellte Aufgabe fast nebenbei erledigen.

HCopter

RCLine Neu User

Wohnort: Hinterpfalz

  • Nachricht senden

16

Samstag, 24. Januar 2009, 09:29

An alle interessierten User:

Es gibt sehr bald eine Lösung:
Stichwort: QuadroPPM

Grüße: Peter

highwind

RCLine User

Wohnort: D-15537 Erkner

  • Nachricht senden

17

Mittwoch, 4. Februar 2009, 19:18

wenn du dich an eine Lösung mit AVR herantasten willst, kannst Du auch hier mal schauen. Da habe ich meine Summensignal-Erzeugung beschrieben. Ist zwar für eine etwas andere Aufgabenstellung, aber vielleicht kannst du anhand des kommentierten Quellcodes (Assembler) und der Hinweise von Wilhelm und Thomas was zusammenbauen.

Gruß Jörg

BK_2009

RCLine Neu User

  • »BK_2009« ist der Autor dieses Themas

Wohnort: Göttingen

Beruf: Mechanik

  • Nachricht senden

18

Montag, 16. Februar 2009, 23:19

hi Jörg,

danke nochmals für deinen Link, ist sehr Interessant dein PPM Wandler.

Ich habe glaube dich schon im MK Forum gesehen...mh

Gruß

19

Samstag, 21. Februar 2009, 19:13

Hallo Klaskala,

Bei den Quadrokoptern ist mir was über den Weg gelaufen: http://ich2.dyndns.org/SHOP/ITEM-10

Falls der direktlink nicht geht http://www.tt-copter.de/ dann Shop --> TT-Copter --> TT-RecEnc

Gruß
Benjamin