www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BW-CRT-Controller aus Mega8 bauen


Autor: Christof Rieger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nur ein Kleiner Einwurf zum mit freuen.
Ich weiß nicht ob das auch schon mal jemand Probiert hat.
Mir ist es gelungen mit nur 11 Bauteilen aus einem ATMega8 ein
Schwartz-Wieß CRT-Controller bauen. Zur Zeit hat die Software zwar noch
keine Schnittstelle nach außen, aber Zeichen sind schon darstellbar.

Autor: Christof Rieger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Noch ein Bild vom Fernsehschirm

Autor: Heinz Schenk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieht doch gut aus.
Zeig mal die Schaltung und das Programm dazu, bitte.


guude

ts

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schaltung ist super simpel. Grundaufbau ATMega8 mit 16MHz-Quarz und
den üblichen Kondensatoren (Quarz und Betriebsspannung (5V)).
Sonst

Pin 14 mit Pin 17 verbinden und daran ein 270 Ohm Widerstand
an Pin 15 ein 620 Ohm Widerstand (z.Z. 150 + 470 Ohm)
an Masse ein 120 Ohm Widerstand

Die zweiten Anschlüsse aller Widerstände miteinander verbinden und dazu
noch ein 220µF Kondensator mit der positiven Seite schalten.

Das BAS Signal kann man dann an dem negativen Anschluß des Kondensators
und Masse abnehmen.

Mit der Freigabe des Quellcods habe ich noch so meine Bedenken. Da muß
ich noch mal drüber schlafen.

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ähnliche Geschichten:
über SCART auch farbig
http://www.tvterminal.de/index.html

Philips ARM Design Contest 2005  TV based Oscilloscope
160 kSps  512 x 240 pixel
http://www.jandspromotions.com/philips2005/Winners...

Autor: Christof Rieger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es sowas schon gibt, dann kann ich ja demnächst mein Quellcode
veröffentlichen. Hier nochmal ein Bildchen.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal ne Frage, liesse sich auch Grafik damit darstellen?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nur 10 Bauteile gebraucht, einschließlich RS232 Interface mit
115,2kBaud um die Textdaten zu laden.

Eines würde mich an deiner Schaltung aber doch mal interessieren:
Das SPI Interface gibt im Ruhezustand einen High Pegel aus.
Wie hast du es geschafft, da schwarze Pixel hinzubekommen ?
Ich muss bei meiner Schaltung das Signal vom MOSI Pin Invertieren.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Läubi
Theoretisch kann man damit Grafik darstellen, aber das braucht viel
RAM. So wie ich das sehe, hat können hier 40x25 Zeichen = 1000Bytes
dargestellt werden.
Für Grafik wären 16kByte notwendig, also mega8515 + SRAM oder so.

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie in dem letzten Bild zusehen, gibt es zwischen den Zeichen
Leerspalten und Leerzeilen,damit ist es nicht möglich eine geschlossene
Graphicfläche zu zeichnen. Die Leerzeilen kann man wieder
rausprogrammieren. Die Spalten ergeben sich aus dem von Benedikt
erwähnten Problem. (PB3 kurz als Input schalten und PB0 mit Low
vorbelegen und gleichzeitig als Output schalten.)

@Benedikt 10 Bauteile incl. Quarz, Blockkondensatoren und
Signalaufbereitung ?

Autor: bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so etwas gibt es schon mehrfach hier und im anderen forum.
bloss jeder hat eine andere progweise. der eine macht es in c und der
andere in asm.
es wäre schön, wenn man aus dem programm die zeiten für die darstellung
lokalisieren kann. dieses ist bei den anderen nicht so ersichtlich und
ich tue mich darum schwer damit, so etwas zu machen.
drum stelle deine code einmal rein.

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hast du denn vor, möchtest du einen Light-Pen nutzen ?

