Forum: Mikrocontroller und Digitale Elektronik Ich suche eine günstige Porterweiterung für ATmega32


von Sepp -. (sepp_o)


Lesenswert?

Guten Tag

Ich suche günstige Porterweiterungsbausteine um eine Menge (>=100Stk) 
LED-Zweige einzeln anzusteuern.

Ich habe da an SPI bzw. I²C Bausteine gedacht.

Ich hab mir schonmal den IC PCA9552PW bei http://www.rs-components.at 
rausgesucht.
Kennt jemand eine Bezugsquelle von Bausteinen die ähnliches können und 
billiger sind?

Oder kennt jemand eine bessere, günstigerere Lösung der Ansteuerung?

mfg Sepp

von Zacc (Gast)


Lesenswert?

LEDs werden optimalerweise vom SPI port ueber Schieberegister 74HC595 
angesteuert.

Z

von Sonic (Gast)


Lesenswert?

Wenn's auch Paralles (8-bit-Datenbus) sein darf: 8255 hat 24 IO-Pins zur 
Verfügung, ist halt im DIL40-Gehäuse. Uralt aber bewährt!

von A.K. (Gast)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Sonic wrote:
> Wenn's auch Paralles (8-bit-Datenbus) sein darf: 8255 hat 24 IO-Pins zur
> Verfügung, ist halt im DIL40-Gehäuse. Uralt aber bewährt!

Von wegen.

Diese Relikt aus der Computersteinzeit kann bestenfalls bei totaler 
Mondfinsternis ein paar LEDs zum Glimmen bringen.
Der Ausgangslastfaktor (FANOUT) ist fast 0.

Und wende noch die original NMOS-Dinger nimmst, ziehen se auch noch 
mächtig Strom (200mA) und brauchen extra Waitstates.


Peter

von hereinspaziert (Gast)


Lesenswert?

Wie wäre es denn mit einem Multiplexerbaustein wie dem 74HC40467? Damit 
kann man mit 4 Eingabesignalen 16 Ausgabesignale erzeugen. Ich weiß 
jetzt nur gerade nicht, ob der auch LEDs direkt treiben kann.

von hereinspaziert (Gast)


Lesenswert?

...hmm, 74HC4067 sollte es heißen

von F.H. (Gast)


Lesenswert?


von Sepp -. (sepp_o)


Lesenswert?

Salve

Ich hatte vergessen zu schreiben dass die LED-Stränge vorraussichtlich 
mit 12V betrieben werden.
Desswegen werden die LED's über Transistoren geschalten.
Dadurch ist die Leistung die die IC's liefern können (fast) egal.

@ hereinspaziert
Ein kleiner Hinweis Multiplexer: parallel->seriell.
Ich brauche seriell -> extrem parallel.
Hast du geschaut was der 74HC4067 durchschnittlich kostet?
Und jetzt rechne mal nach wiviele Bausteine ich brauche, da ich ja um 
mit einem uC alles anzusteuen mit mehreren Ebenen an Demux arbeiten 
müsste.

@ Alle
Kann man eigentlich die IC's zum Einsparen von Kabeln auch dezentral 
ansteuern?.
Ich meine damit dass die IC's direkt an den LED's sind und nicht wie 
sonst üblich direkt beim uC.
Ich hab da an eine Taktrate von ca. 1KHz über eine maximale Distanz von 
30m gedacht.

mfg Sepp

von A.K. (Gast)


Lesenswert?

> Ich hatte vergessen zu schreiben dass die LED-Stränge
> vorraussichtlich mit 12V betrieben werden.

Die Logikbausteine aus der CD4000-er Reihe lassen sich direkt mit 12V 
betreiben. D.h. Pegelwandlung ist dann nur am Anfang einen Strangs von 
Schieberegistern notwendig.

> Kann man eigentlich die IC's zum Einsparen von Kabeln auch dezentral
> ansteuern?.

