Forum: Mikrocontroller und Digitale Elektronik Schaltplan - Bewertung / Kritik


von Cube (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

im Anhang befindet sich mein erster selbst entworfener Schaltplan. Dabei 
geht um die Steuerung für einen LED-Cube (ja, für euch sicherlich 
langweilig ;)).

Jedenfalls wäre es schön, wenn der/die ein(e) oder andere einen Blick 
drüber werfen könnte.

Persönlich bin ich mir bei folgenden Dingen nicht ganz sicher:

a) Macht der Schaltregler 7805 das Ganze mit? Es sollten in etwa (im 
"schlimmsten" Fall) 64 LEDs mit je 8 mA leuchten. Desweiteren kommen 
dann noch die ICs dazu. Grob geschätzt sollten das in etwa 600 mA sein. 
Aus meiner Sicht problematisch ist das Ganze deswegen, weil von einem 
auf den einen Moment (ein Takt bei 16MHz) die 64 LEDs ausgeschaltet 
werden können. Leider kann ich den Datenblättern eines typischen 7805 
nicht entnehmen, ob die dafür ausgelegt sind. In einigen Beiträgen 
konnte ich nur lesen, dass man es strengstens unterlassen sollten 
(große) Elkos an die Ausgangsseite zu hängen.

b) Die Widerstände an den FETs. Die 100k sind als Pull-Down Widerstände 
gedacht und sollen beim Benutzen der ISP Schnittstelle für "klare" 
Zustände sorgen (alle LEDs aus). Das sollte so hoffentlich 
funktionieren? Die 250 Ohm Widerstände sind zur Strombegrenzung gedacht. 
Damit will ich den maximalen Strom pro angeschlossenem Pin auf 20 mA 
begrenzen. Geschaltet werden die FETs mit voraussichtlich 100 Hz, 
insofern sollten die 20 mA hoffentlich reichen, um die FETs richtig 
durchzuschalten? In anderen Schaltungen sieht man i.d.R. Werte um die 
1k. Das entspräche bei 5V dann aber nur einem Strom von 5mA. Wieso 
reduziert man das künstlich?

Wie gesagt: Es handelt sich um mein ersten Schaltplan. Ich habe auch 
keine entsprechende Ausbildung genossen, insofern ist sicherlich nicht 
alles richtig gemacht. Über (konstruktive) Kritik würde ich mich freuen.

Vielen Dank euch allen!

von Cube (Gast)


Angehängte Dateien:

Lesenswert?

Aufgrund einer recht schnellen Internetverbindung (sowie 
Unaufmerksamkeit meinerseits), habe ich leider erst jetzt bemerkt, dass 
die Grafik im SVG Format recht groß ist. Daher hier im Anhang das Ganze 
nochmal in PNG. Vielleicht mag es ja jemand mit entsprechenden Rechten 
aus dem ersten Beitrag entfernen.

von Jonas (Gast)


Lesenswert?

So jetzt im Halbschlaf noch würde ich erst mal wissen wollen, wie hoch 
die Eingangsspannung VOR dem Schaltregler ist. Das wäre wichtig für die 
Beurteilung der Verlustleistung, die der 7805 verbraten muß. Hat der 
einen
Kühlkörper ? Ggf. mit welchem Rth ?

von Jonas (Gast)


Lesenswert?

Etwas wacher: Also bei einer Mindesteingangsspannung von  5 + 2 Volt = 7 
Volt und 0,6 A ist Pv  = 1,2 Watt = auf jeden Fall mal Kühlkörper an den 
7805 dran.

von Cube (Gast)


Lesenswert?

Ok, gut zu wissen. Kühlkörper habe ich noch, werde ich also anbringen. 
Gibt es ansonsten nichts auszusetzen ;)? Immerhin wurde der Schaltplan 
84x gedownloadet :o!

von Cube (Gast)


Lesenswert?

Kurze Zwischenfrage: Ich würde gerne für definierte Anfangszustände an 
den Schieberegistern sorgen. Ist es dafür ausreichend den "Output 
Enable" Pin per Pull-Up auf High zu ziehen? Wie würde man das bei 8 
parallel geschalteten Schieberegistern am Besten tun? Reicht ein 
Pull-Up Widerstand für alle, oder sollte man jedem IC seinen eigenen 
Pull-Up Widerstand gönnen? Wie müsste man den/die Widerstand/Widerstände 
dimensionieren?

von Dietrich L. (dietrichl)


Lesenswert?

Cube schrieb:
> 64 LEDs mit je 8 mA

Das ist unter Berücksichtigung des Multiplexers im Mittel aber nur 1mA. 
Reicht Dir die Helligkeit?

Cube schrieb:
> Ich würde gerne für definierte Anfangszustände an
> den Schieberegistern sorgen. Ist es dafür ausreichend den "Output
> Enable" Pin per Pull-Up auf High zu ziehen?

Ja.

> Wie würde man das bei 8
> parallel geschalteten Schieberegistern am Besten tun? Reicht ein
> Pull-Up Widerstand für alle, oder sollte man jedem IC seinen eigenen
> Pull-Up Widerstand gönnen?

Einer reicht - die sind doch sowieso schon alle zusammen.

> Wie müsste man den/die Widerstand/Widerstände
> dimensionieren?

Ich würde 10k nehmen. Das "verbraucht" nur 0,5mA und ist niederohmig 
genug. Es dürfte aber auch hochohmiger sein.
Genaue Dimensionierung: alle Restströme zusammen (Schieberegister + 
Port-Pin + Reserve) dürfen am R nur soviel Spannungsabfall erzeugen, 
dass der Mindest-High-Pegel überschritten wird.

