<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>derxen Blog &#187; 2012 &#187; September</title>
	<atom:link href="http://www.derxen.de/blog/2012/09/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.derxen.de/blog</link>
	<description>systematisch, funktionell, kreativ</description>
	<lastBuildDate>Thu, 10 Jul 2014 13:10:35 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>Atmel AT90USBKey 2 mit LCD-Display</title>
		<link>http://www.derxen.de/blog/2012/technik/atmel-at90-usb-key-2-mit-lcd-display/</link>
		<comments>http://www.derxen.de/blog/2012/technik/atmel-at90-usb-key-2-mit-lcd-display/#comments</comments>
		<pubDate>Mon, 24 Sep 2012 12:55:43 +0000</pubDate>
		<dc:creator><![CDATA[Heinrich]]></dc:creator>
				<category><![CDATA[Technik]]></category>

		<guid isPermaLink="false">http://www.derxen.de/blog/?p=1930</guid>
		<description><![CDATA[Im folgenden findet ihr eine kurze Dokumentation darüber, wie man ein AT90-Chip mit einem LCD-Display kombinieren und programmieren kann. Ziel ist es, mit dem AT90 einen eigenen Text auf dem LCD-Display anzuzeigen. Die Komponenten Um die Komponenten (Gleichmann GE-C1602B-TMI-JT/R und Atmel AT90USBKey) zweckmäßig miteinander verbinden zu können, ist eine Steckplatine hilfreich. So erspart man sich das Löten. [&#8230;]]]></description>
				<content:encoded><![CDATA[<div id="attachment_1932" style="width: 190px" class="wp-caption alignleft"><a href="http://www.derxen.de/blog/wp-content/uploads/2012/09/Top_HD.jpg"><img class="size-medium wp-image-1932" title="Atmel AT90 mit Gleichmann LCD" src="http://www.derxen.de/blog/wp-content/uploads/2012/09/Top_HD-300x225.jpg" alt="Atmel AT90 mit Gleichmann LCD" width="180" height="135" /></a><p class="wp-caption-text">Atmel AT90 USB Key 2 mit LCD-Display</p></div>
<p>Im folgenden findet ihr eine kurze Dokumentation darüber, wie man ein AT90-Chip mit einem LCD-Display kombinieren und programmieren kann.</p>
<p>Ziel ist es, mit dem AT90 einen eigenen Text auf dem LCD-Display anzuzeigen.</p>
<p><strong>Die Komponenten</strong></p>
<p>Um die Komponenten (<a title="Gleichmann GE-C1602B-TMI-JT/R" href="http://www.conrad.de/ce/de/product/183045/Alphanumerisches-LCD-Modul-Gleichmann-GE-C1602B-TMI-JTR-Zeichenformat-16-x-2-Zeichenhoehe-555-mm-Blau-Weiss/SHOP_AREA_17651&amp;promotionareaSearchDetail=005">Gleichmann GE-C1602B-TMI-JT/R</a> und <a title="Atmel AT90USBKey" href="http://www.conrad.de/ce/de/product/155248/Evaluation-Board-AT90USBKey-Atmel-AT90USBKey/SHOP_AREA_29142&amp;promotionareaSearchDetail=005" target="_blank">Atmel AT90USBKey</a>) zweckmäßig miteinander verbinden zu können, ist eine <a title="Steckplatine" href="http://www.conrad.de/ce/de/product/526819/Steckplatine-EIC-801-Steckplatine-L-x-B-x-H-84-x-54-x-85-mm-Anzahl-Polklemmen-100/SHOP_AREA_14742&amp;promotionareaSearchDetail=005">Steckplatine</a> hilfreich. So erspart man sich das Löten.</p>
<div id="attachment_1935" style="width: 190px" class="wp-caption alignleft"><a href="http://www.derxen.de/blog/wp-content/uploads/2012/09/Ports_HD.jpg"><img class="size-medium wp-image-1935 " title="AT90 Ports" src="http://www.derxen.de/blog/wp-content/uploads/2012/09/Ports_HD-300x225.jpg" alt="AT90 Ports" width="180" height="135" /></a><p class="wp-caption-text">AT90 Ports</p></div>
<p><strong>Der Aufbau</strong></p>
<p>Leider sind die Ports am AT90 von den Dimensionen her von Atmel etwas unglücklich gewählt. Ich habe keine passenden Stiftleisten gefunden, die man als Aufsatz benutzen könnte.</p>
<p>Stattdessen habe ich einfach ein Kupferkabel benutzt, welches dem Durchmesser der Ports entspricht. Anschließend habe ich die Kabel mit einer Heißklebepistole miteinander verschmolzen. So ist eine halbwegs feste und kostengünstige Verbindung gegeben, die sich für Testzwecke sehr gut eignet.</p>
<div id="attachment_1940" style="width: 190px" class="wp-caption alignleft"><a href="http://www.derxen.de/blog/wp-content/uploads/2012/09/Display_HD.jpg"><img class="size-medium wp-image-1940" title="LCD-Display Ports" src="http://www.derxen.de/blog/wp-content/uploads/2012/09/Display_HD-300x225.jpg" alt="LCD-Display Ports" width="180" height="135" /></a><p class="wp-caption-text">LCD-Display Ports</p></div>
<p>Das LCD-Display habe ich direkt auf die Steckplatine gesetzt, da sich das Rastermaß der Steckplatine mit den Abständen der LCD-Ports deckt. Kleiner Tipp: Die Drahtstücke je ein bischen verbiegen und danach einzeln einsetzen. So drücken sich die Drähte gut an die Portkontakte des LCDs.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Die Programmierung</strong></p>
<p>Wenn ihr den Quellcode einfach kopieren wollt, dann müsst ihr folgende Portverbindungen einhalten (je linke Spalte mit rechter Spalte verbinden):</p>
<div style="float: left; padding: 0px 15px 0px 0px;">
<table>
<tbody>
<tr>
<th>AT90</th>
<th>LCD</th>
</tr>
<tr>
<td>PC0</td>
<td>Vss</td>
</tr>
<tr>
<td>PC1</td>
<td>Vdd</td>
</tr>
<tr>
<td>PC2</td>
<td>V0</td>
</tr>
<tr>
<td>PC3</td>
<td>RS</td>
</tr>
<tr>
<td>PC4</td>
<td>R/W</td>
</tr>
<tr>
<td>PC5</td>
<td>E</td>
</tr>
<tr>
<td>PC6</td>
<td>A</td>
</tr>
<tr>
<td>PC7</td>
<td>K</td>
</tr>
<tr>
<td>PD1</td>
<td>DB4</td>
</tr>
<tr>
<td>PD2</td>
<td>DB5</td>
</tr>
<tr>
<td>PD3</td>
<td>DB6</td>
</tr>
<tr>
<td>PD4</td>
<td>DB7</td>
</tr>
</tbody>
</table>
</div>
<p><strong>Top-Ansicht von AT90-USBKey2</strong></p>
<p><a href="http://www.derxen.de/blog/wp-content/uploads/2012/09/at90-ports-pins1.png"><img class="alignleft size-medium wp-image-1947" title="at90-ports-pins" src="http://www.derxen.de/blog/wp-content/uploads/2012/09/at90-ports-pins1-300x100.png" alt="" width="300" height="100" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Beispiel: PC0 = Port C Pin 0</p>
<p>Die Bezeichnungen für die LCD-Ports finden sich im <a href="http://www.produktinfo.conrad.com/datenblaetter/175000-199999/183045-da-01-en-LCD_MODUL_16X2_LED_GE_C1602B_TMI_JT_R.pdf" target="_blank">Handbuch</a>.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Übersicht der Funktionen (C-Quellcode kann unten heruntergeladen werden)</strong></p>
<p>Um etwas auf den LCD zu schreiben, braucht man lediglich folgende Funktion, die sehr einfach zu benutzen ist:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>	
	watchdog_off<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//LCD-Init</span>
	init_board_for_lcd<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
	lcd_init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	lcd_show_strpos<span style="color: #009900;">&#40;</span><span style="color: #208080;">0x00</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Joystickeingabe:&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">//0x00 bezeichnet hierbei die Stelle, an der der Text</span>
        <span style="color: #666666; font-style: italic;">//im LCD-Display eingefügt werden soll.</span>
        <span style="color: #666666; font-style: italic;">//0x00 = 1. Zeile 1. Stelle</span>
        <span style="color: #666666; font-style: italic;">//0x05 = 1. Zeile 6. Stelle</span>
        <span style="color: #666666; font-style: italic;">//0x0A = 1. Zeile 11. Stelle</span>
        <span style="color: #666666; font-style: italic;">//0x45 = 2. Zeile 6. Stelle</span>
        <span style="color: #666666; font-style: italic;">//0x4A = 2. Zeile 11. Stelle</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Wenn jemand andere Ports verwenden möchte, muss dementsprechend die config.h anpassen.</p>
<p>Fall jemand den Quellcode anpassen/erweitern möchte, hier eine kurze Funktionsübersicht:</p>
<table>
<tbody>
<tr>
<th>Funktion</th>
<th>Wirkung</th>
</tr>
<tr>
<td>lcd_show_strpos(uint8_t pos, char *data)</td>
<td>Schreibt einen String an die Position pos</td>
</tr>
<tr>
<td>lcd_show_string(char *data)</td>
<td>Schreibt einen String hinter die zuletzt beschriebene Position</td>
</tr>
<tr>
<td>lcd_show_char(uint8_t data)</td>
<td>Schreibt einen Buchstaben hinter die zuletzt beschriebene Position</td>
</tr>
<tr>
<td>lcd_cmd_setcurser(uint8_t data)</td>
<td>Ändert die Curserposition (wo soll das nächste Zeichen geschrieben werden)</td>
</tr>
<tr>
<td>lcd_cmd_cleardisplay()</td>
<td>Löscht den Displaytext</td>
</tr>
<tr>
<td>lcd_cmd(uint8_t data)</td>
<td>Sendet ein 8bit-Command an den LCD-Chip</td>
</tr>
<tr>
<td>lcd_sende_bits(uint8_t data)</td>
<td>Sendet 4bit an LCD</td>
</tr>
<tr>
<td>lcd_flanke()</td>
<td>Es werden die bits gelesen, die durch lcd_sende_bits() angelegt wurden</td>
</tr>
<tr>
<td>lcd_init()</td>
<td>Initialisierung des LCDs (Parameter in der config.h)</td>
</tr>
<tr>
<td>init_board_for_lcd()</td>
<td>Initialisierung des AT90 (Parameter in der config.h)</td>
</tr>
</tbody>
</table>
<p><strong><a href="http://www.derxen.de/blog/wp-content/uploads/2012/09/AT90USB-KEY2_.zip"><strong>» Download: AVR-Projekt: AT90USBKey 2 mit Gleichmann LCD-Display</strong></a></strong></p>
<p>&nbsp;</p>
<p><strong>Programm-Code auf das AT90 Board aufspielen</strong></p>
<p>&#8211; Stelle sicher, dass das AT90-Board resettet ist. Sicherheitshalber nochmal einen Reset durchführen:<br />
Zuerst HWB-Knopf (auf der Platine) drücken und gedrückt halten, dann RST drücken, während man noch HWB gedrückt hält. Anschließend RST loslassen und danach HWB loslassen.</p>
<p>&#8211; Dann muss das Projekt in AVR compiliert werden (z.B. über F7). Anschließend öffnet man FLIP (hier V3.4.5) und wählt:</p>
<p>&#8211; &#8222;Select a Communication Medium (zweites Icon von links)&#8220; -&gt; &#8222;USB&#8220; (Kann unter Win7 Probleme machen, bei mir hat es auf WinXP aber funktioniert)</p>
<p>&#8211; &#8222;Load HEX File (drittes Icon von Rechts)&#8220; -&gt; die zuvor kompilierte HEX-Datei suchen (hier: $projektordner/default/test.hex</p>
<p>&#8211; Unter &#8222;Operations Flow&#8220; müssen alle Häkchen angewählt werden</p>
<p>&#8211; Drücke Run und dann Start Application (+Reset)</p>
<p>Jetzt müsste der gewünschte Text auf dem LCD-Display zu sehen sein.</p>
<p>&nbsp;</p>]]></content:encoded>
			<wfw:commentRss>http://www.derxen.de/blog/2012/technik/atmel-at90-usb-key-2-mit-lcd-display/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