Klar.

von A.K. (Gast)


Lesenswert?

Stränge aus CD4094 würden also dazu passen.

von Peter D. (peda)


Lesenswert?

Sepp -o- wrote:
> Ich hatte vergessen zu schreiben dass die LED-Stränge vorraussichtlich
> mit 12V betrieben werden.

Dann schau Dir mal den TPIC6C595 an (Segor, Farnell).


Peter

von Roland Praml (Gast)


Lesenswert?

Evtl schon ein wenig overkill, aber schau dich mal ein wenig bei den 
Display-Treiber um:, z.B. nen MAX 7221, kann per Multiplex 8x8 Leds 
ansteuern kostet aber bei reichelt auch 8 Euro.
Ansteuerung selbst erfolgt per SPI, siehe hier
http://datasheets.maxim-ic.com/en/ds/MAX7219-MAX7221.pdf

Gruß
Roland

von Peter (Gast)


Lesenswert?

Hast Du Dir schon mal überlegt, die LED's in einer Matrix anzuordnen und 
dann über eine Spalte x Reihe Ansteuerung schnell blinken zu lassen?

von Alexander H. (alex1)


Lesenswert?

hilft Dir das vielleicht weiter
http://www.maxim-ic.com/appnotes.cfm/appnote_number/1880

Alex

von balu (Gast)


Lesenswert?

bei den max gibts auch ne billigausführung von icl oder hin

von Sepp -. (sepp_o)


Lesenswert?

@Peter

An eine Matrixansteuerung hebe ich schon gedacht.
Doch das wird nichts.
Da habe ich mehrere Dinge die dagegen sprechen.
Als Erstes habe ich das Problem das alles auf engem Raum montiert werden 
muß und eine Matrix-Vergabelung doch einiges mehr an Platz benötigt.
Weiters möchte ich alles so einfach wie möglich halten, da bei 
insgesammt über 1000 LED's die Fehlerwarscheinlichkeit doch sehr hoch 
wird.
Weiters bezweifle ich dass ein uC mit dem Multiplexen von so einer 
großen Menge an LED's klar kommen wird.
Das Ganze soll ja nicht flackern.

@ Alexander H.
Dass liest sich zwar auf den 1.Blick sehr schön, hatt aber einen 
gravierenden Nachteil.
Nur sehr wenige LED's können für die gezeigte Ansteuerungsmetode 
verwendet werden.
Bei den meißten LED's ist die maximal zulässige Sperrspannung einfach zu 
niedrig.

@Alle
Vielen Dank für eure Hilfe.
Ich hoffe dass ich das Projekt auch so verwirklichen wie es geplant ist.

mfg Sepp

von Dirk H. (arm-dran)


Lesenswert?

Hallo Sepp,

ich hab sehr größe Erfahrungen bei der Ansteuerung von LEDs in jeder 
Form.
Ob statisch, gemultiplext, mit Helligkeitstufen (PWM), RGB oder sonst 
was.
Wen Du willst, schildere doch einmal grob Deinen Anwendungsfall. Warum 
gerade 12V?
Es gibt jede Menge Möglichkeiten.
Das 1000 LEDs für einen µC zu viel sind, ist ein Ammenmärchen.

Es gibt zum Beispiel von Microchip die MCP23xxx Serie.
8 und 16Bit Schieberegister mit Treiberstufen, sogar bidirektional
verwendbar.
Außerdem ist eine Matrix wohl absolut nicht aufwendiger als ne 
Parallelverkabelung.
MAX 7219 bzw. 7221 wurden schon erwähnt.
Von TI gibt es jede Menge Bausteine, die speziell für LEDs sind.
Auch mit Helligkeitsstufen und Korrekturfaktor.
Bei 12V hast Du ja jede Menge Verlustströme, es sein denn, daß eine LED 
durch mehrere in Reihe zusammengeschaltete repräsentiert wird. Ein 
Cluster
(= Haufen oder Gruppe) sozusagen.
Poste wenn Du willst.