Gruß Dietrich

von andy (Gast)


Lesenswert?

Hallo,ich habe mir auch mal so ein teil gebaut.Ich würds mir nochmal 
überlegen,die Leds nur mit 1mA zu betreiben.Das ist meines erachtens 
viel zu wenig.Mehr wie ein leichtes glimmen kommt da nicht zustande.

gruss

andy

von spontan (Gast)


Lesenswert?

@Dietrich L.:  Wieso multiplexen? Der Schaltplan sieht doch ganz anders 
aus.

von Dietrich L. (dietrichl)


Lesenswert?

spontan schrieb:
> @Dietrich L.:  Wieso multiplexen? Der Schaltplan sieht doch ganz anders
> aus.

Ich zähle: 8 Stck. 595 mit je 8 Ausgängen = 64 parallele Ausgänge
           8 Stck. MOSFETs
daraus schließe ich: 64 LEDs gleichzeitig angesteuert + 8-fach 
Multiplexer = 64*8 LEDs

Gruß Dietrich

von Cube (Gast)


Angehängte Dateien:

Lesenswert?

andy schrieb:
> Hallo,ich habe mir auch mal so ein teil gebaut.Ich würds mir nochmal
> überlegen,die Leds nur mit 1mA zu betreiben.Das ist meines erachtens
> viel zu wenig.Mehr wie ein leichtes glimmen kommt da nicht zustande.

Ich habe das eben nochmal überdacht bzw. überprüft und bin zu dem 
Schluss gekommen, dass 1 mA in der Tat etwas wenig ist. Daher habe ich 
den Schaltplan nochmal ein wenig überarbeitet und entsprechende Treiber 
eingebaut.

Was haltet ihr nun von dem Ganzen?

von Falk B. (falk)


Lesenswert?

@  Cube (Gast)

>Was haltet ihr nun von dem Ganzen?

Dein Schaltplan ist immer noch Mist. Hast du dir ein Bild mal angesehen? 
Als PNG? Man kann es auch überttreiben mit der Sparsamkeit. Die 
Auflösung ist zu gering, man kann alles nur sehr schlecht erkennen. Das 
Doppelte wäre OK.

Inhaltlich sind Schieberegister hier wenig sinnvoll, normale Register 
ala 74HC273 kann man deutlich schneller und einfacher ansteuern.

von spontan (Gast)


Lesenswert?

@Dietrich L.: Du hast Recht, das ist wohl ne Mischung aus Multiplexen 
und statischer Ansteuerung.

Aber irgendwie nicht zu verstehen:
- 64 Leitungen für Leds
- 8 FET-Treiber, die nach multiplexen aussehen, gäbe wie Dietrich L. 
schrieb 64x8 Led
- 64 LEds im Eingangsposting


Was nun?

von ich (Gast)


Lesenswert?

seit wann isz ein 7805 ein Schaltregler?

von Cube (Gast)


Angehängte Dateien:

Lesenswert?

Falk Brunner schrieb:
> Dein Schaltplan ist immer noch Mist. Hast du dir ein Bild mal angesehen?
> Als PNG? Man kann es auch überttreiben mit der Sparsamkeit. Die
> Auflösung ist zu gering, man kann alles nur sehr schlecht erkennen. Das
> Doppelte wäre OK.
Ok, du hast natürlich recht. Habe es nochmal angehängt. Diesmal sollte 
man zumindest mit ein wenig Zoomen etwas erkennen können. Das Problem 
ist halt, dass es (fast) Din A3 Größe ist, insofern ist es schwer auf 
einer so kleinen Fläche ordentlich aufzulösen. Überhaupt scheint die 
Plotter-Funktion von Kicad nicht sonderlich gut zu sein :(. Daher habe 
ich auch stets die entsprechenden Schema Dateien angehängt. Wobei ich 
natürlich nicht erwarten kann, dass sich jemand die Mühe macht, diese zu 
importieren.

Falk Brunner schrieb:
> Inhaltlich sind Schieberegister hier wenig sinnvoll, normale Register
> ala 74HC273 kann man deutlich schneller und einfacher ansteuern.
Bei "normalen" Registern brauche ich aber mehr Leitungen, nämlich 8 für 
die jeweiligen Daten, 8 um jeweils das richtige Register auszuwählen und 
8 für die 8 Ebenen. Das macht 24. Vereinfacht angenommen, kann ich dann 
jedes Register in zwei Takten "füllen". Das entspreche dann 16 Takten.

Bei der Verwendung von Schieberegistern brauche ich nur 8+8+2 (bzw. 4 
wenn ich Output Enable und Reset beschalte) Leitungen. Füllen kann ich 
die Schieberegister dann auch in 16 Takten.

Ich sehe hier also nicht wirklich einen Nachteil sowie den Vorteil, dass 
ich weniger Leitungen benötige.

spontan schrieb:
> Aber irgendwie nicht zu verstehen:
> - 64 Leitungen für Leds
> - 8 FET-Treiber, die nach multiplexen aussehen, gäbe wie Dietrich L.
> schrieb 64x8 Led
> - 64 LEds im Eingangsposting
Vielleicht hätte ich das deutlicher machen sollen. Aber ihr habt euch 
das schon ganz gut zusammengereimt ;). Es sind 64x8 LEDs (= 512). Im 
Eingangsposting war das so gemeint, dass jeweils nur 64 LEDs (= eine 
"Schicht") eingeschaltet sind, da ja gemultiplexed wird.

ich schrieb:
> seit wann isz ein 7805 ein Schaltregler?
Ja, da haben wir wohl die falsche Terminologie verwendet. Es handelt 
sich um einen Spannungsregler. Die Sorgen, um die zu hohen 
Verlustleistungen sind allerdings vollkommen legitim gewesen ;).

