Ich hab da so ein kleines "Gedankenproblem"... Ich arbeite mit einem Tiny2313 / 4313 (je nach Größe die ich brauche, entscheidet sich noch), in diesen möchte ich 4 PWM Signale einlesen (Von einem RC Empfänger, nein: der Empfänger liefert kein Summensignal). Meine Gedanken zur Vorgehensweise ist jener: Ich lasse einen Timer laufen, lasse die steigende und fallende Flanke von einem Ext. Int. Pin lesen an denen das PWM Signal eines Kanales liegt. Messe dann die Zeit vom Timer, setze ihn zurück und gehe von vorne los. Nun hab ich da einen am laufen, benötige aber noch drei weitere. Da sich ja die nur zwei Timer an Board befinden wird dies dann sicherlich schwer zu realisieren sein. Nun frag ich mich ob es denn Sinn macht den Gedanken, alle gleichzeitig lesen zu wollen, weiterzuverfolgen oder es besser wäre sich über eine Art Mulitplexing zu machen?! Meine Gedanken dazu: Ich lasse an PortD alle vier Kanäle jeweils an einen Int Pin laufen. Timer2 (16 Bit) ließt die Signallänge der PWM aus. Timer1 (8Bit) wechselt bei Überlauf den Int. Pin als Source. Somit ließen sich ja bis zu acht Kanäle hintereinander auslesen. Halt hintereinander... reichen da z.b. 50ms um einen gescheiten Mittelwert aus einem RC PWM zu bilden oder ist das zu wenig?! Weil höher wollte ich dann eigentlich nicht. Oder gibt es da noch eine andere Möglichkeit?!
PinChangeInterrupt an allen gewünschten Pins aktivieren und die Mikrosekunden speichern und auswerten.
Liegen denn die RC-Kanalimpulse nicht zeitlich hintereinander im Impulstelegram? Da würde doch ein Timer genügen. Der jeweilige Kanalimpuls taucht doch erst nach ca. 20ms wieder auf. Oder mach ich jetzt einen Denkfehler?
Meines Wissens nach senden RC-Empfänger die verschieden Signale immer in einen 20ms Abstand, sodass immer bei maximal einem Channel das PWM Signal anliegt. sprich 1. 20->ms CH1 nächsten 20ms->Ch.2 ... Das auszulesende Signal für ch.1 wird dann in diesem entsprechendem Zeitraum(20ms) über die Länge des PWM-Signales übertragen. So benötigst du für den kompletten RC-Emfänger insgesamt einen Timer
Ahhh.... Ja das kann sein, das muß ich mal durchmessen - also das mit den 20ms Intervall... oder zumindest die Differenz zwischen den Signalen. Ich weiß das ich bei meiner Spektrum da ein Timing einstellen kann (11ms, 16,5ms und 20ms) - hatte mich immer schon gefragt was dies sein könnte. Da würde ja ein Timer wirklich reichen und dann einfach nur zeitlich auswerten an welchem Pin der Interrupt auftritt - dann gestaltet sich die ganze Geschichte ja doch ein wenig einfacher als Gedacht. Danke euch. Noch eine kleine Frage nebenher... isses sicherer für den Tiny wenn ich die PWM Leitung mit einem 100Ohm Wiederstand an den Pin hänge oder gibt es da Probleme?!
100Ohm bringen nicht viel als Schutz, kannst auch 1kOhm nehmen, wenn Du Angst um Deinen Tiny hast. Das Signal wird dadurch nicht (wesentlich) beeinflusst.
Draco schrieb: > Ich > weiß das ich bei meiner Spektrum da ein Timing einstellen kann (11ms, > 16,5ms und 20ms) Was für ein Empfänger von Spektrum hast Du denn da? Ist da zufällig ein kleiner "Satellitenempfänger" über ein 3-poliges Kabel verbunden? In dem Fall reicht der kleine Empfänger aus, dort fällt 115,2 kBaud raus.
Nein, ist kein Flugempfänger. Es handelt sich da um SR410, SRS4210 und in den Großmodellen SR3300T.
Knut B. schrieb: > 100Ohm bringen nicht viel als Schutz, kannst auch 1kOhm nehmen, wenn Du > Angst um Deinen Tiny hast. Das Signal wird dadurch nicht (wesentlich) > beeinflusst. Danke, probiere ich mal aus.
Evtl. ist die APPNOTE AVR135 was für dich, zumindest zum inspirieren lassen: http://www.atmel.com/Images/doc8014.pdf verwendet aber ICP und hat nur einen Kanal...
Draco schrieb: > (Von einem RC Empfänger, nein: der Empfänger liefert kein Summensignal). Das tun Empfänger selten, für was auch. Ein normaler Modellbauer kann damit nichts anfangen. Aber mit ein bißchen Phantasie, einem Scope und ein wenig Spürsinn kann man das Signal sicher auf der Platine finden. Und schon ist das Problem massiv geschrumpft. MfG Klaus
Planlos schrieb: > Evtl. ist die APPNOTE AVR135 was für dich, zumindest zum > inspirieren > lassen: > > http://www.atmel.com/Images/doc8014.pdf > > verwendet aber ICP und hat nur einen Kanal... Ja danke Planlos, die Appnote habe ich Tatsächlich schon durchgelesen und auch die dazugehörigen Dateien mal eines Blickes riskiert. Für eine hochpräzise PWM Auswertung ist diese Note natürlich absolut geil, aber wie du bereits sagtest wird dort der ICP Verwendet, da stoße ich mit meinem Tiny an die 2 Kanal Grenze (zwei externe Interrupt Pins, 2 Timer) Bei meiner Version reicht da schon ein normaler Pinchange Interrupt über PortB, ich errechne mir die Differenz zwischen der sinkenden und der steigenden Flanken nach dem PWM Abfall und somit kann ich dann halt den ganzen Port nutzen - ist natürlich relativ ungenau aber reicht vollkommen aus für die Zwecke. Danke dennoch für deine Hilfe. Klaus schrieb: > Das tun Empfänger selten, für was auch. Ein normaler Modellbauer kann > damit nichts anfangen. Aber mit ein bißchen Phantasie, einem Scope und > ein wenig Spürsinn kann man das Signal sicher auf der Platine finden. > Und schon ist das Problem massiv geschrumpft. > > MfG Klaus Das mag stimmen Klaus, aber wie bereits oben geschrieben soll dies für mehrere Modelle sein, ich kann und will auch nicht jeden Empfänger öffnen und rumschustern. :D Wenn mir die Signale doch auch als PWM auf Headern zur Verfügung steht. Da isses dann relativ simpel: Modell auf, drei Servo Kabel ran, die Servo durchgeschleift und fertig.... und sollte dann bei jedem funktionieren. Da brauche ich keinen Empfänger öffnen oder drauf zu löten. Aaaaber... einen SR410 kann ich ja dennoch mal opfern. Mal sehen...
Hi, ich kann Dir sicher sagen, die Signale kommen nacheinander und in der richtigen Reihenfolge. Das alles zusammen, allerdings mit 1,2ms high und 0,3ms Pause statt 1,5ms für Neutral, wird vom Sender an das HF-Modul geschickt und kommt so beim Empfänger an. Neutral für Servo ist also 1,5ms high, Neutral im Summensignal ist 1,2ms high und 0,3ms low.Ob alle 16, 20 oder teilweise bis zu 30ms Wiederholrate ist normalen Servos komplett egal. Mit den PinChangeInterrupts geht das und wenn Du mit 8MHz oder mehr taktest, wirst Du selbst mit primitivem Polling der Pins keinen Unterschied merken. Viele Empfänger haben das Summensignal, einfach mal in die Anleitung schauen. Oft optional wenn man z.B. Ch7-8 jumpert, dann ist das Summensignal auf Kanal 1, RSSI auf 2 usw... Sobald es aber einer der Vorgesehenen nicht hat, kannst Du Dir das sparen. Gruß, Norbert
Norbert S. schrieb: > Viele Empfänger haben das Summensignal, einfach mal in die Anleitung > schauen. Sollte dann eigentlich per Funke aktivierbar sein - Summensignal oder pro Channel ein PWM alle xx ms. Meine Funke liegt hier bei 27ms bei Summensignal. Hier noch eine Übersicht: http://wiki.mikrokopter.de/SummenSignal Schöne Übersicht Signal: http://www.rc-network.de/forum/showthread.php/444718-Summensignal?p=3382367&viewfull=1#post3382367 mfg Olaf
Draco schrieb: > Da würde ja ein Timer wirklich reichen und dann einfach nur zeitlich > auswerten an welchem Pin der Interrupt auftritt - dann gestaltet sich > die ganze Geschichte ja doch ein wenig einfacher als Gedacht. Wenn in dem Empfänger die Signale direkt aus dem Summensignal generiert werden, steht die Reihenfolge, in der die Pulse an den Pins auftauchen auch fest - immer schön der Reihe nach, so wie sie im Summensignal eben übertragen werden. Mit einem Oszi sieht man das schnell.
Servus Leute, hat der SR3300T einen PWM Signal? Bin in der Sache eine leie, es geht darum ob ich einen Empfänger z.B den SR3300T an einem DC Motor Regler anschließen kann. So dass ich es nicht mit dem Hallgeber regle sondern über den Empfänger.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.