mikrocontroller.net

Forum: Offtopic Craft                   


Autor: Marius S. (lupin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Matze Kulinski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, die Demo auf dem AVR von der Breakpoint 2008.

Hättest Du ja ruhig mal dabei schreiben können.

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mich juckt es gerade tierisch in den Fingerspitzen :)

Die Julia-Menge ist Wahnsinn!

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wow... das ist ja echt abartig... und alles in einem ATmega88 ?!?

Und wir (ähüm... ich ja eigentlich noch nicht) krebsen hier mit so 
langweiligen Dingen rum wie "AVR ASCII Video Terminal - 40 x 25 - BAS 
Signal".

Respekt!

Magnetus

Autor: 6643 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das erste Video war nicht sichtbar, eine Flash-schwarte. Die zweite 
Seite ein stehendes Bild. Das stehende Bild kommt von einem Mega88 ?

Autor: Marius S. (lupin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
junge, immer diese Flash-hasser... :(

Naja, gibts beim zweiten link auch als mp4 wenn es genehmer ist. Ja, 
alles von nem mega88 gemacht.

Autor: thyristor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@6643
Da verpasst Du aber ganz schön was.



Auf der zweiten Seite gibts auch nen Downloadlink ...

Autor: thyristor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK warst schneller ;)

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ein VGA Ausgang einen sehr hohen Pixeltakt hat, sollte der AVR nichts
anderes machen als ununterbrochen aus dem RAM lesen und auf die Ports
schreiben.
Bei 640x480 und 20MHz Taktfrequenz sollte der AVR 6,6MHz Pixeltakt
erzeugen können. Das ergibt etwa 170 Pixel horizontale Auflösung, was 
auch in etwa hinkommt.
Worauf ich eigentlich hinaus will: Für die Berechnung der Bildausgabe im 
langen VSync würde der SRAM nicht reichen, denn der mega88 hat nur 1k 
und bei 128Pixel pro Zeile könnte man so nur 8 Zeilen speichern. Das 
Bild muss also in Echtzeit im HSync Interrupt berechnet werden. Dazu 
stehen pro Zeile etwa 200 Takte zur Verfügung.
Das erfordert gut optimierte Routinen. Nicht schlecht.

Das ganze erinnert mich an sowas hier:
http://www.256b.com/

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benedikt K. wrote:

> Da ein VGA Ausgang einen sehr hohen Pixeltakt hat, ...

Die Strukturen erschienen mir eher grob, das reduziert den
effektiven Pixeltakt.  Wenn ich immer zwei nebeneinanderliegende
Pixel zusammen umschalten kann, dann habe ich ja nur noch den
halben Pixeltakt.

Trotzdem keine schlechte Leistung.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg Wunsch wrote:
> Benedikt K. wrote:
>
>> Da ein VGA Ausgang einen sehr hohen Pixeltakt hat, ...
>
> Die Strukturen erschienen mir eher grob, das reduziert den
> effektiven Pixeltakt.  Wenn ich immer zwei nebeneinanderliegende
> Pixel zusammen umschalten kann, dann habe ich ja nur noch den
> halben Pixeltakt.

Ist alles schon mit eingerechnet:
Bei dem Text in Wellenform zähle ich etwa 27 Zeichen pro Zeile. Bei 6 
Pixeln pro Zeichen macht das 162 Pixel, was auch in etwa hinkommt. 
640x480 hat 25,1MHz Pixeltakt, bei 6,6MHz/25,1MHz ergeben sich so etwa 
170 Pixel.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ganze ist etwas anderst als ich anfangs gedacht habe:
Für den Text wird (wie üblich) SPI verwendet, und die Textdaten via 
Dioden in das Videosignal eingekoppelt. Daher sind so etwa 250 Pixel 
Auflösung möglich, bei der Farbgrafik nur weniger. Dafür kann man den 
Text oder hochauflösende Grafiken nur in weiß bzw. mit recht blassen 
Farben darstellen.
An sich eine nette Demo, nur leider wenig praxistauglich, außer für sehr 
spezielle Anwendungen.

Der Sound ist aber auch nicht schlecht: Es handelt sich nich um 
einfachen PWM Sound, sondern an PortD hängt ein DAC. In der Software 
scheint eine Art einfacher Synthesizer zu laufen, denn so wie es 
aussieht sind die einzelnen Frequenzen kein Rechteck, sondern eine 
Mischung aus verschiedenen Signalformen, u.a. Dreieck.

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mir einer kurz erklären, wie ich mir die D/A-Elemente in der 
Schaltung vorzustellen habe?

Das mit den Dioden und dem Transistor ist mir dank Benedikts Anmerkung 
jetzt klar.

Beim Audio könnte ich mit einen R/C-Tiefpass oder ein R2R-Netzwerk 
vorstellen (kann die Schaltung leider gerade nicht einsehen) - die 
kapazitive Kopplung danach ist klar.

Wie ist das bei den RGB-Leitungen? Ich hätte da einfach einen 
Spannungsteiler drangehängt. Oder kann der pro Farbkanal mehr als zwei 
Zustände darstellen? Für was könnte das D/A-Element stehen?

Wär super, wenn mir einer noch ein paar Fragezeichen über'm Kopf 
beseitigen könnte.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So wie ich das sehe, hat er R2R DACs verwendet: Für Sound 6bit und für 
Bild 2bit. Damit sind also 64 Farben möglich. Ich habe es mit 330 + 680 
Ohm Widerstände nachgebaut, geht auch.

PortC 5: R1
PortC 4: R0
PortC 3: G1
PortC 2: G0
PortC 1: B1
PortC 0: B0

PortD 7: Sound5
PortD 6: Sound4
PortD 5: Sound3
PortD 4: Sound2
PortD 3:  ??? (sieht nach PWM oder sowas aus, es kann sein, das der 
Emitter des Transistors hier angeschlossen wird)
PortD 2: Sound1
PortD 1: Sound0

PortB 1: VSync
PortB 2: HSync
PortB 3: HighRes Daten (zur Basis des PNP)

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super, danke. Das entspricht weitgehend meiner Vermutung. Das mit dem 
SPI war mir neu.

Port-C könnte auch wie folgt belegt sein
PortC 5: B0
PortC 4: G0
PortC 3: R0
PortC 2: B1
PortC 1: G1
PortC 0: R1

Das beschleunigt das Einschieben von Farbinformationen, die nur das 
obere Bit nutzen sollen - reine Spekulation.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei meinem Aufbau passen die Farben zu denen im Video, und dem Bild der 
Platine im Aufbau nach, scheint meine Belegung zu passen. Da sind immer 
2 Widerstände nebeneinander, und beide durch einen weiteren verbunden -> 
R2R

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> An sich eine nette Demo, nur leider wenig praxistauglich, außer
> für sehr spezielle Anwendungen.

Das kann nur einer sagen, der die C64-, CPC-, Atari- und Amiga-Zeit nie 
miterlebet hat.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unbekannter wrote:
>> An sich eine nette Demo, nur leider wenig praxistauglich, außer
>> für sehr spezielle Anwendungen.
>
> Das kann nur einer sagen, der die C64-, CPC-, Atari- und Amiga-Zeit nie
> miterlebet hat.
Ich glaub benedikt meint damit, das der AVR nix anderes mehr tun kann.. 
also nix Wintergames ;)

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, so in etwa. Ich habe mal ein wenig den disassemblierten Code 
angesehen, so wie es aussieht, ist die Grafikausgabe ziemlich in den 
Berechnungsroutinen integriert. Man kann also nicht ohne alles neu zu 
schreiben etwas anderes anzeigen.

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benedikt K. wrote:
> So wie ich das sehe, hat er R2R DACs verwendet: Für Sound 6bit und für
> Bild 2bit. Damit sind also 64 Farben möglich. Ich habe es mit 330 + 680
> Ohm Widerstände nachgebaut, geht auch.