von Dirk J. (dirk-cebu)


Lesenswert?

Was ist denn das für ein komisches Zeichen für den C5?

von Cube (Gast)


Lesenswert?

Dirk J. schrieb:
> Was ist denn das für ein komisches Zeichen für den C5?

Gute Frage ;). Bei mir im Schaltplan sieht das anders aus. Da hat wohl 
die Plotter-Funktion von Kicad (oder der SVG Import von GIMP). absoluten 
Mist produziert. Darstellen jedenfalls soll das einen 
Elektrolytkondensator mit einer Kapazität von 10 µF.

von Christian K. (Firma: Atelier Klippel) (mamalala)


Lesenswert?

Cube schrieb:
> Bei "normalen" Registern brauche ich aber mehr Leitungen, nämlich 8 für
> die jeweiligen Daten, 8 um jeweils das richtige Register auszuwählen und
> 8 für die 8 Ebenen. Das macht 24. Vereinfacht angenommen, kann ich dann
> jedes Register in zwei Takten "füllen". Das entspreche dann 16 Takten.

Nicht wirklich. Rein für die Datenleitungen kannst Du mit 8+3+3 
auskommen, wenn Du zwei 74HC238 benutzt. Das sind 3-zu-8 Dekoder. Je 
nach Bitmuster am Eingang (3 bit) wird ein Pin am Ausgang gesetzt. Mit 
dem '237 hast Du etwas ähnliches, nur das dieser selber nochmal ein 
Latch-Enable benötigt. Damit könntest Du dann auf 8+3+2 runter, 3 
Leitungen gemeinsam für beide Dekoder, und 2 /LE Signale um das 
gewünschte Latch anzusteuern.

Grüße,

Chris

Edit: Die Dekoder gibt es auch mit active-low Ausgängen, sind dann 
glaube ich die 137/138, bin mir aber grad nicht ganz sicher.

von Cube (Gast)


Lesenswert?

Christian Klippel schrieb:
> Nicht wirklich. Rein für die Datenleitungen kannst Du mit 8+3+3
> auskommen, wenn Du zwei 74HC238 benutzt.
Kannst du das vielleicht nochmal ausführen? Ich sehe ein, dass sich ein 
solcher Demultiplexer für die Ansteuerung der Ebenen anbietet. Aber 
ansonsten sehe ich gerade nicht wo ich den zweiten verbauen sollte ;)?

Außerdem tue ich mir gerade schwer damit das Datenblatt des 74HC238 zu 
interpretieren. Wieviel Strom kann ein 74HC238 pro Pin denn liefern? 
Immerhin müssen die MOSFETs (um)geladen werden. Ich habe da schon fest 
mit 20 mA gerechnet? Unter den "absoluten Maxima" kann ich etwas von 25 
mA entnehmen. Das müsste dann also hinhauen, oder?

von Dietrich L. (dietrichl)


Lesenswert?

Cube schrieb:
> Ich habe das eben nochmal überdacht bzw. überprüft und bin zu dem
> Schluss gekommen, dass 1 mA in der Tat etwas wenig ist. Daher habe ich
> den Schaltplan nochmal ein wenig überarbeitet und entsprechende Treiber
> eingebaut.

Wieviel Strom willst Du jetzt spendieren? Da wirst Du wahrscheinlich 
Probleme mit der Verlustleistung des 7805 haben - wenn Du alles aus 5V 
speisen willst.
Zweites Problem bei 5V: der UDN2981 hat je nach Strom 1,5...2V 
Spannungsabfall (Darlington-Ausgang). Was brauchen die Dioden? Reicht 
das noch? Es wird aber bestimmt schwer, das solide zu dimensionieren. 
Vielleicht brauchst Du doch noch einen Schaltregler für die LEDs.

Gruß Dietrich

von Christian K. (Firma: Atelier Klippel) (mamalala)


Angehängte Dateien:

Lesenswert?

Cube schrieb:
> Christian Klippel schrieb:
>> Nicht wirklich. Rein für die Datenleitungen kannst Du mit 8+3+3
>> auskommen, wenn Du zwei 74HC238 benutzt.
> Kannst du das vielleicht nochmal ausführen? Ich sehe ein, dass sich ein
> solcher Demultiplexer für die Ansteuerung der Ebenen anbietet. Aber
> ansonsten sehe ich gerade nicht wo ich den zweiten verbauen sollte ;)?
>
> Außerdem tue ich mir gerade schwer damit das Datenblatt des 74HC238 zu
> interpretieren. Wieviel Strom kann ein 74HC238 pro Pin denn liefern?
> Immerhin müssen die MOSFETs (um)geladen werden. Ich habe da schon fest
> mit 20 mA gerechnet? Unter den "absoluten Maxima" kann ich etwas von 25
> mA entnehmen. Das müsste dann also hinhauen, oder?

Moin Cube,

Ja, +/- 25 mA, sollte also klappen.

Anbei mal ein Beispiel-Schaltbild.

Es gibt 8 gemeinsame Datenleitungen für die '273 Register. Dann gibt es 
3 gemeinsame Datenleitungen für die '237 Dekoder. Das Latch-Signal der 
beiden Dekoder geht getrennt zum µC. Vom Dekoder für die Ebenen geht 
nochmal eine Enable-Leitung zum µC. Die '273 Register haben einen 
Clock-Eingand der Flankengesteuert ist. D.h. das bei Wechsel von Low auf 
High das Datenmuster das am Eingang anliegt dann am Ausgang ausgebeben 
wird. Diese Clock Eingänge werden hier von einem '237 angesteuert, der 
ja je nach anliegendem Bitmuster einen der 8 Ausgänge auf High legt.

