Forum: Mikrocontroller und Digitale Elektronik 30 PWM-Kanäle mit ATmega48 machbar?


von saftpresse (Gast)


Lesenswert?

Hallo!
Reicht ein ATMega48, um mit akzeptablem Programmieraufwand 30 LEDs mit 
10bit PWM auf einen Zufallswert faden zu lassen? Wenn nicht, würde es 
mit 8bit gehen? Die LEDs sollen allerdings recht langsam gefadet werden, 
drum bin ich mir nicht sicher ob 8bit dafür noch reichen.

Alles in allem soll es so etwas werden, nur größer: 
http://geekphysical.blogspot.com/2009/12/green-tree-in-electronics-pot.html

Hat schonmal jemand sowas gemacht und vielleicht sogar Codeschnipsel für 
mich?
Habe es etwas eilig, das Ding soll natürlich bis 24.12. fertig sein ;)

Ich hoffe ihr könnt mir helfen!

von Samuel C. (dragonsam)


Lesenswert?

Das dürfte schon daran scheitern, dass der mega48 nur 23 IO-Pins hat.
Rechentechnisch dürfte es auch mit 10 Bit funktionieren. Hab gerade ein 
paar Soft-PWM-Tests auf einem mega8 mit 3,6864 MHz. Das PWM lastet den 
µC bei 6 Channels etwa zu 10% aus. Mit 20 MHz kommt man sicher auf 30 
Channels.

von Antwort (Gast)


Lesenswert?

Ich würde bei so vielen LED's eine Matrix Ansteuerung bevorzugen und 
dann über SPI arbeiten.Dann ist das wirklich kein Problem.

von Stephan W. (sir_wedeck)


Angehängte Dateien:

Lesenswert?

Morgen

schau mal hier, vielleicht reicht dir das ja schon.
Quelle:
http://www.maxim-ic.com/app-notes/index.mvp/id/4472

Stephan

von Falk B. (falk)


Lesenswert?

@  saftpresse (Gast)

>Reicht ein ATMega48, um mit akzeptablem Programmieraufwand 30 LEDs mit
>10bit PWM auf einen Zufallswert faden zu lassen?

Wird eng, könnte aber gerade so noch klappen mit 20 MHz.

> Wenn nicht, würde es
>mit 8bit gehen?

Ja. Siehe Soft-PWM und LED-Fading.

MFG
Falk

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Der geht:

STM32F103xF

Der hat 12 Timer drin, die kann man so programmieren dass man 32 
unabhängige PWM Ausgänge hat.

Ist halt kein Atmel.

von saftpresse (Gast)


Lesenswert?

Antwort schrieb:
> Ich würde bei so vielen LED's eine Matrix Ansteuerung bevorzugen

hatte auch an eine 5x6 matrix gedacht. wenns den programmieraufwand sehr 
erleichtert würde ich mich auch mit 5x5 zufrieden geben.

Markus Müller schrieb:
> Ist halt kein Atmel.

fraglich ob ich dann damit umgehen kann ;)

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

> fraglich ob ich dann damit umgehen kann ;)

Das musst Du entscheiden. Eine Übersicht gibt es in diesem Artikel: 
STM32

von Falk B. (falk)


Lesenswert?

@  Markus Müller (mmvisual)

>Das musst Du entscheiden. Eine Übersicht gibt es in diesem Artikel:
>STM32

Der Staubsauger-, ähhhh, STM32-Vertreter ist wieder da. ;-)

von saftpresse (Gast)


Lesenswert?

ich seh schon, diese spezialcontroller sind mir für ein kleines 
weihnachtsgeschenk eindeutig zu teuer. also heißts aus dem mega48 
rausholen was geht.

von Falk B. (falk)


Lesenswert?

@  saftpresse (Gast)

>weihnachtsgeschenk eindeutig zu teuer. also heißts aus dem mega48
>rausholen was geht.

Warum Atmega48? Weil du den rumliegen hast? Nimm einen mit 40 Pins und 
gut, dann klappts auch problemlos mit der 30 Kanal PWM.

MFG
Falk

von saftpresse (Gast)


Lesenswert?

richtig, weil ich den rumliegen hab ;)

hätte noch einen mega32, aber den wollte ich eigentlich nicht 
aufbrauchen...

ist multiplexing so anspruchsvoll, dass es ohne extra-controller nicht 
geht?

von Antwort (Gast)


Lesenswert?

saftpresse schrieb:
> ist multiplexing so anspruchsvoll, dass es ohne extra-controller nicht
> geht?
Überhaupt nicht, die Grundidee ist ziemlich simpel. Irgendwo in der 
Codesammlung gab es auch ein Beispiel für nen ATmega. Müsste man mal die 
Suche bedienen.