Autor: Christof Rieger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
Ich habe mal den RC5-Decoder aus dem ATMEL Applet AVR410 dazu
gewurschtelt. Der IR-Empfänger(TFMS5360) wird an PIN 18 angeschaltet.
Auf dem Bildschirm wird der Systemcode und der Commandocode in HEX
ausgegeben. Ich war verblüfft, dass das auf anhieb geklappt hat.

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat jemand zufällig irgendwo so etwas mit einem ATMega in Farbe
rumliegen? Hätte Lust mal ein "Digger" aus meiner Homecomputer-Zeit
zu basteln ;)

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ulrich Radig hat an soetwas mal gebastelt.
http://www.mikrocontroller.net/forum/read-4-161349.html#new

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist aber leider VGA, kein FBAS.

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es müsste aber möglich sein, das Timing für sync und Bildwiedergabe so
anzupassen, das es TV-RGB compatibel ist, zur FBAS-Abmischung kannst du
dann die folgende Schaltung verwenden.

http://www.elv-downloads.de/service/manuals/RFK100...

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ui, das ist ja auch nochmal ein Bauteilegrab ;)

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FBAS ist nicht ganz ohne. Aber viele moderne TV (seit mitte der 90'er)
haben RGB Eingänge.

Autor: Marco S. (masterof)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
abo

Ist FBAS nicht einfacher man muss nur ein Signal erzeugen.
Als bei RGB wo es 3 Signal gleichzeitig und syncron sein muss.

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das FBAS-Signal hat zugegebenermaßen nur eine Bandbreite von 5MHz, dass
würde bedeuten, dass man mit einer Samplingrate von 10MHz und einer
Auflösung von 8Bit ein brauchbares Farbbild erzeugbar wäre. Das
funktioniert sogar wenn man ein vorhandenes Bild in FBAS digitalisiert
und einfach wieder ausgibt. Aber jeder mir bekannter µ-Controller wäre
nicht in der Lage die analoge Farbträgermodulation in echtzeit Digital
zu simuliren, um geziehlt einen Bildpunkt z.B orange werden zu lassen.
Du darft nicht vergessen, das ein Bildpunkt z.B. gelb wird hängt nicht
vom momentanen Spannungswert des Signals ab, sonern von der Phasenlage
des Farbträgers.

Autor: Christof Rieger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Es geht doch !

- Graphikelemente ohne die Senkrechtelücke darzustellen.

Ich lasse das Bit 7 des nachfolgenden Zeichens in der Lücke ausgeben.
Das Bit 7 hat dann doppelte Länge aber die Lücke verschwindet.

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So machten es auch die EGA/VGA Karten früher bei den Blockzeichen im
ASCII.

Gruß Hagen

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alter Bauerntrick ;-)

Autor: Christof Rieger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mal wieder ein Zwischenstand.

Die Bilder sind leider etwas Unscharf.
Ich habe bis jetzt folgendes realisiert:

-Darstellung 40x25 Zeichen
-Statische Graphik-Hadline 320x36 Bildpukte
-Uhr/Datum mit Schaltjahr und Wochentagsberechnung
-Einstellungs Menü mit belibige IR-RC5-Fernbedinung bedienbar

Das Menü enthält:
-Einstellung der Bildlage für engen und weiten Zeilenabst.
-Wahl eines engen oder weiten Zeilenabstands
-Festlegung der Menü Aufruftaste
-Festlegung eines Fernbedinungs Systemcods
-Einstellung Datum/Urzeit (unsinnige Eingaben sind noch möglich)
-Speichrung der Einstellungen im EEPROM

Es fehlt noch:
-TWI-Schnittstelle (I2C)
-Schittstellenprotokoll
-Automatische Sommer-/Winterzeitumstellung

Wer sich das mal live anschauen möchte, im Anhang liegt die passende
Hex und Epp Datai. Die Schaltung lässt sich schnell auf einem
Steckbrett zusammen stecken.

