Zusatzhandbuch für das Komplettmodul D061(b) mit ATMega ... · Standardmäßig wird das Board mit...

24
Zusatzhandbuch für das Komplettmodul D061(b) mit ATMega Controller V 2.40 02.12.2006 © 2006 by Peter Küsters Dieses Dokument ist urheberrechtlich geschützt. Es ist nicht gestattet, dieses Dokument zur verändern und komplett oder Teile daraus ohne schriftliche Ge- nehmigung von uns weiterzugeben, es zu veröffentlichen; es als Download zur Verfügung zu stellen oder den Inhalt anderweitig anderen Personen zur Verfü- gung zu stellen. Zuwiderhandlungen werden verfolgt.

Transcript of Zusatzhandbuch für das Komplettmodul D061(b) mit ATMega ... · Standardmäßig wird das Board mit...

Zusatzhandbuch für das Komplettmodul D061(b) mit

ATMega Controller

V 2.40 02.12.2006

© 2006 by Peter Küsters

Dieses Dokument ist urheberrechtlich geschützt. Es ist nicht gestattet, dieses Dokument zur verändern und komplett oder Teile daraus ohne schriftliche Ge-nehmigung von uns weiterzugeben, es zu veröffentlichen; es als Download zur Verfügung zu stellen oder den Inhalt anderweitig anderen Personen zur Verfü-gung zu stellen. Zuwiderhandlungen werden verfolgt.

Seite 2 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Herzlichen Glückwunsch zum Erwerb des D061-Moduls.

Dieses Modul beinhaltet neben einem ATMega Mikrocontrollers noch die Ansteuerungs-elektronik für das Farbdisplay inkl. PowerBooster-Technologie, zwei RS232-Schnittstellen sowie eine optionale RS485 Schnittstelle. Dieses Modul erlaubt es Ihnen, die gesamte An-steuerungselektronik inkl. Farbdisplay auf kleinstem Raum unterzubringen. Sie müssen diesen Bausatz noch vervollständigen, indem Sie das Display aufstecken sowie die notwendigen Kabel und Steckverbinder anlöten. Diese Anleitung zeigt Ihnen die Anschlussbelegung des Boards und gibt ein paar Tipps zu diesem Board. Zur eigentlichen Ansteuerung des Farbdisplays verwei-sen wir auf das separate Programmierhandbuch. Bitte haben Sie Verständnis, wenn wir keine Anlaufstation für Fragen zur generellen Pro-grammierung dieses Mikrocontrollers sein können. Wir verweisen hier auf das umfangreiche Datenblatt des Atmel-Controllers (in Englisch) sowie die diversen Foren im Internet.

Port-Nutzung dieses Moduls Um dieses Modul nutzen zu können, müssen Sie die Verbindung zwischen Prozessor und Display kennen. Wenn Sie unsere Beispielprogramme nutzen, ändern Sie bitte den Anfang des Programms so wie in der rechten Box abgebildet. Display Verbindung Port am integrierten

Mikrocontroller Die Bascom-Beispielprogramme sollten am Anfang folgende Zeilen zeigen:

RS B.6 SD B.2 SC B.1 CS B.5

Lcd_port Alias Portb Ddrb = &B01100110 Const Rs = 6 Const CS = 5 Const Sdata = 2 Const Sclk = 1

ACHTUNG: 1) Stecken Sie niemals das Display auf oder nehmen es ab, solange Spannung am Modul anliegt. 2) Stecker Sie das Display immer richtig herum auf (siehe Abbildungen). Wenn Sie das Display verkehrt herum aufstecken, wird es beim Anschluss an die Versorgungsspannun-gen unweigerlich zerstört.

Seite 3 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Lieferumfang Standard-Lieferumfang: 1 x bestückte Platine mit ATMega Prozessor etc. 1 x Display 6 x Taster lang, 1 x Taster kurz (für Reset) 2-reihige Pfostenstecker (RM 2,54) 1 x ISP Buchse (2x5, RM 2,54). Software, Dokumentation Optionale Ausstattung Standardmäßig wird das Board mit einem ATMega 128 ausgeliefert. Gegen Aufpreis (siehe Online-Shop) liefern wir auch den pin-kompatiblen Typ ATMega 2561 (256 KByte Pro-grammspeicher, 8 KByte RAM, 4 KByte Eeprom etc.) oder einen AT90CAN128 (ähnlich ATMega128 aber mit integrierter CAN-Schnittstelle). Gegen Aufpreis ist weiterhin erhältlich: externer Quarz mit 14,7456 MHz oder 16,0 Mhz; Uhrenquarz 32 KHz, RS485-Schnittstelle

Seite 4 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Display aufstecken Das Display wird einfach auf den vorhandenen Stecker aufgeklickt – siehe nachfolgendes Fo-to. Stecken Sie das Display bitte niemals verkehrt herum auf – dies würde unweigerlich zur Zerstörung des Displays führen.