Ein Dekoder (IC4) ist für die LED Reihen zuständig. Eine Reihe = 8 LED, 
8 Reihen = 1 Ebene. Der zweite Dekoder (IC5) ist für die Ebenen 
zuständig. An den Ausgängen von IC5 hängen dann die N-FET für die 
Ebenen, klar. Der Ablauf wäre in etwa wie folgt:

Angenommen wird das IC4-Y7 High ist, IC4-GL und IC5-GL sind High, ebenso 
IC5-G1.

1: IC5-G1 auf Low ziehen. Somit sind alle Ausgänge von IC5 auf Low, und 
alle N-FET gesperrt (Blanking)
2: 8-Bit Daten anlegen für eine Reihe
3: 0b000 an die 3-Bit Dekoder anlegen
4: IC4-GL auf Low, dann wieder auf High.

- Jetzt ist IC4-Y0 auf High

5: Schritt 2 bis 4 jetzt 7 mal wiederholen, wobei an die 3-Bit Dekoder 
hogezählt wird, eben bis inkl. 0b111.

- Jetzt sind alle Zeilenregister mit dem gewünschten Muster geladen
- und IC4-Y7 auf High

6: 0b000 an die 3-Bit Dekoder anlegen
7: IC5-GL auf Low, dann wieder auf High
8: IC5-G1 auf High ziehen.

- Jetzt ist dann Eben 0 aktiv und zeigt das gewünschte 8x8 Bitmuster an.

9: Etwas warten damit das ganze auch fürs Auge sichtbar wird.
10: Das ganze wiederholen, wobei die 3-Bit Dekoder aus Schritt 6 
hochgezählt wird

- Wenn man das ganze dann 8 mal gemacht hat, ist ein kompletter 
Durchlauf 8x8x8 fertig.
- Auch ist man dann wieder beim Ausgangszustand wie oben angedeutet.

Grüße,

Chris

Edit: Natürlich sollten nach den '273 Registern entweder noch Treiber 
für die LED hin, oder man nimmt gleich passende Treiber mit Latch die 
sich genauso wie die '273 ansteuern lassen, also das Bitmuster bei 
steigender Flanke an einem Steuereingang übernehmen. Sollte man nur 
Pegelgesteuerte Treiber haben so muss man dann eben IC4-G1 auf einen µC 
Pin legen und das darüber steuern. Also mittels G1 die Ausgänge alle auf 
Low, IC4 laden, G1 auf High (so wie IC5 in o.g. Ablauf).

von Christian K. (Firma: Atelier Klippel) (mamalala)


Lesenswert?

Achja,

der Sinn hinter der von mir gezeigten Schaltung ist halt das man sich 
das ganze serialisieren der Daten spart, und somit viel Zeit gewinnt da 
man die Bytes direkt ausgeben kann. Wenn man die Ausgabe in einen 
Timer-Interrupt steckt und dann noch einen Double-Buffer anlegt bekommt 
man so sehr flüssige Animationen hin.

In dem IRQ sollte man zuerst die Ausgabe machen, wobei sämtliche 
auszugebenden Sachen in definierten Variablen liegen, man sollte dort 
also keine Zugriffe auf das eigentliche Array machen. Stattdessen werden 
diese Variablen dann nach der eigentlichen Ausgabe mit neuen Werten 
gefüllt. Man hat also z.B. 10 Variablen:

unsigned char row1, row2, row3, .... row8;
unsigned char row_cnt, level_cnt;

Man gibt jetzt zuerst gemaess oben genanntem Ablauf die row1 - row8 aus. 
Danach kann man dann row1 - row8 mit den Werten der nächsten Ebene 
laden. Da man ja sowieso etwas Wartezeit braucht in der eine Ebene 
angezeigt wird hat man ja auch Zeit dafür. Wenn man nun noch zwei Buffer 
anlegt für die 8 Ebenen kann man mit einer weiteren Variable 
signalisieren welcher Buffer gerade ausgegeben wird. Wenn die Variable 
also z.B. 0 ist wird der erste Buffer ausgegeben während man im 
Programcode dann den zweiten Buffer vorbereitet. Hat man den zweiten 
buffer fertig wartet man bis die Variable zu 1 wird und bereitet dann 
den ersten Buffer vor. So geht das dann immer hin- und her.

Dadurch das man alles sehr schnell ausgeben kann sollte so auch eine 
Steuerung der Helligkeitsstufen der einzelnen LED möglich sein.

Grüße,

Chris

von Cube (Gast)


Lesenswert?

Hi,

Dietrich L. schrieb:
> Wieviel Strom willst Du jetzt spendieren? Da wirst Du wahrscheinlich
> Probleme mit der Verlustleistung des 7805 haben - wenn Du alles aus 5V
> speisen willst.
Ja, der 7805 wird ohne Weiteres wohl zu Schwach auf der Brust sein. Der 
aktuelle Plan sieht 10 mA pro LED aus. Das wären dann 64 * 10 mA = 640 
mA. Grob überschlagen kommen wir dann mit der gesamten Elektronik auf 
700 mA. Bei 12 V Eingangsspannung, würde die Verlustleistung 7 V * 0,7 
mA = 4,9 Watt betragen. Das lässt sich prinzipiell mit einem 
vernünftigen Kühlkörper wegkühlen.

Ein Schaltregler wäre mir aber sowieso lieber. Mal sehen. Das "Netzteil" 
wird sowieso eine eigenständige Platine, die lässt sich im Fall der 
Fälle dann recht problemlos ersetzen.

