MC mit 3x 10bit PWM

  • Kennt jemand einen MC am besten von Atmel, der über 3 10 bit PWM Ausgänge verfügt? Sollte auch nicht gerade so ein riesenteil sein, wie der atmega128...


    A liebsten wäre mir was von der Größe eines Atmega8 nur mit 3 10 Bit ausgängen. Der Atmega8 hat ja nur 2 10 bit fähige PWMs...


    wäre es evtl möglich das ganze über einen Interrupt zu ralisieren? d.h. wenn der 10 Bit timer des Atmega8 einen gewissen Wert passiert, dass dann ein Software-Interrupt ausgelöst wird und ein Bit gesetzt bzw gelöscht wird? Wäre dann sowas wie SoftwarePWM.


    wollte nämlich meine Moodlamp von 8 auf 10 bit auflösung ausbauen. Gesteuert wird alles über 3 Potis. Da der Atmega8 ja auch 10 Bit AD wandler hat, würde alles zusammenpassen.. bis auf das, das EIN 10 Bit PWM Ausgang fehlt...

  • Den Unterschied sieht man sehr wohl! - gerade bei ganz langsamen Verläufen, und noch stärker, wenn eine Dimerkurve implementiert ist - damit kämpfe ich gerade bei meinem Fader.


    Der bekommt dann aber 12-Bit-HW-PWM mit nem Macroblock IC...


    Stefan: gute Übersicht, nur leider steht da nicht (also direkt in der Übersicht), welcher AVR wieviele PWM-Kanäle mit wieviel Bit macht, also muss man doch wieder jedes Datenblatt extra ansehen... :-B


    Zitat von foo38

    wäre es evtl möglich das ganze über einen Interrupt zu ralisieren? d.h. wenn der 10 Bit timer des Atmega8 einen gewissen Wert passiert, dass dann ein Software-Interrupt ausgelöst wird und ein Bit gesetzt bzw gelöscht wird? Wäre dann sowas wie SoftwarePWM.


    So geht das leider nicht - dazu bräuchtest Du ja dann 3 10-Bit-Compare-Register, und das ist eben genau, was das Teil nicht hat - sonst könnte er ja 3 Kanäle HW-PWM mit 10 Bit...


    Müsstest Du also über SW-PWM machen, und da wird die Frequenz bei 10 Bit schon ganz schön madig...[/list]

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Also wenn es denn unbedingt eine höhere Auflösung als 8 Bit PWM sein muss (ich halte eigentlich mehr von richtig gewähltem Farbraum), dann kann man den ATtiny261, ...461 oder ...861 nehmen. Da hat man dann drei 10 Bit Output Compare Units. Eigentlich sind es ja sogar vier, aber OC1C verwendet man zur Einstellung des TOP-Zählwertes des Timers/Counters 1, und somit auch zur Einstellung der tatsächlichen PWM-Auflösung. OC1A, OC1B und OC1D sind nach draussen geführt und dienen der PWM-Generierung.


    Aber ACHTUNG: Timer/Counter 1 des ATtiny261/461/861 entspricht nicht dem 'normalen' Timer/Counter 1 der meisten anderen AVR-Chips und ist ein reiner 10-Bit (brauchbar auch als 8 Bit) Timer/Counter, mit einem etwas besonderen Registerzugriff für die jeweils oberen beiden MSB-Bits der Count- und Compare-Register. Ein genaues Studium des Datenblattes ist also unumgänglich, will man den Timer/Counter 1 richtig ansprechen und nutzen können.


    Ansonsten gibt's auch noch die AT90pwm... Typen mit meherern 12 Bit PWM Ausgängen (je nach Typ verschieden viele), welche ja gerade für Lichtsteuer-Zwecke konzipiert worden sind.


    Gruss
    Neni

  • Ist halt schade, der Atmega8 ist eigentich perfekt für sowas... das einzige was ihm fehlt ist EIN 10bit PWM ausgang mehr... sonst würde das dasnn wunderbar passen... 10 bit AD Wandler rein und 10 bit PWM raus... Ohne viel Aufwasn und/oder zusätzliche ICs wird da wohl nix zu machen sein...


    Hab mal gegooglet... diese At90PWM Teile scheinen recht schwer erhätlich zu sein...

  • Für solche Zwecke sind cypress psoc µC ganz gut geeignet. Bei dem CY8C29466 kann man zum Beispiel 8- und 16-bit PWM verwenden. Drei Stück sind kein Problem, ob auch mehr gehen würden weiß ich leider nicht, kann aber auch sein.

  • Die psocs kosten nicht so viel, einziges problem, man bekommt sie nicht überall. Die Entwicklungsumgebung ( ich spreche von dem psoc designer, nicht von psoc express) ist eigentlich auch recht einfach zu bedienen. Ich finde die sind eine gute Alternative, vor allem weil man sehr flexibel mit den Komponenten ist.

  • Hallo Freunde,


    ich weiß, es ist schon sehr lange her, jedoch eine recht wichtige Geschichte.


    Warum kann man nicht mit einem ATMEGA8 3 LEDs in 10 bit dimmen ?(


    Man braucht überhaupt keine PWM Ausgänge. Es geht Problemlos mit einer SW-PWM.
    DENN, ihr benötigt doch keine 50kHz PWM oder? :?:


    Selbst wenn wir 12bit mit einer max. PWM von ca. 50-100Hz erzeugen, können wir zig Ausgänge herstellen.
    Denkt mal etwas nach......


    Gruß

  • Hi,


    mag sein, aber warum wurde der thread damals nicht vernüftigt beendet??
    Ich glaube nicht, dass jeder heut weiß, wie man sowas einfach losen kann..............
    man kann auch 10 Kanäle mit 12bit-14bit zum LEDs dimmen herstellen und das mit einem Tiny für 80 Cent.


    Gruß

  • Hi Lemon, willkommen im Forum...


    Nunja, Hardware-PWM hat eben den Vorteil, dass sie halt in Hardware läuft!
    Wer hat schon Lust neben DMX und TFT auch noch die PWMs im Takt zu halten und gleichzeitig Taster zu entprellen?


    Klar, ne SW-PWM oder auch BAM ist einfach - aber eben Timing-kritisch!


    tauruz : hey, nett sein zu den Neulingen! Ganz unrecht hat er im Kontext nicht! (nur sollte er noch ein paar Seiten weiter stöbern im Forum ;) )

  • @Stefan_Z


    Ja, freue mich, dass es auch noch Menschen gibt, die einen freundlich willkommen heißen.... :)


    Stimmt schon, Hardware ist eben Hardware.
    Bloß für solche einfachen Geschichten, reich ne simple Routine in c/c++ und dann hat man alles, was man braucht!
    Bei 20MHz Takt, geht schon so einiges, da bleibt auch noch zeit für die Wichtigen Stellen im Code... =)
    Vergessen wir lieber das Thema wieder, wissen wohl alle wie es geht... :thumbup:


    Gruß

  • Ja, schon hart, sich extra für so nen Blödsinnspost hier anzumelden... und so ne Leiche auszugraben :D


    Ich denk' mal kurz nach: Klar, 10 Ausgänge SW-PWM mit 12 Bit und 50 Hz gehen schon auf nem mit 20 MHz getaktetem AVR - wenn der sonst nicht mehr viel machen muss... also fast gar nix :D


    aber wer will denn bitte 50 Hz PWM-Frequenz... ?( - hast Du Dir das schon mal angesehen, das sieht wirklich jeder flimmern!


    meine billig-China-Lampen haben so ca. 120 Hz, das sehe ich im Augenwinkel noch flimmern, ab 240 Hz ist's bei mir OK, manche sehen das angeblich auch noch in bestimmten Situationen...


    also wenn schon 12 Bit, dann doch nicht mit *50 Hz*... ?( ?(


    da nehm' ich doch lieber gleich nen TLC5947 - 24 Kanäle 12 Bit mit 1 kHz, einfach wie ein SR anzusprechen, ca. 3 Euro...


    anders wäre es mit 12 Bit *BCM*, da kommt man mit 16 MHz Takt schon auf ca. 300 Hz - aber auch da kann's problematisch werden, wenn noch andere Interrupts laufen, z.B. DMX-Empfang...


    EDIT: ah, Neues während dem Tippen - also wie das dann mit den 14 Bit geht, das musst Du mir dann aber schon mal vorrechnen... :D

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Wie gesagt:

    Zitat

    ab 240 Hz ist's bei mir OK, manche sehen das angeblich auch noch in bestimmten Situationen...

    m.M. nach müssen es *mind.* 100-120 Hz sein... besser über 200...


    Was das mit der Rise- und Fall-Time zu tun haben soll, erschliesst sich mir nicht so ganz... ?(


    klar, Du kannst das (normalerweise rechteckige) PWM-Signal auch mit nem Kondi glätten, dann flimmert nichts mehr - dann sind die 12 Bit aber erst recht für'n Arsch - Neni hat hier mal vorgerechnet, wie sich die Flankensteilheit auf die erzielbare Auflösung auswirkt...


    schon mal so ne billig-LED-Lichterkette gesehen, mit Kondensatornetzteil, die schön sinusförmig mit 50 Hz flimmert...? - echt ekelhaft, sowas... ist bei Rechteck auch nicht anders


    zu den 14 Bit, da fehlt mir noch die Rechnung: gehe ich mal von 20 MHz Takt aus, und 14 Bit = 16.384 Stufen, das wären bei (mind.) sinnvollen 100 Hz noch 12 Takte pro PWM-ISR-Aufruf - da wüsste ich jetzt nicht mal, wie ich einen Kanal so unterbringe, dass der µC noch andere Sachen machen kann (lasse mich gerne eines Besseren belehren) - wobei sich die Frage da nicht stellen würde, weil einen Kanal könnte ich auch in 16 Bit mit der HW-PWM machen - "zig" in 14 Bit aber auch nicht per SW...


    da hilft auch dieser "intelligente Ansatz" aus dem µC-Forum nix, weil da nicht genug Zeit ist, die Kanäle zu sortieren...


    nicht falsch verstehen, auch von mir Herzlich Willkommen in der Hoffnung auf eine sinnvolle Diskussion - aber es wird in keinem Forum gerne gesehen, wenn jemand daherkommt, nen uralten Thread ausgräbt und dann rumprotzt, "das geht doch ganz einfach so&so" (ohne Details oder gar Berechnungen zu nennen), "denkt doch mal nach"! - erst sind's "10 Bit oder gar 12", dann im nächsten Post schon "12-14", was kommt als nächstes...? :D ?(


    Da hilft auch der Hinweis "mag sein, aber warum wurde der thread damals nicht vernüftigt beendet??
    Ich glaube nicht, dass jeder heut weiß, wie man sowas einfach losen kann..." nix - ausser Dir hat garantiert *keiner* in den letzten 12 Monaten diesen Thread überhaupt gelesen! (Wie bist Du überhaupt auf den gestoßen..?!?!)


    Und, wie schon gesagt, ist die SW-PWM auch hier schon länger allgemein bekannt, es gibt z.B. auch nen DMX-Dimmer mit 30 Kanälen SW-PWM hier - also echt nicht nötig, dass uns "ein Neuer" darauf hinweist... :D ;) - am Besten - wie ebenfalls schon gesagt - vor dem nächsten Posten erst mal lesen... ;)


    P.S.: Habe mir jetzt auch mal den ganzen Thread durchgelesen :D - das Ausgraben mit dem Argument "nicht vernünftig beendet" und "das geht doch, mit SW-PWM" wird eigentlich noch sinnloser, da die SW-PWM (inkl. Hinweis auf die Nachteile) doch schon *bereits damals* als alternative Möglichkeit genannt wurde:

    Müsstest Du also über SW-PWM machen, und da wird die Frequenz bei 10 Bit schon ganz schön madig...

    Also bringt Dein Beitrag gar keine neuen Erkenntnisse zum drüber nachdenken und reduziert sich das ganze Trara letztlich auf die Diskussion, welche PWM-Frequenz sinnvoll ist... :D

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

    Einmal editiert, zuletzt von Pesi ()

  • nene.....die SW-PWM läuft nicht seriell. Man kann einen ganzen Port parallel betreiben und mit 14bit in 200Hz auflösen. Das Prinzip sieht dann ähnlich aus, wie beim TLC5940. Der läuft auch nur mit paar Mhz und kann 24 Kanäle erzeugen... :thumbup:

  • Na, dann zeige uns doch allen deine ach so tolle Implementation, welche mit einem AVR bei 20 MHz eine zig-kanalige SW-PWM mit 200 Hz und 14 Bit Auflösung schafft, und lass uns nicht dumm und unwissend sterben :D .


    Und zum TLC5940 will ich mich gar nicht erst äussern. Es zeigt einfach nur, wie wenig du von der Materie verstehst, wenn du diesen Chip als Vergleich heranziehst.


    Oh mann, welch dümmliches und substanzloses Geschwafel :!: .