Sollte das Display für den gewünschten Einsatz zu locker sein, schlagen wir vor, dass Sie das Display am unteren Rand des Kunststoffrahmens mit einem Tropfen Klebstoff auf der Plati-ne fixieren. Vorsicht: das Display lässt sich nur dann sicher wieder entfernen, wenn Sie es lediglich am Kunststoffrand festkleben, kleben Sie es jedoch auf der Rückseite fest, dann wird u.U. die Rückfolie des Displays beim Abziehen von der Klebestelle beschädigt. Gehen Sie sorgsam mit dem Display um: ein zu starkes Drücken auf die Frontscheibe des Displays kann dieses zerbrechen.

Seite 5 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Spannungsversorgung Die vorliegende Platine ist mit 2 Spannungsreglern ausgestattet um einen einfachen Betrieb zu ermöglichen und um eine Beschädigung des empfindlichen Displays auszuschließen. Sie können an den Versorgungseingang Vcc – GND eine Gleichspannung von 5 bis 20 Volt anlegen. Der Prozessor und die RS-232 Schnittstelle wird mit 5 Volt betrieben, die Display-elektronik mit 3 Volt. Die beiden Spannungsregler sind Very-Low-Drop-Regler, so dass Sie tatsächlich auch nur 5 Volt anlegen brauchen (und nicht, wie bei den üblichen 7805 etc. mind. 6,5 Volt, um eine 5 Volt Ausgangsspannung zu erhalten).

Das Board enthält einen 5 Volt Spannungsregler, der jedoch – abhängig von der Höher der Eingangsspannung – nicht mehr allzu viele Leistungsreserven hat. Daher ist es anzuraten, dass Sie von den Ports des Moduls keine größeren Ströme anfordern bzw. die Eingangsspannung nicht wesentlich über 5 Volt liegt, um den Spannungsregler nicht zu überhitzen. Um auch größere Leistungen abrufen zu können, befindet sich neben den Lötpads für die Versorgungsspannung sich ein Feld für einen optionalen "großen" Spannungsregler im TO220 Gehäuse (z.B. 7805). Die Platzierung dieses zusätzlichen Spannungsregler (nicht im Lieferum-fang enthalten) erkennen Sie im nachfolgenden Foto oben rechts. Wenn Sie einen solchen Einlöten, durchtrennen Sie dann bitte auch die Leitung vom Standard-Spannungsregler auf dem Board. Es sollten nicht 2 Regler parallel in Betrieb sein. Die Trennstelle/Lötbrücke ist im nachfolgenden Foto mit einem gelben Kreis gekennzeichnet. Diese Brücke ist im Lie-ferzustand geschlossen, trennen Sie die Verbindung mit einem Messer auf, wenn Sie einen weiteren Spannungsregler einlöten möchten.

Seite 6 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Foto: Leiterbahn-Trennstelle für die Nutzung eines zweiten Spannungsreglers Wenn Sie ein externes Netzteil mit genau 5 Volt zur Verfügung haben, können Sie auch statt dem separaten Spannungsregler einzulöten einfach dort die Pads „In“ und „Out“ überbrü-cken und dann an den normalen Pads der Spannugsversorgung das externe Netzteil anschlie-ßen. Aber Achtung: die Spannung wird dann nicht mehr durch das Modul geregelt. Wenn Sie mehr als 5 Volt einspeisen kann zum einen der Mikrocontroller zerstört werden und auch die Displaybeleuchtung kann durchbrennen. Inbetriebnahme Stecken Sie das Display sowie die Taster auf (nicht den Reset-Taster vergessen: ganz oben neben dem ISP Stecker) und legen Sie eine Spannung von 5 bis 20 Volt an die Eingänge Vcc und GND (GND = Masse). Der Prozessor ist zu Testwecken bereits vorprogrammiert und zeigt Ihnen auf dem Bildschirm den Status aller verfügbaren Ports an. Das Drücken der Taster z.B. lässt den jeweils damit verbundenen Port von „1“ auf „0“ wechseln. Der Taster ganz oben am Rand der Platine ist der Reset-Taster und das Drücken bewirkt einen Neustart des Programms. Anmerkung: Port F4 bis F7 zeigen hier „0“ wenn sie für den JTAG-Zugriff vorbereitet sind. Diese Einstellung können Sie mittels einer sog. Fuse ändern. Um den Controller zu programmieren, brauchen Sie einen sog. ISP-Programmer, der nicht Bestandteil des Lieferumfanges ist. Dieser ISP-Programmer verbindet Ihren PC mit einem ATMega- Board.

Seite 7 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Die Pinbelegung des Moduls:

Die Anschlussbelegung der einzelnen Lötpads ist im obigen Foto zu ersehen. Zudem sind die Anschlüsse auch auf die Platine gedruckt worden – auch auf der Unterseite der Platine sind die Anschlüsse ersichtlich. Um Ihnen die Arbeit mit extern angeschlossenen Bausteinen zu erleichtern, haben wir an jeden Port-Stecker auch nochmals die Spannungsversorgung 5V und GND gelegt. Ausnahme: Port B, hier liegen nicht 5 Volt, sondern 3 Volt an. Port B wird teilweise vom Display genutzt – dieses wird über die SPI-Schnittstelle des Cont-rollers gesteuert. Die Ein-/Ausgänge von Port B können Sie demnach nicht nach Belieben nutzen. Wenn Sie ein Board mit einem AT90CAN128 bestellt haben, so stehen die Anschlüsse für den CAN-Port wie folgt zur Verfügung: D.5: TxCAN D.6: RxCAN

Seite 8 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Taktfrequenz / Quarze Der Prozessor ist aktuell auf 8 MHz Takt eingestellt (sofern Sie nicht direkt das Update auf 14,7456 MHz oder 16 MHz mitbestellt haben). Auf Wunsch können Sie die Geschwindigkeit des Controllers erhöhen, in dem Sie an die gekennzeichneten Stellen einen SMD-Quarz sowie 2x 22pF SMD-Keramikkondensatoren einlöten (siehe Foto).

Vergessen Sie dann nicht, das entsprechende Fusebit für die Geschwindigkeit umzupro-grammieren. Lieferzustand ist 0100 (8 MHz intern). Programmieren Sie mit externem 14,7456 Mhz oder 16MHz Quarz (und nur dann, wenn dieser eingelötet wurde): 1111; alle anderen Einstellungen oder ein fehlender Quarz führen u.U. zu einem nicht funk-tionierenden Board. Spielen Sie nicht grundlos mit den Einstellungen der Fuses herum! RTC Für Anwendungen, die die interne RTC (real time clock) des Controllers benötigen, stehen zwei Lötpunkte für den dann notwendigen Uhrenquarz (32 Khz) zur Verfügung. Das ne-benstehende Bild zeigt die beiden Löpads für diesen Quarz (Platinenoberseite). Am besten platzieren Sie diesen Quarz auf der Platinen-unterseite (oberes Foto, blaue Punkte) und löten ihn von oben fest. Den Uhrenquarz kann man dann gut „umklappen“.

Seite 9 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Die Steckverbinder Die Steckverbinder haben wir noch nicht eingelötet, da Sie u.U. eine andere Art der Verbin-dung vorziehen. Wir liefern 2-reihige Pfostenstecker mit, die Sie nach Belieben einbauen und festlöten können. Sie können je nach Bedarf entscheiden, ob Sie die Stecker von der Ober-seite der Platine (der Displayseite) oder der Unterseite nutzen möchten. Wir haben das Board so konstruiert, das beides möglich ist. Auch für die ISP-Verbindung haben wir ein Feld für die Kontaktierung von oben und eines für die Kontaktierung von unten vorgesehen (mehr hierzu im nächsten Kapitel). Grundsätzlich gilt: möchten Sie das Modul hauptsächlich zum Ausprobieren nutzen, ist ver-mutlich die Kontaktierung von oben sinnvoll, da die Platine dann flach vor Ihnen auf dem Tisch liegen kann, ohne dass Sie Kabel von unten zugeführt werden müssen. Wenn Sie je-doch vorhaben, das Modul inkl. Display in ein Gehäuse einzubauen, würden die Steckkontak-te an der Oberseite nur stören – hier ist nun eine Kontaktierung von unten sinnvoll. Die Taster werden von der Oberseite (Display-Seite) aus eingelötet. Die Taster wie auch die Steckverbinder können zum ersten Test einfach nur eingesteckt werden und sind aufgrund der durchkontaktieren Bohrungen häufig auch ohne Einlöten bereits funktionsfähig. Wir haben die Port-Stecker so weit auseinander gesetzt, damit Sie hier entweder Pfosten-stecker oder auch Standard-Wannenstecker einlöten können (siehe Fotos auf der nächsten Seite). Auf der nächsten Seite sind zwei Fotos abgebildet, die alternativ die Nutzung mit Steckern oder Wannensteckern zeigen.

Seite 10 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Foto oben: Beispiel mit Kontaktierung von oben mit Pfostensteckern Foto unten: Beispiel mit Kontaktierung von unten mit Wannensteckern

Seite 11 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Der ISP Stecker Über den ISP-Stecker wird das Modul programmiert. Je nach dem, ob Sie das Modul vor sich auf dem Tisch liegen, oder unterhalb einer Frontplatte montiert haben, gibt es auf der Platine zwei unterschiedliche Positionen für den ISP-Stecker. Diese beiden Positionen sind mit ISP-Top bzw, ISP-Bottom gekennzeichnet. Wie auf dem Foto auf der vorhergehenden Seite ge-zeigt, löten Sie dann den Wannenstecker entweder von oben auf der oberen Position oder von unten auf der darunterliegenden Position ein. Wenn Sie den beigefügten Wannenstecker in ein ISP-Feld einlöten, dann beachten Sie bitte: Beim Auflöten auf der Displayseite: Der Stecker gehört in die obere Position – die Öffnung im Stecker zeigt nach hinten (also weg von der Platine). Bitte konsultieren Sie für die korrekte Positionierung das obere Foto auf Seite 10 und die nachfolgende Tabelle. Beim Auflöten von der Bauteilseite: Der Stecker gehört in die untere Position - die Öffnung im Stecker zeigt Richtung ATMega-Controllerchip. Bitte konsultieren Sie für die korrekte Positionierung das untere Foto auf Seite 10 und die nachfolgende Tabelle.

Oberseite: ISP-Connector Unterseite: ISP-Connector (links); JTAG Con-nector (rechts)

ISP

JTAG

Seite 12 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Der JTAG-Stecker Das JTAG-Interface wird für das Debugging aus bestimmten Programmiersprachen genutzt (Bascom gehört nicht dazu). Hiermit lassen sich zur Laufzeit des Programms Variableninhalte etc. abrufen. Der JTAG-Stecker kann im Gegensatz zum ISP-Stecker nur von unten (Bauteil-seite) eingelötet werden. Hier muss die Öffnung in der Wanne weg vom Controller zeigen (siehe unteres Foto auf Seite 10. Leider ist uns bei dieser Platinenrevision noch ein Fehler unterlaufen, so dass Sie für die ord-nungsgemäße Nutzung des JTAG-Steckers noch zwei manuelle Verbindungen durchführen müssen. Es fehlen die beiden Leitungen für Reset und Vcc. Die Reset-Leitung führt direkt am Stecker vorbei. Hier brauchen Sie nur mit einem Messer den Lötlack auf der Leiterbahn etwas abzukratzen und mit etwas Lötzinn eine Brücke zwi-schen Pin und Leiterbahn herzustellen. Oder Sie kontaktieren das Pad mittels eines kurzen Stücks Draht und der Durchkontaktierung links vom Steckerfeld (siehe Foto; blau einge-zeichnet). Für die zweite Brücke brauchen Sie ein ca. 2 cm langes Stück Draht, dieses wird dann wie im Foto in Rot gezeigt verlötet. Bitte entschuldigen Sie diese notwendige Extra-Arbeit.

Seite 13 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Die Taster Die Taster des Moduls sind bereits mit Port C verbunden (siehe Aufdruck auf der Platine) und ziehen die entsprechende Leitung beim Drücken auf Masse. Wenn Sie die Taster nutzen möchten, so achten Sie darauf, dass Sie die Ports 2 bis 7 von Port C nicht gleichzeitig aus Ausgang definieren – dann würden Sie beim Drücken eines Tasters unweigerlich einen Kurz-schluss verursachen.

Die Taster in der Mitte sind kreuzweise angeordnet, hiermit lassen sich hervorragend Menüs etc. bedienen: Beispiel: mit C.6 und C.7 bewegt man sich im Menü auf und abwärts, mit C.4 und C.3 können Werte geändert werden. Die äußeren beiden Taster (C.2 und C.5) fungie-ren als „OK“ und „Abbruch“.

C.2 C.4 C.3 C.5C.6

C.7

Seite 14 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Serielle Schnittstellen a) RS 232-Belegung Zur Kommunikation mit anderen Geräten stehen auf der Platinen noch Stecker für 2 RS232-Verbindungen oder optional einer RS485-Schnittstelle (siehe ab Seite 19) zur Verfügung. Der ATMega128 bietet zwei serielle Schnittstellen: 0 und 1. Die Pins für die serielle Schnittstelle 0 des ATMega-Controllers werden auch für das ISP-Programmierinterface genutzt – beide kämen sich bei einer gleichzeitigen Nutzung in die Quere, das der RS232-Pegelwandler die Receive-Leitung ohne Signal permanent auf High zieht. Daher ist die serielle Schnittstelle 0 des ATMegas standardmäßig nur mit dem ISP-Stecker verbunden und nicht mit dem RS232 Pegelwandler. Um diese Schnittstelle als High-Pegel-Schnittstelle (mehr dazu auf den nächsten Seiten) nutzen zu können, müssen Sie den Jumper 1 und 2 entsprechend modifizieren (siehe auch Kapitel Jumper auf Seite 22).

Wenn Sie kein High-Pegelinterface brauchen, sondern z.B. lediglich 2 Controllermodule mit-einander verbinden möchten, so können Sie dies natürlich ohne Änderung der Jumperfelder durchführen (die Verbindung muss dann lediglich für eine evtl. Neuprogrammierung über den ISP-Programmieradapter getrennt werden). Die serielle Schnittstelle 1 steht ohne weitere Modifikationen zur Verfügung. Achten Sie dar-auf, dass an diesen beiden Leitungen eine Spannung von +12V und -12V anliegen kann. Ein unvorsichtiger Umgang (z.B. eine Verbindung von diesen Lötpads zu einem Port des Cont-rollers) kann das gesamte Board beschädigen oder zerstören. Auf den folgenden Seiten erfahren Sie mehr über die RS-232 Schnittstelle.

Seite 15 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

RS232 RS-232 ist eine Kommunikationsschnittstelle welches die Daten Bit für Bit auf zwei High-Pegel-Signal-Level sendet: - eine Spannung von -3 bis -25 Volt entspricht einer logischen Eins (1) - eine Spannung von +3 bis +25 Volt entspricht einer logischen Null (0) Das Zeichen „Y“ (dezimal 89 – binär 01011001) wird wie folgt übertragen:

+12V

-12V

+3V

-3V

0 0 0 01 1 1 1

Wie das obige Bild zeigt, ist der Spannungsbereich von -3 bis +3 Volt undefiniert. In der Pra-xis ist dies jedoch nicht so. Meistens werden alle Spannungen oberhalb von +2,5 Volt als logische Eins angesehen und alle Spannungen darunter als logisch Null. Unser Modul sowie ein handelsüblicher PC arbeitet mit ca. +12 Volt und -12 Volt. Die elektronische Spezifikation der RS-232 Verbindung ist robust – alle Ausgänge müssen einem Kurzschluss widerstehen und alle Eingänge müssen ein Schmitt-Trigger Verhalten ha-ben. Dies lässt eine RS-232-Schnittstelle am PC wesentlich weniger anfällig sein, als z.B. die Parallelschnittstelle, welche mit TTL-Level arbeitet. RS-232 ist ein asynchrones Protokoll, d.h. es wird keine separate Clock-Information mit ü-bertragen. Sowohl die Sende-, wie auch die Empfangsstation müssen die Geschwindigkeit kennen (als Baud-Rate bezeichnet). Wir nutzen hier die drei wichtigsten Signale des RS-232-Systems: - RxD : receive data, Pin 2 am DB9 Stecker - TxD : transmit data, Pin 3 - Masse, Pin 5 Diese Pin-Nummern entsprechen der Nummerierung am normalen DB9-Stecker am PC oder Laptop (siehe auch die Fotos auf der nächsten Seite). Wenn Sie eine Verbindung zwischen PC und Mikrocontroller aufbauen möchten, so benöti-gen Sie ein übliches serielles Kabel (KEIN sog. Null-Modemkabel, da hier die Kabel gekreuzt werden) mit einem Stecker und einer Buchse. Die Seite mit der Buchse wird mit Ihrem PC verbunden, der Stecker mit dem Mikrocontroller. Das nachfolgende Bild zeigt Ihnen die

Seite 16 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

notwendige Verbindung. Sollten Sie nur ein Nullmodem-Kabel zur Verfügung haben, dann müssen Sie gezeigten Verbindungen TX und RX tauschen, da diese beiden Leitungen inner-halb des Kabels getauscht sind.

Pin 2 ist definiert als Empfangskanal des PCs, daher müssen Sie hier den Sendekanal (TX) des Mikrocontrollerboards anschließen. Pin 3 entspricht dem Sendekanal des PCs, dieser wird an den Eingang des Boards (RX) angeschlossen. Der ATMega auf dem Board bietet zwei unabhängige RS-232 Interfaces. Eines davon (serielle Schnittstelle Nr. 1) kann ohne Einschränkung genutzt werden – die Ports der seriellen Schnittstelle Nr. 0 werden jedoch auch für die ISP-Programmierung genutzt. Bei gleichzeiti-gem Anschluss eines RS232 Pegelwandlers ist die ISP-Schnittstelle nicht mehr nutzbar. Die Jumper 1 und 2 legen daher fest, ob diese Ports des Controller mit einem RS2232-Pegelwander verbunden werden sollen oder nicht. Standard ist: Jumper offen, verbunden nur mit ISP; Jumper geschlossen: Controller-Ports verbunden mit Serieller Schnittstelle und ISP-Stecker, ISP funktioniert dann nicht mehr. Wenn Sie in einer Testphase beides öfters benöti-gen, bietet es sich an, die Jumper mittels eines Schalters zu Öffnen oder zu Schließen. Wenn Sie das RS-232 Interface des Boards nutzen möchten, hilft Ihnen evtl. das nachfolgen-de Beispiel. Die Schnittstelle ist auch sehr praktisch zum Debuggen eigener Software. Mittels des Print-Befehls können Sie jederzeit z.B. den Inhalt einer Variable ausgeben um zu kontrol-lieren, ob diese den erwarteten Wert enhält. Die Ausgabe des Boards über die RS-232 Schnittstelle lassen Sie sich dann mittels eines Terminal-Programms anzeigen. Unter MS-Windows® nutzen Sie z.B. das Programm Hyperterminal, in Bascom gibt es einen eingebauten Monitor etc.

Seite 17 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Das nachfolgende kleine Programm gibt permanent einen String auf dem Schnittstellenaus-gang aus – damit können Sie schnell eine funktionsfähige Verbindung aufbauen. Achten Sie auf die korrekten Werte des genutzten Quarzes.

RS232 und die Taktfrequenz / Übertakten des Boards Wenn Sie eine größere Datenmenge übertragen möchten, oder ihre Daten fehlerfrei an-kommen sollen, dann sollten Sie wissen, dass die notwendige Frequenz zur passenden Baud-Rate vom Mikrocontroller durch Teilen der Taktfrequenz des Mikrocontrollers erreicht wird. Zwei Dinge sind wichtig zu wissen: a) Der eingebaute interne Taktgeber des Controllers ist nicht sehr genau – die Frequenz schwankt im Übrigen auch noch je nach Umgebungstemperatur. Wenn also Ihr Board ohne externen Quarz betrieben wird, sind Übertragungsprobleme zu erwarten. Besser, Sie setzen einen Quarz ein – unsere Boards sind alle dafür vorbereitet. b) Der übliche externe 16 MHz-Quarz ist nicht optimal, denn durch die Teilung wird keine 100% korrekte Taktfrequenz erreicht. Bei kleineren Baudraten ist dies noch nicht relevant, bei höheren Baudraten macht sich dies jedoch bemerkbar. Ein idealer Quarz wäre einer mit einer Frequenz von 14.7456 MHz oder 18.432 MHz. Alles über 16 MHz betreibt den Mikrocontroller jedoch über seiner Spezifikation von 16 MHz – d.h. Sie übertakten ihn. Normalerweise führt eine solch geringe Übertaktung noch zu keinem Problem, trotzdem geschieht dies immer auf eigenes Risiko. Übrigens treten evtl. Programmfehler als erstes beim Schreiben und Lesen des internen Eeproms auf. Der eigent-liche Controller-Kern läuft oft auch mit über 20 MHz fehlerfrei – dann aber ist ein Zugriff auf das Eeprom nicht mehr zu empfehlen. c) Sie müssen dem Compiler mitteilen, welche Taktfrequenz am Controller anliegt, sonst wird die Ermittlung des notwendigen Teilers für die Berechnung der Baudrate nicht korrekt durchgeführt. In Bascom führen Sie dies mit dem Befehl $crystal = 8000000 am An-fang des Programms durch at the beginning (8000000 für 8 MHz; 16000000 für 16 MHz, 14745600 für 14.7456 MHz etc.). Hier muss die exakte Baudrate eingegeben werden, ansonsten ist eine RS-232-Verbindung nicht möglich.

‘sample program RS232 output$regfile = "m128def.dat" $crystal = 8000000 ’change if needed $baud1 = 9600 Open "COM2:" For Binary As #1 Do Print #1 , "Hello world" Wait 1 Loop Close #1 End

Seite 18 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

In Bascom® befindet sich übrigens ein Rechner, der Ihnen die Fehlerrate Ihrer gewählten Kombination aus Quarz und Baudrate anzeigt. Sie finden diesen unter dem Menü Options / Compiler / Communications. Screenshots:

In Kürze: Da der interne 8 MHz Taktgeber nicht sehr akkurat ist, sollten Sie einen externen Quarz nutzen, wenn Sie RS-232 einsetzen möchten. Ein 16 MHz-Quarz z.B. führt bei 9600 Baud zu einer Fehlerrate von 0,16%, was OK ist. Alles unter 1% Abweichung ist in der Regel akzeptabel. 14.7456 MHz oder 18.432 MHz führen zu 0,00% und sind die ideale Wahl für RS-232, leider gibt es diese Quarze nicht immer und in allen Ausführungen.

Seite 19 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

b) RS-485 Interface Das RS-485-Interface wird von Ihrer Software aus genauso wie die RS-232 Schnittstelle an-gesprochen. Daher gilt das oben besprochene auch ausnahmslos (mit Ausnahme der Span-nungen und der Kabelverbindung) für die RS-485 Schnittstelle. Diese Schnittstelle unter-scheidet sich lediglich durch das genutzte Spannungsniveau: Oben wurde bereits erwähnt, dass RS-232 ist ein Kommunikationsstandard ist, welches die Daten Bit für Bit auf 2 Signal-Level sendet: - eine Spannung von -3 bis -25 Volt entspricht einer logischen Eins (1) - eine Spannung von +3 bis +25 Volt entspricht einer logischen Null (0) Die RS-232-Verbindung hat eine Masseleitung und eine Datenleitung, welche Spannungen zwischen -25V und +25V gegen Masse aufweisen kann. Der Nachteil bei dieser Signalüber-tragung ist die Anfälligkeit für Störungen. Ein Störimpuls ist bei einer langen Leitung schnell eingefangen, wird als Bit erkannt und führt zu einer fehlerhaften Übertragung. Mit RS-485 wurde eine andere Übertragungsart gewählt. Die Datenleitungen in eine Richtung heißen hier A und B. Ein Bit wird hier durch eine Pegeländerungen auf beiden Leitungen gekenn-zeichnet. Bei einem Low-Signal liegt auf der Leitung kein Pegel an, bei einem High-Signal liegt auf der A-Leitung ein +5Volt-Signal, auf der B-Leitung ein -5Volt-Signal an. Da es sehr un-wahrscheinlich ist, dass ein Störsignal auf einer Leitung ein positives und auf der anderen ein negatives Störmuster hinterlässt, ist diese Signalübertragung wesentlich störunempfindlicher als eine RS232-Verbindung.

+5V

-5V

0 0 0 01 1 1 1

Line A

Line B

0V

Einen Stecker-Standard wie bei RS-232 gibt es bei RS-485 nicht, hier wird einfach mit einem 2-adrigen Kabel gearbeitet (Halbduplex) oder bei Vollduplex mit einem 4-adrigen Kabel. Das D061-Board wird standardmäßig ohne RS485-Spezialchip geliefert. Sie müssen diesen bei Bedarf nachrüsten. Dazu löten Sie an die nachfolgend gezeigte Position einen Max485 Chip im SMD-Gehäuse (S08) ein.

Seite 20 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Oberhalb des Max485-Chips erkennen Sie 2 Jumper-Felder (J4 und J5). Damit hat es folgen-de Bewandtnis: Der ATMega 128 nutzt für die Kommunikation per RS232 oder RS485 die gleichen Ports (hier Rx1 und Tx1 – D.2 und D.3) – also die serielle Schnittstelle 1. Da eine gleichzeitige Beschaltung von RS232 und RS485 Pegelwandler nicht möglich ist, wird die jeweilige Auswahl mittels J4 und J5 festgelegt. Standardmäßig sind diese als RS232 defi-niert. Möchten Sie die Auswahl auf RS485 ändern, so durchtrennen Sie bitte die bereits be-stehende Verbindung innerhalb des Jumpers J4 und J5 (auf obigem Foto die Verbindung zwi-schen mittlerem und oberen Feld) und verbinden Sie dann mittels eines Lötkolbens und et-was Lötzinn die beiden anderen Felder des Jumperfeldes (mittleres und unteres Feld). Der Max485 ist ein Halbduplex-Chip. Um beim Halbduplexbetrieb die korrekte Umschaltung zwischen Senden und Empfangen durchzuführen, können Sie an diesem Chip die Sende- und Empfangseinheit getrennt ein- und ausschalten: RE (Receive enable) des Max485 ist mit C.0 des ATmega128 verbunden; DE (transfer enable) mit C.1 des ATmega128 verbunden.

Seite 21 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Spezialfall analoge Eingänge Einige Eingänge des Prozessors können analoge Werte auswerten. Wer sehr exakte Werte braucht, der findet am ATMega128 drei spezielle Ports für Referenzspannungen: AGnd, AVcc, ARef. Wenn die Analogeingänge nicht mit Referenzeingängen, bzw. nur als übliche digitale Ports genutzt werden, ist der Port AGnd auf Masse zu legen und der Port AVcc an die 5-Volt Versorgung anzuschließen. In der Regel werden diese Eingänge digital genutzt, so dass wir hierfür bereits eine Vorbereitung getroffen haben: Der Eingang AVcc sowie ARef sind bereits mit Vcc (also 5 Volt) verbunden. AGND liegt an Masse. Wenn Sie eine eigene Referenzspannung (ARef) zur Verfügung stellen möchten, so können Sie dies durch einfaches Durchtrennen eines Jumpers (J3) bewerkstelligen (siehe Jumper, Seite 22). Die Anschlüsse AGnd und AVcc werden in der Regel immer an die zent-rale Masse bzw. Vcc gelegt, daher haben wir dies standardmäßig durchgeführt und nicht nach außen geführt.

Nach Durchtrennen des Jumpers J3 (ist im Lie-ferzustand geschlossen) wird nun Pin 10 des Steckerfeldes für Port F/G als ARef-Eingang genutzt (ansonsten ste-hen dort +5V zur Verfü-gung). Neben diesem Stecker befindet sich übrigens auch noch ein Feld für einen optiona-len Kondensator (auf beiden Seiten der Plati-ne).

Nochmal zur Sicherheit: die meisten Anwender müssen hier nicht eingreifen. Auch bei Nut-zung der Analogeingänge ist die Nutzung von ARef nicht zwingend notwendig – nur wenn Sie auf Genauigkeit bedacht sind, ist dies hilfreich (allerdings gibt es können Sie auch eine ATMe-ga-interne Referenzspannung zuschalten – siehe Datenblatt des ATMega). Solange Sie die Leiterbahnen nicht durchtrennen, liegt an ARef die normale Versorgungs-spannung an.

ARef

Seite 22 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Jumper Auf den vorhergehenden Seiten wurden die verschiedenen Felder mit Jumpern / Lötbrücken bereits angesprochen. Nachfolgend finden Sie nochmals eine Übersicht über alle diese Fel-der: Jumper Positionierung Siehe

auch Seite

Erläuterung

J1 Platinenoberseite, oben links

16 Feld schließen, wenn die serielle Schnittstel-le 0 genutzt werden soll. Dieses Feld: Tx0 (E.1) Achtung: ISP-Programmierung nicht bei geschlossenem Pad nicht möglich.

J2 Platinenoberseite, oben links

16 Feld schließen, wenn die serielle Schnittstel-le 0 genutzt werden soll. Dieses Feld: Rx0 (E.0) Achtung: ISP-Programmierung nicht bei geschlossenem Pad nicht möglich.

J3 Platinenoberseite, oben links

21 Feld trennen, wenn ARef separat zugeführt werden soll

J4 Platinenunterseite am Feld für den op-tionalen Max485

20 Obere beiden Felder trennen und untere beiden Felder verbinden bei Nutzung eines Max485 für eine RS485 Verbindung.

J5 Platinenunterseite am Feld für den op-tionalen Max485

20 Obere beiden Felder trennen und untere beiden Felder verbinden bei Nutzung eines Max485 für eine RS485 Verbindung.

Trennstelle Platinenunterseite, bei den Pads für die Spannungsversor-gung

5 Feld durchtrennen, wenn ein „größerer“ Spannungsregler (z.B. 7805) eingelötet wird – ohne Durchtrennen arbeiten zwei Span-nungsregler gegeneinander, was nicht emp-fehlenswert ist.

Seite 23 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Technische Daten Display-Modul-Bausätze: Artikel D061-B: Maße: 103 x 58 mm

ca. 8 mm hoch (mit Display, ohne Taster) Versorgungsspannung: 5 bis 20 Volt Gleichstrom Prozessor: ATMega 128 128 KByte Programmspeicher 4 KByte RAM 2 KByte Eeprom max. 16 MHz Takt (Lieferumfang 8 MHz) Display: 132x132 Pixel, 65.536 Farben Aktive diagonale Fläche: 1,5“ (38mm) Achtung! Es gibt 7 Modelle von diesem Display. Im Zweifelsfall können Sie Displays günstig bei www.display3000.com beziehen Optional gegen Aufpreis ist dieses Board verfügbar mit: 1) ATMega2561 (256 KByte Flash, 8 KByte RAM, 8 KByte Eeprom) 2) AT90CAN128 (wie Atmega128 aber mit CAN-Schnittstelle) Der ATMega128 Prozessor wurde von uns gegenüber der Standardauslieferung des Herstellers ATMEL wie folgt umprogrammiert: Fusebit DCBA: Speed von 0001 (1MHz intern) auf 0100 (8 MHz intern) Fusebit I: Preserve EEPROM when chip erase Fusebit P: ATMega 128 Modus Eeprom und Programmspeicher wurden zu Testzwecken bereits programmiert. Port F4 bis F7 stehen nicht zur Verfügung, da JTAG eingeschaltet ist. Sollten Sie einen JTAG-Zugriff nicht benötigen, so können Sie Fusebit F: auf JTAG disabled ändern und somit auch die Ports F4, F5, F6, und F7 nutzen. Hersteller: Speed IT up Inhaber Peter Küsters Wekeln 39 47877 Willich Telefon: (0 21 54) 88 27 5-0 Telefax: (0 21 54) 88 27 5-22 Weitere Informationen und Updates: www.display3000.com Autor dieses Manuals: Peter Küsters. © aller Informationen: Peter Küsters

Seite 24 Zusatzhandbuch D061B – V2.4 © Peter Küsters - www.display3000.com

Haftung, EMV-Konformität Wenn Sie diesen Bausatz fertig gestellt haben bzw, diese Baugruppe durch Erweiterung bzw. Gehäuseeinbau betriebsbereit gemacht haben, gelten Sie nach DIN VDE 0869 als Hersteller und sind verpflichtet, bei der Weitergabe des Gerätes alle Begleitpapiere mitzuliefern und auch Ihren Namen und Ihre Anschrift anzugeben. Geräte, die aus Bausätzen selbst zusammengestellt werden, sind sicherheitstechnisch wie ein industrielles Produkt zu betrachten. Derjenige, der den Bausatz zusammenbaut und in einem Gehäuse montiert, gilt als Hersteller und ist damit selbst für die Einhaltung der geltenden Sicherheits-, EMV- und Entsorgungsvor-schriften verantwortlich. Für Schäden die durch fehlerhaften Aufbau entstanden sind, direkt oder indirekt, ist die Haf-tung generell ausgeschlossen. Bei der Lieferung von Fremdprodukten als auch Software gelten über diese Bedingungen hinaus die besonderen Lizenz- oder sonstigen Bedingungen des Herstellers.