Zur Beschaltung:
Sie ist für den TV-Teil auch auf den Bildern zu erkennen.
In Text:
Grundaufbau ATMega8 mit 16MHz-Quarz und den üblichen Kondensatoren
(Quarz und Betriebsspannung (5V)). Beim Progen etsprechend Fusen !
Sonst:
Pin 14 mit Pin 17 verbinden und daran ein 270 Ohm Widerstand.
an Pin 15 ein 620 Ohm Widerstand (z.Z. 150 + 470 Ohm).
an Masse ein 120 Ohm Widerstand.
Die offenen Anschlüsse aller Widerstände miteinander verbinden und dazu
noch ein 220µF Kondensator mit der positiven Seite schalten.

Das BAS Signal kann man dann an dem negativen Anschluß des Kondensators
und Masse abnehmen.

An Pin 18 einen RC5 tauglichen 5Volt IR-Empfänger gemäß dessen
Datenblatt anschließen. z.B. TFMS 5360 oder TSCP1136.

Mega8 progen - Fernseher anschleißen - Einschalten - Und mit der
Fernbedienung spielen.

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Ding gehört in die Codesammlung! (Zu den anderen
Fernsehbildgeneratoren).
meld mal beim Admin

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für eine Farbausgabe gibts bei Reichelt noch den TDA8501 für 2,90 Euro:
http://www.nxp.com/pip/TDA8501_CNV_2.html
leider "discontinued", aber recht einfach zu beschalten, ähnlich dem
MC1377 ( ebenfalls Reichelt, 2,30 Euro), RGB rein , PAL raus

Autor: Richard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte man auch ein Bild ausgeben, wenn es in den speicher des Atmega
passt? Zb 3-3-2 codiert? wieviel pixel pro zeile könnte man da
darstellen!?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Richard
Meinst du Farbbild ?
Es müssten etwa 120-130 Pixel pro Zeile möglich sein, wenn man den Code
per Schleife macht. Ohne Schleife kommt man auf etwa 210-220 Pixel pro
Zeile, verschwendet aber rund 850-900Bytes.
Wenn man von 200x200 Pixeln ausgeht, benötigt man rund 40kByte für ein
Bild, und das passt somit nicht in die meisten AVRs.
Allerdings kommt mir da gerade so eine Idee, wie das ganze doch
funktionieren könnte.

Vielleicht taucht ja in den nächsten Tagen ein FarbTV-Bildgenerator mit
220x256 Pixel von mir in der Codesammlung auf...

Autor: Richard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne schleife heisst dass du evtl das bild as source in asm ausgibst
oder so? Quasi ein riesen spagetti-code? aber da würde ja nur 1/4 des
code im prinzip für pixel zur verfügung steht, also ldi+out=4 bytes.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ansonsten wird das ganze zu langsam.
Ich arbeite aber gerade an einer anderen Lösung die zu funktionieren
scheint, die besser ist und mit wenig Code ein 8bit Bild mit 250*250
Pixeln erzeugt. Ob man daraus jetzt 256 Graustufen oder 256 Farben
macht ist egal.

Autor: Richard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie machst du das? daten aus dem avrflash laden?
anders geht es ja nicht, allerding bei 256 farben/graustufen hättest du
ja 62,5kan daten

Autor: Benedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier das erste Testbild.
Auflösung: 256x252 bei 256 Farben.

Die Bilddaten stehen in einem externen 64kByte SRAM, und können zur
Laufzeit verändert werden.
Da ganze läuft sogar im Hintergrund (ca. 70% CPU Auslastung) und ist in
ein C Programm einbindbar. Von den internen 512Byte SRAM werden dann nur
 <5Byte für die Pixel/Zeilenzähler benötigt.

Der RAMDAC macht nur noch Probleme (die Streifen oben und unten im
Bild), da dieser ein recht altes Design ist und einen kontinuierlichen
Pixeltakt haben möchte.

Autor: Richard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ah ein ramdac. dh dem gibst du den takt und der macht den rest?