Dietrich L. schrieb:
> Zweites Problem bei 5V: der UDN2981 hat je nach Strom 1,5...2V
> Spannungsabfall (Darlington-Ausgang). Was brauchen die Dioden? Reicht
> das noch? Es wird aber bestimmt schwer, das solide zu dimensionieren.
> Vielleicht brauchst Du doch noch einen Schaltregler für die LEDs.

Vielen Dank für den Hinweis! Das habe ich so gar nicht beachtet. Leider 
ist der Spannungsabfall im Datenblatt nur für Vin = 2,4 V angegeben. 
Sind die 1,5 V - 2 V auch bei 5 V Vcc realistisch? Prinzipiell sollte 
sich da ja nicht viel dran ändern, oder? Die LEDs haben eine 
Flussspannung von in etwa 2 V (Farbe: blau). Insofern sollte das noch 
reichen. Nur muss man dann die Widerstände anders dimensionieren!

Christian Klippel schrieb:
> Anbei mal ein Beispiel-Schaltbild.

Vielen Dank dir für deine Erläuterungen. Dein Vorgehen ist in der Tat um 
Welten einfacher. Ich werde das wohl so umsetzen. Als Flip-Flop werden 
aber 74HC574 Verwendung finden, denn die habe ich noch vorrätig. Das 
sollte aber nicht wirklich etwas ändern.

Christian Klippel schrieb:
> oder man nimmt gleich passende Treiber mit Latch die
> sich genauso wie die '273 ansteuern lassen

Gibt es da Vorschläge? Prinzipiell wäre mir diese Lösung natürlich am 
Liebsten. Leider konnte ich keine vernünftigen Treiber (z.B. 8 oder 16 
Kanäle) in PDIP Form finden. SMD will ich mir nicht unbedingt antun.

Christian Klippel schrieb:
> Dadurch das man alles sehr schnell ausgeben kann sollte so auch eine
> Steuerung der Helligkeitsstufen der einzelnen LED möglich sein.

Mal gucken was da an Helligkeitsabstufungen noch möglich ist. Ein 
Problem ist halt allein schon die Datenmenge die anfallen würde. Bei 
einer klassischen 8 Byte Abstufung für jede einzelne LED würden 512 Byte 
RAM benötigt werden.

Sofern ich Double Buffering einsetze, dann sogar 1k. Das wäre im Falle 
des ATmega32 bereits die Hälfte des verfügbaren RAMs. Und ob das Ganze 
zeittechnisch hinhaut weiß ich auch nicht. Ich dachte an eine Refresh 
Rate von etwa 100 Hz. Mit der o.g. 8 Bit Abstufung wären bereits 25,5 
kHz notwendig. Und dazwischen wollen noch die Bilder berechnet werden. 
Insofern gilt hier wohl: Probieren geht über studieren ;).

von Christian K. (Firma: Atelier Klippel) (mamalala)


Lesenswert?

Cube schrieb:
> Christian Klippel schrieb:
>> Anbei mal ein Beispiel-Schaltbild.
>
> Vielen Dank dir für deine Erläuterungen. Dein Vorgehen ist in der Tat um
> Welten einfacher. Ich werde das wohl so umsetzen. Als Flip-Flop werden
> aber 74HC574 Verwendung finden, denn die habe ich noch vorrätig. Das
> sollte aber nicht wirklich etwas ändern.

Ja, ein '574 sollte auch gehen. Bei meinem Vorschlag ist es wichtig das 
das laden des Latches halt flankengesteuert ist. Wie geschrieben lässt 
sich das aber umgehen indem man einfach G1 dann nicht auf einen festen 
Pegel legt, sondern ebenfalls von einem µC Pin aus ansteuert, da man so 
ja alle Ausgänge auf Low ziehen kann.

> Christian Klippel schrieb:
>> oder man nimmt gleich passende Treiber mit Latch die
>> sich genauso wie die '273 ansteuern lassen
>
> Gibt es da Vorschläge? Prinzipiell wäre mir diese Lösung natürlich am
> Liebsten. Leider konnte ich keine vernünftigen Treiber (z.B. 8 oder 16
> Kanäle) in PDIP Form finden. SMD will ich mir nicht unbedingt antun.

Ich habe da im Moment leider nichts im Kopf. Hatte mal welche gesehen, 
aber schon wieder vergessen welche das waren. Und keine Angst vor SMD. 
SOIC ist wirklich einfach zu handhaben, gerade mal den halben Pinabstand 
im Vergleich zu DIP. Man spart halt einiges an Platz.

> Christian Klippel schrieb:
>> Dadurch das man alles sehr schnell ausgeben kann sollte so auch eine
>> Steuerung der Helligkeitsstufen der einzelnen LED möglich sein.
>
> Mal gucken was da an Helligkeitsabstufungen noch möglich ist. Ein
> Problem ist halt allein schon die Datenmenge die anfallen würde. Bei
> einer klassischen 8 Byte Abstufung für jede einzelne LED würden 512 Byte
> RAM benötigt werden.

Naja, 256 Stufen ist ja nicht unbedingt nötig. Bei 16 Stufen reicht die 
Hälfte an Daten, man speichert dann halt zwei 4-Bit Werte in einem Byte. 
Mit ein wenig Hirnschmalz kommt man auch auf effiziente Methoden das 
ganze zu verarbeiten. Maskieren und das benutzen passender 
Inkrement/Dekrement Werte ist dein Freund ;)

Achja, und 256 Stufen, die auch sichtbar unterschiedlich sind, ist bei 
LED's eh sehr aufwändig, da deren Helligkeitskurve ja nicht linear ist. 
Man müsste dann intern mit einem mehrfachen an Stufen arbeiten. Macht 
also wenig Sinn.