von Falk B. (falk)


Lesenswert?

@saftpresse (Gast)

>hätte noch einen mega32, aber den wollte ich eigentlich nicht
>aufbrauchen...

Jaja, die 3 EUR wären schon Verschwendung für ein Weihnachtsgeschenk . . 
.

>ist multiplexing so anspruchsvoll, dass es ohne extra-controller nicht
>geht?

Nö, das ist kinderleicht, aber im Zusammenspiel mit PWM ist das mit dem 
AVR in der von dir gewünschen Auflösung von 8 oder gar 10 Bit nicht mehr 
drin.

MFG
Falk

von saftpresse (Gast)


Lesenswert?

Falk Brunner schrieb:
> Jaja, die 3 EUR wären schon Verschwendung für ein Weihnachtsgeschenk . .
> .

naja, erstens solls ja nicht bei dem baum bleiben, und ausserdem haben 
die smd-leds sowie kupferdraht schon rund 8€ gekostet... naja ich werde 
wohl dann den mega32 nehmen... hilft ja nichts ;)

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

>Der Staubsauger-, ähhhh, STM32-Vertreter ist wieder da. ;-)

Ja, ja. Ist es denn meine Schuld dass andere Hersteller keine 30 echte 
PWM Kanäle können????

Er fordert:
- 30 Kanäle
- 8-10 Bit Auflösung

Der STM32 hätte dafür eine funktionierende Hardware-PWM Lösung, 
diese paar Timer bekommt man sicher auch als nicht-ARM-Kenner bald zum 
Laufen.

Wenn er sich für einen anderen entscheidet ist es sein Problem, ich kann 
nur immer wieder hinweisen, dass es noch andere Hersteller gibt, die 
mehr können.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Markus Müller schrieb:
> ich kann
> nur immer wieder hinweisen, dass es noch andere Hersteller gibt, die
> mehr können.

Wayne interessiert´s. Wir sind uns dessen bewußt, dass das Streben nach 
Fortschritt und Profit nicht nur einen Controllerhersteller 
hervorgebracht hat. Das ist eine Frage der eigenen Vorlieben und 
Fähigkeiten, ob und wann man wechselt. Man muss nicht ständig mit der 
Nase ´reingeduckt werden, weil das nervt auch irgendwann.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Bin ich denn der Einzige hier der hier eine garantiert funktionierende 
Lösung anbietet?

Biete doch auch mal eine vernünftige Lösung, meckern kann jeder. Ich 
habe im Datenblatt vom STM32 nachgeschaut und dann erst gepostet!

Eure sinnlosen Postings nerven noch viel mehr!

von Benjamin S. (recycler)


Lesenswert?

TLC5940 mit 16 Kanälen und 12 bit Auflösung.

von Falk B. (falk)


Lesenswert?

@  Markus Müller (mmvisual)

>Bin ich denn der Einzige hier der hier eine garantiert funktionierende
>Lösung anbietet?

Wer lesen kann ist klar im Vorteil. Lies den Artikel Soft-PWM, die 
dort vorgestelle Variante 3 läuft bei mir seit 2 Jahren mit Kanälen und 
8 bit PWM Auflösung. Hmmmm. Und das auf einem kleinen ATmega16.

>Eure sinnlosen Postings nerven noch viel mehr!

Selber doof ;-)
Welcome to the kindergarden.

MFG
Falk

von saftpresse (Gast)


Lesenswert?

hmm, bei 16 leds über 4x4 multiplexing reicht dann also ein atmega48 
aus, laut dem link. aber 16 leds sind mir für meinen baum zu wenig. was 
wär denn so die oberste schmerzgrenze was machbar ist mit multiplexing 
und mega48?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bei der "Grösse" und dem Stromverbrauch der AVRs kann man auch mehrere 
Controller einsetzen, die sich die Arbeit teilen. Aber ich würde lieber 
einen einzigen mit mehr Pins nehmen und nicht auch noch multiplexen. Ein 
Mega16 oder ein Mega164 kann über 30 LEDs einfach über Portpins mit 
Soft-PWM treiben und hat damit auch noch genug Speed. Läuft alles in 
einer einzigen ISR. In Assembler ist das durch die Möglichkeit der 
direkten Bitmanipulation auf die Ports besonders zügig zu machen.

von Jobst M. (jobstens-de)


Lesenswert?

Wenn Du die LEDs mit 20mA ansteuerst, kannst Du sowieso nur maximal 20 
LEDs an einen ATmega anschliessen: 10 gegen GND und 10 weitere gegen 
Vcc. Im worst-case fliessen dann nämlich 200mA durch den Vcc oder 
GND-Pin des uCs. Das Maximum für AVRs - egal ob ATtiny4 oder ATmega644.
Zusätzliche Hardware ist also sowieso nötig.

