Hallo, erstmal vorweg, ich habe Google und die Forensuche benutzt. Ich könnte man ein paar Denkanstöße oder Lösungsansätze für folgendes Problem gebrauchen: Ein Mega161 soll (neben ein paar anderen Aufgaben) ein Bild auf dem Fernseher erzeugen. Es soll möglichst ein Composite-Signal werden. Zur Not auch FBAS das ich dann zu Comp. mische. RGB ist eigentlich nicht möglich. Zwar über ein extra IC der das RGB-Signal wieder umwandelt aber ich wollte so wenig wie möglich Bauteile verwenden. Das Bild soll in einem externen Flashspeicher angelegt werden Damit ein einfacher austauschbar ist und nach Stromausfall auch noch vorhanden ist. Auflösung 320X240, Farbtiefe s/w oder 16 Graustufen. 16 Farben wären noch besser. Je nachdem was technisch noch möglich ist. Das erste Problem. Was für ein Bildformat kann/muß ich dafür nehmen? Ich denke mal JPG geht nicht da die Bilddaten sicherlich unkompriemiert vorliegen müssen. Auch wenn nicht wüsste ich nicht wie ich JPG einfach dekomprimiere. Ich dachte an BMP oder GIF. Die zweite Frage kann ich mir selbst beantworten wenn ich weiß was für ein Format ich nehmen muß. Sie wäre gewesen, wie groß der Flash sein muss. 3. Problem: Am Mega161 hätte ich nur noch etwa 10 I/O-Ports noch frei. Was für ein Speicher wäre da am besten. Ich habe schon überlegt ein mit I2C-Bus? 2 Leitungen sind immer übrig. Wie schnell muß der Speicher sein? Reichen 120nS? Für weitere Tipps, Schaltungs- und BASCOM-Beispiele wäre ich auch dankbar. Aber ich denke mal das ich den Teil in Assembler programmieren muß, oder? Das Bild soll übrings nur max. 30 sec. erzeugt werden. Die anderen Aufgaben können in dieser Zeit vernachlässigt werden. Danke schonmal für eure Hilfe!
Da thema war doch erst gerade? In Elektor hatten die mal ein kleines Spiel programmiert, über nen ATMEL. Glaub ich hab die Ausgabe irgendwo. Ich such mal. Ach ja, Composite und FBAS Signal meint IMHO das Selbe. Gruß Chriss
Wo war es grade? Meinst du den Testbildgen.? Das wäre nett wenn du die Elektor raussuchen würdest. Da ist sowas idr gut beschrieben. Mit FBAS meinte ich den 4-pol. SVideo-Ausgang. Mag aber auch sein das ich da falsch liege. Zumindest meinte ich den ;)
Chriss hat IMHO* recht, wenn für ihn Composite und FBAS dasselbe sind. Beides besagt nur, daß die Synchronimpulse in das Videosignal eingebettet sind und nicht getrennt übertragen werden - das ist im Videobereich auch üblich so. Der Knackpunkt hier dürfte die Erzeugung eines *Farb*signales (PAL) sein, das wird so ohne weiteres nicht ohne zusätzliche Hardware drin sein. Eine gute Ausgangsgrundlage dürften die diversen Schaltpläne für Videotestbildgeneratoren sein, die man zuhauf im Netz findet. Was das eingangs erwähnte 3. Problem betrifft, so lässt sich das leicht ausrechnen. (Ich gehe hier der Einfachheit halber von einer 256-Graustufen-Bitmap mit 1 Byte/Pixel aus). Eine Videozeile incl. Austastlücke etc. ist 64 µs lang (bei 16.625 kHz Zeilenfrequenz). Ziehen wir davon etwa 20% Overhead (eben Austastlücke etc.) ab, so kommen wir auf ca. 50 µs nutzbare Zeilendauer. Die ist durch die 320 Pixel horizontale Auflösung zu teilen, was etwa 156 ns/Pixel ergibt. Dafür reichen zwar 120 ns-RAMs knapp aus, aber die daraus resultierende Datenrate von 6.4 MByte/s wird ein AVR niemals in Software zustandebekommen. Fazit: Ohne spezielle Hardwareunterstützung ist da nichts zu löten. *) genauer: IMNSVHO (not so very)
Hallo, @Chriss: du meinst wahrscheinlich den Artikel "TV-Tennis" aus Elektor Juni 2003. Da wurde das Videosignal mit einem AT90S8515 und drei Widerständen erzeugt. Hier noch ein Link auf einen Artikel von ATMEL. Ist zwar NTSC, aber vielleicht trotzdem ganz interessant: http://www.atmel.com/dyn/resources/prod_documents/mega163_3_04.pdf Thomas
Was für ein Signal erzeugt wird ist ja in erster Linie nicht so wichtig. Chrom. und Lum. können ja zu Composite gemischt werden. Mein Gedanke (der ja auch völlig falsch sein kann) ist aber das ein Testgenerator anders arbeitet als ich mir das für meine Schaltung vorstelle. Simpel ausgedrück könnte der Generator ja für 64µS weiss erzeugen und danach schwarz. Und es erscheint ein grauer Bildschirm. Meine gröte Sorge ist ja, ob und wenn ja wie ich ein beliebiges Bild erzeuge ohne jedesmal ein neues Programm zu laden. Wenn ich es richtig verstanden habe wäre es schonmal richtig ein BMP dafür zu nehmen. 90nS Flashspeicher gibt es ja ach. Ich dachte erstmal an worst case mit 120. Das Problem wird also die Datenübertragung vom ext. Speicher zum AVR sein? Irgendwie kann ich mir das garnicht vorstellen. Selbst mit PICs werden ja "Telespiele" gebaut. Aber das kommt ja ehr einem Testgenerator ähnlich.
Es ist schon ein Unterschied, ob ein Bild (bmp o.ä.) aus einem Speicher ausgelesen und in ein Videosignal umgewandelt werden soll, oder ob nur relativ einfache Bitmuster generiert werden sollen. Auch die mit PICs und ähnlichem realisierten Testbildgeneratoren geben kein "Bild" im eigentlichen Sinne aus, sondern erzeugen mehr oder weniger einfache Signalmuster - und die haben vor allem nicht die erwähnte Auflösung von 320x240 Pixeln. Also: Möchtest Du ein Gerät bauen, das Bilder anzeigt, oder das Testmuster ausgibt? Letzteres kann man in der Tat mit einem µC in Software realisieren, ersteres nicht. Wie ich bereits darlegte, ist zur Darstellung eines Bitmaps mit 320 Pixeln pro Zeile bereits ein Pixeltakt von knapp 6 MHz erforderlich (64 µs Zeilendauer). Selbst wenn man die Austastlücke und ähnliches geflissentlich ignoriert, kann so ein Pixeltatk von 4 MHz nicht unterschritten werden. Bei einer Farbdarstellung (256 Graustufen) muss folglich mit einer Datenrate von 6 MByte/s Speicher ausgelesen und an einen D/A-Wandler übergeben werden. Deutlich einfacher wird es, wenn mit monochromen Bitmaps gearbeitet wird, dann achtelt sich die Datenrate, weil dann mit einem 8bit-Schieberegister gearbeitet werden kann, das nur alle acht Pixel mit Inhalt gefüllt werden muss. Der resultierende Schieberegisterfülltakt von 750 kHz könnte bei geeigneter Programmierung möglicherweise tatsächlich in Software von einem µC bedient werden.
http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2004/jcc72/results.html hatte ich vor längerer zeit mal gefunden als ich auf der Suche nach einem Code für die Ansateuerung einer PS/2 Maus war. Die kommen allerdings aber nur auf 125x70 Pixel un verwenden NTSC.
Serielles Terminal, erzeugt PAL-BAS-Signal. AT90S8515, 8MHz, 160x96 Pixel http://members.ozemail.com.au/~intello/video_s_w.htm Verschiedene Spiele, erzeugen NTSC-BAS-Signal, ATMega32, 16MHz, 128x100 Pixel http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/ Framework für BAS-Signal, AT90S8535, 8MHz, 64x56 Pixel http://home.student.uu.se/r/rost7041/avr/video_game/index.html Voltmeter, erzeugt BAS-Signal, AT90S1200, 16MHz http://www.geocities.com/ariccibitti/dvm.htm Bingo-Spiel, erzeugt PAL-RGB-Signal, AT90S1200, 16MHz http://www.geocities.com/ariccibitti/bingo.htm Farbbalken Generator, erzeugt PAL-FBAS, AT90S2313, 17,7MHz(!) http://www.serasidis.gr/colour_bar_gen.htm Verschiedene Spiele in Farbe, PAL-FBAS, UBICOM-SX CPU, 52MHz http://www.rickard.gunee.com/projects/video/sx/gamesys.php Mahpong-Spiel, erzeugt PAL-BAS, AT90S8515, 8MHz, 48x30 Pixel, 4 Graustufen http://jkdesign.de/avrproject/Die%20MAHPONG%20Seite.htm OSD, NTSC, AVR ATmega, 160x100 Pixel http://www.avrfreaks.net/Freaks/freakshow.php?action=2&projectid=135 (Login erforderlich) Uhr und Pong-Spiel auf PIC16C61, 256 Zeilen, 60Hz, Pseudo-NTSC http://www.brouhaha.com/~eric/pic/pictock.html Snake auf AVR ATmega163, 48x32 Pixel, NTSC, Farbe (durch AD724) http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2002/carlo/index.html
Ich war j aauch der Meinung, das man dies hier nicht mit einem Testgenerator vergleiche kann. 320X240 war auch nur mal eine Zahl auf die ich mich ja nicht festgelegt habe. Und das s/w oder 16 Graustufen auch reichen würde habe ich ja auch schon gesagt. Und wie gesagt, Bilder ausgeben, ja nachdem wie meine Laune ist ein anderes. Also kein festes Testbild. Wenn ich 320 X 240 X 4 Bit (16 Farben) nehme, komme ich auf 38400Bytes/37,6KB. Wäre schonmal ein 64K-Speicher. Aber wenn ich es richtig verstanden habe, wäre sogar 1Bit schon eng. Deshalb hab ich ja geragt, ob es überhaupt möglich ist. Was gäbe es denn sonst für Alternativen? Dann kann es auch wieder etwas mehr Hardwareaufwand sein. z.B. mit nem RGBtoPAL wie AD724 (halt nur für PAL und nicht NTSC) und von mir aus auch ein extra µC. Ziel ist es das ich vom PC aus ein Bils in einem externen Speicher laden kann und dieses dann auf dem Fernseher angezeigt werden kann wenn der Mega161 dafür ein Go gibt. Das soll auch keine HighEnd DVD-like Lösung werden. Nur eine kurze Zeit ein Bild um diese Zeit optisch zu überbrücken. Optimal wäre noch eine Soundausgabe dazu ;) @Markus, Vielen Dank für die vielen Links!!! Einige kannte ich schon, aber ein großteil davon hab ich noch nicht gefunden. Ich werd mch da nochma durcharbeiten. Leider sieht es auf den ersten Blick alles so aus als ob die verwendeten µC das Bild selbst generieren. Aber mal schauen was so dabei ist. Wenn ich so an die Soundausgabe denke bietet sich ja schon fast eine MMC/SD Karte an. Würde die Transferrate da für Bilder und Sound reichen?
Wenn Du nur ein einzelnes Bild willst: Nimm einen Zähler zur Adresserzeugung. und RAM und gib das Bild damit aus. Wenn Du dann den AVR nur für das reinladen des Bildes nimmst sollte das kein Problem sein. Wenn man das nur schnell genug macht, dann kann man damit auch Farbe ausgeben.
> Wenn ich so an die Soundausgabe denke bietet sich ja schon fast > eine MMC/SD Karte an. Würde die Transferrate da für Bilder und > Sound reichen? Theoretisch ja, praktisch nein. Die zur softwaregesteuerten Ausgabe einer monochromen Bitmap mit 320 Pixeln pro Zeile erforderliche Datenrate von 750 kByte/s stellt zwar eine SD-Card nicht vor sonderliche Probleme, aber der AVR, der die SD-Card nur durch "Bitwackeln" ansprechen kann, der wird das nicht hinbekommen. Wenn allerdings schon von Speicherkarten und dem Abspielen von Inhalten daraus auf Fernseher die Rede ist - das Rad muss nicht unbedingt mehrfach erfunden werden, sowas wird für den Consumermarkt zu übelst günstigen Preisen produziert, die bei Selbstbau die Materialkosten deutlich unterbieten. (Ich denke da an diese kleinen Kästchen, die man an die Glotze anschließt und in die man Speicherkarten aus Digitalkameras einsetzen kann) Dennoch: Wird externe Hardware verwendet, dann genügt ein SRAM, eine Takterzeugung und einige Zählerbausteine, um einen D/A-Wandler zur Bilderzeugung anzusteuern. Der AVR muss über Adress- und Datenmultiplexer mit diesem SRAM verbunden werden (zum Füllen mit Inhalten), wobei aufgrund des beschränkten Adressraumes sich entweder eine Lösung mit Bankswitching oder aber mit sequentiellen Hochzählen eines Adresszählers anbietet (AVR schreibt immer in gleiche Adresse, externe Hardware bestimmt Adresse für Schreibvorgang). Dann kann der AVR auch Bilder mit mehr als 64 kByte von einem wie auch immer gearteten Speichermedium holen und im Bildpuffer ablegen. Audiowiedergabe ließe sich wie bei 43 Milliarden anderen mp3-Player-Projekten auch realisieren.
Bei SOund dachte ich auch an die vielen MP§-Player Projekte. Oder ganz simple mit Waves ich denke mal die könnte man ohne weiteres abspielen. Aber diese Kisten von denen du sprachst um die SD-Karten am Fernseher abzuspielen kenn ich nicht. Ich hab auf die schnelle auch nix gefunden (außer Digicams). Kannst du mir sagen, wie die sich genau nennen? Thx :) Oder wenigstens in welcher Preisklasse es die gibt. Ich befürchte ja auch die sind für diese Anwendung etwas overdressed. Ich werd mich mal du die ganzen Links arbeiten und dann das ganze wohl auf eine kleine Animation beschränken :( Aber das wäre ja schonmal mehr als nur ein schwarzer Bildschirm ;)
http://www3.alternate.de/html/shop/productDetails.html?artno=MR%23D10& Zwar zur Zeit bei denen nicht lieferbar, aber vom Preis (49 EUR) her wohl unschlagbar.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.