Autor: Benedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nein, der RAMDAC ist nur ein DAC, er hat halt zusätzlich eine Tabelle
mit 256 Einträgen, um jedem Eintrag eine Farbe zuzuordnen. So kann man
den DAC per Software entweder auf 256 Graustufen, oder aber auch auf
RGB, mehr rottöne usw. eben so wie man gerade die Farbpalette braucht
umstellen.
Dieser RAMDAC bekommt vom AVR pro Pixel ein Byte zugeschoben.
Um schnell genug auf den RAM zugreifen zu können, kommt nur der
mega8515 in Frage, da der ein Speicherinterface hat.

Wenn man mit einer festen Farbpalette zufrieden ist, dann kann man den
RAMDAC auch durch ein 8bit Latch (HC574) und einen DAC aus Widerständen
ersetzen.
Dann benötigt man nur den mega8515 mit 64kB SRAM und das Latch.

Autor: Richard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AAHH. ok cool. also machst du im prinzip nichts anderes als daten
empfangen und in sram schreiben, und dann einfach nur zyklisch auslesen
und an den dac geben. schreibst du die sync daten mit in den sram?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, die Sync Daten erzeuge ich mittels Timer im PWM Modus. Über den
Timer Interrupt werden die Daten synchron zum Sync Impuls ausgegeben.

Autor: Richard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
okay. timer im pwm modus? kannst du das mal näher erklären? du erzeugst
ne pwm am ausgang?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, die Periodendauer beträgt 1024 Takte, das macht bei 16MHz genau
15625Hz. Die Impulsbreite beträgt 75Takte, während dieser Zeit ist der
Ausgang low. Das ergibt genau 4,7uS, genau passend für den HSync
Impuls.

Autor: Richard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist ja mal geil. auf  so ne idee zu kommen. das heisst du gibst nur
zum richtigen moment die bilddaten aus.. das hsync kommt wegen der
hardware immer zum richtigen zeitpunkt

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja. Und der VSync Impuls wird durch Invertieren des PWM Signals erzeugt:
Dazu ändere ich nur das COM1A0 bit im Timer Register. Die Einstellung
wird synchron mit dem nächsten Impuls übernommen.

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Benedikt, du wirst mir langsam unheimlich, hast du eine
Zeitmaschine ? Um 9:44 postest du "Ich habe da eine Idee" und genau 7
Stunden später präsenentiers du ein sauberes Farbbild mit einer Frau,
die von einem Felsen springt. In der Zeit habe ich nichteinmal meine
Gedanken sortiert.
In 7 Stunden Hardware aufbauen, Sourcecode erstellen und Debugen. Ich
werde gerade blas vor Neid.

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch 'ne Frage:
Benutzt du den RGB Eingang des Fernsegeräts. Oder hast du da eine
kompakte (einfache) Schaltung zur FBAS modulation. Ich kenn da nur den
Aufbau von ELV gibt es da etwas weniger aufwendiges.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verwende einen AD725, der benötig außer einem Quarz nur noch
Widerstände als Beschaltung. Leider ist dieser nichtmehr erhältlich.
Am Eingang bekommt dieser RGB + H/V Sync, am Ausgang erhält man Y/C und
FBAS, je nach Pinbelegung in PAL oder NTSC.

Die Software konnte ich großteils aus meinem 640x480 LCD Controller und
dem TV Terminal zusammenkopieren. Die Software war nach etwa 2h fertig,
das längste hat der Aufbau der Schaltung gedauert.

Autor: Richard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

sag mal wenn man angenommen nen Mega128 nehmen würde, könnte das Bild
auch im Flash stehen, anstelle des Sram? oder benötigt asm da mehr
zyklen als zurgriffszeit?