Wie viel Strom verkraftet denn so ein ARM? :-)


Gruß

Jobst

von Sam .. (sam1994)


Lesenswert?

Jobst M. schrieb:
> Wenn Du die LEDs mit 20mA ansteuerst, kannst Du sowieso nur maximal 20
> LEDs an einen ATmega anschliessen: 10 gegen GND und 10 weitere gegen
> Vcc. Im worst-case fliessen dann nämlich 200mA durch den Vcc oder
> GND-Pin des uCs. Das Maximum für AVRs - egal ob ATtiny4 oder ATmega644.
> Zusätzliche Hardware ist also sowieso nötig.

Dafür gibts Treiber-ICs.

Achja du brauchst nur 6pins für deine 30LEDs. Schau dir mal 
Charlieplexing an:

Bsp: 3 Pins - 6 LEDs

     1   2   3
     |   |   |
1 -  x   o   o

2 -  o   x   o

3 -  o   o   x

o = LED
x = keine LED

von Falk B. (falk)


Lesenswert?

@  saftpresse (Gast)

>was
>wär denn so die oberste schmerzgrenze was machbar ist mit multiplexing
>und mega48?

Wenn du willst kannst du 200 LEDs per Multiplexing ansteuern, siehe 
LED-Matrix. Aber DIMMEN wie im Artikel LED-Fading ist dann nicht 
mehr drin. Dazu braucht man zusätzliche ICs, ala TLC5922 & Co.

MFG
Falk

von Jobst M. (jobstens-de)


Lesenswert?

Samuel K. schrieb:
> Achja du brauchst nur 6pins für deine 30LEDs. Schau dir mal
> Charlieplexing an:

PWM stelle ich mir damit interessant vor. Wenn man nicht die volle 
Helligkeitsausbeute benötigt, könnte das sogar funktionieren.
Progammtechnisch aber bestimmt nicht ohne ...


Gruß

Jobst

von saftpresse (Gast)


Lesenswert?

Jobst M. schrieb:
> Wenn Du die LEDs mit 20mA ansteuerst, kannst Du sowieso nur maximal 20
> LEDs an einen ATmega anschliessen:

hab ich bedacht und extra low-current-leds bestellt.

zum thema charlieplexing:
ich spiele gerade mit dem gedanken, einfach die software von dem 
fertigen projekt zu nehmen und anstatt einer 4x4 matrix eben eine 
charlieplex-matrix über die 8 anschlüsse zu verwenden.
wie die leds gedimmt werden ist ja sowieso zufall. und es ist auch egal 
wenn mal zwei leds gleichzeitig dimmen. von dem her verschmerzbar.

von piotr (Gast)


Lesenswert?

Hi!

Also ich hatte mal ein matrix 16x8 (also 8x8 mal 2 Farben) mit einem 
ATtiny2313 + 2x ein Scheiberegister mit dem Dimmen, allerdings nur 4bit 
(aber das lag an dem Speicher von ATtiny2313).

Also 5x6 mit 8-bit / ATmega48 müsste ohne Probleme gehen...

von Rolf M. (rmagnus)


Lesenswert?

Markus Müller schrieb:
>> fraglich ob ich dann damit umgehen kann ;)
>
> Das musst Du entscheiden. Eine Übersicht gibt es in diesem Artikel:
> STM

Auf der Seite wird behauptet, daß es die scho für 85 Cent gibt, aber bei 
den dort angegebenen Bezugsquellen geht es erst so bei 5 Euro los. Wo 
gibt's die also für 85 Cent? Oder ist das der Preis ohne Mährchensteuer 
für Abnahmemengen ab 100.000 Stück?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?


von Michael G. (let)


Lesenswert?

Also der Preis ohne MwSt. ab 10.000 Stück...

Das ist schon ein gewaltiger Vorteil für einen Einsteiger.
Viele Hobbyisten haben die horrenden Preise der AVRs ja schon
in die Privatinsolvenz getrieben.

Wenn jemand eine Sammelbestellung organisieren will, wäre ich
so mit 2000-3000 Stück dabei ;)


Vielleicht wäre es sinnvoller die Preise für Kleinmengen anzugeben.
Da sind die Dinger auch günstiger als AVR/PIC, auch wenn der Unterschied 
dann nicht mehr ganz so spektakulär ist.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Es ist schon schwierig einen Preis rein zu schreiben, daher der AB 
Preis. Je nach Lieferant, Apotheke oder Distri gibt es gewaltige 
Unterschiede. Der Preis ist, solange es keine 20 EUR sind, für Hobby 
ohnehin nicht sehr interessant.
Für Firmen hingegen ist er überlebenswichtig, denn wenn die sich für 
einen Prozessor entscheiden und das dann in Serie produziert werden 
soll, dann zählt jeder cent. Ein Bauteil bestücken wird ja nach dem mit 
2-3 cent berechnet.