> Sofern ich Double Buffering einsetze, dann sogar 1k. Das wäre im Falle
> des ATmega32 bereits die Hälfte des verfügbaren RAMs. Und ob das Ganze
> zeittechnisch hinhaut weiß ich auch nicht. Ich dachte an eine Refresh
> Rate von etwa 100 Hz. Mit der o.g. 8 Bit Abstufung wären bereits 25,5
> kHz notwendig. Und dazwischen wollen noch die Bilder berechnet werden.
> Insofern gilt hier wohl: Probieren geht über studieren ;).

Ja, das ist klar. Versuch macht Kluch... Der Vorteil bei meinem (und 
natürlich ähnlichen Methoden) ist ja das das ganze sehr schnell geht, da 
man eben das serialisieren einspart. Und das macht echt einen großen 
Unterschied. Die eigentliche Ausgabe ist in wenigen Takten erledigt, 
dann noch ein paar mehr Takte zum vorbereiten der Variablen für den 
nächsten IRQ durchlauf. Da bleibt dann reichlich Zeit für anderes übrig.

Grüße,

Chris

Edit: Achja, in meinem Beispiel ist Schritt 1-8 das was im Timer-IRQ 
passiert, plus das vorbereiten der Variablen für die nächste Ebene 
danach. Denke aber mal das Du das schon so verstanden hast.

von Cube (Gast)


Lesenswert?

Christian Klippel schrieb:
> Und keine Angst vor SMD.
> SOIC ist wirklich einfach zu handhaben, gerade mal den halben Pinabstand
> im Vergleich zu DIP.
Habe weniger Angst vor dem Löten (da schon desöfteren gemacht), als vor 
dem Designen und Anfertigen (lassen) der Platinen. Gerade bei so etwas 
experimentellen, das vermutlich nicht auf Anhieb funktionieren wird ;).

Christian Klippel schrieb:
> Man spart halt einiges an Platz.
Das geht schon so, hoffentlich.

Christian Klippel schrieb:
> Naja, 256 Stufen ist ja nicht unbedingt nötig. Bei 16 Stufen reicht die
> Hälfte an Daten, man speichert dann halt zwei 4-Bit Werte in einem Byte.
Mit wieviel Stufen würde man dann intern arbeiten?

Christian Klippel schrieb:
> Edit: Achja, in meinem Beispiel ist Schritt 1-8 das was im Timer-IRQ
> passiert, plus das vorbereiten der Variablen für die nächste Ebene
> danach. Denke aber mal das Du das schon so verstanden hast.
Ja, vielen Dank nochmal!

von Dietrich L. (dietrichl)


Lesenswert?

Cube schrieb:
> Der aktuelle Plan sieht 10 mA pro LED aus.

Das ist ja (fast) nicht mehr wie am Anfang (8mA = 1mA Mittelwert), wozu 
Du ja schon gesagt hast:

Cube schrieb:
> bin zu dem
> Schluss gekommen, dass 1 mA in der Tat etwas wenig ist

Wenn Du da deutlich zulegen willst, stimmt Deine Leistungsberechnung 
überhaupt nicht mehr. Aber das wolltest Du ja separat lösen. Trenne also 
einfach die Leistungs-Vcc (LEDs) von der Logik-Vcc. Achte auch auf eine 
richtige Leiterbahnführung des GND, damit die hohen LED-Ströme, die dazu 
noch steile Flanken haben, nicht die Logik stört. Und Stützkondensator 
nicht vergessen.

Gruß Dietrich

von Cube (Gast)


Angehängte Dateien:

Lesenswert?

Christian Klippel schrieb:
> der Sinn hinter der von mir gezeigten Schaltung ist halt das man sich
> das ganze serialisieren der Daten spart, und somit viel Zeit gewinnt da
> man die Bytes direkt ausgeben kann.


Ich bin leider erst jetzt dazu gekommen das Ganze im Schaltplan 
umzusetzen (siehe Anhang). Der Vorschlag gefällt mir richtig gut, und 
ich weiß ihn erst nach dem Planen richtig zu schätzen. Vielen Dank noch 
einmal dafür.

Allerdings würde ich gerne nach weiterer Kritik bzw. Bewertungen fragen. 
Seht ihr (grobe) Schnitzer im Layout oder kann ich das so umsetzen?

Vielen Dank an all jene, die sich die Zeit nehmen sich das anzusehen!

von Dietrich L. (dietrichl)


Lesenswert?

Cube schrieb:
> Seht ihr (grobe) Schnitzer im Layout oder kann ich das so umsetzen?

Nach schnellem Blick auf den Schaltplan ist mit nichts negatives 
aufgefallen: sieht gut aus! (ohne Garantie;-))

Du sprichst von "Layout": da sehe ich noch nichts ;-)
Dort solltest Du aber, wie von mir schon erwähnt, auf eine Trennung der 
GND-Wege der FETs achten.
Hilfreich ist hier, für diese GNDs ein anderes Symbol zu nehmen und mit 
einem 0-Ohm-Widerstand mit dem anderen GND zu brücken. Das erzwingt beim 
Layout eine Trennung des Pfades der hohen LED-Ströme und der 
0-Ohm-Widerstandes sollte dann sehr nahe beim Anschluss CONN_2 sein.

Ob der Anschluss der Vs (UDN2981A) am Eingang des 7805 geeignet ist, 
hängt von der verwendeten Stromversorgung ab. Ich würde empfehlen:
- wenn Stromversorgung schon festliegt: durchrechnen
- oder einen separaten Anschluss vorsehen.

Gruß Dietrich

von Ein Gast (Gast)


Lesenswert?

