LED-Cube 8x8x8 (pink)

  • Hallo zusammen,


    nachdem ich den 3x3x3 Led-Cube von Pesi erfolgreich aufgebaut habe, möchte ich nun einen 8x8x8 Led-Cube bauen. Die Matrix selbst habe ich schon fertig gelötet. Dazu habe ich 5 mm Pinke Leds verwendet, die ich vorher sandgestrahlt habe. Die Anoden habe ich zu Säulen verbunden, die Kathoden zu Ebenen. Nun bin ich dabei eine Schaltung zu bauen und habe dazu ein paar Fragen. Ich habe vor die Schaltung mit einem Atmega 32, 8 x 74HC573 (8-Bit-Latches) und 8 x IRLZ34N (als N-MOSFET für die Ebenen) aufzubauen. Die Teile habe ich bereits bestellt, damit ich damit schon mal rumprobieren kann, bevor ich die Schaltung aufbaue. Ich hoffe ich habe nicht vorschlüssig gehandelt und kann die Teile in der Schaltung verbauen.


    1. Frage:
    Nach reichlicher Recherche bin ich dazu gekommen 8-bit-Latches anstatt 8-bit-Schieberegister zu verwenden, da ich hoffe das die Schaltung dadurch leichter aufzubauen und sich die Software leichter schreiben läßt. Ist die Annahme richtig?


    2. Frage:
    Nachdem ich eine Grundschaltung wie:


    Grundschaltung mit Quarz


    auf einem Breadboard aufgebaut habe, habe ich Schwierigkeiten beim Setzen der Fusebits für den 16 MHz Quarz. Als Programmer verwende ich den mySmart USB light. Als 2.te Option hätte ich auch noch den AVR-ISP MK II da. Als Programme habe ich Bascom und myAVR-ProgTool verwendet. Mittlerweile liegen hier zwei Atmega 32, die sich nicht mehr ansprechen lassen. JTAG konnte ich erfolgreich deaktivieren. Umschalten zwischen den internen Oszillatoren von 1 bis 8 MHz war auch ohne Probleme möglich. Aber nur wenn ich die Optionen
    "Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms" oder
    "Int. RC Osc. 8 MHz; Start-up time: 6 CK + 0 ms" wählte.
    Mit der Einstellung "Int. RC Osc. 8 MHz; Start-up time: 6 CK + 64 ms" spielte er die programmierte Software nicht ab, ließ sich aber wieder zurücksetzen. Wenn ich nun eine der rot Markierten Einstellungen wähle, läßt sich der Atmega 32 nicht mehr ansprechen. Was mache ich falsch?



    3. Frage:
    Ca. 2 Wochen nach zusammenbauen der Matrix, fingen die Silberdrähte leicht an "braun" zu werden. Ich glaube nicht das die in irgendeiner Weise Oxidieren, da sie in einem absolut trockenem Raum stehen. Nachdem das das erste Mal aufgetreten ist habe ich die Drähte mit LR Leitenplattenreiniger gereinigt. Manche stellen ließen sich rückstandslos entfernen, manche aber auch nicht. Nun sind die gereinigten Drähte wieder in der alten Form! Was kann das sein?



    Hier noch ein Bild vom fertigen Würfel:


    Vielen Dank schon mal im voraus!


    Gruß
    Stas

  • Nach reichlicher Recherche bin ich dazu gekommen 8-bit-Latches anstatt 8-bit-Schieberegister zu verwenden, da ich hoffe das die Schaltung dadurch leichter aufzubauen und sich die Software leichter schreiben läßt. Ist die Annahme richtig?

    Die SW ist etwas einfacher und auch schneller, die Schaltung wird *etwas* komplexer (mehr Leiterbahnen)...


    ich wollte Dir ein Beispiel verlinken, von nem anderen Cube mit Latches, siehe hier - aber das typische Problem, Bilder bei nem externen Hoster, nun verschwunden, Thread damit wertlos... :(


    lade doch Du bitte die Bilder direkt hier im Forum hoch, damit das bei Deinem Thread nicht auch passiert...


    das mit den Fuses ist seltsam - schau' doch noch mal nach, ob Du auch wirklich genau den verwendeten µC eingestellt hast, nicht dass Du da versehentlich nen anderen erwischt hast (z.B. Mega32A statt Mega32), und bei den Fuses da Schmarrn bei raus kommt...


    wegen den Flecken: ich kann mir vorstellen, dass das irgendwelcher Schmutz ist, den man vorher nicht gesehen hat (Fett o.ä., von Fingerabdrücken oder aus der Produktion oder Flussmittelreste vom Löten) und der dann oxidiert und braun geworden ist...


    oder, kenne mich da nicht so aus, läuft Silber nicht im Laufe der Zeit sowieso schwarz an, also egal ob's nun recht feucht ist oder nicht..?

    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!

  • Vielen Dank für die schnellen Antworten!


    Das die Schaltung etwas komplexer wird macht mir keine Sorgen ... eher die SW. Deshalb ist das schon Gut so! :P


    Schade das die Bilder nicht mehr da sind. Damit solche Fälle nicht mehr auftreten, habe ich diese nun direkt hier hochgeladen. Ein wenig auf Kosten der Qualität -> max. 150kB.


    Der Richtige µC war schon ausgewählt, sonst hätte ich JTAG auch nicht deaktivieren können. Ich weiß auch nicht woran es liegt. Möchte ungern weitere Atmega 32 totmachen...


    Ob Silber im Laufe der Zeit schwarz wird, weiß ich nicht... bin da auch kein Experte. Die Frage ist nur, warum das nach einem Reinigungsgang wieder kommt? Macht nicht sonderlich viel Spaß in der Mitte des Würfels mit langen Stäbchen zu hantieren...

  • Ja, Silber läuft halt mit der Zeit an und bekommt eine bräunliche bis schwarze Silbersulfid-Schicht - schaut euch mal Omas Silberlöffel an 2 Tage BEVOR ihr zum Geburtstagskuchen o.ä. kommt d.h. bevor die geputzt werden...
    Das ist übrigens auch der Grund warum man mit Silberlöffeln keine Eier essen sollte - der Schwefel aus dem Ei lässt den Löffel sofort anlaufen. Daher gab es dann früher spezielle Eierlöffel aus Perlmutt oder später Plastik. Benutzen manche auch heute noch selbst wenn sie gar kein Silberbesteck haben...

    Die Verfärbungen bei dir scheinen mir aber eher vom Flussmittel zu kommen. Langfristig wird der Draht aber metallisch glänzend schwarz werden. (edit: z.B. hier zu sehen)


    EDIT: Sieht übrigens schick sauber aufgebaut aus. Das 2. Foto hat fast schon künstlerischen Wert. Gefällt richtig gut :thumbup:

  • Vielen Dank für die Infos Juisoo!


    Okay, das mit dem Anlaufen nach einer gewissen Zeit ist verständlich. Aber nach 2 Wochen ist schon komisch...
    Und wenn man das Flußmittel wegmacht, dann kommt es doch nicht einfach so wieder, wenn man nicht wieder dran gelötet hat, oder doch? :D

  • Ja, das sieht plausibel aus! - dem Mega32 würde ich auch noch einen 100nF-Kerko je Vcc/AVcc-Eingang spendieren... ich persönlich würde noch (ist ja nur eine Leitung mehr) die Output Enable nicht fest auf GND legen, sondern an nen HW-PWM-Pin vom Mega32 (PB3), dann kannst Du nämlich ganz einfach den kompletten Cube dimmen, also gleich mehr Möglichkeiten für Effekte...


    mit welchem Strom willst Du denn die LEDs betreiben..? - Das Latch kann ja nur 75 mA *insgesamt*, also 9,4 mA pro LED bei alle an - wenn Du "superhelle" LEDs hast, sollte das m.M. nach gerade reichen, bei dem Tutorial-Cube sind's 5 mA bei nem Multiplex von 1:2...


    ansonsten das Teil halt ein bisschen "quälen", so mit 15 mA/Pin, der geht da nicht gleich kaputt, man hat ja auch in den seltensten Fällen alle LEDs an... für "Nummer sicher" könnte man natürlich noch je nen UDN2981 nach jedem Latch schalten...

    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!

  • Nachdem ich eine Grundschaltung wie:


    Grundschaltung mit Quarz


    auf einem Breadboard aufgebaut habe, habe ich Schwierigkeiten beim Setzen der Fusebits für den 16 MHz Quarz.

    Das könnte an dem Breadboard liegen.
    Quarze mögen das ja gar nicht, wenn sie an ihren Anschüssen lange Leiterbahnen haben, und ein Breadboard gehört sicher nicht zur optimalen Umgebung.
    Probier doch mal den Quarz und die Kerkos so dicht wie irgend möglich an den Anschluss des MEGA32 zu setzen, oder gar die Anschlusspins am Breadbord vorbei zu biegen und den Quarz anzulöten. Vielleicht läuft er dann wieder. Auch mal den Quarz tauschen kann helfen.


    Auch mein Kompliment zu dem Aufbau des Cubes, Saubere Arbeit :thumbup: Sowas kostet Nerven.... ;)

  • Ich würde vorschlagen den Datenbus für die Latches nicht an PortD sondern an PortB zu hängen. Dann hast du RxD/TxD frei und kannst später noch eine serielle Ansteuerung hinzufügen. Und HW-PWM gibts an dem Port auch (Bsp.: PD7).

    Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
    Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum. :D

  • Ja, das sieht plausibel aus! - dem Mega32 würde ich auch noch einen 100nF-Kerko je Vcc/AVcc-Eingang spendieren... ich persönlich würde noch (ist ja nur eine Leitung mehr) die Output Enable nicht fest auf GND legen, sondern an nen HW-PWM-Pin vom Mega32 (PB3), dann kannst Du nämlich ganz einfach den kompletten Cube dimmen, also gleich mehr Möglichkeiten für Effekte...


    mit welchem Strom willst Du denn die LEDs betreiben..? - Das Latch kann ja nur 75 mA *insgesamt*, also 9,4 mA pro LED bei alle an - wenn Du "superhelle" LEDs hast, sollte das m.M. nach gerade reichen, bei dem Tutorial-Cube sind's 5 mA bei nem Multiplex von 1:2...


    ansonsten das Teil halt ein bisschen "quälen", so mit 15 mA/Pin, der geht da nicht gleich kaputt, man hat ja auch in den seltensten Fällen alle LEDs an... für "Nummer sicher" könnte man natürlich noch je nen UDN2981 nach jedem Latch schalten...

    Erstmal vielen Dank für die Tipp's Pesi!
    Mit den 100nF-Kerkos meinst du gegen Masse? Am Vcc ist doch schon einer drann, an AVcc auch?
    Das man so leicht eine PWM anwenden kann, wusste ich gar nicht :) Kannst du mal bitte schauen ob das richtig ist?



    Laut Datenblatt kann das Latch nur 70 mA, hab ich gelesen...oder geht noch mehr? Und wenn ja, für wie lange? Ich habe folgende LEDs verwendet... Leider gibt es für die kein Datenblatt... Also hilft nur testen oder?
    Und welches Tutorial-Cube meinst du?

  • Das könnte an dem Breadboard liegen.
    Quarze mögen das ja gar nicht, wenn sie an ihren Anschüssen lange Leiterbahnen haben, und ein Breadboard gehört sicher nicht zur optimalen Umgebung.
    Probier doch mal den Quarz und die Kerkos so dicht wie irgend möglich an den Anschluss des MEGA32 zu setzen, oder gar die Anschlusspins am Breadbord vorbei zu biegen und den Quarz anzulöten. Vielleicht läuft er dann wieder. Auch mal den Quarz tauschen kann helfen.


    Auch mein Kompliment zu dem Aufbau des Cubes, Saubere Arbeit :thumbup: Sowas kostet Nerven.... ;)

    Vielen Dank! Also eigentlich sitzt der Quarz sehr dicht am µC, nur die Kerkos sind ein wenig weiter weg. Ich werde es mal versuchen die anzulöten..hoffentlich gehts dann! :)

    Zitat

    Ich würde vorschlagen den Datenbus für die Latches nicht an PortD sondern an PortB zu hängen. Dann hast du RxD/TxD frei und kannst später noch eine serielle Ansteuerung hinzufügen. Und HW-PWM gibts an dem Port auch (Bsp.: PD7).

    Mir erschließt sich gerade nicht, wofür ich eine serielle Ansteuerung brauche, außer zum Programmieren... Aber dafür nehme ich doch den ISP. Gibt es noch weitere Möglichkeiten?

  • Mir erschließt sich gerade nicht, wofür ich eine serielle
    Ansteuerung brauche, außer zum Programmieren... Aber dafür nehme ich doch den
    ISP. Gibt es noch weitere Möglichkeiten?

    Falls du den Cube mal extern ansteuern willst wäre die Schnittstelle halt sehr nützlich weil eine Serielle Schnittstellen läßt sich von praktischen jeden µC sehr einfach ansteuern.


    Wenn du nur vorgefertigte oder lokal errechnete Bilder darstellen willst wirst du die Schnittstelle nie gebrauchen.


    z.B. könntest du später einen 2. µC nehmen an dem eine DCF-Antenne dran und mit RX/TX verbinden dann errechnet der 2.µC aus der Uhrzeit eine 3D Uhr und gibt die Bilddaten dann an den µC des Cubes weiter der die dann darstellt.


    Theoretisch könntest du das auch noch vom 1. µC machen nur hat der halt mit der LED-Ansteuerung ganz gut zu tun was das alles eher schwieriger macht.


    mfg
    Falo

  • Naja, es schadet ja nicht, sich Möglichkeiten offen zu halten - Evtl. willst Du ja später ne SW schreiben, mit der Du den Cube "live" steuern kannst, oder dann eben direkt aus der SW über USB/seriell neue Bilder drauf laden, ohne dass Du neu compilieren und die ganze SW flashen musst...


    mir würden da schon Anwendungen einfallen, z.B. 3D-Pong oder 3D-Tetris o.ä. ;)


    die Fets kannst Du im Prinzip auch an PortB hängen, dass da der ISP mit dran ist, macht nix, dann schalten die halt beim Flashen irgendwie durch, da passiert aber nix...


    im Prinzip könntest Du für die 8 Fets auch so nen 3-zu-8-Demultiplexer (74238) nehmen, wären dann weitere 5 Leitungen gespart, an die man noch ne SD-Karte (für mehr Speicher für Bilder) und ein paar Taster (umschalten zwischen div. Programmen etc.) hängen könnte - wie gesagt, schadet nie, da "vorzusorgen", bevor man sich später ärgert, dass diese oder jene coole Erweiterung wegen ein paar Pinnöckeln nicht geht...


    die verlinkten LEDs sind ja "superhelle", also da sollten 9 mA auch reichen... den 100 nF an Vcc habe ich übersehen, weil etwas weit weg im Schaltplan ;) - an AVcc noch einer schadet nix, grundsätzlich halt an jeden Versorgungs-Pin einen extra... das mit der PWM an OC passt so.


    Und bitte den "Bearbeiten"-Button benutzen, Doppelposts sind hier nicht so gerne gesehen... ;)


    ah, Zwischenpost - naja, wenn man nicht PWM für jede LED extra macht, ist das Multiplexen des Cube eigentlich ne sehr simple Sache, da sollte (in asm) der µC max 5-10% damit ausgelastet sein...

    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!

  • Vielen Dank! Ich glaube ich werde das in naher Zukunft nicht brauchen...erstmal muss ich mit der eigentlichen SW klar kommen. :)
    Und falls doch kann ich doch später schnell die 8 Leitungen umlegen und die Ports in der SW ändern...


    Gruß

  • noch mal nachgedacht: *gerade dann* wäre die Möglichkeit mit dem Demultiplexer ganz cool, macht die SW nämlich noch einfacher: Statt ein Bit rumzuschiften für die Ebenen, gibst Du einfach den Ebenen-Zähler (0-7) an den Port aus, den 74238 halt an die untersten Bits (PB0 bis PB2) dran, dann steuert der "automatisch" die Ebene 0 an, wenn Du 0 ausgibst, 1, wenn Du 1 ausgibst, usw.


    Die Latch-Eingänge dann an PortC, und somit hast Du den kompletten PortD frei, inkl. Rx und Tx und 2 Interrupt-Eingängen etc.


    *jetzt* wäre es noch einfach, die Schaltung zu ändern, "schnell" mal 8 Leitungen "umlegen" geht ja nicht, wenn Du ne Platine ätzt, auch bei Lochraster ist das enormer Aufwand...


    und Du hast ja i.M. keinerlei Vorteil dadurch, dass die Latch-Eingänge nun an PortD hängen, das ist zum jetzigen Zeitpunkt ja auch völlig wurscht... also, gibt keinen Grund, dass die unbedingt da bleiben müssen... ?(


    in was willst Du denn dann eigentlich programmieren, C, Assembler oder Bascom...?

    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!

  • Zitat

    mir würden da schon Anwendungen einfallen, z.B. 3D-Pong oder 3D-Tetris o.ä. ;)

    Joa, das klingt super interessant! Die Frage ist nur wie macht man sowas? :D
    Damit kann ich mich ja beschäftigen wenn die Basics stimmen...

    Zitat

    im Prinzip könntest Du für die 8 Fets auch so nen 3-zu-8-Demultiplexer (74238) nehmen, wären dann weitere 5 Leitungen gespart, an die man noch ne SD-Karte (für mehr Speicher für Bilder) und ein paar Taster (umschalten zwischen div. Programmen etc.) hängen könnte - wie gesagt, schadet nie, da "vorzusorgen", bevor man sich später ärgert, dass diese oder jene coole Erweiterung wegen ein paar Pinnöckeln nicht geht...

    Bis jetzt habe ich mit so einem 3-zu-8-Demultiplexer noch nichts zu tun gehabt. Aber wenn ich mir dadurch 5 Leitungen sparen kann, werde ich mal recherchieren!
    Weil so ne SD-Karte und paar Taster das Ganze noch interessanter machen... Ich habe gelesen das eine SD-Karten Anbindung nur 4 I/O-Pins am µC braucht...

    die verlinkten LEDs sind ja "superhelle", also da sollten 9 mA auch reichen... den 100 nF an Vcc habe ich übersehen, weil etwas weit weg im Schaltplan ;) - an AVcc noch einer schadet nix, grundsätzlich halt an jeden Versorgungs-Pin einen extra... das mit der PWM an OC passt so.


    Und bitte den "Bearbeiten"-Button benutzen, Doppelposts sind hier nicht so gerne gesehen... ;)

    Ok, das klingt gut mit 9 mA. Werde ich noch ein wenig mit Widerständen rumprobieren...
    Doppelpost kommt nicht mehr vor! :whistling:

    Zitat

    noch mal nachgedacht: *gerade dann* wäre die Möglichkeit mit dem Demultiplexer ganz cool, macht die SW nämlich noch einfacher: Statt ein Bit rumzuschiften für die Ebenen, gibst Du einfach den Ebenen-Zähler (0-7) an den Port aus, den 74238 halt an die untersten Bits (PB0 bis PB2) dran, dann steuert der "automatisch" die Ebene 0 an, wenn Du 0 ausgibst, 1, wenn Du 1 ausgibst, usw.


    Die Latch-Eingänge dann an PortC, und somit hast Du den kompletten PortD frei, inkl. Rx und Tx und 2 Interrupt-Eingängen etc.

    Okay, okay... hast ja absolut recht, es gibt keinen Grund die Leitungen nicht umzulegen. :) Ich werde mich morgen an den Schaltplan machen! Besser jetzt ein wenig ändern, oder besser gesagt verbessern, als sich später drüber ärgern.


    Im 74238 Datenblatt steht das E1, E2 auf "active LOW" also Masse gelegt werden. E3 auf "active High", heißt das ich kann den an 5 V, wie Vcc legen?
    Zudem habe ich bis jetzt auch noch nicht rausfinden können, worin der Unterschied zwischen HC und dem HCT besteht?!


    Zum Programmieren: Bis jetzt hatte ich nur mit Bascom zu tun, und ein wenig 8051 Assembler... aber möchte schon gern bei Bascom bleiben...stellt das irgendwie ein Problem dar? :)


    Danke nochmal für die ausführliche Hilfestellung!


    Gruß

  • Zudem habe ich bis jetzt auch noch nicht rausfinden können, worin der Unterschied zwischen HC und dem HCT besteht?!


    "HC- und HCT-Logik unterscheiden sich hauptsächlich in der
    Eingangssschwellenspannung, d.h. in welchen Bereichen ein Eingang als
    High bzw. Low angesehen wird. HCT ist von den Spannungen her
    TTL-kompatibler."


    Quelle: http://www.mikrocontroller.net/topic/75492


    Schönen Tag noch :)

  • Vielen Dank für die Aufklärung. Ich denke ich werde den HC bestellen, da er eine Versorgungsspannung von 2 – 6 V hat. Mit den Eingangspegel paßt das auch.


    Nun ist der Schaltplan überarbeitet... ist er jetzt richtig und die Leitungen optimal gelegt? :)



    Gruß

  • Ja, sieht doch gut aus - das hatte ich noch übersehen: Ich würde an *jedes* IC nen 100nF-Abblockkerko hin machen - den kannst Du der Einfachheit halber im Schaltplan gleich da oben einzeichnen, wo die ganzen IC-Versorgungen zusammen gefasst sind...


    willst Du denn eigentlich dann ein Layout mit Eagle machen, oder das dann auf Lochraster...? - wenn Layout, würde ich noch den PortD auf ne Stiftleiste legen, damit Du da dann eben später einfach ggfs. ne Erweiterungsplatine anstecken kannst...

    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!

  • Hallo Pesi,


    danke für den Tipp! Ich habe jetzt nochmal die Abblockerkerkos an die ICs gemacht. Müssen die auf der Platine so nah wie möglich an dem jeweiligen IC sitzen?



    Ich habe mir gedacht ein Layout mit Eagle zu machen, das dann aber auf Lochraster zu übertragen ... Ich habe keine Möglichkeit Platinen selbst zu ätzen und viel Geld ausgeben will ich dafür auch nicht ...
    Gibt es bei Eagle eigentlich eine Autorouter Funktion, die nur auf 2 Ebenen alle Verbindungen gerade macht? Oder muss ich das doch manuell machen? :)


    Gruß