8 x 36 blinkenLarge

Hier kann alles andere besprochen werden. Software, Treffen, oder Projekte wie Kippenlights, GroggyClock, usw.
Post Reply
blau
BlinkenNewbie
BlinkenNewbie
Posts: 8
Joined: Thu Jan 05, 2006 4:13 pm

8 x 36 blinkenLarge

Post by blau »

hallo allerseits


wie der titel schon sagt, möchte ich mir ein doppelt breites blinkenlights bauen. jedoch wollte ich mir eine eigene schaltung dazu bauen, da ich die für die Anzeige verwendeten hellen LEDs nicht einzeln, sonden matrizenartig ansteuern will.

zur ansteuerung dachte ich an ein Atmega169 (oder ATmega3290 da fast gleich teuer) in kombination mit ein paar 2803; für die Zeilen PA0-PA7 und für die Spalten PC0-PG3. das ganze angeschlossen per serielle schnittstelle...

kann das laufen? ich hab eben selbst noch nie so eine schaltung geplant, aber macht in meinem kopf irgendwie sinn :roll:


BTW: gibt es lochrasterplatinen wo man den Atmega169 rauflöten kann? Mir macht es nicht so spass, selbst eine zu ätzen.


gruss blau
User avatar
ST
BlinkenProfi
BlinkenProfi
Posts: 93
Joined: Mon Jun 23, 2003 8:26 pm
Location: Stuttgart
Contact:

Re: 8 x 36 blinkenLarge

Post by ST »

Hallo blau,

>wie der titel schon sagt, möchte ich mir ein doppelt breites blinkenlights bauen.

Was soll da drauf laufen bzw. dargestellt werden? In dem Format gibt es ja praktisch nichts.

> zur ansteuerung dachte ich an ein Atmega169 [...] kann das laufen?

Das kann funktionieren, kommt auf deine Schaltung an. Letztendlich kann das aber erst mit einem Schaltplan disskutiert werden. 1steins Arcade Platine funktioniert ja ähnlich und hat sogar CF und USB, allerdings mit einem PIC18F8520. Das BSA ist eine Matrix mit Atmega16, geht also.

> BTW: gibt es lochrasterplatinen wo man den Atmega169 rauflöten kann?

Wie der Name "Lochraster" schon sagt, werden da keine Prozessoren raufpassen, die nicht ins Raster passen. Ees gibt Platinen für bestimmte Chips mit/ohne Sockel, bei denen die Pins rausgeführt sind. Für Atmegas habe ich das noch nicht gesehen, aber auch noch nicht danach gesucht. Was sagt den Google?

Viele Grüße

[STephan]
blau
BlinkenNewbie
BlinkenNewbie
Posts: 8
Joined: Thu Jan 05, 2006 4:13 pm

Re: 8 x 36 blinkenLarge

Post by blau »

hallo

danke für den schnellen reply ;-)


> Was soll da drauf laufen bzw. dargestellt werden? In dem Format gibt es ja praktisch nichts.

das ist nicht schlimm. man kann ja immer die blinkenlight sachen drauf laufen lassen (mit einem rand). aber ich finde das format schöner und möchte dafür dann auch ein paar tolle animationen und eben auch laufschriftchen programmieren



> Das kann funktionieren, kommt auf deine Schaltung an.
> Letztendlich kann das aber erst mit einem Schaltplan disskutiert werden.

ich hab schnell mal meine ideen in einen schaltplan verwandelt. es fehlen jedoch die 5V und GND anschlüsse auf den ULN2801...


> 1steins Arcade Platine funktioniert ja ähnlich und hat sogar CF und USB

es ist eben so: ich finde die arcade platinen zu kompliziert, soviel will ich doch gar nicht. und ich hätte gerne das breite format -- ich habe das gefühl, das breite format kommt besser zur geltung


gruss blau
User avatar
ST
BlinkenProfi
BlinkenProfi
Posts: 93
Joined: Mon Jun 23, 2003 8:26 pm
Location: Stuttgart
Contact:

Re: 8 x 36 blinkenLarge

Post by ST »

Hi blau,