Cube schrieb:
> Ok, du hast natürlich recht. Habe es nochmal angehängt. Diesmal sollte
> man zumindest mit ein wenig Zoomen etwas erkennen können.

Es bringt überhaupt nichts, dass Bild erst mit Kantenglättung und 
interpolierte Liniendarstellung als unscharfes Bitmap zu erzeugen und 
dann zu hoffen, damit eine scharfe und kompakte PNG Datei zu bekommen.

von MaWin (Gast)


Lesenswert?

> Ich habe das eben nochmal überdacht bzw. überprüft und bin zu dem
> Schluss gekommen, dass 1 mA in der Tat etwas wenig ist.

Ach.

> Daher habe ich den Schaltplan nochmal ein wenig überarbeitet und
> entsprechende Treiber eingebaut. Was haltet ihr nun von dem Ganzen?

Der UDN2981 braucht mehr als 5V, wenn er sinnvoll LEDs mit Vorwiderstand 
betrieben soll.

Aber warum ENTWICKELST du so einen Schaltung ? Glaubst du, di bist der 
erste, der einen LED-Chube baut ? Warum schaust du nicht einfach, wie 
andere das machen ? Das erspart es, jeden Fehler noch mla persönlich 
machen zu müssen.

Ja, ich weiß, es geistern auch unsäglich viele Schaltungen im Netz rum, 
die nicht funktionieren, oder zumindest nicht gut, oder mit ungünstigen 
Bauteilen aufgebaut sind.

Aber wenigstens beschränkt sich deine Arbeit dann auf das Herausfinden 
des guten Bauvorschlags, und ein Beispielprogramm bekommt man meist auch 
dazu.

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1

Alles in allem fährt man günstiger, wenn man die Spalten mit P-MOSFETs 
wie IRF7413 nach + schaltet, und die vielen LEDs mit 
Konstantstromtreibern wie STP16CP05 nach Masse.

von Cube (Gast)


Lesenswert?

Dietrich L. schrieb:
> Nach schnellem Blick auf den Schaltplan ist mit nichts negatives
> aufgefallen: sieht gut aus! (ohne Garantie;-))
Ok, das hört sich schon einmal gut an.

Dietrich L. schrieb:
> Du sprichst von "Layout": da sehe ich noch nichts ;-)
Ja, da ich meine aber eigentlich konsequent den Schaltplan. Layout gibt 
es (noch) nicht. Jetzt probiere ich das Ganze erst einmal auf dem 
Steckbrett aus.

Dietrich L. schrieb:
> - oder einen separaten Anschluss vorsehen.
Heißt das dann etwa 2 Netzteile? Das würde ich gerne vermeiden.

Dietrich L. schrieb:
> Ob der Anschluss der Vs (UDN2981A) am Eingang des 7805 geeignet ist,
> hängt von der verwendeten Stromversorgung ab. Ich würde empfehlen:
> - wenn Stromversorgung schon festliegt: durchrechnen
Naja, ich hatte das "durchgerechnet" und mich für den 470 µF Kondensator 
entschieden. Allerdings gehört wohl vor jeden UDN2981 ein eigener 470 µF 
Kondensator.

Ein Gast schrieb:
> Es bringt überhaupt nichts, dass Bild erst mit Kantenglättung und
> interpolierte Liniendarstellung als unscharfes Bitmap zu erzeugen und
> dann zu hoffen, damit eine scharfe und kompakte PNG Datei zu bekommen.
Leider habe ich noch nicht herausgefunden, ob und wie KiCAD hier bessere 
Möglichkeiten für den Bildexport liefert. Tipps sind gerne willkommen.

MaWin schrieb:
> Der UDN2981 braucht mehr als 5V, wenn er sinnvoll LEDs mit Vorwiderstand
> betrieben soll.
Naja, das habe ich damit andeuten wollen, dass die UDN2981 mit der 
Spannung versorgt werden, welche vor dem 7805 anliegt. Das sollen dann 
12 Volt sein.

MaWin schrieb:
> Aber warum ENTWICKELST du so einen Schaltung ?
Weil ich es möchte?

MaWin schrieb:
> Glaubst du, di bist der
> erste, der einen LED-Chube baut ?
Nein.

MaWin schrieb:
> Warum schaust du nicht einfach, wie
> andere das machen ? Das erspart es, jeden Fehler noch mla persönlich
> machen zu müssen.
Habe mich da durchaus von anderen Entwürfen inspieren lassen, unter 
anderem von dem Artikel hier im Wiki. Aber mittlerweile gefällt mir der 
hier gewählte Ansatz am Besten. Es werden am wenigsten I/O Ports 
benötigt, und die Ausgabe ist am Einfachsten. Den Ansatz habe ich in der 
"Wildnis" noch nicht gesehen.

MaWin schrieb:
> Alles in allem fährt man günstiger, wenn man die Spalten mit P-MOSFETs
> wie IRF7413 nach + schaltet, und die vielen LEDs mit
> Konstantstromtreibern wie STP16CP05 nach Masse.
Leider gibt es Konstantstromquellen (wie auch der/die/das STP16CP05) 
nicht als DIP, zumindest nicht nach meinem Recherchen. Und darauf wollte 
ich mich zunächst beschränken. Außerdem haben P-MOSFETs wohl schlechtere 
Schalteigenschaften. Wenn ich später eventuell noch mit PWM arbeiten 
möchte, dann kann sich das nach meinen Berechnungen durchaus bemerkbar 
machen.

von Dietrich L. (dietrichl)


Lesenswert?

Cube schrieb:
> Dietrich L. schrieb:
>> - oder einen separaten Anschluss vorsehen.
> Heißt das dann etwa 2 Netzteile? Das würde ich gerne vermeiden.