Autor: Sebastian Heyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey die idee ist klasse,
ich bastel grad an meinem Bild aus dem Flash-Projekt aber meine Teile
die beim C bestellt habe lassen auf sich warten.. Wenn Man das in nem
Flash vom COntroller ablegen könnte dann könnte ich mir das TTL-Grab
sparen... :-))

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Flash benötigt länger, da man den Pseudo DMA Modus nicht nutzen kann:
Der RD\ Impuls der den externen RAM aktiviert, dient auch als
Pixeltakt, d.h. die Pixeldaten laufen garnichterst durch den AVR,
sondern direkt vom RAM zum DAC Latch.
Die Bildausgabe besteht aus 256x ld dummy, Z+
Das verschwendet zwar  512Bytes Flash, aber das ist noch akzeptabel.
Würde man das Bild im Flash ablegen, würde der Befehl so aussehen:
lpm r16, Z+
out portd, r16
Und das etwa 210 mal. Da hier immer 4 Takte pro Pixel benötigt werden,
kommt man so nur auf etwa 210Pixel pro Zeile.

Wenn man wirklich viel Flash verschwenden möchte, kann man auch
ldi r16, Pixelwert
out portd, r16
verwenden.
Und das 256x pro Zeile und 256x pro Bild. Allerdings benötigt man dann
256kByte Flash für ein 256x256 Bild. Dafür ist aber eine theoretische
Auflösung von 432x288 Pixeln möglich.

Autor: Sebastian Heyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mmhh assembler ist immer der krampf für mich... woher kommt das bild,
dass du anzeigst? das könnte man doch aus dem flash laden, oder?

Autor: Sebastian Heyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also vom flash in den sram

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das wäre möglich.
Im Moment lade ich das Bild vom PC per UART.
Wenn ich das ganze außreichend stabil hinbekomme, packe ich das ganze
in eine Assembler Datei (.S) die man in ein C Programm einbauen kann
und dann ganz bequem mit Funktionen wie
setpixel(x,y,farbe)
oder
writetext(x,y,farbe,*text)
das Bild beschreiben kann.

Autor: Sebastian Heyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann man dich dabei irgendwie unterstützen? evtl mit hardware?? ich
hätte noch ein mega128 board über, das würde ich spendieren, dann
könnte man ein default-hintergrundbild im flash ablegen..

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe die Software jetzt in einen recht stabilen Zustand gebracht:
http://www.mikrocontroller.net/forum/read-4-430587.html#new

Für den mega128 sind aber noch kleine Modifikationen notwendig da
dieser weniger externen Speicher adressieren kann. Damit sind dann
"nur" 256x240 Bilder möglich.

Autor: Sebastian heyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal ne frage. du gibst beim vsync nur 3 impulse invertiert aus, ich hab
schonmal ne grafik gesehen, wo das 4 impulse sind. Wo ist der
unterschied?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sind 4 Bildzeilen. Bei einem PAL Signal dauert der VSync Impuls 5/2
also 2,5 Zeilen. Der VSync Puls ist also sogar länger als orginal.

Autor: Sebastian heyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
okay da ist die grafik die ich hatte nicht richtig... danke dir. übrigen
super projekt. werd ich wenn meine frau mir mal zeit gibt :-)) mal
nachbauen

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,
Habe da eine bischen Crazzy Idee, Du bist ja so ein Turboentwickler.
Wenn man einen 128kByte RAM nimmt und anstatt dem Adress-Latch ein
schnelles Register verwendet, dass auf die fallende Flanke von ALE
reagiert und dazu eine Logig aufbaut, Die mit der Steigenden Flanke von
RD eine 1 bringt und mit der fallenden Flanke von ALE eine 0 bring, und
das Signal als weiteres Adressbit nutzt, dann hätte man 512 Bildpunkte
pro Zeile. Naturlich mus dises Aressbit auch über ein IO-Pin
ansteuerbar sein um das RAM Pageweise laden zu können.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Idee ist eigentlich nichtmal so schlecht, allerdings wird das Timing
äußerst kritisch, da zu diesem Zeitpunkt die A0-7 noch nicht gelatched
wurde. Vermutlich wird das ganze aber sehr aufwendig mit dem ganzen Bit
umgeschalte. Bei meiner jetzigen Schaltung war mein Ziel mit möglichst
wenig Aufwand und Standardbauteilen ein Farb-TV Bild zu erzeugen.

