{"id":2022,"date":"2013-01-07T12:01:27","date_gmt":"2013-01-07T10:01:27","guid":{"rendered":"http:\/\/www.brennecke.org\/?page_id=2022"},"modified":"2013-04-19T10:34:29","modified_gmt":"2013-04-19T08:34:29","slug":"signalgeneratoren-zur-erzeugung-der-synchronimpulse","status":"publish","type":"page","link":"https:\/\/www.brennecke.org\/?page_id=2022","title":{"rendered":"Signalgeneratoren zur Erzeugung der Synchronimpulse"},"content":{"rendered":"<p>VGA- und FBAS-Signale liegen in Bereichen, die ein AVR-Mikrocontroller gut erzeugen kann. Dessen Taktfrequenz liegt bei 20 MHz &#8211; er hat damit f\u00fcr jede Zeile 528 Takte bei SVGA, 634 Takte bei VGA bzw. 1280 bei FBAS Takte Zeit.<\/p>\n<p>Warum \u00fcberhaupt ein Mikrocontroller? Die Sync-Signale k\u00f6nnten direkt genutzt werden, um die ben\u00f6tigten S\u00e4gezahnsignale zu erzeugen. Darauf gibt es zwei Antworten:<\/p>\n<ul>\n<li>Die Nutzung der externen Sync-Signale zwingt das Bild in ein sehr starres Raster. Da insbesondere bei VGA auch ein sehr exaktes Timing vorliegt, bei dem der eigentliche Sync-Impuls nur einen kleinen Teil der gesamten R\u00fccklaufzeit umfasst, hat man keine Regelm\u00f6glichkeiten f\u00fcr eine Bildlagekontrolle. Der Mikrocontroller hilft, die R\u00fccklaufsignale von diesem starren Raster zu entkoppeln, so dass man die Bildlage sehr genau justieren kann.<\/li>\n<li>Der Mikrocontroller kann zudem auch selbst Sync-Signale erzeugen, wenn kein externes Signal anliegt. Er kann damit als selbst\u00e4ndiger Signalgenerator arbeiten.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/03\/Schaltplan-BRE-Modul.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2320\" alt=\"Schaltplan BRE-Modul\" src=\"http:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/03\/Schaltplan-BRE-Modul-1024x634.png\" width=\"640\" height=\"396\" srcset=\"https:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/03\/Schaltplan-BRE-Modul-1024x634.png 1024w, https:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/03\/Schaltplan-BRE-Modul-300x185.png 300w, https:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/03\/Schaltplan-BRE-Modul.png 1606w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Um die Signale m\u00f6glichst optimal aufbereiten zu k\u00f6nnen, wurde eine Kombination aus zwei AVR-Mikrocontrollern vom Typ ATMega88 gew\u00e4hlt. Diese Chips k\u00f6nnen mit maximal 20 MHz getaktet werden, bieten drei Eingangs- bzw. Ausgangsgruppen an und k\u00f6nnen \u00fcber zwei Interrupt-Eing\u00e4nge von au\u00dfen zur Arbeit angeleitet werden.<\/p>\n<p><a href=\"http:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/01\/Signalgeneratoren.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"Signalgeneratoren\" src=\"http:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/01\/Signalgeneratoren.png\" width=\"626\" height=\"736\" \/><\/a><\/p>\n<h2>Der Horizontalgenerator<\/h2>\n<p>Der Horizontalgenerator (im Schaltbild der untere Mikrocontroller) wird mit einem Quarz bei 20 MHz getaktet. Um die horizontalen Synchronimpulse zu erzeugen, besitzt der Mikrocontroller mehrere Arbeitsmodi, die an den Eing\u00e4ngen eingestellt werden k\u00f6nnen:<\/p>\n<ul>\n<li>FBAS extern: Der Mikrocontroller reagiert dann auf Impulse an seinem Eingang INT0. Gem\u00e4\u00df der Spezifikation des FBAS-Signals wird die fallende Flanke des Signals genutzt (negative Sync-Impulse). Am Ausgang C0 des Mikrocontrollers wird dann ein um eine Zeile verz\u00f6gertes Sync-Signal ausgegeben, dessen exakte Position \u00fcber einen Schalter noch nachgeregelt werden kann &#8211; das ist die Zeilenlagekorrektur.<\/li>\n<li>VGA\/SVGA extern: Der Mikrocontroller reagiert dann auf Impulse an seinem Eingang INT1. VGA liefert negative Sync-Impulse, SVGA hingegen positive. Da heute Ger\u00e4te verf\u00fcgbar, die sich nicht unbedingt an diese Spezifikation halten, kann die Erkennung der Taktflanken von &#8222;spezifikationskonform&#8220; zu &#8222;reverse Sync&#8220; ge\u00e4ndert werden. Dann reagiert der INT1-Eingang auf die steigende bzw. fallende Flanke, wenn die Spezifikation eigentlich das Gegenteil voraussetzt. Am Ausgang C0 des Mikrocontrollers wird dann ein um eine Zeile verz\u00f6gertes Sync-Signal ausgegeben, dessen exakte Position \u00fcber einen Schalter noch nachgeregelt werden kann &#8211; diese Zeilenlagekorrektur arbeitet exakt wie bei FBAS. F\u00fcr die Unterscheidung von VGA und SVGA ist ein spezieller Eingang vorgesehen, der bspw. mit einem Schalter versehen werden kann.<\/li>\n<li>FBAS intern: Der Mikrocontroller erzeugt timing-gerechte FBAS-Signale ohne Triggerung \u00fcber INT0. Es wird zudem am Ausgang B0 auch das vertikale Sync-Signal ausgegeben. Signale mit h\u00f6herer Taktung (50\/100\/200\/400 Hz und 15625\/31.250Hz\/62.500\/125.000 Hz) stehen dann an den Ausg\u00e4ngen B1-B4 bzw. C1-C4 zur Verf\u00fcgung.<\/li>\n<li>VGA intern: Der Mikrocontroller erzeugt timing-gerechte VGA-Signale ohne Triggerung \u00fcber INT0. Es wird zudem am Ausgang B0 auch das vertikale Sync-Signal ausgegeben. Signale mit h\u00f6herer Taktung (60\/120\/240\/480 Hz und 31.400\/62.800\/125.600\/251.200) stehen dann an den Ausg\u00e4ngen B1-B4 bzw. C1-C4 zur Verf\u00fcgung.<\/li>\n<\/ul>\n<h2>Der Vertikalgenerator<\/h2>\n<p>Der Vertikalgenerator (im Schaltbild der obere Mikrocontroller) wird aufgrund der geringen Anforderungen an die Betriebsfrequenzen mit seinem internen Taktgenerator mit 8 MHz getaktet. Um die horizontalen Synchronimpulse zu erzeugen, besitzt der Mikrocontroller mehrere Arbeitsmodi, die an den Eing\u00e4ngen eingestellt werden k\u00f6nnen:<\/p>\n<ul>\n<li>FBAS extern: Der Mikrocontroller reagiert dann auf Impulse an seinem Eingang INT0. Gem\u00e4\u00df der Spezifikation des FBAS-Signals wird die fallende Flanke des Signals genutzt (negative Sync-Impulse). Am Ausgang C0 des Mikrocontrollers wird dann ein um ein Bild verz\u00f6gertes Sync-Signal ausgegeben, dessen exakte Position \u00fcber einen Schalter noch nachgeregelt werden kann &#8211; das ist die Bildlagekorrektur.<\/li>\n<li>VGA\/SVGA extern: Der Mikrocontroller reagiert dann auf Impulse an seinem Eingang INT1. VGA liefert negative Sync-Impulse, SVGA hingegen positive. Da heute Ger\u00e4te verf\u00fcgbar, die sich nicht unbedingt an diese Spezifikation halten, kann die Erkennung der Taktflanken von &#8222;spezifikationskonform&#8220; zu &#8222;reverse Sync&#8220; ge\u00e4ndert werden. Dann reagiert der INT1-Eingang auf die steigende bzw. fallende Flanke, wenn die Spezifikation eigentlich das Gegenteil voraussetzt. Am Ausgang C0 des Mikrocontrollers wird dann ein um ein Bild verz\u00f6gertes Sync-Signal ausgegeben, dessen exakte Position \u00fcber einen Schalter noch nachgeregelt werden kann &#8211; diese Bildlagekorrektur arbeitet exakt wie bei FBAS. F\u00fcr die Unterscheidung von VGA und SVGA ist ein spezieller Eingang vorgesehen, der bspw. mit einem Schalter versehen werden kann.<\/li>\n<\/ul>\n<p>Bei FBAS intern und VGA intern arbeitet der Mikrocontroller nicht. An seinen Ausg\u00e4ngen B1-B4 werden aber die Betriebsmodi angezeigt, die dann mit angeschlossenen LEDs visualisiert werden k\u00f6nnen.<\/p>\n<h2>Bild- und Zeilenlage<\/h2>\n<p>Die erw\u00e4hnten Verz\u00f6gerungen von Zeilen- und Bildsynchronimpulsen und die L\u00e4nge der Synchronimpulse werden durch die Betriebssoftware der Mikrocontroller festgelegt. Sie sind von gro\u00dfer Wichtigkeit f\u00fcr den Gesamteindruck des Bildes:<\/p>\n<ul>\n<li>Stimmen Bild- oder Zeilenlage nicht, dann beginnt bspw. die Zeile nicht an der linken Seite, sondern zur Mitte verschoben &#8211; das Bild endet dann links von seinem Anfang.<\/li>\n<li>Stimmt die L\u00e4nge der Sync-Impulse nicht, f\u00fchrt dies zu sichtbaren R\u00fcckl\u00e4ufen und zu Zeilenfehlern im Bild.<\/li>\n<li>Ist die Verz\u00f6gerung zu lang, dann synchronisiert das Bild nicht mehr, sondern &#8222;l\u00e4uft durch&#8220;.<\/li>\n<\/ul>\n<p>Die Bilder zeigen ein VGA-Signal einmal mit korrekt ausgef\u00fchrter Zeilenlagenkorrektur und einmal komplett ohne.<\/p>\n<p><a href=\"http:\/\/www.brennecke.org\/?attachment_id=2092\" rel=\"attachment wp-att-2092\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2092\" alt=\"Testbild VGA\" src=\"http:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/01\/Testbild-VGA-300x225.jpg\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/01\/Testbild-VGA-300x225.jpg 300w, https:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/01\/Testbild-VGA.jpg 1024w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a>\u00a0\u00a0 <a href=\"http:\/\/www.brennecke.org\/?attachment_id=2091\" rel=\"attachment wp-att-2091\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2091\" alt=\"Testbild VGA ohne Bildlage\" src=\"http:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/01\/Testbild-VGA-ohne-Bildlage-300x225.jpg\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/01\/Testbild-VGA-ohne-Bildlage-300x225.jpg 300w, https:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/01\/Testbild-VGA-ohne-Bildlage.jpg 1024w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Das Bild rechts ist verschoben, erst die Verz\u00f6gerung der HSync-Impulse sorgt f\u00fcr eine korrekte Darstellung.<\/p>\n<h2>Betriebssoftware<\/h2>\n<p>Die Software f\u00fcr die beiden Mikrocontroller wurde in C mit dem AVR-Studio erstellt. Sie weist keine wesentlichen Besonderheiten auf. In der Hauptschleife werden die Schalterstellungen f\u00fcr die Betriebsmodi ausgewertet.<\/p>\n<p>Die externen Synchronimpulse werden \u00fcber die Eing\u00e4nge INT0 (FBAS) und INT1 (VGA) verarbeitet. Nur eine von beiden Interruptsteuerungen kann jeweils aktiv sein. Soll der Mikrocontroller als interner Generator arbeiten, dann erfolgt dessen Steuerung \u00fcber einen Zeitablauf &#8211; nach jeweils einer Zeile erfolgt ein Trigger. Die h\u00f6herfrequenten Signale werden dabei in der Zeitablaufsteuerung erzeugt, indem jeweils nach einigen Takten Signalausg\u00e4nge an- oder abgeschaltet werden.<\/p>\n<p>Wenn sich w\u00e4hrend des Betriebs etwas \u00e4ndert, werden die laufenden Steuerungen unterbrochen und gem\u00e4\u00df der neuen Einstellungen neu gestartet. Der Horizontalgenerator zeigte hier beim \u00dcbergang zum internen Betrieb manchmal Schwierigkeiten. Er kann daher \u00fcber einen RESET-Taster auf der Platine auch von Hand neu gestartet werden.<\/p>\n<p>Die Software kann hier heruntergeladen werden. Vorsicht: sie besitzt noch Prototypenstadium, da wird sich im laufe der Zeit noch einiges \u00e4ndern. Damit die Codes korrekt kompiliert werden k\u00f6nnen, m\u00fcssen sie jeweils in main.c umbenannt werden &#8211; dann klappt auch die Zusammenarbeit mit dem Makefile.<\/p>\n<p><a href=\"http:\/\/www.brennecke.org\/?attachment_id=2100\" rel=\"attachment wp-att-2100\">Bildgenerator_Prototyp_0.2<\/a><\/p>\n<h2>Pegelanpassung<\/h2>\n<p>Die erzeugten Signale haben eine Amplitude von 5V und sind nicht sehr belastbar. Daher wurde den Generatoren eine Kombination aus den Logikgattern CD4001 (4x NOR) und CD4071 (4x OR) nachgeschaltet. Hier werden einerseits die vertikalen Sync-Impulse f\u00fcr intern (erzeugt im Horizontalgenerator) und extern (erzeugt im Vertikalgenerator) gemischt und andererseits alle Pegel auf 9V gebracht.<\/p>\n<h2>Besonderheiten<\/h2>\n<p>Wenn im externen Betrieb kein Signal anliegt, bricht das Bild komplett zusammen, da keine eigenst\u00e4ndigen Synchronimpulse erzeugt werden. Die Helligkeit des Bildes sollte daher so gew\u00e4hlt werden, dass der Leuchtpunkt nicht auf dem Bildschirm einbrennen kann.<\/p>\n<p><a title=\"Neues von der Bildr\u00f6hreneinheit\" href=\"http:\/\/www.brennecke.org\/?page_id=1842\">Zur\u00fcck zur Hauptseite<\/a><\/p>\n<p>&nbsp;<\/p>\n<div class=\"twoclick_social_bookmarks_post_2022 social_share_privacy clearfix 1.6.4 locale-de_DE sprite-de_DE\"><\/div><div class=\"twoclick-js\"><script type=\"text\/javascript\">\/* <![CDATA[ *\/\njQuery(document).ready(function($){if($('.twoclick_social_bookmarks_post_2022')){$('.twoclick_social_bookmarks_post_2022').socialSharePrivacy({\"services\":{\"facebook\":{\"status\":\"on\",\"txt_info\":\"2 Klicks f\\u00fcr mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k\\u00f6nnen Ihre Empfehlung an Facebook senden. Schon beim Aktivieren werden Daten an Dritte \\u00fcbertragen - siehe <em>i<\\\/em>.\",\"perma_option\":\"off\",\"action\":\"recommend\",\"language\":\"de_DE\"},\"twitter\":{\"reply_to\":\"\",\"tweet_text\":\"Signalgeneratoren%20zur%20Erzeugung%20der%20Synchronimpulse%20%C2%BB%2053%20Cent\",\"status\":\"on\",\"txt_info\":\"2 Klicks f\\u00fcr mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k\\u00f6nnen Ihre Empfehlung an Twitter senden. Schon beim Aktivieren werden Daten an Dritte \\u00fcbertragen - siehe <em>i<\\\/em>.\",\"perma_option\":\"off\",\"language\":\"de\",\"referrer_track\":\"\"},\"gplus\":{\"status\":\"on\",\"txt_info\":\"2 Klicks f\\u00fcr mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k\\u00f6nnen Ihre Empfehlung an Google+ senden. Schon beim Aktivieren werden Daten an Dritte \\u00fcbertragen - siehe <em>i<\\\/em>.\",\"perma_option\":\"off\",\"referrer_track\":\"\"},\"flattr\":{\"uid\":\"\",\"status\":\"on\",\"the_title\":\"Signalgeneratoren%20zur%20Erzeugung%20der%20Synchronimpulse\",\"the_excerpt\":\"VGA-%20und%20FBAS-Signale%20liegen%20in%20Bereichen%2C%20die%20ein%20AVR-Mikrocontroller%20gut%20erzeugen%20kann.%20Dessen%20Taktfrequenz%20liegt%20bei%2020%20MHz%20-%20er%20hat%20damit%20f%C3%BCr%20jede%20Zeile%20528%20Takte%20bei%20SVGA%2C%20634%20Takte%20bei%20VGA%20bzw.%201280%20bei%20FBAS%20Takte%20Zeit.%0D%0A%0D%0AWarum%20%C3%BCberhaupt%20ein%20Mikrocontroller%3F%20Die%20Sync-Signale%20k%C3%B6nnten%20direkt%20genutzt%20werden%2C%20um%20die%20ben%C3%B6tigten%20S%C3%A4gezahnsignale%20zu%20erzeugen.%20Darauf%20gibt%20es%20zwei%20Antworten%3A%0D%0A%0D%0A%09%20...\",\"txt_info\":\"2 Klicks f\\u00fcr mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k\\u00f6nnen Ihre Empfehlung an Flattr senden. Schon beim Aktivieren werden Daten an Dritte \\u00fcbertragen - siehe <em>i<\\\/em>.\",\"perma_option\":\"off\"}},\"txt_help\":\"Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter, Flattr, Xing, t3n, LinkedIn, Pinterest oder Google eventuell ins Ausland \\u00fcbertragen und unter Umst\\u00e4nden auch dort gespeichert. N\\u00e4heres erfahren Sie durch einen Klick auf das <em>i<\\\/em>.\",\"settings_perma\":\"Dauerhaft aktivieren und Daten\\u00fcber-tragung zustimmen:\",\"info_link\":\"http:\\\/\\\/www.heise.de\\\/ct\\\/artikel\\\/2-Klicks-fuer-mehr-Datenschutz-1333879.html\",\"uri\":\"https:\\\/\\\/www.brennecke.org\\\/?page_id=2022\",\"post_id\":2022,\"post_title_referrer_track\":\"Signalgeneratoren+zur+Erzeugung+der+Synchronimpulse\",\"display_infobox\":\"on\"});}});\n\/* ]]> *\/<\/script><\/div>","protected":false},"excerpt":{"rendered":"<p>VGA- und FBAS-Signale liegen in Bereichen, die ein AVR-Mikrocontroller gut erzeugen kann. Dessen Taktfrequenz liegt bei 20 MHz &#8211; er hat damit f\u00fcr jede Zeile 528 Takte bei SVGA, 634 Takte bei VGA bzw. 1280 bei FBAS Takte Zeit. Warum &hellip; <a href=\"https:\/\/www.brennecke.org\/?page_id=2022\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":2011,"parent":1842,"menu_order":4,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/www.brennecke.org\/index.php?rest_route=\/wp\/v2\/pages\/2022"}],"collection":[{"href":"https:\/\/www.brennecke.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.brennecke.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.brennecke.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.brennecke.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2022"}],"version-history":[{"count":9,"href":"https:\/\/www.brennecke.org\/index.php?rest_route=\/wp\/v2\/pages\/2022\/revisions"}],"predecessor-version":[{"id":2327,"href":"https:\/\/www.brennecke.org\/index.php?rest_route=\/wp\/v2\/pages\/2022\/revisions\/2327"}],"up":[{"embeddable":true,"href":"https:\/\/www.brennecke.org\/index.php?rest_route=\/wp\/v2\/pages\/1842"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.brennecke.org\/index.php?rest_route=\/wp\/v2\/media\/2011"}],"wp:attachment":[{"href":"https:\/\/www.brennecke.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}