Der zweite Anschluss war so gemeint: wenn Du bis jetzt Deinen 
LED-Stromkreis noch nicht durchgerechnet hast und auch das Netzteil noch 
nicht kennst, dann kann man das extern immer noch hinbasteln, ohne die 
Leiterplatte aufzukratzen.

Aber Du willst 12V verwenden:
Cube schrieb:
> Naja, das habe ich damit andeuten wollen, dass die UDN2981 mit der
> Spannung versorgt werden, welche vor dem 7805 anliegt. Das sollen dann
> 12 Volt sein.

Bei 12V solltest Du in jedem Fall mal rechnen! Die Werte der 
Vorwiderstände kannst Du ja immer noch ändern, aber die Verlustleistung 
könnte unnötig groß werden (und die Widerstände dafür mechanisch zu 
klein).

Lange Rede kurzer Sinn: Die Eingangsspannung muss stimmen:
- Nicht zu groß wegen der Verlustleistung der LED-Vorwiderstände; ggf. 
auch wegen der Verlustleistung des 7805 (Kühlkörper nötig?).
- Nicht zu klein, damit der LED-Stromkreis vernünftig dimensionierbar 
ist (Toleranzen) und der 7805 auch noch funktioniert (eventuell ein 
anderer Regler?).

Das hängt auch davon ab, ob die Eingangsspannung stabilisiert oder 
unstabilisiert ist.

Mein Vorschlag:
- LED-Stromkreis dimensionieren; Ergebnis: der erlaubte bzw. sinnvolle 
Versorgunsspannungsbereich
- ist die Spannung groß genug für 7805? Wenn nicht, einen 
LDO-Spannungsregler verwenden.
- geregeltes Netzteil mit oben ermittelter Spannung für LED und 
5V-Regler verwenden

Gruß Dietrich

von andy (Gast)


Lesenswert?

Hallo,warum machst du die Sache so kompliziert?.
Mein Cube braucht 12 Leitungen um angesteuert zu werden.8 für die 
Mosfets und 4 für die Schieberegister (8 mal TPIC6B595).Flüssige 
Animationen sind kein Problem,da der Cube mit 60 Herz läuft.Also wird 
jede Ebene ca. 0,002 Sekunden angezeigt.In diesen 0,002 Sekunden hast du 
ca. 32000 Takte Zeit die nächste Ebene einzuschieben.Läuft bei mir 
tadellos und selbst aufwendige Animationen sind kein Problem.

gruss

andy

von Cube (Gast)


Lesenswert?

Dietrich L. schrieb:
> - Nicht zu groß wegen der Verlustleistung der LED-Vorwiderstände; ggf.
> auch wegen der Verlustleistung des 7805 (Kühlkörper nötig?).
> - Nicht zu klein, damit der LED-Stromkreis vernünftig dimensionierbar
> ist (Toleranzen) und der 7805 auch noch funktioniert (eventuell ein
> anderer Regler?).
Das hatte ich eigentlich schon alles durchgerechnet. 12 Volt deswegen, 
weil ich UDN2981 einsetze und der Spannungsabfall "variabel" ist - je 
nach Belastung. Da ich multiplexe, aber die LEDs vor zu hohen Strömen 
bewahren möchte, habe ich mich für 150 Ohm Widerstände entschieden. 
Damit fließt maximal ein Strom von 60 mA pro LED bei einem Dutycycle von 
12,5 % und 100 Hz Multiplexfrequenz. Im Durchschnitt sollten das in etwa 
7-8 mA sein. Das sollte für 1/4 Widerstände bewältigbar sein.

Insgesamt fließen also zum Schaltzeitpunkt fast bis zu 4 Ampere. Daher 
wollte ich noch jedem UDN2981 ein 470 uF Kondensator gönnen, um die 
Versorgungsspannung zu entlasten.

Für den 7805 sind 12 Volt ja in Ordnung. Ich erwarte hier jetzt auch 
nicht allzuviel Strom, da damit ja "nur" die Logik versorgt wird. Das 
sollte irgendwo im Bereich < 100 mA liegen und damit auch noch ohne 
Kühlung hinhauen.

Das Netzteil soll schon geregelt sein (Schaltnetzteil) - irgendwo im 
Größenbereich von 4 Ampere. Was hälst du davon?

von Cube (Gast)


Lesenswert?

andy schrieb:
> 4 für die Schieberegister
Die Vorteile "meines" Ansatzes gegenüber dem mit Schieberegistern wurde 
oben ausgeführt.

von Dietrich L. (dietrichl)


Lesenswert?

Cube schrieb:
> Das hatte ich eigentlich schon alles durchgerechnet.

Dann ist ja gut ;-) Und die Ergebnisse sehen OK aus.

> Für den 7805 sind 12 Volt ja in Ordnung. Ich erwarte hier jetzt auch
> nicht allzuviel Strom, da damit ja "nur" die Logik versorgt wird. Das
> sollte irgendwo im Bereich < 100 mA liegen und damit auch noch ohne
> Kühlung hinhauen.

(12V-5V)*100mA=0,7W
Da würde ich zur Sicherheit etwas Platz auf der Leiterplatte für einen 
kleinen Kühlkörper zumindest reservieren.

> Das Netzteil soll schon geregelt sein (Schaltnetzteil) - irgendwo im
> Größenbereich von 4 Ampere. Was hälst du davon?

OK. Wenn geregelt, dann kannst Du aber auch auf z.B. 9V gehen - das ist 
noch immer weit auf der sicheren Seite und reduziert die Verlustleistung 
merklich.

Gruß Dietrich

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.