zur navigation

24. September 2012 Veröffentlicht von Heinrich in : Technik , trackback

Atmel AT90USBKey 2 mit LCD-Display

Atmel AT90 mit Gleichmann LCD

Atmel AT90 USB Key 2 mit LCD-Display

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.

AT90 Ports

AT90 Ports

Der Aufbau

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.

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.

LCD-Display Ports

LCD-Display Ports

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.

 

 

Die Programmierung

Wenn ihr den Quellcode einfach kopieren wollt, dann müsst ihr folgende Portverbindungen einhalten (je linke Spalte mit rechter Spalte verbinden):

AT90 LCD
PC0 Vss
PC1 Vdd
PC2 V0
PC3 RS
PC4 R/W
PC5 E
PC6 A
PC7 K
PD1 DB4
PD2 DB5
PD3 DB6
PD4 DB7

Top-Ansicht von AT90-USBKey2

 

 

 

 

Beispiel: PC0 = Port C Pin 0

Die Bezeichnungen für die LCD-Ports finden sich im Handbuch.

 

 

 

 

 

 

 

 

 

Übersicht der Funktionen (C-Quellcode kann unten heruntergeladen werden)

Um etwas auf den LCD zu schreiben, braucht man lediglich folgende Funktion, die sehr einfach zu benutzen ist:

int main() {	
	watchdog_off();
 
	//LCD-Init
	init_board_for_lcd();	
	lcd_init();
 
	lcd_show_strpos(0x00, "Joystickeingabe:");
        //0x00 bezeichnet hierbei die Stelle, an der der Text
        //im LCD-Display eingefügt werden soll.
        //0x00 = 1. Zeile 1. Stelle
        //0x05 = 1. Zeile 6. Stelle
        //0x0A = 1. Zeile 11. Stelle
        //0x45 = 2. Zeile 6. Stelle
        //0x4A = 2. Zeile 11. Stelle
}

Wenn jemand andere Ports verwenden möchte, muss dementsprechend die config.h anpassen.

Fall jemand den Quellcode anpassen/erweitern möchte, hier eine kurze Funktionsübersicht:

Funktion Wirkung
lcd_show_strpos(uint8_t pos, char *data) Schreibt einen String an die Position pos
lcd_show_string(char *data) Schreibt einen String hinter die zuletzt beschriebene Position
lcd_show_char(uint8_t data) Schreibt einen Buchstaben hinter die zuletzt beschriebene Position
lcd_cmd_setcurser(uint8_t data) Ändert die Curserposition (wo soll das nächste Zeichen geschrieben werden)
lcd_cmd_cleardisplay() Löscht den Displaytext
lcd_cmd(uint8_t data) Sendet ein 8bit-Command an den LCD-Chip
lcd_sende_bits(uint8_t data) Sendet 4bit an LCD
lcd_flanke() Es werden die bits gelesen, die durch lcd_sende_bits() angelegt wurden
lcd_init() Initialisierung des LCDs (Parameter in der config.h)
init_board_for_lcd() Initialisierung des AT90 (Parameter in der config.h)

» Download: AVR-Projekt: AT90USBKey 2 mit Gleichmann LCD-Display

 

Programm-Code auf das AT90 Board aufspielen

– Stelle sicher, dass das AT90-Board resettet ist. Sicherheitshalber nochmal einen Reset durchführen:
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.

– Dann muss das Projekt in AVR compiliert werden (z.B. über F7). Anschließend öffnet man FLIP (hier V3.4.5) und wählt:

– “Select a Communication Medium (zweites Icon von links)” -> “USB” (Kann unter Win7 Probleme machen, bei mir hat es auf WinXP aber funktioniert)

– “Load HEX File (drittes Icon von Rechts)” -> die zuvor kompilierte HEX-Datei suchen (hier: $projektordner/default/test.hex

– Unter “Operations Flow” müssen alle Häkchen angewählt werden

– Drücke Run und dann Start Application (+Reset)

Jetzt müsste der gewünschte Text auf dem LCD-Display zu sehen sein.

 

Kommentare»

bisher keine kommentare