>> Das kann funktionieren, kommt auf deine Schaltung an.
>> Letztendlich kann das aber erst mit einem Schaltplan disskutiert werden.

>ich hab schnell mal meine ideen in einen schaltplan verwandelt.
>es fehlen jedoch die 5V und GND anschlüsse auf den ULN2801...

Mit meinem Leihenhaften Verständnis in Bezug auf AVRs sollte das gehen wenn er richtig Programmiert ist. Vielleicht sagt 1stein noch was dazu, der hat wesentlich mehr Kennung.

>> 1steins Arcade Platine funktioniert ja ähnlich und hat sogar CF und USB

> es ist eben so: ich finde die arcade platinen zu kompliziert, soviel will ich doch gar nicht. und ich hätte gerne das breite format --
>ich habe das gefühl, das breite format kommt besser zur geltung

Du wolltest wissen ob deine Idee Funktioniert, ich habe dir zwei Beispiele gegeben das es funktioniert, mehr nicht.

Viele Grüße

[STephan]
blau
BlinkenNewbie
BlinkenNewbie
Posts: 8
Joined: Thu Jan 05, 2006 4:13 pm

Re: 8 x 36 blinkenLarge

Post by blau »

hi
ST wrote: Mit meinem Leihenhaften Verständnis in Bezug auf AVRs sollte das gehen wenn er richtig Programmiert ist. Vielleicht sagt 1stein noch was dazu, der hat wesentlich mehr Kennung.

vielen dank. es freut mich zu wissen, dass ich damit nicht völlig fehl liege...


schönen abend noch
gruss blau
User avatar
stefan
Blinkenizer
Blinkenizer
Posts: 234
Joined: Wed Oct 09, 2002 9:45 pm
Location: Aachen
Contact:

Post by stefan »

Nagut, dann will ich da mal eben ein paar Kommentare zu schreiben. Tut mir leid, dass diese nicht so positiv ausfallen, wie vielleicht erwartet:

1) ULN2801 benötigt vor den Eingängen Vorwiderstände, da er selbst keine enthält. Besser ist hier der ULN2803, da der direkt für TTL-Level am Eingang ausgelegt ist.

2) Zeilen und Spalten mit ULN2803 schalten ist auf den ersten Blick etwas merkwürdig, da dann sowohl die Zeilen- als auch die Spalten-Leitungen gegen Masse schalten. D.h. pro Pixel ergeben sich dann die folgenden 4 möglichen Zustände (Zeile/Spalte): offen/offen, offen/Masse, Masse/offen, Masse/Masse --> Ich glaube, da wird in keinem Zustand eine LED aufleuchten.

Prinzipiell ist es meiner Meinung nach schon ohne weiteres möglich, 36x8 Pixel (mit (quadratischen, d.h. Gamma=2.0) Graustufen) in einer Matrixschaltung mit einem ATMEGA anzusteuern und die Daten seriell reinzugeben.

Gruß,
Stefan
blau
BlinkenNewbie
BlinkenNewbie
Posts: 8
Joined: Thu Jan 05, 2006 4:13 pm

Post by blau »

hallo 1stein


> 1) [...] Besser ist hier der ULN2803, da der direkt für TTL-Level am Eingang ausgelegt ist.

ok, werd ich ersetzen

2) Zeilen und Spalten mit ULN2803 schalten ist auf den ersten Blick etwas merkwürdig, da dann sowohl die Zeilen- als auch die Spalten-Leitungen gegen Masse schalten.
was gäbe es dazu für eine möglichkeit? zum beispiel die 8 zeilen anstatt mit uln2803 mit transistoren a la tip126 (mit widerständen) ansteuern?


gruss patrick
blau
BlinkenNewbie
BlinkenNewbie
Posts: 8
Joined: Thu Jan 05, 2006 4:13 pm

neuer schaltplan

Post by blau »

hallo


ich hab meinen schaltplan nun nochmal überarbeitet. ist das so besser, mit der ansteuerung der zeilen?