Ich habe damals den STM32 in meiner Firma eingeführt und alle sind 
begeistert. Der Preis ist exakt gleich wie ein ATMEGA128! (über Distri, 
Stückzahlen und Verhandlung, bei beiden Typen!)
Also gibt es für meinen Chef keinen Grund mehr warum man ein Atmel für 
neue Projekte eingsetzen sollte, wenn ein 32-Bitter gleich viel kostet 
und zudem viel mehr Möglichkeiten bietet. Zumal auch beim STM32 über 100 
Varianten existieren, also für jede Anwendung gibt es die passende 
Variante (solange man keinen PC bauen möchte oder 500GB RAM braucht 
wobei ich mir beim zweiten nicht sicher bin wie viel man beim STM32 
extern anschließen kann ;-) .

von Rolf M. (rmagnus)


Lesenswert?

Michael G. schrieb:
> Wenn jemand eine Sammelbestellung organisieren will, wäre ich
> so mit 2000-3000 Stück dabei ;)

Kann man ja prima wieder für tree fiddy (*) pro Stück oder so beim 
Online-Auktionshaus verhökern.

* Wer's nicht kennt: http://www.treefiddy.com/

von saftpresse (Gast)


Lesenswert?

so, ich habe jetzt also das 5x6 matrix. ich bräuchte nun eine software, 
die mir die 6 ausgänge fadet. im idealfall auf zufallswerte (könnte man 
ja vom adc holen), ein vorgespeichertes muster ist aber auch ok. und in 
3 tagen ist weihnachten. es wird knapp. kann mir da jemand unter die 
arme greifen?

von Falk B. (falk)


Lesenswert?

@  saftpresse (Gast)

>so, ich habe jetzt also das 5x6 matrix. ich bräuchte nun eine software,
>die mir die 6 ausgänge fadet.

Tja, hättest du dein Hirn nicht durch das Gerät deines Codenamens gejagt 
und die Hinweise hier beherzigt, wäre dir nicht entgangen, dass 
Multiplexen UND LED-Fading durch Soft-PWM nicht sonderlich 
gut geht.

Vielleicht beim nächsten Mal.

von Benjamin S. (recycler)


Lesenswert?

Versuchst mit 2x TLC5940 mit 16 Kanälen und 12 bit Auflösung.
Dann funktionierts auch.
Beim Multiplexen mit Fading wirst du ein Flackern haben, das man sieht.

von saftpresse (Gast)


Lesenswert?

aber es geht wohl, irgendwie hat mans hier ja auch geschafft:
http://geekphysical.blogspot.com/2009/12/green-tree-in-electronics-pot.html

von Falk B. (falk)


Lesenswert?

@ saftpresse (Gast)

>Reicht ein ATMega48, um mit akzeptablem Programmieraufwand 30 LEDs mit
>10bit PWM auf einen Zufallswert faden zu lassen? Wenn nicht, würde es
>mit 8bit gehen?

"LEDs are connected in a 4X4 matrix on an Arduino shield."
"Code was quickly written to run through the lights, four at a time and 
control their individual brightness in 64 levels by multiplexing."

Hmm, was hätten's denn gern, der Herr?

30 Kanäle > 16 Kanäle
10 biT PWM >> 6 Bit PWM

von saftpresse (Gast)


Lesenswert?

6 kanäle reichen mir inzwischen. meine ansprüche schwinden ;)
dann werden halt immer 5 leds auf einmal gefadet. besser als nichts.
und dann eben 6 bit.

ich versuch dann eben mal an den code von oben genanntem projekt ran zu 
kommen.

von Falk B. (falk)


Lesenswert?

@saftpresse (Gast)

>6 kanäle reichen mir inzwischen. meine ansprüche schwinden ;)

Ach, auf einmal? Vor ein paar Augenblicken war es noch eine 5x6 Matrix!

Bei 6 Kanälen lohnt sich Multiplexen nicht, nimm einfach Soft-PWM.

von saftpresse (Gast)


Lesenswert?

Falk Brunner schrieb:
> Ach, auf einmal? Vor ein paar Augenblicken war es noch eine 5x6 Matrix!
>
> Bei 6 Kanälen lohnt sich Multiplexen nicht, nimm einfach Soft-PWM.

ja, aber 5 der anschlüsse sind einfach auf masse.
das soft-pwm läuft auch schon. aber ich brauch noch das fading...

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
Noch kein Account? Hier anmelden.