Bei mehr Auflösung würde ich eher einen CPLD nehmen, da ich faul bin
und gerne wenig Löte. Mit diesem habe ich schon 512x288 mit 2 Seiten
Bildspeicher erreicht (512kByte SRAM). Hier reicht dann auch das SRAM,
der CPLD und der AVR als High-Level Controller.

Alternative: LCD Controller wie der S1D13504, der mit 2MByte DRAM
800x600 unterstützt, und sogar ein Interface für einen RAMDAC besitzt.
Dieser bietet eigentlich das beste Preis/Leistungsverhältnis (15€ +
DRAM) aber 0,4mm Pinraster sind echt übel zu löten.

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
+5V
             |
             _
             _4,7kOhm
      100pF  |
ALE ---||-------|<|------ A17
                     |
RD  ---||-------|>|---
             | 4,7 kOhm
              -====-- GND

Wenn der Speicher ein C-Mos ist hat er eine Eingangskapazität von
ca.5pF und einen Eingangswiederstand >10MOhm. Das heißt, wenn man den
Pin mit einem Pegel "anschießt" so hält er diesen Pegel für eine
ausreichende Zeitdauer. Das A17 könnte dann mit der obenstehenden
Schaltung erzeugt werden. Die Dioden müssen nur Schnell genug sein.
Um auf A17 mit den AVR zugreifen zu können könnte man einen 74AHC153
einschleifen.

Was auch gehen könnte XOR von ALE und RD und damit ein FlipFlop mit Set
und Reset Eingängen Takten. Über Set und Reset könnte man die Page beim
Schreiben wählen. Mit dem XOR kann man auch das Ausgangsregister
Ansteuern.
Der Speicher braucht eine Zugriffszeit kleiner 30nS und wärend der
Ausgabe muß RD vom Speicher Daueraktiv sein und der Datenbus muß vom
AVR getrennt sein 74HC254.

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun bin ich bei der TWI (I2C) Schnittstelle angekommen. Ich stelle mir 
das follgende Protokoll vor. Wäre das aus Anwendersicht so O.K. oder 
könnte das zu größeren Problemen führen.

Host zu CRT (Host als Master)

TWI-Initialisierung:

 {0,W},'R','-','T','R','O','N','/','C','R','T',CRT_Adr,Host_ADR

Sollen mehrere CRT an einem Bus betrieben werden, so muss die Resetline 
des CRT vom Host gesteurt werden.


Bilddaten:

 {CRT_Adr,W}, Y_POS,|cNT_9&8|X_POS|,CNT_7-0, (CNT+1)*Data

Y_POS:     0 bis 24 (Wenn Uhr (RTC) aktiv beeinflußt die Zeile 24 
Uhrzeit und Datum.)
X_POS:     0 bis 39
CNT_9&8|CNT_7-0:0 bis 999

Nach der Übertragung darf der Host erst Daten an den CRT senden, wenn er 
ein TWI-Start sendet.

Einstellungen setzen:

 {CRT_Adr,W}, 
|1|E_RTC|E_ENG|E_Y_Weit_Oben|E_Y_ENG_Oben|E_X_Links|E_IR_SYSTEM|E_IR_MEN 
Ü|, 
|N.C.|RTC|ENG|Y_Weit_Oben|,Y_ENG_Oben,X_Links,IR_SYSTEM,IR_MENÜ_SYS,IR_M 
ENÜ_COM

E_???:    Wenn gesetzt, wird der Wert geändert, nicht gesetzte Werte 
dürfen nicht übertragen werden,
    RTC,ENG und Y_Weit_Oben fällt nur weg, wenn alle drei auf 0 gesetzt.

