{"id":2447,"date":"2013-05-27T19:01:00","date_gmt":"2013-05-27T17:01:00","guid":{"rendered":"http:\/\/www.brennecke.org\/?page_id=2447"},"modified":"2013-06-02T14:41:50","modified_gmt":"2013-06-02T12:41:50","slug":"technischer-aufbau-des-mikrocontroller-labs","status":"publish","type":"page","link":"https:\/\/www.brennecke.org\/?page_id=2447","title":{"rendered":"Technischer Aufbau des Mikrocontroller-Labs"},"content":{"rendered":"<h2>Gesamtkonzept<\/h2>\n<p>Das Mikrocontroller-Lab besteht im wesentlichen aus drei Komponenten, die zusammenwirken:<\/p>\n<ul>\n<li>Der <strong>Haupt-Mikrocontroller<\/strong> (wie beim AVRNet6440 vom Typ ATMega644) soll vom Bastler programmiert und m\u00f6glichst vollst\u00e4ndig genutzt werden. Damit sollten m\u00f6glichst alle Anschl\u00fcsse zur Benutzung zur Verf\u00fcgung stehen. Nat\u00fcrlich ist dieses Ziel nicht vollst\u00e4ndig zu erreichen, denn eine gewisse Interkommunikation mit Grafik und Eingabeelementen muss nat\u00fcrlich erhalten werden. Immerhin sind von 32 Ein- und Ausg\u00e4ngen letztlich 29 frei verf\u00fcgbar.<\/li>\n<li>Der <strong>Grafikcontroller<\/strong> (in seinen Grundz\u00fcgen bereits <a title=\"Farbgrafik-Modul\" href=\"http:\/\/www.brennecke.org\/?page_id=2278\">an anderer Stell<\/a>e beschrieben) besteht aus einem Mikrocontroller vom Typ ATMega8515. Dieser Controller besitzt als spezielle Erweiterung ein RAM-Interface, mit dem der interne Speicher erweitert werden kann. Das daf\u00fcr genutzte Modul hat ein Gesamtvolumen von 512 kByte, von denen hier immerhin die H\u00e4lfte tats\u00e4chlich genutzt werden &#8211; dazu sp\u00e4ter mehr. Damit kann eine Grafikseite komplett im Speicher abgelegt werden, so dass die Informationen nicht st\u00e4ndig neu erzeugt werden m\u00fcssen, wie das beim <a title=\"Text-Modul\" href=\"http:\/\/www.brennecke.org\/?page_id=2122\">Textmodul<\/a> noch der Fall war. Damit erreicht man stabile Bilder und hat gleichzeitig noch viel Power f\u00fcr die Abarbeitung von Grafikbefehlen.<\/li>\n<li>Der <strong>Tastatur- und Touchscreen-Controller<\/strong> nimmt die Eingaben entgegen und verarbeitet sie. Damit eine gute Vorverarbeitung m\u00f6glich ist, wird er mit dem Grafikcontroller gekoppelt. Dieser teilt ihm mit, ob gerade Elemente dargestellt werden, bei denen die Eingabe in Form von Feldern erfolgt (Tastaturen, Men\u00fcs, &#8230;) oder in Form von Koordinaten (Zeichnen, Schieberegler, &#8230;). Er kann auch die \u00dcbermittlung von Koordinaten ganz abschalten oder den Touchscreen in einen Kalibrierungsmodus versetzen, in dem dieser dann die eingegebenen Daten selbst verarbeitet und zuk\u00fcnftig genauer arbeitet. Man kennt das von den fr\u00fcheren &#8222;PDA&#8220;s, einer inzwischen ausgestorbenen und durch Smartphones ersetzten Ger\u00e4tegattung, die regelm\u00e4\u00dfig\u00a0 bei Stromverlust solche Kalibrierungen verlangten. Mehr Infos zu Touchscreen-Controllern habe ich <a title=\"Touchscreen-Interface\" href=\"http:\/\/www.brennecke.org\/?page_id=2408\">hier<\/a> zusammengetragen.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/05\/Microcontroller-Lab-Systembild.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2536\" alt=\"Microcontroller Lab Systembild\" src=\"http:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/05\/Microcontroller-Lab-Systembild.png\" width=\"1023\" height=\"423\" srcset=\"https:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/05\/Microcontroller-Lab-Systembild.png 1023w, https:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/05\/Microcontroller-Lab-Systembild-300x124.png 300w\" sizes=\"(max-width: 1023px) 100vw, 1023px\" \/><\/a><\/p>\n<p>Die Hauptplatine enth\u00e4lt dar\u00fcber hinaus noch einen Wandler, der die Informationen des Grafikcontrollers (im RGB-Format, das man beispielsweise vielen Fernsehern \u00fcber die SCART-Buchse einspeisen k\u00f6nnte) in das Composite-Video-Format wandelt. Dabei verliert die Grafik an Qualit\u00e4t, aber der verwendete Bildschirm hat nun einmal nur einen Composite-Video-Eingang.<\/p>\n<h2>Die serielle Schnittstelle<\/h2>\n<p>Die drei Controller sollen sich untereinander austauschen, und die beste Methode hierzu ist eine serielle Daten\u00fcbermittlung, da sie (neben dem Massedraht) in einer Richtung mit nur einem Kabel auskommt. Die geschickten Kommandos sind Byte-orientiert, so dass man einfach Texte und Zahlen \u00fcbermitteln kann. Allerdings hat diese Methode auch einen Nachteil: wenn der Empf\u00e4nger das aktuelle Datenpaket nicht abholt, w\u00e4hrend schon ein neues gesendet wird, ist es verloren. Auch bessere Controller haben nur einen minimalen Puffer. Allerdings senden wir sehr langsam &#8211; gew\u00f6hnlich reicht die Zeit aller Controller locker, um die Daten abzuholen und zu verarbeiten.<\/p>\n<p>Die \u00dcbermittlung sieht nun folgenderma\u00dfen aus:<\/p>\n<ul>\n<li>Der <strong>Hauptcontroller<\/strong> sendet seine Daten in Form von Bytes (Kommandos und Werte) an den Grafikcontroller. Dabei muss er nat\u00fcrlich genau wissen, in welchem Modus sich der Grafikcontroller befindet. Um das zu gew\u00e4hrleisten, wurde ein Ausstiegskommando definiert, das auf jeden Fall in einen definierten Zustand f\u00fchrt.<\/li>\n<li>Der <strong>Grafikcontroller<\/strong> \u00fcbermittelt Informationen an den Tastatur- und Touchscreen-Controller. Obwohl auch hier eine serielle Verbindung m\u00f6glich w\u00e4re, wurde hier eine direkte Kopplung zweier Ausg\u00e4nge mit zwei Eing\u00e4ngen gew\u00e4hlt. Warum? Einerseits waren sie frei und ungenutzt, zum anderen \u00fcbermitteln wir gerade einmal zwei Bits, also vier unterschiedliche Zust\u00e4nde (&#8222;Sende Felder&#8220;, &#8222;Sende Koordinaten&#8220;, &#8222;Sende Nichts&#8220;, &#8222;Kalibriere Dich&#8220;).<\/li>\n<li>Der <strong>Tastatur- und Touchscreencontroller<\/strong> \u00fcbermittelt seine Daten wiederum an den Hauptcontroller \u00fcber die serielle Schnittstelle. Er liefert Infos, ob Kn\u00f6pfe gedr\u00fcckt sind (und entprellt sie per Software) und ob der Touchscreen ber\u00fchrt oder losgelassen wurde. Die Kommandos sind kurz &#8211; maximal drei Bytes (Kommando und x- und y-Koordinate) werden gesendet. Wenn nur Felder (also ber\u00fchrte Schaltfl\u00e4chen) \u00fcbermittelt werden, reicht sogar ein einziges Byte.<\/li>\n<\/ul>\n<h2>Weitere Komponenten<\/h2>\n<p>Neben der Hauptplatine besteht das Mikrocontroller Lab haupts\u00e4chlich aus peripheren Komponenten:<\/p>\n<ul>\n<li>Die <strong>Spannungsversorgung<\/strong> kann durch die eingelegten Batterien (9V) oder ein angeschlossenes Steckernetzteil (12V) auf der R\u00fcckseite des Schaltpults erfolgen. Bei Nutzung des Steckernbetzteils wird die Batteriestromversorgung automatisch abgeschaltet. Daneben finden sich zwei weitere Spannungsregler an Bord, die der Einfachheit halber Fertigbausteine aus China sind und bei ebay als sogenannte &#8222;Step-Down-Converter&#8220; zu finden sind. Man stellt den einen mit einem Potentiometer auf den gew\u00fcnschten Spannungswert (hier 9 Volt) ein, es ist dann innerhalb eines gewissen Rahmens ziemlich egal, welche Eingangsspannung sie erhalten. Der andere Konverter liefert gleichzeitig 5V und 3,3V. Die 3.3V-Versorgungsspannung wird zun\u00e4chst nirgends ben\u00f6tigt. Viele Sensoren arbeiten aber mit dieser Spannung. Warum keine klassischen Linearregler? Im Gegensatz zu den hier benutzten Spannungswandlern wird bei den Linearreglern die \u00fcbersch\u00fcssige Spannung in W\u00e4rme gewandelt (Ja, Spannung mal Strom mal Zeit), sie werden also warm oder hei\u00df.<\/li>\n<li>Ein <strong>Stereoverst\u00e4rker<\/strong> auf Basis des TDA1519-Bausteins schafft einen Line-In-Eingang f\u00fcr iPods oder andere Audioquellen. Der Platz auf der Bauplatte wird so nicht f\u00fcr ewig gleiche, platzverschwendende Verst\u00e4rker auf TBA820M-Basis verschwendet. Er sitzt absichtlich auf einer getrennten Platine &#8211; ich wollte Einstrahlungen so weit wie m\u00f6glich ausschlie\u00dfen. Der Stereoverst\u00e4rker wird auf konventionelle Weise durch ein Dual-Stereopotentiometer geregelt &#8211; \u00fcbrigens ein logarithmisches, das sich bei Audio besser verh\u00e4lt als ein lineares.<\/li>\n<li>Der <strong>Bildschirm<\/strong> ist ein Fertigbauteil aus China und wird geliefert mit 4-Draht-resistivem Touchscreen (leider ohne Verdrahtung, so dass man auf einem Flachbandkabel heruml\u00f6ten muss) und zwei Composite-Video-Eing\u00e4ngen, die \u00fcber eine Taste umgeschaltet werden k\u00f6nnen. Ein VGA-Eingang ist ebenfalls an Bord, wird hier aber derzeit nicht benutzt und auch nicht nach au\u00dfen gef\u00fchrt. Die Aufl\u00f6sung des Bildschirms betr\u00e4gt 480 x 272 Pixel bei einer Aufl\u00f6sung von 4,3&#8243; in einem Format von 16:9. Bei der gew\u00e4hlten Aufl\u00f6sung des Grafikcontrollers mit 256&#215;252 Pixel f\u00fchrt das dazu, dass die dargestellten Pixel auf dem Schirm nicht quadratisch sind. Anders gesagt: wenn man ein Rechteck vom Koordinatenpunkt 0,0 zum Koordinatenpunkt 10,10 zeichnen m\u00f6chte, entsteht auf dem Bildschirm ein Rechteck, das in x-Richtung fast doppelt so lang ist wie in y-Richtung. Man muss das bei der Benutzung der Grafik bedenken. Der Bildschirm wird \u00fcber seinen AV-Eingang mit der Hauptplatine verbunden und mit einem Vierdrahtkabel mit dem, Touchscreen-Controller. Welche Kabel welche Bedeutung haben, findet man beim ersten Anschlie\u00dfen schnell heraus.<\/li>\n<li>Ein <strong>SD-Kartenleser<\/strong> ist derzeit noch in Arbeit.<\/li>\n<\/ul>\n<p>Mit an Bord sind auch ein ansonsten unbeschalteter Taster und ein 10-kOhm-Potentiometer, wie sie beim Basis-Lab-Schaltpult zum Einsatz kommen. Zwei Mini-Lautsprecher (immerhin 1W bei 8 Ohm) geben den Ton wieder.<\/p>\n<h2>Schaltbild<\/h2>\n<p>Das folgende Bild zeigt die Schaltung in ihrer ganzen Sch\u00f6nheit.<\/p>\n<p><a href=\"http:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/05\/Gesamtschaltbild.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2535\" alt=\"Gesamtschaltbild\" src=\"http:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/05\/Gesamtschaltbild.png\" width=\"1183\" height=\"956\" srcset=\"https:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/05\/Gesamtschaltbild.png 1183w, https:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/05\/Gesamtschaltbild-300x242.png 300w, https:\/\/www.brennecke.org\/wp-content\/uploads\/2013\/05\/Gesamtschaltbild-1024x827.png 1024w\" sizes=\"(max-width: 1183px) 100vw, 1183px\" \/><\/a><\/p>\n<p>Hierzu ein paar Hinweise auf Besonderheiten:<\/p>\n<ul>\n<li>Das RAM des Grafikcontrollers ist f\u00fcr eine einzelne Seite viel zu gro\u00df &#8211; 64 kByte w\u00fcrden reichen. Aber solche Bausteine sind kaum mehr zu bekommen, daher wurde der kleinste erh\u00e4ltliche genutzt. Dieser besitzt drei Eing\u00e4nge mehr als das <a href=\"http:\/\/www.mikrocontroller.net\/topic\/54562#421942\">Original in der Beschreibung auf microcontroller.net<\/a>. Zwei davon wurden genutzt, um intern eine Umschaltung von ganzen Grafikseiten zu erm\u00f6glichen. Dann kann beispielsweise eine Zeichnung auf dem Bildschirm erhalten bleiben, w\u00e4hrend man eine neue Farbe ausw\u00e4hlt. Damit nutze ich 4 unterschiedliche Seiten und effektiv nur die H\u00e4lfte des Speichers. Grunds\u00e4tzlich k\u00f6nnte man das ganze auf 8 Seiten erweitern &#8211; der Mikrocontroller g\u00e4be das noch her.<\/li>\n<li>Alle Mikrocontroller haben eigene Quarze. Das w\u00e4re prinzipiell nicht n\u00f6tig, aber das Weiterleiten so hoher Frequenzen auf der ganzen Platine erschien mir kritisch. Die Quarze kosten auch nicht die Welt.<\/li>\n<li>Der zur Wandlung in das Composite-Signal eingesetzte AD724 ben\u00f6tigt neben einem 4,433-MHz-Quarz (Taktfrequenz des Farbtr\u00e4gers bei PAL) noch einen Kondensator. Im Datenblatt wird dieser als variabel zwischen 5pF und 30pF angegeben, und man sollte das ernst nehmen. Ich habe einen Festwert eingebaut, den ich nach Ausprobieren auf 6,8pF festlegen konnte. Wenn dieser Kondensator falsch dimensioniert ist, sieht man statt Farbe blo\u00df ein graues und qualitativ schlechtes Bild.<\/li>\n<li>Die Farbe wird \u00fcbrigens durch das Widerstandsnetzwerk am 74HC574 gebildet. Wenn man die Widerst\u00e4nde anders w\u00e4hlt, kommen andere Farben heraus. Durch andere Kombination der Eing\u00e4nge kann man auch andere Zusammenstellungen der 256 Farben erreichen &#8211; meine Variante ist etwas blau-gr\u00fcn-stichig.<\/li>\n<li>Die Verbindungen werden komplett mit Steckverbindungen hergestellt. Das funktioniert bisher problemlos &#8211; au\u00dfer bei der Anbindung des Interfaces der SD-Karte, weshalb ich meinen Eigenbau erst einmal wieder ausgebaut habe und nun auf ein (billigeres) Fertigmodul aus China warte, das f\u00fcr den Arduino designt wurde. Hier werde ich erg\u00e4nzen, wenn damit Erfahrungen vorliegen.<\/li>\n<\/ul>\n<p><a title=\"Mikrocontroller-Lab 2.0\" href=\"http:\/\/www.brennecke.org\/?page_id=2396\">Zur\u00fcck zur Hauptseite<\/a><\/p>\n<p>&nbsp;<\/p>\n<div class=\"twoclick_social_bookmarks_post_2447 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_2447')){$('.twoclick_social_bookmarks_post_2447').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\":\"Technischer%20Aufbau%20des%20Mikrocontroller-Labs%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\":\"Technischer%20Aufbau%20des%20Mikrocontroller-Labs\",\"the_excerpt\":\"Gesamtkonzept%0D%0ADas%20Mikrocontroller-Lab%20besteht%20im%20wesentlichen%20aus%20drei%20Komponenten%2C%20die%20zusammenwirken%3A%0D%0A%0D%0A%09Der%20Haupt-Mikrocontroller%20%28wie%20beim%20AVRNet6440%20vom%20Typ%20ATMega644%29%20soll%20vom%20Bastler%20programmiert%20und%20m%C3%B6glichst%20vollst%C3%A4ndig%20genutzt%20werden.%20Damit%20sollten%20m%C3%B6glichst%20alle%20Anschl%C3%BCsse%20zur%20Benutzung%20zur%20Verf%C3%BCgung%20stehen.%20Nat%C3%BCrlich%20ist%20dieses%20Ziel%20nicht%20vollst%C3%A4ndig%20zu%20erreichen%2C%20denn%20eine%20gewis%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=2447\",\"post_id\":2447,\"post_title_referrer_track\":\"Technischer+Aufbau+des+Mikrocontroller-Labs\",\"display_infobox\":\"on\"});}});\n\/* ]]> *\/<\/script><\/div>","protected":false},"excerpt":{"rendered":"<p>Gesamtkonzept Das Mikrocontroller-Lab besteht im wesentlichen aus drei Komponenten, die zusammenwirken: Der Haupt-Mikrocontroller (wie beim AVRNet6440 vom Typ ATMega644) soll vom Bastler programmiert und m\u00f6glichst vollst\u00e4ndig genutzt werden. Damit sollten m\u00f6glichst alle Anschl\u00fcsse zur Benutzung zur Verf\u00fcgung stehen. Nat\u00fcrlich ist &hellip; <a href=\"https:\/\/www.brennecke.org\/?page_id=2447\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2396,"menu_order":1,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/www.brennecke.org\/index.php?rest_route=\/wp\/v2\/pages\/2447"}],"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=2447"}],"version-history":[{"count":5,"href":"https:\/\/www.brennecke.org\/index.php?rest_route=\/wp\/v2\/pages\/2447\/revisions"}],"predecessor-version":[{"id":2541,"href":"https:\/\/www.brennecke.org\/index.php?rest_route=\/wp\/v2\/pages\/2447\/revisions\/2541"}],"up":[{"embeddable":true,"href":"https:\/\/www.brennecke.org\/index.php?rest_route=\/wp\/v2\/pages\/2396"}],"wp:attachment":[{"href":"https:\/\/www.brennecke.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2447"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}