Gruß
Dirk

von Sepp -. (sepp_o)


Lesenswert?

Salve

Ja ich verwende mehrere seriell zusammengeschlossene LED's.
Ich dachte dass ist klar wenn ich von mehreren LED-Strängen die einzeln 
angesteuert werden schreibe.

5V ist ja nicht das Wahre wenn man so viele LED's ansteuert.
Da kommt dann ein ordentlicher Strom zusammen.

Und man muß erst mal ein Netzteil finden dass Preiswert ist, im Bereich 
von 20A liegt und dazu noch leise arbeitet.

Wenn man aber billige Halogentraffos oder Laptopnetzteile nimmt sieht 
die Sache wieder anders aus.

Und die 12V sind noch nicht fix.

Klar kommt ein ATmega32 mit 1000 LED's klar.
(Vorallem wenn mehrere zusammen angesteuert werden.)

Aber es reicht ja nicht dass die LED's nur angesteuert werden.
Die auszugebenden Daten müssen ja auch noch errechnet werden.

Und der Programierer will sich ja auch nicht umbedingt einen Knopf ins 
Hirn denken müssen wenn er von Matrix auf Vektor umdenkt.

Außerdem gibt es bei der ganzen Sache ein Platzproblem.
Das Ganze soll in eine schmale Leiste  kommen.
Wenn ich da mehrere linear angeordnete LED's in einer Matrix verknüpfe, 
dann kommt ein ordentlicher Kabelknoten herraus in dem mit Sicherheit 
einige Fehler entstehen.

Und bei dieser Anzahl von LED's ist es nicht lustig immer wieder Fehler 
zu suchen.

mfg Sepp

von Dirk H. (arm-dran)


Lesenswert?

Sepp -o- wrote:
> Salve
>
> Ja ich verwende mehrere seriell zusammengeschlossene LED's.
> Ich dachte dass ist klar wenn ich von mehreren LED-Strängen die einzeln
> angesteuert werden schreibe.
>
> 5V ist ja nicht das Wahre wenn man so viele LED's ansteuert.
> Da kommt dann ein ordentlicher Strom zusammen.
>
> Und man muß erst mal ein Netzteil finden dass Preiswert ist, im Bereich
> von 20A liegt und dazu noch leise arbeitet.
>
> Wenn man aber billige Halogentraffos oder Laptopnetzteile nimmt sieht
> die Sache wieder anders aus.
>
> Und die 12V sind noch nicht fix.
>
> Klar kommt ein ATmega32 mit 1000 LED's klar.
> (Vorallem wenn mehrere zusammen angesteuert werden.)
>
> Aber es reicht ja nicht dass die LED's nur angesteuert werden.
> Die auszugebenden Daten müssen ja auch noch errechnet werden.
>
> Und der Programierer will sich ja auch nicht umbedingt einen Knopf ins
> Hirn denken müssen wenn er von Matrix auf Vektor umdenkt.
>
> Außerdem gibt es bei der ganzen Sache ein Platzproblem.
> Das Ganze soll in eine schmale Leiste  kommen.
> Wenn ich da mehrere linear angeordnete LED's in einer Matrix verknüpfe,
> dann kommt ein ordentlicher Kabelknoten herraus in dem mit Sicherheit
> einige Fehler entstehen.
>
> Und bei dieser Anzahl von LED's ist es nicht lustig immer wieder Fehler
> zu suchen.
>
> mfg Sepp