RTC:    Wenn gesetzt Uhr aktiv
ENG:    Wenn gesetzt enger Zeilenabstand
Y_Weit_Oben:  0 bis 30 Zeilenabstand von oben bei weitem Zeilenabstand
Y_ENG_Oben:  0 bis 55 Zeilenabstand von oben bei engem Zeilenabstand
X_Links:  0 bis 103 Spaltenabstand von Links
IR_SYSTEM:  0 bis 31 RC5-Systemcode der als Match gekenzeichnet werden 
soll
IR_MENÜ_SYS:  0 bis 31 RC5-Systemcode für dem Menü Aufruf
IR_MENÜ_COM:  0 bis 63 RC5-Commandcode für dem Menü Aufruf

Systemstatus lesen:

 {CRT_Adr,W}, |0|0|1|E_Zeit|E_Datum|E_Wochentag|E_Bildpos|E_IR|,{R}, 
|0|RTC|SS,MinMin,|0|RTC|TT,MM,JhJh,JlJl,|0|RTC|WTag,|0|0|ENG|Y_Weit_Oben 
|,Y_ENG_Oben,X_Links
    ,IR_SYSTEM,IR_MENÜ_SYS,IR_MENÜ_COM

E_???:    Wenn gesetzt werden die entsprechenden Daten-Blöcke vom CRT 
gesendet
RTC:    Wenn gesetzt Uhr aktiv (Nur dann ist Datum,Uhrzeit und Wochentag 
gültig)
SS:    StundeStunde im BCD-Format
MinMin:    MinuteMinute im BCD-Format
TT:    TagTag im BCD-Format
MM:    MonatMonat im BCD-Format
JhJh,JmJm:  JahrJahrJahrJahr im BCD-Format
Rest wie oben erleutert.

CRT zu Host (CRT als Master)

TWI Stop:

Teilt dem Host mit, dass der CRT seine TWI deaktiviert

 {Host_ADR,W}, CRT_ADR|0|, 0

TWI Start:

Teilt dem Host mit, dass der CRT wieder empfangsbereit ist.
 {Host_ADR,W}, CRT_ADR|1|

Bild Neuaufbau anfordern:

Der CRT benötigt eine Neuübertragung aller Bilddaten

 {Host_ADR,W}, CRT_ADR|0|, 1

IR-RC5 Daten:

Überträgt den letzten IR-Code

 {Host_ADR,W}, CRT_ADR|0|, |1|IR_SYSTEM, IR_COMMAND

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine Idee wie man auch langsame Speicher verwenden kann: Man 
liest eine information aus dem Speicher und zeigt sie an, dann kommt ein 
schwarzes Pixel. Im nächsten Durchlauf werden die anderen Pixel dunkel 
getastet und die vorher dunklen Pixel bekommen die Information aus dem 
Speicher.

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Prinzip geht das, aber das Bild dürfte sehr unruhig werden,
Um hier keine Verwirrung aufkommen zu lassen, bei dem TWI-Protokoll geht 
es um den BW-CRT-Controller.

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibt es SRAMs wie den 628512 mit 15ns zugriffszeit oder kürzer? aber 
eben mit mehr als 32kB kapazität?

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@stefan

ist vielleicht oversized und schwer beschaffbar, aber es gibt von ISSI 
sehr schnelle SRAMs in allen erdenklichen größen und konfigurationen.
auf meinem Spartan3 sitzen 2 256K*16 Bit 10ns Speicher. Das Teil heißt 
dann IS61LV25616AL. Sind aber nicht leicht zu bekommen (habe die nur bei 
Farnell gefunden, und das für 10 Euros, in einem nicht schön zu lötenden 
gehäuse)
würde mich aber auch mal interessieren was es für schnelle (und vor 
allem günstige) rams gibt (15-20ns wär voll ok).

gruß
rene

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.