-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: PWM-Decoder als Single-Chip Variante?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    17.07.2004
    Alter
    30
    Beiträge
    81

    PWM-Decoder als Single-Chip Variante?

    Anzeige

    Hallo Leute...

    Ich hab mir die letzten Tage ein par Gedanken gemacht, wie man am besten PWM-Signale decodieren könnte. An und für sich ist das auch alles relativ simpel (max. 2 IC's + µC) um 7 Kanäle aufzulösen (z.B. an einem Input-Capture Eingang eines Timers).

    Nur gibt es auch eine elegante Variante? Vieleicht ein IC das mehrere Kanäle auflösen und über I²C oder SPI ausgeben kann?

    Wäre super wenn mir da jemand weiterhelfen könnte...

    Viele Grüße

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hallo enoritz,

    wenn du nach der Decodierung fragst, solltest du schon mitteilen, wie die Signale codiert sind.

    Dein Posting ist etwas unklar: Was heisst bei dir auflösen? Meinst du demultiplexen, meinst du pwm in analog Spannung umwandeln?

    7 Leinungen rein und 7 raus? Oder eine rein und 7 raus?

    grüsse,
    vohopri

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    Ich vermute er meint damit Servoimpulsketten einer Modell Fernsteueranlage.

    Wenn Du sowieso schon weisst wie das mit dem dekodieren geht, warum proggst Du Dir dann nicht einfach selber so einen Chip zusammen ?

    Sie größeren ATMEL Controller (z.B. ATMEGA 8 ) sollten alles an Bord haben, was man dafür braucht. Also Timer, SPI, TWI (I²C).
    Das wird auch mit Sicherheit preisgünstiger als irgendwelche Spezial IC's.

    Wenn auf die Bauform ankommt, kannst Du es auch mal mit einem Attiny 13 oder 15 versuchen, wobei die natürlich Hardwaremässig bei weitem nicht so gut ausgestattet sind und womöglich auch nicht genug Flash Speicher haben.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Könnte sein, dass er das meint, aber das ist dann PPM und nicht PWM.

    In dem Fall kommt ein multiplex ppm Signal rein und es gehen an die beispielsweise 7 Servos je ein PWM Signal raus. In dem Fall kann er das mit 1 Kleintransistor für die Synchronisation und einem 4017 für das demultiplexen und ppm -> pwm sehr einfach machen.

    Diese einfache und Kostengünstige Lösung habe ich auf meiner Site vorgestell: http://www.jbergsmann.at/servo-signa...ex-ppm-pwm.htm

    grüsse,
    Hannes

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    In dem Fall kommt ein multiplex ppm Signal rein und es gehen an die beispielsweise 7 Servos je ein PWM Signal raus. In dem Fall kann er das mit 1 Kleintransistor für die Synchronisation und einem 4017 für das demultiplexen und ppm -> pwm sehr einfach machen.
    Ich denk mal, so einfach will enoritz das nicht haben, sonst hätte er ja nicht nach I²C oder SPI gefragt.
    Aber lass mal, enoritz soll sich erstmal äussern was er genau will, ansonsten gleicht das ja hier mal wieder einem schauen in die Glaskugel (bei mir ist aber zur zeit das Licht darin defekt).

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Na genau, drum hab ich ihn ja gefragt, wie er das meint.

    vohopri

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    17.07.2004
    Alter
    30
    Beiträge
    81
    Hey Leute!
    Mir gehts tatsächlich um einzelne PWM-Kanäle. Was ich meinte war also folgendes:
    Ich möchte 7 Eingänge für jeweils einen PWM-Kanal. Intern soll das exakte Tastverhältnis der einzeln anliegenden Signale ermittelt werden und über irgendeine (möglichst weit verbreitete und flinke, deshalb I²C oder SPI) Schnittstelle für ander Bauteile verfügbar gemacht werden.

    Wäre schön wenn das ganze auch für relativ hohe Frequenzen funktionieren würde (ich sag mal so 32kHz), was aber rein rechnerisch bisher per Logik- und auch Programmierbare IC's funktionieren sollte. Das sei aber erstmal dahingestellt. Hauptsache ist erstmal eine zuverlässig funktionierende (und möglichst elegante, deshalb idealer Weise single-Chip) Variante.

    Die Idee mit dem µC hatte ich auch schon. Nur möchte ich nicht für jedes Problem einen neuen Controller programmieren, das kam mir bisher immer irgendwie als "Holzhammer"-Methode vor. Außerdem würde ich da wohl auch nicht um einen externen Takt herumkommen (ich Vertrau den internen Oszillatoren der AVR's noch nicht so ganz übern Weg...).

    Einen AVR würde ich also eher als letzten Ausweg sehen...

  8. #8
    Moderator Roboter Genie
    Registriert seit
    26.08.2004
    Beiträge
    1.228
    Hi!
    Ich würde einen AVR (neben einem CPLD) als eleganteste Lösung ansehen. Nur mit Logik IC's festzustellen wie groß das Tastverhältnis ist, wird vermutlich zu einem Gatter-Grab ausarten!
    Ggf. ist dieser Weg für dich akzeptabel:
    Mit zwei 74xxx4066 schaltest du (mittels AVR) immer einen PWM-Input auf den Timer-Eingang eines AVR. Diesen misst du dann aus und schaltest den nächsten PWM-Input auf den Pin.
    Das ist zwar relativ aufwändig (du brauchst 8 Pins und 2 Logik-IC's + AVR), aber einfacher geht es vermutlich nur mit einem CPLD. Das Interface kannst du ganz leicht als SPI-Master/Slave oder mit der integrierten UART einbinden.

    Die zweite Variante mit ausschließlich Logik-IC's, sieht vermutlich so aus:
    - 2 4066 zur Kanal Auswahl, einen Inverter, drei Timer. Dann steht dir (je nach Auflösung) ein 2x8 Bit Interface plus Steuerleitungen zur Verfügung.

    In allen Fällen wirst du eine Zeit Referenz (also einen Takt) benötigen, sonst kannst du das Verhältnis nicht bestimmen.

    Hoffentlich habe ich die Frage richtig verstanden ^^
    MfG
    Basti
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken pwm-multiplex.jpg  

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    17.07.2004
    Alter
    30
    Beiträge
    81
    Hey.. Danke für deine Antwort.

    Die Idee mit dem CPLD ist vieleicht gar nicht schlecht, da ich wohl auch noch andere Logik auf meiner Platine aufbauen will...

    Was ich bei Atmel bisher an PLD's gefunden hab sieht doch eigentlich ganz gut aus oder? Sind zwar wahre Monster bei, aber die kleineren Chips ganz unten (SPLD) sollten es wohl auch tun.

    Nur stellt sich bei mir immer die Frage woher nehmen. Kennst du dich mit dem Thema aus? Welche IC's benutzt du selber und kannst du was empfehlen? Ich hab quasi noch gar nichts damit gemacht. Entsprechend auch die Fragen: Womit brennen und wie meine Logik beschreiben?

    Gibts da Tutorials o.ä.?

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.01.2006
    Ort
    Hattingen
    Alter
    52
    Beiträge
    984
    Hi, du könntest auch einfach für die 2,1-fache Periodendauer des PWM-Signals einen 8-Bit-Port in Assembler auslesen und die Werte ins Ram schreiben. Anschließend (offline) analysieren und auf den I²C alle 7 ( PWM-Werte ausgeben. Dann wieder samplen...
    Du solltest einen neueren ATmega mit 20MHz und 1kByte RAM, besser 2kByte.
    Wenn du das Assembler-Proggi linear schreibst, das sollte in <<10 Takten gehen. Bei 20MHz ist also eine Auflösung von 2MHz machbar...
    Das sind bei 8-Bit-PWM ca. 8kHz PWM-Freqzenz. Evtl. schaffst du das samplen auch in nur 3-5 Takten, wenn man es linear hinscheibt, statt einer Schleife? (müsste selbst das Kommando raussuchen

    Sigo

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •