GREETBoard – I²CLCD
Transcrição
GREETBoard – I²CLCD
GREETBoard – I²CLCD Version 1.1 Inhalt Einleitung .............................................................................................................................. 3 Features ............................................................................................................................ 3 Bestückungsplan ............................................................................................................... 4 Aufbau der Schaltung ............................................................................................................ 5 Steckerbelegungen ............................................................................................................ 5 Stückliste ........................................................................................................................... 6 Schaltplan .......................................................................................................................... 7 Aufbau................................................................................................................................... 8 Löttipps .............................................................................................................................. 8 Keramik-/Scheibenkondensatoren.................................................................................. 8 Inbetriebnahme ..................................................................................................................... 9 Der erste Test .................................................................................................................... 9 Die Verwendung von Bibliotheken ..................................................................................... 9 I²C-Bibliothek einbinden ................................................................................................. 9 Bibliotheken in eigene Programme einbinden................................................................10 Bibliotheksverzeichnis einbinden ...................................................................................11 Die I2CLCD Bibliothek ...................................................................................................12 Das erste Programm .........................................................................................................13 „Hallo Welt“ ausgeben ...................................................................................................13 Abschluss .............................................................................................................................14 timogruss.de .....................................................................................................................14 Copyright ..........................................................................................................................14 Sicherheitshinweise ..............................................................................................................15 2 Einleitung Dieses Zusatzmodul erweitert das GREETBoard Projekt um eine LCDAnzeige ohne dabei wichtige Ports des GREETBoard ATMega128 zu belegen. Das Modul wird einfach an den I²C Bus angeschlossen. Die I²C Kommunikation und die LCD-Befehle werden über entsprechende Bibliotheken in die Programme eingebunden. Diese Bibliotheken erweitern den Befehlsumfang des Mikrocontrollers um vorbereitete Funktionen. Daher ist es nicht nötig die I²C Kommunikation bis ins Detail zu verstehen um Texte auf dem Display anzeigen zu können. Natürlich steht der intensiven Beschäftigung mit dem I²C Protokoll mit diesem Modul nichts im Weg – auch das ist möglich. Das GREETBoard – I²CLCD wird „kopfüber“ betrieben (siehe Bild). Die Buchsen werden zur Lötseite hin angebracht und von unten an das LCD Modul aufgesteckt. So zeigt die Bestückungsseite nach unten. Features „Huckepack“-Betrieb für LCD-Module. Einfach das LCD Modul auf die Buchsenleisten stecken. Zwei LCD-Buchsenleisten für zwei unterschiedliche Ausführungen verschiedener LCD Module Anschlüsse Die Helligkeit ist über ein Potentiometer einstellbar Es werden keine Ports am Mikrocontroller verwendet Bus-Adresse auf dem Modul individuell einstellbar Externe Spannungsversorgung über die Bus-Verbindung Pull up Widerstände auf dem Modul per Jumper zuschaltbar Ein bewährter PCF8574-Baustein stellt die I²C-Kommunikation sicher Stapelbar, durch standardisierte Platinenbohrlöcher (gespiegelt ausgeführt, da Platine mit der Bestückungsseite nach unten betrieben wird) Kleine Abmessung, 50 x 40mm (1/8 Modul) 3 Bausatz-Übersicht Primär soll das GREETBoard – I²CLCD Nachrichten über das angeschlossene LCD-Modul ausgeben. Für eine einwandfreie Funktion sind einige Einstellungen nötig. Die Übersicht zeigt die Anschlüsse und Einstellmöglichkeiten auf. LCD Buchsen Für versch. Anschlusstypen I²C Über 10.pol. Wannenstecker LCD Kontrast Am Poti einstellbar I²C-Adresse Per Jumper einstellbar Beleuchtung, Interrupt & Pullup Per Jumper ein-/ausschaltbar Bestückungsplan 4 Aufbau der Schaltung Steckerbelegungen Bez. Beschreibung Interrupt Jumper X1 LED Jumper X2 Pull Up Jumper X3 I²C Buchse X4 X5 X6 A0 A1 LCD Buchsen Pin Belegung 1-2 Deaktiviert 2-3 Aktiviert 1-2 Deaktiviert 2-3 Aktiviert 1-2 Aktiviert 2-3 Deaktiviert 1 SCL 2 GND 3 SDA 4 GND 5 VCC 6 GND 7 VCC 8 GND 9 12V 10 INT2 1 VSS 2 VDD 3 V0 4 RS 5 R/W 6 E 7 - 8 - 9 - 10 - 11 DB4 12 DB5 13 DB6 14 DB7 15 A 16 K Leiterplattensymbol (Footprint) Adress-Jumper 1-2 High 2-3 Low A2 5 Stückliste Stück Bauteil Wert 1 C1 100nF (104) 1 IC1 PCF8574 1 R1 2,2k Ohm (rot/rot/schw/br) 1 R2 33 Ohm (or/or/schw/gold) 1 R3 5k Ohm Potentiometer 2 R4, R5 10k Ohm (br/schw/schw/rot) 1 U1 BC560 1 X4 10-pol. Wannensteckerbuchse 6 A0, A1, A2, X1, X2, X3 3-pol. Stiftleiste 2 X5, X6 16-pol. Stiftleiste 6 Schaltplan 7 Aufbau Löttipps Grundsätzlich empfehle ich eine gewisse Reihenfolge beim Einlöten der verschiedenen Bauteile: „Arbeite dich von den kleinsten Bauteilen zu den Größten vor.“ Dieses Vorgehen gilt bei allen Schaltungen von timogruss.de. Keramik-/Scheibenkondensatoren Bei diesen Kondensatortypen ist es nicht wichtig wie herum sie eingelötet werden. Jedoch ist es nicht so einfach den Wert des Kondensators zu erkennen. Um den Wert diese Bauteile darzustellen, wird ein dreistelliger Code angewendet. Dieser ist wie folgt aufgebaut: Beispiel: 104 > > 10^4 > > 10pF x 104 = 0,00000000001F x 10000 = 0,0000001F = 100nF oder: 104 > > 10pF + 4 Nullen > > 100.000pF > > 100nF 474 > > 47pF + 4 Nullen > > 470.000pF > > 470nF 8 Inbetriebnahme Der erste Test Nachdem der Bausatz komplett aufgebaut und gelötet wurde, kann eine Sichtkontrolle beider Seiten der Leiterplatte durchgeführt werden. Folgende Dinge dürfen nicht vorkommen: 1. Kalte Lötstellen (matte Oberfläche der Lötstelle) 2. Metallische Rückstände an spannungsführenden Stellen (Kupfer- oder Drahtreste) 3. Sich berührende Lötstellen Kalte Lötstellen, metallische Rückstände und Kurzschlüsse können zu einer Fehlfunktion, bzw. Beschädigung des Bausatzes und angeschlossener Module führen. Nur wenn alle, bei der Sichtkontrolle beschriebenen Dinge behoben wurden, darf das Modul verwendet werden. Im Falle von Problemen, nehmen Sie bitte Kontakt mit [email protected] auf. Die Verwendung von Bibliotheken Eine Bibliothek ist ein eigenes C-Programm das mit dem Befehl #include zum eigenen Programm hinzugefügt wird. Dadurch können die dort „ausgelagerten“ Funktionen vom eigenen Programm aufgerufen werden. I²C-Bibliothek einbinden Die für dieses Modul benötigten I²C-Funktionen wurden bereits von Peter Fleury in einer Bibliothek (auch Header Datei genannt) zusammengefasst. Sie muss nur noch in den Programmen des GREETBoard – I²CLCD eingebunden werden. Hier ist der Link zu Peter Fleurys Seite: http://homepage.hispeed.ch/peterfleury/i2cmaster.zip Dort einfach die Datei i2cmaster.zip runterladen, die Dateien twimaster.c und i2cmaster.h entpacken und an einem zentralen Ort speichern. Diese Dateien werden recht häufig verwendet und sollten leicht auffindbar abgelegt werden. Empfehlenswert ist ein Unterverzeichnis mit dem Namen „Header Files“ o.ä., in dem Verzeichnis, wo die Programme abgespeichert werden. Im Kapitel „Bibliotheken in AVR Studio 5.1 einbinden“ ist erklärt, wie eine Header Datei in eigene Projekte eingebunden wird. Anpassen der I²C-Bibliothek Die twimaster.c von Peter Fleury ist für einen Mikrocontroller-Takt von 4MHz ausgelegt. Da die GREETBoard Programme mit einem 16MHz Takt laufen, ist eine Anpassung notwendig. Hierzu wird die twimaster.c (nach der Einbindung in das eigene Projekt) mit einem Doppelklick im „Solution Explorer“ geöffnet. Im Programm muss die Zeile: 9 #define F_CPU 4000000UL wie folgt geändert werden: #define F_CPU 16000000UL. Danach kann twimaster.c abgespeichert und verwendet werden. Bibliotheken in eigene Programme einbinden In diesem Kapitel wird, anhand der twimaster.c, gezeigt wie eine Bibliothek in AVR Studio 5.1 eingebunden wird. 1. Schritt – Solution Explorer einschalten 2. Schritt - Einfügemenü aufrufen Rechte Maustaste auf den Projektnamen (hier “AVRGCC2″) > Add mit linker Maustaste anklicken > Existing Item mit Links anklicken. 3. Schritt – Das Header-Datei-Verzeichnis öffnen 10 4. Schritt – Die zur .h Datei gehörende .c Datei öffnen (Doppelklick) Die richtige Datei wurde eingebunden Bibliotheksverzeichnis einbinden Der letzte Schritt besteht nun darin, AVR Studio 5.1 mitzuteilen, wo die Bibliothek-Dateien abgespeichert wurden. Daher empfiehlt es sich alle Bibliotheken in einem Verzeichnis zu speichern. Weitere Unterverzeichnisse, innerhalb dieses Verzeichnisses, können durchaus angelegt werden. Bibliotheks-Verzeichnis ohne… …und mit Unterverzeichnissen. Beides ist OK 11 1. Schritt: Einstellungsmenü aufrufen Mit einem linken Mausklick auf den Projektnamen im Solution Explorer das Menü öffnen 2. Schritt: Pfadmenü öffnen 1. Auf „Toolchain“ klicken. 2. „Directories“ auswählen 3. Das „Add Item“ Symbol anklicken 3. Schritt: Header Verzeichnis auswählen Im geöffneten Fenster die Taste mit den drei Punkten anklicken um in der Dateiauswahl das Verzeichnis auszuwählen, in dem die Header-Dateien abgelegt sind. Anschließend mit OK bestätigen. Die I2CLCD Bibliothek Wie bei der I²C Bibliothek wird auch die Kommunikation mit dem LCD-Modul durch eine Header Datei sichergestellt. In den Programmen des GREETBoard-Projektes kommt die 12 I2CLCD-Bibliothek der Autoren Nico und Thomas Eichelmann zur Anwendung. Die notwendigen Dateien können hier runtergeladen werden: http://computerheld.de/i2clcd/files/i2clcd-v0.1.zip Die verwendeten Dateien sind die i2clcd.h und i2clcd.c, die beide in das weiter oben beschriebene Header Verzeichnis kopiert werden sollten. Dadurch muss nur ein Verzeichnis, wie im Kapitel „I²C-Bibliothek einbinden“ erklärt, im AVR Studio 5.1 eingebunden werden. Nun steht dem eigentlichen Programm nichts mehr im Weg. Die beiden Bibliotheken werden mit den #include Befehl eingebunden. Das erste Programm Als Programmiersprache für GREETBoard-Projekte, im timogruss.de-Blog, wird C verwendet. In diesem Blog gibt es eine große Auswahl weiterer Programm-Beispiele, die es ermöglichen, die Funktionen dieses Bausatzes nach und nach zu erweitern. Hier ist der Link zum Blog: timogruss.de „Hallo Welt“ ausgeben Natürlich muss die erste Ausgabe ein „Hallo Welt“ sein und genau das kann das folgende Programm bewerkstelligen. #ifndef F_CPU #define F_CPU 16000000 #endif #include "i2cmaster.h" #include "i2clcd.h" // Einbinden der i2cmaster.h // Einbinden der i2clcd.h int main(void) { lcd_init(); lcd_command(LCD_CLEAR); lcd_wait_ms(30); lcd_printlc(1,1,"Hallo Welt"); // // // // // while(1){ ... } Hauptprogramm Starte I2CLCD Leere Display Warte 30ms Ausgabe an 1.Zeile, 1. Stelle // Ab hier beginnt Hauptschleife } 13 Abschluss timogruss.de Dieser Bausatz des GREETBoard-Projekts stammt vom Blog „timogruss.de“. Dort entstand die Idee einen „Mikrocontroller-Baukasten“ zu entwickeln, dessen zentrale Rolle das Hauptmodul „GREETBoard - ATMega128“ einnimmt. Es zeichnet sich durch die Möglichkeit aus, mit vielen Erweiterungen verbunden zu werden. Zusatzmodule, die direkt an Ports oder über den I²C-Bus angeschlossen werden, steigern somit die Anzahl der Funktionen und die erhöhen die Möglichkeiten für verschiedenste Anwendungen. Die Möglichkeiten sind somit unglaublich groß und die Palette der Zusatzmodule wächst immer weiter an. Ganz besonderes Augenmerk wird dabei auf eine einfache Umsetzung gelegt. Die Module sind mit einfach zu lötenden Bauteilen ausgerüstet, so dass sie auch mit geringen Lötkenntnissen zusammengebaut werden können. Obwohl die Programmierung ausschließlich in C durchgeführt wird, sind auch hier keine Vorkenntnisse nötig. Die verschiedenen Funktionen werden in einfachen und praxisorientierten Programmen beschrieben und aktiviert. Der Blog „timogruss.de“ ist dabei die zentrale Kommunikationsplattform. Hier lassen sich viele Programm- und Anwendungsbeispiele finden. Je größer die Auswahl an Modulen wird, umso größer wird auch das im Blog gespeicherte Wissen rund um das GREETBoardProjekt. Copyright Sofern nicht anders angegeben, stehen die Inhalte dieser Dokumentation unter einer „Creative Commons - Namensnennung-NichtKommerziell-Weitergabe unter gleichen Bedingungen 3.0 DE Lizenz“ 14 Sicherheitshinweise Lesen Sie diese Gebrauchsanleitung, bevor Sie diesen Bausatz in Betrieb nehmen und bewahren Sie diese an einem für alle Benutzer jederzeit zugänglichen Platz auf. Bei Schäden, die durch Nichtbeachtung dieser Bedienungsanleitung verursacht werden, erlischt die Gewährleistung/Garantie. Für Folgeschäden übernehmen wir keine Haftung! Bei allen Geräten, die zu ihrem Betrieb eine elektrische Spannung benötigen, müssen die gültigen VDE-Vorschriften beachtet werden. Besonders relevant sind für diesen Bausatz die VDE-Richtlinien VDE 0100, VDE 0550/0551, VDE 0700, VDE 0711 und VDE 0860. Bitte beachten Sie auch nachfolgende Sicherheitshinweise: Nehmen Sie diesen Bausatz nur dann in Betrieb, wenn er zuvor berührungssicher in ein Gehäuse eingebaut wurde. Erst danach darf dieser an eine Spannungsversorgung angeschlossen werden. Lassen Sie Geräte, die mit einer Versorgungsspannung größer als 24 V- betrieben werden, nur durch eine fachkundige Person anschließen. In Schulen, Ausbildungseinrichtungen, Hobby- und Selbsthilfewerkstätten ist das Betreiben dieser Baugruppe durch geschultes Personal verantwortlich zu überwachen. In einer Umgebung in der brennbare Gase, Dämpfe oder Stäube vorhanden sind oder vorhanden sein können, darf diese Baugruppe nicht betrieben werden. Im Falle eine Reparatur dieser Baugruppe, dürfen nur Original-Ersatzteile verwendet werden! Die Verwendung abweichender Ersatzteile kann zu ernsthaften Sach- und Personenschäden führen. Eine Reparatur des Gerätes darf nur von fachkundigen Personen durchgeführt werden. Spannungsführende Teile an dieser Baugruppe dürfen nur dann berührt werden (gilt auch für Werkzeuge, Messinstrumente o.ä.), wenn sichergestellt ist, dass die Baugruppe von der Versorgungsspannung getrennt wurde und elektrische Ladungen, die in den in der Baugruppe befindlichen Bauteilen gespeichert sind, vorher entladen wurden. Sind Messungen bei geöffnetem Gehäuse unumgänglich, muss ein Trenntrafo zur Spannungsversorgung verwendet werden Spannungsführende Kabel oder Leitungen, mit denen die Baugruppe verbunden ist, müssen immer auf Isolationsfehler oder Bruchstellen kontrolliert werden. Bei Feststellen eines Fehlers muss das Gerät unverzüglich ausser Betrieb genommen werden, bis die defekte Leitung ausgewechselt worden ist. 15 Es ist auf die genaue Einhaltung der genannten Kenndaten der Baugruppe und der in der Baugruppe verwendeten Bauteile zu achten. Gehen diese aus der beiliegenden Beschreibung nicht hervor, so ist eine fachkundige Person hinzuzuziehen Bestimmungsgemäße Verwendung Auf keinen Fall darf 230 V~ Netzspannung angeschlossen werden. Es besteht dann Lebensgefahr! Dieser Bausatz ist nur zum Einsatz unter Lern- und Laborbedingungen konzipiert worden. Er ist nicht geeignet, reale Steuerungsaufgaben jeglicher Art zu übernehmen. Ein anderer Einsatz als angegeben ist nicht zulässig! Der Bausatz ist nur für den Gebrauch in trockenen und sauberen Räumen bestimmt. Wird dieser Bausatz nicht bestimmungsgemäß eingesetzt kann er beschädigt werden, was mit Gefahren, wie z.B. Kurzschluss, Brand, elektrischer Schlag etc. verbunden ist. Der Bausatz darf nicht geändert bzw. umgebaut werden! Für alle Personen- und Sachschäden, die aus nicht bestimmungsgemäßer Verwendung entstehen, ist nicht der Hersteller, sondern der Betreiber verantwortlich. Bitte beachten Sie, dass Bedien- und/oder Anschlussfehler außerhalb unseres Einflussbereiches liegen. Verständlicherweise können wir für Schäden, die daraus entstehen, keinerlei Haftung übernehmen. 16