Beiträge von McGyver

    Ich hol den guten Fred noch mal nach oben :thumbup:


    Es gibt n großes Software Update! Ich habe mich hingesetzt und mir eine 12 Bit BCM gebastelt. Die Matrix wurde mir im unteren Bereich einfach zu schnell zu hell. Ne gamma-Korrektur auf 8 Bit Basis war dann untenherum viel zu grob .... also musste was feineres her!


    Es laufen (nun endlich :whistling: ) alle LEDs intern mit 12 Bit Auflösung. Der 8 Bit DMX Wert wird gamma-korrigiert und in 12 Bit überführt (per Tabelle. Gamma = 1,85)


    Gearbeitet wird wie vorher mit ca. 244 Hz zeitlicher Auflösung. Der kleinste BCM-Schritt ist 16 Takte lang (da geht noch was, aber das wird mir dann zu frickelig :P :wacko: ). Ich verwende Timer1 des Mega32 im CTC-Mode. Setzte also den Zielwert in jedem BCM-Takt neu.


    Nebenbei hab ich die Software - mehr wegen der Verfügbarkeit - auf n Mega32 umgemodelt. Läuft aber mit ner kleinen Anpassung der Interrupttabelle auch ohne murren auf nem Mega16.


    Was jetzt wohl noch zum vollkommenem Glück fehlt ist eine RGB-HSV-RGB Umwandlung um die Gamma-Korrektur nur auf den Helligkeit-Wert anzuwenden. Man kann zwar eine kleine Farbverschiebung beobachten, jedoch ist die in meinen Augen recht gering. Darum habe ich den Mehraufwand gescheut. Wenn wer was in ASM fertig hat, her damit :P


    Ein paar Anmerkungen zur BCM:
    Der 4. bis 11. Schritt laufen 2 takte zu spät an, der 12. 4 Takte zu spät. Das sind im schlimmsten Fall 1,6% und nimmt dann drastisch ab. Daher habe ich mir eine Feinanpassung des Compare-Match-Zielwertes gespart. Kommt vielleicht noch mal bei nem Anflug von Langeweile ^^


    Im letzten Schritt werden die Werte für den 1. Schritt vor der Neuberechnung der Daten vorgeladen. Bedeutet: Kommt ein neuer DMX wert und es werden daraus die BCM-Daten errechnet, liegen im 1. Schritt der nächsten BCM-Runde noch die alten Daten an.
    Auch das vernachlässige ich. Die BCM-Daten werden außerhalb des BCM-Interrupts berechnet. Ich will nicht, dass der Mega zu lange im Interrupt hängt (wären dann im letzten schritt über 2000 Takte) und den DMX-Empfang verpasst. Wichtig is mir aber, das der wert für den 1. BCM-Schritt im letzten BCM-Schritt vorgeladen wird. Somit liegt zumindest ein fast korrekter Wert an. Und es geht hier nur wirklich um Kleinvieh. Die Rundungsfehler in der Look-up Tabelle sollten mehr ins Gewicht fallen :|
    Es tut also erstmal, was es soll. Wem die Fehler beim ansehen der Matrix auffallen bekommt n Bonbon von mir ^^ Ich kann hier nix erkennen. Vielleicht mertze ich aber auch das noch aus, wenn mal wieder Zeit über is. :led:


    Weil genug Speicher in den Megas vorhanden ist war ich bei der Umrechnung von DMX zu BCM Werten etwas verschwenderisch. So ist der code aber schneller als mit unzähligen Sprüngen und Zählern. Das war dann erstmal wichtiger.


    Es sind also doch noch ein paar Baustellen im Code. Verbesserungsvorschläge oder andere Tipps sind immer sehr willkommen :thumbup:



    Vielleicht komm ich auch dazu von meinen bisherigen 4 Matrizen mal n Video zu machen. Bis jetzt sieht das schon ganz ordentlich aus. Da freu ich mich glatt auf den nächsten Satz.


    Im Angang findet ihr jetzt erstmal die neue Software. Ich bin gespannt auf Feedback und Meinungen!


    Gruß
    Gyver

    Ja, genau, absolut richtig vermutet. Der 5. ULN ist aus gründen des einfacheren Routings auf der Platine. Die Dinger kosten ja auch quasi nix ;)


    Ich werde wohl insgesamt 18 von den Modulen zu ner 9x18 Matrix zusammensetzten. Dafür werde ich dann wohl Platinen fertigen lassen. Ob sich dafür dann ein 2-seitiges Layout mache muss ich schauen. In dem Fall würde alles, bis auf die LEDs auf dir Rückseite wandern. Dann müsste auch genug Platz sein um das ganze Dingen mit nur 4 ULNs zu routen. Für ne zusätzliche Status-LED reichts dann trotzdem nicht mehr. Der Mega is schon voll :thumbup:


    Ob sich der ganze Aufwand aber für mich lohnt muss sich erst noch zeigen ;)



    McGyver
    ... entweder habe ich irgenwas verpasst oder die Widerständer R1...R27 sind um den Faktor 1000 zu groß ?( - oder sind das LED mit Strömen um 20µA ?


    vg espri128


    Ja, da hasst du recht. Ist mir aber auch erst beim bestücken aufgefallen. Da hat sich bei den LED-Wiederständen ein kleines "k" eingeschlichen :S Ich war noch nicht wieder an dem Rechner mit den Plänen. Werde das aber korrigieren, wenn ich die Teileliste und das Bord-Layout zum nachätzen einstelle.

    So, nach nun fast einem Jahr hab ich das ding noch mal ausgebuddelt, entstaubt und mich noch mal dran gesetzt :thumbup:


    Der aktuelle Prototyp funktioniert. So wie es aussieht lag es dann doch an den Pull-Ups am Schiebregister. Ich habe aber noch mal das Design des Boards etwas aufgeräumt und versucht etwas zu optimieren.


    Die Platine ist immer noch einseitig geroutet. Sollte für den Hobby-Bastler einfacher sein zu Hause zu fertigen. Größtenteils in SMD, Wiederstände und Kondensatoren nicht kleiner als 1260.


    Die DMX-Adresse wird nur bei Power-Up aus dem Schiebregister gelesen. Liegt kein DMX-Signal an wird ein Standartfarbe auf dem Panel angezeigt (im Moment warm-weiß). Die Farbe kann im Code einfach eingestellt werden. Kann jeder also nach seinen Wünschen anpassen.


    Angehänt habe ich jetzt erstmal das Layout vom Board und vom Schaltplan. Außerdem die aktuelle Software. Eine kleine "Einkaufsliste" und das Layout im pdf-Format kommt dann noch nach, das is noch nicht so weit ;)


    Ein ganz großer Dank geht noch mal an Pesi, er hat für mich die Software entwickelt!


    Gruß
    Gyver


    Edit: Falsche Werte im Schaltplan korrigiert.

    Das sieht schon mal sehr gut aus. Habe es jetzt erst nur mal überflogen. Wenns ok für die ist, könntest du die Eagle-dateien hochladen? So wird die überprüfung einfacher.


    Was mir aufgefallen ist:
    - Bei Reichelt gibts stabilisierte Steckernetzteile, die direkt 5V ausgeben. Das würde den Spannungswandler überflüssig machen. Warum auch doppelt wandeln ;) Wenn darauf nicht versichtet werden soll: vielleicht kann man den ja optional bestücken und mit nem Jumper brücken (oder sogar nur mit ner Lötbrucke...)
    - ich würde den Wannenstecker um 90 Grad nach links drehen. greift man zu ner gewinkelten Version lässt sich das teil auch noch mit angebrachter Front-blende flashen.


    Gruß
    Gyver

    Da sich für mich die Problematik noch nie stellte (ich löte mit der Hand und nicht reflow) hab ich da ehrlich gesagt garnicht dauf geachtet und mich für diese Layer in EAGLE noch nie sonderlich interessiert. Schau ich mir aber gleich mal an.

    Da gehts mir erstmal nicht anders. Ich denke jedoch, wenn das Ding z.B. in China gefertigt wird, wird auch Lötstop drauf kommen. Warum dann nicht auch ordentlich ;)



    Gerade habe ich noch das hier gefunden:


    http://www.mikrocontroller.net/articles/Word_Clock#Deutsch


    Da wird scheinbar im Moment am gleichen Projekt gebastelt. Unterschied ist: keine Ansteuerung der ganzen 10x11 matrix, sondern nur der einzelnen Wörter, dafür aber RGB-LEDs.


    Auch wenn mir "unsere" Variante besser gefällt finde ich den Ansatz, wie dort die Frontplatte gefertigt wird recht interessant. Ggf kann man da was abgucken oder die Frontplatte dort direkt "ordern".

    Laut Datenblatt der PLCC4 kommt über die Pads Stopmaske bis auf die Stellen, an denen die Pads anliegen. Dann ist das "wegschwimmen" auch kein problem mehr ;)


    Ich habs mir noch nicht angesehen, gehe aber mal davon aus, das die in eagle schon korrekt mit drin ist und dgoersch die für die pads der Bedrahteten LEDs mit angepasst hat 8)

    ..., ich schätze mal (rein so von der Stückzahl her :whistling: ) hat McGyver die selben ;)

    Lass mich raten, mal günstig bei ebay erstanden??? :thumbup:


    Die großen Pads der LEDs kann man bei Platzmangel auf jeden fall noch verkleinern. Soll natürlich der Wärmeabgabe zu Gute kommen, geht aber auch mit kleineren Pads prima!

    Also mein Paket ist jetzt nach fast 3 Wochen immer noch nicht angekommen. Wende ich mich da am besten direkt an led-tech oder an jemandem vom forum?

    Das kann manchmal schon mal ne zeit dauern, wenn im Laden gerade viel zu tun ist zum Beispiel ;)


    Ich würde noch etwas warten, sonst hilft eine PM an einen vom LED-TECH team weiter!

    hab eagle jetzt gerade nicht hier, aber such mal in ealge nach "topled", da sollte auf jeden fall PLCC-4 zu finden sein. PLCC-2 müsste eagle auch schon mitbringen. Bei superflux kann ich gerade nicht helfen ...

    Also ich sehe da gewisse Probleme mit der Bestückung von verschiedenen LEDs, Super Flux würden u.U zusammen mit PLCC-2 gehen, aber nicht mit PLCC-4, da die soweit ich informiert bin nur 1 Anode und 3 Kathoden haben (korrigiert mich wenn ich falsch liege). Mit den Super Flux lässt sich das Design denke ich kaum noch in der aktuellen Größe realisieren, da müsste die Platine dann ein Stück größer werden.

    Das ist soweit richtig, die PLCC4 haben 3 Kathoden. Trotzdem sehe ich da kein Problem. Wenn nur die Anode und die Kathode auf der gegenüberliegenden Seite beschaltet werden und die danebenliegenden Pads offen bleiben sollte man auch ohne Probleme PLCC2 auf die Fassung löten können. Ich hoffe, man kann das nachvollziehen...


    Bei bedrahteten LEDs kann es wirklich probleme mit der Bauhöhe geben. Aber auch diejenigen, die bedrahtete LEDs verwenden wollen, könnten einfach die Höhe des "setzkasens" vergrößern. Mit einem größerem Abstand zur Frontplatte wird sich also auch das Problem lösen lassen.

    Nachdem die Uhr ohnehin keine Sekunden anzeigt, ist Genauigkeit wohl weniger das Problem. Ich wollte die RTC mit Goldcap allerdings als Gangreserve einsetzen, damit nicht nach 'nem Stromausfall oder einem versehentlichen Ausstecken des Netzteils wieder 2,5min vergehen bevor die Zeit da ist. Außerdem kann man in der RTC auch noch schön Alarmzeit(en) speichern und brauch sich in der Software darum nicht zu kümmern, weil die RTC einfach einen Interrupt auslöst.

    Ja, da muss ich zustimmen, praktisch wäre das ganze auf jeden fall.

    Hier könnte man sogar noch einen Schritt weitergehen und die Bohrungen/Pads so auslegen wie zB auf dem Board des Balance-Spiel. Dort kann man SMD-LEDs auf den Pads auflöten und hat Bohrungen sowohl für normale 5mm LEDs als auch für 4-Pin-Superflux. Damit kann man sich das Teil wirklich bestücken wie man möchte.

    Ich denke diese Mühe sollte man sich auf jeden fall machen, vor allem, weil ja wohl die nachfrage nach der Uhr hier im Forum schon recht groß ist. So bleibt eine fertige Lösung flexibel für viele Anwender und das PCB kann günstig über eine Sammelbestellung gefertigt werden ...

    Letzteren Ansatz nutze ich bei einer anderen Uhr schon recht erfolgreich. Gerade bei so einem Deko objekt kommt es ja auch nicht auf jede sekunde an. Und den mega über einen Tag unter 2-3 Sekunden genau laufen zu lassen sollte nun wirklich kein Problem sein ;)


    Einen hab ich aber noch: wäre es möglich Lötpads für PLCC4-LEDs zu nutzten? Ich habe noch gut 2000 Osrams zu hause rumliegen, die würde ich gerne verbraten. Außerdem sollte es kein problem sein, die PLCC2 auf anderen Kontakte zu löten. Somit gewinnt man also etwas flexibilität ;)


    Gruß