vielen dank für die hilfe
lg blau
User avatar
stefan
Blinkenizer
Blinkenizer
Posts: 234
Joined: Wed Oct 09, 2002 9:45 pm
Location: Aachen
Contact:

Post by stefan »

Das sieht schon besser aus. Allerdings würde ich dir noch empfehlen, den Transistoren einen Basis-Emitter-Widerstand zu verpassen, damit die auch sauber sperren. Auch sollte man nochmal im Datenblatt nachlesen, ob der TIP126 schnell genug ist und basierend auf dessen Daten die Widerstände berechnen.

Gruß,
Stefan
blau
BlinkenNewbie
BlinkenNewbie
Posts: 8
Joined: Thu Jan 05, 2006 4:13 pm

Post by blau »

hallo
1stein wrote: Allerdings würde ich dir noch empfehlen, den Transistoren einen Basis-Emitter-Widerstand zu verpassen, damit die auch sauber sperren.

ok, hab die nun auch noch eingezeichnet (mit 560 ohm vorwiderstand). ich begebe mich dann mal -- mit dem nun hoffentlich finalen schaltplan -- ans basteln. falls es läuft melde ich mich mal wieder.

vielen dank für deine hilfe und tipps!

gruss
blau
blau
BlinkenNewbie
BlinkenNewbie
Posts: 8
Joined: Thu Jan 05, 2006 4:13 pm

und nun die firmware

Post by blau »

hallo allerseits


so nach ein paar monaten sendepause, kann ich sagen, dass das board so mehr oder weniger funktioniert. ich bin gerade voll am firmware schreiben, es geht auch mehr oder weniger. jedoch wollte ich diesbezüglich noch 2 fragen stellen:

i) wie verarbeite ich am besten die blm movies? ich dachte mir, wenn ich sie in einem array von uint8_t hab, so kann ich dann die werte gleich auf die entsprechenden register laden um output pins zu setzen. ich schrieb also einen converter, welcher mir die blm movies in c code übersetzt und include das entstandene file. gibts eine schlauere art und weise?

ii) irgendwie schaff ich es nicht, über PE3 zu outputten. woran könnte das liegen? ansonsten gehen alle outputs, alle wurden mit hilfe des DDRn entsprechend gesetzt.

weitere infos: µc ist atmega128 und ich brauche avr-gcc. ich habe keine mmc card auf meinem board, aber könnte wohl den internen flash des atmega brauchen.


gruss blau
User avatar
stefan
Blinkenizer
Blinkenizer
Posts: 234
Joined: Wed Oct 09, 2002 9:45 pm
Location: Aachen
Contact:

Post by stefan »

Hallo blau.

i) Movie-Frames als uint8_t-Array sind im Prizip nicht schlecht, allerdings lnden sie dadurch im RAM. Viel besser sind sie wohl im Flash aufgehoben, weil da einfach mehr Platz ist. Das kann man mit "const uint8t_t PROGMEM my_frame[] = { ... };" erreichen ("#include <avr/pgmspace.h>" nicht vegessen). Lesen kann man das ganze dann mit "pgm_read_byte_near( (int)my_frame + i )". Weitere Infos findet man im Netz, wenn man zu seinen Suchwörter "PROGMEM" oder "pgm_read_byte_near" hinzufügt.

ii) Ich rate jetzt einfach mal: Vielleicht hatte PE3 beim ATMEGA103 noch eine andere Bedeutung. Der ATMEGA128 befindet sich bei Auslieferung im Kompatibilitätsmodus zum 103er und hat daher ein paar auf den ersten Blick merkwürdige Einstellungen. Das kann man mit den Fuse-Bits aber abschalten. Das ist irgendwo im Datenblatt beschrieben...

Gruß,
Stefan
blau
BlinkenNewbie
BlinkenNewbie
Posts: 8
Joined: Thu Jan 05, 2006 4:13 pm

fuse

Post by blau »

hi


i) ok, klappt gut mit dem PROGMEM. hab nun die blm am laufen ;-)
super.

ii) ja das sah ich. hab die fuse korrekt zum 128er. aber löte sonst bisschen um auf einen anderen port als PORTE.


gruss
blau
Post Reply