PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM für einige Ports



Snaper
13.02.2011, 13:33
Hallo,

im gleichen Projekt wo ich die in einem anderen Thread erwähnten ULN2003A verwenden möchte, bräuchte ich auch eine Möglichkeit die LEDs per PWM zu dimmen. Problem ist hierbei, dass ich Anfangsangedacht habe die ULN2003A über Schieberegister schalten zu lassen aber ich denke da ein Software PWM ist zu hart und sehr ungenau wenn überhaupt möglich ?!

Von daher meine Frage ob es "einfache" Methoden gibt eine hohe Anzahl von PWM Kanälen zu verwenden. Ich brauche keine extrem hohe Auflösung, da es sich um nur RGB-Leds handelt welche gesteuert werden sollen und ich nicht sooo viele versch. Farben brauche aber dennoch ein paar wünschenswert wären.

Richard
13.02.2011, 16:27
In einem ähnlichen thread vor CA. ? 1 Monat wurde auf einem Baustein verwiesen der extra für RGB Led Steuerungen gedacht ist. Der Konnte 256 LED's per PWM ansteuern.

Mit Glück Google 256 LED PWM RGB ....
Kommt etwas brauchbares heraus. Da mir das Thema damals nicht besonders nahe lag habe ich den Typ auch nicht gespeichert. :-(

Gruß Richard

TobiKa
13.02.2011, 16:31
aber ich denke da ein Software PWM ist zu hart und sehr ungenau wenn überhaupt möglich ?!
Wieso denkst du das?

Snaper
13.02.2011, 19:54
In einem ähnlichen thread vor CA. ? 1 Monat wurde auf einem Baustein verwiesen der extra für RGB Led Steuerungen gedacht ist. Der Konnte 256 LED's per PWM ansteuern.

Mit Glück Google 256 LED PWM RGB ....
Kommt etwas brauchbares heraus. Da mir das Thema damals nicht besonders nahe lag habe ich den Typ auch nicht gespeichert. :-(

Gruß Richard

Okay kein Problem. Ich werde mich gleich mal mit der Suche auseinander setzen. War der besagte Thread denn in diesem Forum ? Ich frage da du direkt auf google verweist.


@TobiKa

Da ich mir vorstellen kann, dass nicht mehr sonderlich viele Dimmstufen übrig bleiben bei der Softwarelösung wenn man bedenkt, dass es sich um 12 Schieberegister handelt welche erstmal per SPI gefüttert werden müssten. Ist Software PWM in diesem Ausmaß wirklich noch effektiv und möglich?

TobiKa
13.02.2011, 20:03
Zu ersten Sache, ja ich glaube er meint einen Thread in diesem Forum, ich habe ihn auch mal verfolgt.

Zu der anderen Sache kann ich dir so pauchal nichts sagen.
Hatte deine Frage was Soft-PWM angeht erst anders verstanden. Aber ohne ein paar Eckdaten wird dir das keiner sagen können.

Wenn ich mich recht erinner, wird dir der besagte Thread weiterhelfen.

Snaper
13.02.2011, 20:12
Naja als Eckdaten kann ich euch folgende bieten:

Es handelt sich um eine 16*16 RGB Matrix welche über 12 74hc595 Portexpander gesteuert werden sollen mit entsprechenden Treibern. Nun suche ich eine Möglichkeit möglichst viele Farben darstellen zu können. Ich brauche keine Stufenlose dimmbarkeit aber ein ordentliches Set an Farben.

Eingesetzt werden soll ein ATmega32 mit 16Mhz quarz. Wenn es nicht anders geht dann muss er in ein i2c netz eingebunden werden mit anderen MC die die arbeit dann teilen.

Sind mehr eckdaten nötig?

TobiKa
13.02.2011, 20:42
So, hier der Link: https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=56942

Snaper
13.02.2011, 21:14
Okay, ich hab auch noch den Thread gefunden wo ein 4x4x4 RGB cube gebaut wird. Muss ich mir morgen mal alles anschauen und dann entscheiden wie es weitergehen soll.

Eventuell ist es sogar halbwegs sinnig jeder matrix einen controller zu spendieren. Das wären dann 24 kanäle die man bräuchte. Ist dies mit einem 16MHz Controller denn möglich. Habe an einen atmega8 oder vergleichbares gedacht. Oder wären die benötigen 3 Schieberegister noch schnell genug um Software PWM mäßig da was zu reißen? Ich würde Sie dann per I2C zusammenschalten wollen.

TobiKa
13.02.2011, 21:19
Ein Atmega8 hat keine 24 freien Pins.
Falls du dich entscheiden solltest 3 Controller zu verwenden könntest du dir die Schieberegister ganz sparen, wenn du einen Controller mit ausreichend Pins benutzt. Aber liess dir den Thread von HannoHupmann komplett durch.

PICture
13.02.2011, 21:26
Hallo!

... und übers Mischen von Farben bei RGB LED's: https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=41848 .

MfG

Snaper
13.02.2011, 22:04
@TobiKa

Die Idee war ja halt recht kleine µC zu nehmen wie den 8 und den quasi als schalt-µC zu nehmen für ein paar schieberegister. In der Theorie müssten doch je weniger Schieberegister dran sind mehr pwm stufen machbar sein? Aber ich werde mir morgen mal in Ruhe den Thread von HannoHupmann durchlesen.

@PICture
Vielen Dank ein mit Sicherheit sehr interessanter und zu beachtener Aspekt.

-------------------------------------------------------------------------------
Kann mir generell kurz jemand auf die Sprünge helfen wie ich berechne wie ich ausrechne wieviel mit Schieberegistern und Softwarelösung machbar ist? Denn ich stehe grade ein wenig auf dem Schlauch. Denn wenn man nicht zu viele Stufen verlang müsste es doch machbar sein?
Es handelt sich um 74hc595 per SPI und kaskadiert.

PICture
13.02.2011, 22:29
Solche Schieberegister kann man unendlich kaskadieren, bloss fürs Einschieben eines Bits ist eine Clockflanke nötig. Die benötigte Zeit für volles Beschreiben des Schieberegisters mit neuen Daten, lässt sich einfach ausrechnen, wenn die Frequenz der Clockimpulse und Anzahl der Bits bekannt sind. ;)

MfG

Snaper
13.02.2011, 22:55
Das ist mir soweit auch klar.
Gehen wir einfach mal mometan davon aus, dass wir 12 Schieberegister schieben müssen. Das wären dann ja 12 Byte bzw 96Bits die geschoben werden müssen. Das ganze soll an einem 16Mhz µC hängen.

Wie komme ich nun auf den Clocktakt? Bzw hängt das noch damit zusammen wieviel anderes Zeug der macht oder wie sieht das aus?

Leider habe ich im Datasheet oder bei Google nicht genau entdeckt wie ich auf den SPI takt komme.

PICture
13.02.2011, 23:03
Sorry, aber ich als PIC ASMan kann dir nur bei AVR-Hardware weiterhelfen. :(

MfG

Snaper
13.02.2011, 23:06
Es handelt sich ja um einen atmega32 den ich angedacht hätte und das ist ja AVR? Oder sollte dein "nur" ein "nicht" sein ? :P

Gruß

EDIT: Man sollte das Datasheet richtig lesen. Der schnellste Takt ist mit f/2 somit 8 Mhz bei mir angegeben.

Also eine SCK freq von 8 Mhz. Heißt das nun, dass ich 8*10^6 bits pro Sekunde per SPI schieben kann oder interpretiere ich das falsch?

PICture
13.02.2011, 23:18
Sorry, wenn meine letzte Aussage für dich nicht klar ist, aber für AVR-Software (z.B. Ausführungszeitberechnungen) sollte es eindeutig "nein" sein. :(

Für 8 MHz Takt des Schieberegisters ist deine Berechnung richtig. :)

MfG