-
        

Ergebnis 1 bis 3 von 3

Thema: Software PWM: 6 Kanäle, >25kHz, 10Bit -> möglich?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.03.2006
    Ort
    nahe Tulln (Niederösterreich)
    Alter
    26
    Beiträge
    460

    Software PWM: 6 Kanäle, >25kHz, 10Bit -> möglich?

    Anzeige

    Hallo,

    ich will einen Adapter bauen, der das 0-10V Ausgangssignal einer SPS in ein PWM Signal umwandelt, mit dem ich dann z.B. Lampen dimmen kann.
    Der Adapter soll 6 Signale gleichzeitig umwandeln können, also einfach per ADC 10 Bit Werte einlesen und über PWM ausgeben.

    Dazu will ich einen ATmega8 mit einem 16MHz Quarz verwenden. Da der AVR aber nur zwei hardware PWM Ausgänge hat, werde ich die PWM Ausgabe softwaremäßig lösen.
    Hier gibt es ein sehr gutes Beispielprogramm: http://www.mikrocontroller.net/articles/Soft-PWM (ganz unten, unter "Intelligenter Lösungsansatz").

    Ich habe dieses Programm schon einmal verwendet, mit 8 Kanälen, aber nur 100Hz und 10Bit. Hat super funktioniert auf einem mega32, nur hat die PWM ein nerviges Summen produziert.
    Diesmal will ich nur 6 Kanäle und 10 Bit, aber dafür >25kHz, damit man das Summen nicht mehr hört.

    Ganz unten auf http://www.mikrocontroller.net/articles/Soft-PWM gibt es eine Zusammenfassung, in der für das Programm eine CPU Auslastung von 0,3-1,2% berechnet ist. Diese gilt für das Beispielprogramm, es hat 8 Kanäle, 100Hz und 8 Bit auf einem 8MHz Controller.

    Kann man irgendwie berechnen/abschätzen wie hoch die Auslastung mit 6 Kanälen, 25kHz und 10 Bit auf einem 16MHz Controller ist, bzw. ob das überhaupt möglich ist?

    LG
    Christoph

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Ganz so schnell wird der AVR nicht sein. Beim klassischen Software PWM braucht man pro Kanal und Zeitschritt mindestens 5 Taktzklen bei 8 Bit Auflösung, bei 10 Bit Auflösung eher 10 oder mehr, wenn man in ASM Programmiert. In C wird man eher bei 30 Zyklen aufwärts landen. Unter der Annahmen 10 Zyklen kommt man da auf 10*25000*6*1024 = 1,536 * 10^9 Zklen je Sekunde. Der Hypotetische AVR müßte als mindestens mit 1,5 GHz laufen, bzw. der 16 MHz Typ wäre etwa 100-fach überlastet.

    Mit der berechenten Auslastung für das Beispiel mit 8 Bit kann da auch was nicht hinkommen. Das sollte schon mehr als 10 % Auslastung bedeuten - wenn man nicht aufpasst auch über 50%.

    Es gibt µCs die haben 6 Kanäle Hardware PWM, wenn auch teils nur mit 10 Bit Auflösung. Den Schritt von 8 Bit auf 10 Bit, könnte man ggf. in Software per Dithering erreichen.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    170
    Hallo,
    der AVR XMega sollte das wohl schaffen, genügend Hardware-PWM hat er, und mit seiner Hi-Res Extension sollten die 10bit @ 25kHz
    auch kein Problem sein.
    mfg
    Achim

Ähnliche Themen

  1. Software Uart, Interrupt möglich?
    Von hunni im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 12
    Letzter Beitrag: 07.03.2011, 17:53
  2. 25kHz ultraschal ?
    Von nestandart im Forum Sensoren / Sensorik
    Antworten: 11
    Letzter Beitrag: 07.04.2008, 20:51
  3. Software Reset für C-Control I Station möglich?
    Von beadtj im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 2
    Letzter Beitrag: 22.12.2007, 18:12
  4. 10stellige LED-Anzeige möglich? software?
    Von Dan89 im Forum PIC Controller
    Antworten: 6
    Letzter Beitrag: 30.06.2006, 11:33
  5. AVR-Reset durch Software möglich?
    Von robotxy im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 16.05.2006, 20:21

Berechtigungen

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