Das hättest Du gleich am Anfang schreiben sollen.
Wieviel LED (Gruppen) sind es denn nun effektiv in Serie und was willst 
Du machen? Du hast dann ja sozusagen ein Lichtband.
Ich nehme nicht an, daß DU es einfach nur ein und ausschalten willst.
Also entweder ein serielles Bitmuster oder Helligkeitsverlauf.
Sowas kann man zum Beispiel mit Schieberegistern und davorgeschalteten 
ULN Treiber ICs realisieren (ULN2803). Wäre dann ne SPI Lösung.
Bloss die Frage, über welche Entfernungen sich dieses LED Band ausdehnt.
Bei SPI oder I2C muß man halt die Taktleitungen ewig lang 
weiterschleifen.

Gruß
Dirk

von Sepp -. (sepp_o)


Lesenswert?

Wie ich schon geschrieben habe sind es >= 100 LED-Stränge(Gruppen).

Warscheinlich werden es aber bis zu 400.

Weiters hatte ich schon geschrieben dass die Taktleitung va. 30m lang 
sein wird.
(Die Leiste wird vorraussichtlich ca. 25m lang.)

Ich hatte vor die Helligkeit zentral über PWM zu steuern.
Die LED'S werde ich um schneller zu sein über mehrere 
Schieberegister-Stränge parallel ansteuern.
Weiters hatte ich vor Transistorarrays als Treiberbausteine zu 
verwenden.
Ich habe dabei den SN75468D ins Auge gefasst, weil er der günstigste ist 
den ich auf die Schnelle bekommen kann und den Strom leicht aushält.
(max 500mA pro Ausgang)
Leider hat der den Nachteil dass er nur 7 Transistoren besitzt.

mfg Sepp

von Peter D. (peda)


Lesenswert?

Sepp -o- wrote:

> Ich habe dabei den SN75468D ins Auge gefasst, weil er der günstigste ist
> den ich auf die Schnelle bekommen kann und den Strom leicht aushält.
> (max 500mA pro Ausgang)
> Leider hat der den Nachteil dass er nur 7 Transistoren besitzt.


Und warum nimmste nicht den oben vorgeschlagenen TPIC6C595 (30V/0,1A) ?

Ich denke, Du willst seriell ansteuern ?


Peter

von Jörg B. (manos)


Lesenswert?

Weitere Möglichkeit wäre mehrer Mega16 als Porterweiterung zu nehmen... 
je nach Kommunikation kannst Du dann zwischen 28 und 30 Ports nutzen und 
evtl sogar dimmen.

von Dirk H. (arm-dran)


Lesenswert?

Hallo Sepp,

beantworte mal eines,

du möchstest die preiswerteste Methode der Ansteuerung was Treiber usw. 
angeht.
Eine LED Zeile mit 400 Clustern zu je (ca. 5-7) LEDs über 25 - 30 m 
verteilt, sowie alles drum herum kostet ja nicht gerade nur einen Penny, 
womöglich noch weisse LEDs.

Mehrere Fragen:

Warum einen MEGA AVR32 ???
Warum nicht Gruppen von sagen wir mal 2m mit je nem z.B. AT 90S2313 für 
nen Euro mit Mini-Intelligenz und ner RS485/422 Verbindung als Netzwerk 
zur Zental MCU.
Damit kannst Du nen KM überbrücken bei angemessener Baudrate.
Am Stück oder verteilt.

Gruß

Dirk

von Sepp -. (sepp_o)


Lesenswert?

@Dirk
Es werden blaue LED's verwendet die ca. 4Cent das Stück kosten.
(Inclusive Vorwiderstand)

@Peter
Warum ich anstatt eines TPIC6C595 eine 
Schieberegister-Transistorarraykombination verwenden wollte ist klar.
Ich habe noch keine Quelle gefunden wo ich als Österreicher das Teil 
bekommen könnte.
(Jedenfalls nicht ohne horende Versandkosten.)

@Alle
Dass mit den Cluster-Mikrocontrollern ist eine gute Idee.
Ich werde versuchen günstig an die Käfer ranzukommen.
Aber da ist wieder das Problem mit den Pegeln.
Ich werde also nicht ohne Transistor Array-IC's auskommen.

mfg Sepp

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.