Ui... Kannst du mal ein Bild von deinem Nachbau hier einstellen?

Gruß,
Magnetus

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meinst du einen Schaltplan oder ein Foto der Platine ?

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich dachte erst mal an ein Bild deiner Hardware (egal ob Lochraster oder 
Breadboard).

Gegen einen Schaltplan hätte ich allerdings auch nichts einzuwenden. Ich 
denke, daß es hier bestimmt noch (viel) mehr Forumsteilnehmer gibt, 
denen es jetzt ganz spontan in den (Löt-)Fingern juckt ;)

Gruß,
Magnetus

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ACK :)

Autor: Benedikt K. (benedikt) (Moderator)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier das Foto (ja ich weiß, das Foto beinhaltet kaum nützlichen Infos, 
da alle Bauteile auf der Unterseite sind). Den Schaltplan muss ich noch 
zeichnen.

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann mach doch (bitte!) noch ein Bild von der Unterseite. Ich gehe davon 
aus, dass du SMD-Rs und -Cs verbaut hast...

Vielen Dank schon mal ;)

Magnetus

Autor: Benedikt K. (benedikt) (Moderator)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier der Schaltplan. Bei PortD3 bin ich nicht sicher, ob und wie der Pin 
verwendet wird. Er gehört nicht zu den Audiodaten, das ist sicher.
Das Signal ist ein ziemlich konstantes Rechteck, eventuell ist das ein 
Signal für den Transistor. Dem Blockdiagramm im Video nach, scheint der 
Transistor mit dem Emitter nicht einfach an 5V angeschlossen zu sein.
Ich habe einfach mal den Emitter über 47 Ohm an 5V gelegt, da dies die 
benötigten 0,7V am Ausgang ergibt. Zumindest sieht das Ergebnis bei mir 
genauso aus, wie in dem Video.
Den 6bit Audio DAC habe ich bei mir auf 4bit beschränkt. Ich höre keinen 
großen Unterschied zwischen 2 oder mehr Bit, da die Musik doch relativ 
digital klingt (auf dem Oszi sieht man aber deutlich mehrere 
unterschiedliche Stufen.)

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Blöde Frage... ist die VGA-Buchse auf dem Bild für Rochraster geeignet,
oder hast du da getrickst?

