Forum: Offtopic Craft                   


von Marius S. (lupin) Benutzerseite


Lesenswert?


von Matze Kulinski (Gast)


Lesenswert?

Ja, die Demo auf dem AVR von der Breakpoint 2008.

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

von Kai G. (runtimeterror)


Lesenswert?

Mich juckt es gerade tierisch in den Fingerspitzen :)

Die Julia-Menge ist Wahnsinn!

von Magnus Müller (Gast)


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

von 6643 (Gast)


Lesenswert?

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

von Marius S. (lupin) Benutzerseite


Lesenswert?

junge, immer diese Flash-hasser... :(

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

von thyristor (Gast)


Lesenswert?

@6643
Da verpasst Du aber ganz schön was.



Auf der zweiten Seite gibts auch nen Downloadlink ...

von thyristor (Gast)


Lesenswert?

OK warst schneller ;)

von Benedikt K. (benedikt)


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/

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

von Benedikt K. (benedikt)


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.

von Benedikt K. (benedikt)


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.

von Kai G. (runtimeterror)


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.

von Benedikt K. (benedikt)


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)

von Kai G. (runtimeterror)


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.

von Benedikt K. (benedikt)


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

von Unbekannter (Gast)


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.

von Läubi .. (laeubi) Benutzerseite


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 ;)

von Benedikt K. (benedikt)


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.

von Magnus Müller (Gast)


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

von Benedikt K. (benedikt)


Lesenswert?

Meinst du einen Schaltplan oder ein Foto der Platine ?

von Magnus Müller (Gast)


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

von Kai G. (runtimeterror)


Lesenswert?

ACK :)

von Benedikt K. (benedikt)


Angehängte Dateien:

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.

von Magnus Müller (Gast)


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

von Benedikt K. (benedikt)


Angehängte Dateien:

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.)

von Kai G. (runtimeterror)


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?)

von Benedikt K. (benedikt)


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.

von Kai G. (runtimeterror)


Lesenswert?

Ah, danke für die Info. Schönen Sonntag noch!

von Alexander S. (esko) Benutzerseite


Lesenswert?


von Marius S. (lupin) Benutzerseite


Lesenswert?


von Magnus Müller (Gast)


Lesenswert?

Yup.... in einem der Files findet sich der komplette Sourcecode und der 
Schaltplan als ASCII-Art:
1
                                 .---[ 1K ]-+------- E (PNP) C -------------------+---+---.
2
                                 |    /|\   |            B                       _|_ _|_ _|_
3
                                 |     `----'            |                       \ / \ / \ /
4
                                 |                       |                       --- --- ---
5
                                 |       .---__---.      |                        |   |   |
6
               (to programmer) --- RESET |        | PC5 ----[ 442 ]-----------+---+---|---|--- Red
7
                                 |       |        |      |          .-[ 220 ]-'       |   |
8
                              (n.c.) PD0 |        | PC4 ----[ 442 ]-+-[ 442 ]--- GND  |   |
9
                                 |       |        |      |                            |   |
10
            .----------+-[ 2K ]----- PD1 |        | PC3 ----[ 442 ]-----------+-------+---|--- Green
11
            | .-[ 1K ]-'         |       |        |      |          .-[ 220 ]-'           |
12
            | `--+-------[ 2K ]----- PD2 |        | PC2 ----[ 442 ]-+-[ 442 ]--- GND      |
13
            |    `-[ 2K ]-- GND  |       |        |      |                                |
14
            |                    `- OC2B |        | PC1 ----[ 442 ]-----------+-----------+--- Blue
15
            `---[ 1K ]-.                 |        |      |          .-[ 220 ]-'
16
              .--------+-[ 2K ]----- PD4 |        | PC0 ----[ 442 ]-+-[ 442 ]--- GND
17
              |                          |        |      |
18
              |                      VCC |        | GND  `-[ 1K ]-.
19
              |                          |        |               |
20
              |                      GND |        | AREF (n.c.)   |
21
              |            22pF          |        |               |
22
              |        GND -||--+- XTAL1 |        | AVCC (n.c.)   |
23
              |         20 MHz [ ]       |        |               |
24
              |        GND -||--+- XTAL2 |        | SCK -------------- (to programmer)
25
              `-[ 1K ]-.   22pF          |        |               |
26
              .--------+-[ 2K ]----- PD5 |        | MISO ------------- (to programmer)
27
              `-[ 1K ]-.                 |        |               |
28
              .--------+-[ 2K ]----- PD6 |        | MOSI ---------+--- (to programmer)
29
           +  `-[ 1K ]-.                 |        |
30
     ----)|------------+-[ 2K ]----- PD7 |        | OC1B ------------------------------------- HSync
31
Audio   10uF                             |        |
32
     --------- GND            (n.c.) PB0 |        | PB1 -------------------------------------- VSync
33
                                         `--------'

Gruß,
Magnetus

von Benedikt K. (benedikt)


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