Bei Reichelt finde ich nur die "HD 15FW" und die dürfte nur mit sehr
gutem Zureden passen...

(Wie verlinkt man sinnvoll auf Reichelt-Artikel ohne diese Mega-URL
auseinander zu nehmen?)

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Pins an sich passen in das Lochraster,  nur die mittlere Reihe ist 
genau um 1/2 Lochabstand versetzt. Da muss man Löcher bohren, oder 
großzügig einen Schlitz fräsen. Da diese Pins alle an GND hängen ist das 
aber nicht so schlimm.

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, danke für die Info. Schönen Sonntag noch!

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kai Giebeler wrote:
> (Wie verlinkt man sinnvoll auf Reichelt-Artikel ohne diese Mega-URL
> auseinander zu nehmen?)

http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=C122;...
==
http://www.reichelt.de/?ARTICLE=8506

Autor: Marius S. (lupin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yup.... in einem der Files findet sich der komplette Sourcecode und der 
Schaltplan als ASCII-Art:
                                 .---[ 1K ]-+------- E (PNP) C -------------------+---+---.
                                 |    /|\   |            B                       _|_ _|_ _|_
                                 |     `----'            |                       \ / \ / \ /
                                 |                       |                       --- --- ---
                                 |       .---__---.      |                        |   |   |
               (to programmer) --- RESET |        | PC5 ----[ 442 ]-----------+---+---|---|--- Red
                                 |       |        |      |          .-[ 220 ]-'       |   |
                              (n.c.) PD0 |        | PC4 ----[ 442 ]-+-[ 442 ]--- GND  |   |
                                 |       |        |      |                            |   |
            .----------+-[ 2K ]----- PD1 |        | PC3 ----[ 442 ]-----------+-------+---|--- Green
            | .-[ 1K ]-'         |       |        |      |          .-[ 220 ]-'           |
            | `--+-------[ 2K ]----- PD2 |        | PC2 ----[ 442 ]-+-[ 442 ]--- GND      |
            |    `-[ 2K ]-- GND  |       |        |      |                                |
            |                    `- OC2B |        | PC1 ----[ 442 ]-----------+-----------+--- Blue
            `---[ 1K ]-.                 |        |      |          .-[ 220 ]-'
              .--------+-[ 2K ]----- PD4 |        | PC0 ----[ 442 ]-+-[ 442 ]--- GND
              |                          |        |      |
              |                      VCC |        | GND  `-[ 1K ]-.
              |                          |        |               |
              |                      GND |        | AREF (n.c.)   |
              |            22pF          |        |               |
              |        GND -||--+- XTAL1 |        | AVCC (n.c.)   |
              |         20 MHz [ ]       |        |               |
              |        GND -||--+- XTAL2 |        | SCK -------------- (to programmer)
              `-[ 1K ]-.   22pF          |        |               |
              .--------+-[ 2K ]----- PD5 |        | MISO ------------- (to programmer)
              `-[ 1K ]-.                 |        |               |
              .--------+-[ 2K ]----- PD6 |        | MOSI ---------+--- (to programmer)
           +  `-[ 1K ]-.                 |        |
     ----)|------------+-[ 2K ]----- PD7 |        | OC1B ------------------------------------- HSync
Audio   10uF                             |        |
     --------- GND            (n.c.) PB0 |        | PB1 -------------------------------------- VSync
                                         `--------'

Gruß,
Magnetus

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da lag ich ja ganz gut mit meiner Vermutung.

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, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.