Experimentierplatine mit AT89S85252/53 oder AT89S51/52 von Atmel



Beschreibung der I2C-Erweiterungen
 

Wichtiger Hinweis zum Prozessor:

Die Produktion des AT89S8252 wurde vor einiger Zeit eingestellt. Restbestände sind nur noch vereinzelt lieferbar. Als pinkompatibler Ersatz eignen sich die Atmel-Prozessoren AT89S8253 und AT89S51/52. Gegenüber dem AT89S8252 sind einige wesentliche Unterschiede zu beachten (siehe auch):

Funktionsunterschiede:
Typ Flash SRAM EEPROM UARTs SPI Timers Preis
AT89S51 4 kB 128 B - 1 - 2 ca. 2 EUR
AT89S52 8 kB 256 B - 1 - 3 ca. 1,50 EUR
AT89S8253 12 kB 256 B 2 kB 1 1 3 ca. 3,50 EUR

Gemeinsamkeiten von AT89S51/51/8253: Gleicher CPU-Kern, Taktfrequenz bis 24 MHz, 32 I/O-Ports, Watchdog, In-System-programmierbar, Layout.

Wichtig: Die aktuell produzierten Controller erfordern bei 22 MHz eine veränderte Beschaltung des Quarzes (Einzelheiten in der ausführlichen Beschreibung ).


1 Übersicht:

Das Experimentierboard bildet die Basis für die Experimente mit dem Mikrocontroller. Mit ihm können selbst geschriebene Programme schnell und einfach getestet werden, indem sie über die serielle Schnittstelle von einem PC in den Programmspeicher geladen werden. Auf dem PC wird dazu das Programm MC-51 empfohlen, das alle erforderlichen Funktionen (Editor, Assembler, Pascal-Compiler, Simulator, In-System-Programmierer und Terminal) für die Programmentwicklung bereitstellt. Die Programme für den Mikrocontroller können entweder in der Maschinensprache Assembler oder in der höheren Programmiersprache Pascal erstellt werden.
Das Testen eigener Programme kann mit dem integrierten Simulator/Debugger erfolgen, der auch die Standardhardware (Interrupts, Ports, Timer und Schnittstelle) nachbildet.
Im Terminalmodus muss zur Kommunikation mit dem PC über die serielle Schnittstelle im Programmspeicher des Mikrocontrollers auf dem Experimentierboard ein geeignetes Monitorprogramm vorhanden sein. Der Benutzer kann die Programmierung, wie nachfolgend beschrieben, selbst vornehmen.
Außerdem bietet das Experimentierboard die Möglichkeit, den internen Programmspeicher des Mikrocontrollers über die serielle Schnittstelle zu programmieren. Der Controller kann dann auch auf anderen Boards eingesetzt werden. Wenn dort kein externer Speicher benötigt wird, stehen auch die Ports 0 und 2 frei zu Verfügung.

   
 
Experimentierplatine mit AT89S85252
Das 3D-Bild und die MPG-Animation wurden erstellt mit Eagle 3D von M. Weißer.

Auf dem Experimentierboard befindet sich ein Mikrocontroller vom Typ AT82S8252/53 der Firma Atmel.
Er enthält alle Standardfunktionen der 51-Serie:

und die folgenden erweiterten Funktionen:

Außerdem befinden sich auf dem Experimentierboard noch folgende Komponenten:


2 Aufbau

Das Experimentierboard liegt in verschiedenen Versionen vor:

Die einseitige Version kann mit verhältnismäßig einfachen Mitteln angefertigt werden und eignet sich damit am besten für den Eigenbau. Bei einer doppelseitigen Platine erfordert es einige Erfahrung, da die erforderlichen Durchkontaktierungen von Hand durch Löten auf Ober- und Unterseite herzustellen sind. Die Schaltpläne und Platinen-Layouts werden als PDF-Dateien bereitgestellt. Der Ausdruck des Layouts für die Belichtung kann mit einem Laser- oder Tintenstrahldrucker erfolgen. Wichtig ist die Auswahl des richtigen Druckmediums. Mit dem Laserdrucker kann sehr gut auf normales Transparentpapier gedruckt werden, noch besser ist eine Spezialfolie (siehe auch Kap. 6). Bei Tintenstrahldruckern eignet sich meistens die zum Drucker passende Originalfolie am Besten. Wichtig ist eine gleichmäßige Schwärzung der späteren Kupferflächen auf der Belichtungsvorlage. Weitere Hinweise zur Anfertigung von Platinen mit einfachen Mitteln findet man im Internet (z.B. bei WikiBooks und unter dem Stichwort Platinen ätzen).

Wer sich selbst mit der Entwicklung von Schaltungen beschäftigen möchte, hat mit der Freeware-Version von Eagle 4.1 eine sehr komfortable Möglichkeit, dies zu tun. Sie ist identisch mit der kommerziellen Version, lediglich die Anzahl der Schaltplanseiten (1), die Platinengröße (80x100m²) und die Anzahl der Lagen (2) sind beschränkt.
Die oben bereitgestellten Eagle-Dateien können damit auch den eigenen Wünschen angepasst werden. Alle verwendeten Teile (außer Standard-ICs) sind in zwei Eagle-Bibliotheken zum Herunterladen zusammengefasst.

Bei der Bestückung sollte man alle ICs in Fassungen setzen. Insbesondere wird dies für den Mikrocontroller empfohlen, denn nur so kann das Board auch als »Programmiergerät« genutzt werden.

Der verwendete Mikrocontroller kann bis zu einer Taktfrequenz von 24 MHz eingesetzt werden. Für das Experimentierboard wird ein Grundwellen-Quarz mit einer Frequenz von 22,1184 MHz empfohlen. Mit dieser Taktfrequenz kann die serielle Schnittstelle mit bis zu 38400 baud betrieben werden, da diese Quarzfrequenz ein ganzzahliges Vielfaches der gängigen Baudraten darstellt. Bei 24 MHz sind dagegen nur maximal 9600 baud möglich.

Hinweis: Ursprünglich wurde das Board für den Mikro-Controller AT89S8252 entwickelt. Dieser wurde inzwischen durch den Nachfolgetyp AT89S8253 ersetzt, der eine etwas veränderte Oszillatorschaltung erfordert: C11 entfällt und C12 wird ersetzt durch einen Widerstand R17 von 4,7 MΩ. (siehe Abb. oben)


3 Anschlüsse

Stromversorgung

Das Board besitzt einen eigenen Spannungsregler für die benötigte 5V-Spannung und kann z.B. mit einem ungeregelten Steckernetzteil von ca. 9 V Gleichspannung (ca. 300 mA) betrieben werden. Das Netzteil wird an die Buchse BU1 angeschlossen. Am inneren Stift der Buchse liegt der Pluspol.

Es kann stattdessen auch eine Gleichspannungsversorgung an die beiden Lötstifte +8..10V und Gnd fest angeschlossen werden. Die Stromversorgung von Erweiterungsboards mit 5V-Gleichspannung erfolgt entweder über die Stecker ST3, ST4 oder die Lötstifte +5V und Gnd.

Serielle Schnittstelle

Die serielle Schnittstelle z.B. eines PCs wird an den Stecker ST1 (DSub9-Buchse) angeschlossen. Für die Verbindung mit einem PC wird ein 1:1-Kabel mit jeweils einem Stecker und einer Kupplung benötigt (siehe Kap. 6). Die Belegung der verwendeten Stifte entspricht dem üblichen Standard und ist in Tab. 1 angegeben.

Der gleiche Anschluss wird auch für die In-System-Programmierung des Mikrocontrollers verwendet. Die Umschaltung zwischen den beiden Betriebsarten erfolgt über den Schalter SCH1. Die jeweiligen Anschlussbelegungen sind in Tab. 1 dargestellt.

Ports 1 und 3

Am Stecker ST2 liegen die frei verfügbaren Portanschlüsse des Mikrocontrollers, sowie die 5V-Versorgungsspannung und die Masse. Die Belegung ist in Tab. 2 beschrieben.


Anzeige

Der Stecker ST3 ist für den Anschluss einer LCD-Anzeige vorgesehen. Es eignen sich dafür die oben genannten Typen. Sie sind alle anschlusskompatibel mit den entsprechenden Typen EX16x der Firma Electronic Assembly (siehe dazu auch das bereitgestellte Datenblatt).

Der Stecker ist für einen Betrieb der Anzeigen im 4-Bit-Modus ausgelegt. Die Tab. 3 beschreibt die erforderlichen Verbindungen.

Externer Speicher (nur auf der einseitigen Platine vorhanden)

An den Stecker ST4 können externe Speichermodule sowohl für Programm (EPROM) als auch für Daten (RAM) angeschlossen werden. Die Steckerbelegung ist in Tab. 4 beschrieben. Der interne Programm­speicher des AT89S8252 kann falls erforderlich mit dem Jumper J2 abgeschaltet werden (Stellung B).

Es ist auch möglich, an den Stecker ST4 ein Interface für die Ein- und Ausgabe anzubinden. Dazu können die Adressen der freien Speicherbereiche des Datenspeichers (0800h .. 7FFFh, siehe Abb. 1) verwendet werden.


Sonstiges

Der Jumper J2 (nur auf der einseitigen Platine vorhanden) legt fest, ob der interne Programmspeicher des Mikrocontrollers (Stellung A) oder ein extern angeschlossener Programmspeicher (EPROM) ab Adresse 0 (Stellung B) benutzt werden soll. Im Normalmodus steht dieser Jumper auf A. Es wird dann nach einem Reset oder nach dem Einschalten das im internen Programmspeicher befindliche Monitorprogramm gestartet. Zu testende Programme können dann in das RAM ab Adresse 8000H geladen und über das Monitorprogramm von dort gestartet werden.

Durch Einsetzen des Jumpers J1 werden die LED-Anzeigen für das Port 1 mit Spannung versorgt. Sie leuchten jeweils, wenn die zugehörigen Portleitungen L-Pegel haben.

Mit dem Reset-Taster kann jedes auf dem Mikrocontroller laufende Programm unterbrochen werden. Ist ein Monitorprogramm vorhanden und die serielle Schnittstelle mit einem PC verbunden (siehe Kap. 4), wird dieses gestartet.


4 Benutzung des Monitorprogramms und Programmdownload

Wie oben beschrieben ist der externe Speicher des Experimentierboards so geschaltet, dass er sowohl für Daten als auch für das Programm verwendbar ist. Wenn sich im internen Programmspeicher des Mikro­controllers ein geeignetes Monitorprogramm befindet, kann damit das zu testende Programm über die serielle Schnittstelle vom PC in den externen Speicher transferiert und dort gestartet werden. Bei der Entwicklung solcher Testprogramme ist dann nur zu beachten, dass sie bei der Adresse 8000h beginnen müssen (CSEG AT 8000h im Assemblerprogramm). Die Interrupt-Tabelle wird vom Monitorprogramm beim Start des Anwenderprogramms automatisch in den Bereich ab 8000h verschoben.

Übersetzung und Download des zu testenden Programms

Zum Download über die serielle Schnittstelle muss eine Datei im Hex-Intel-Format erzeugt werden. Dieses Standardformat kann von allen Assembler, bzw. Compilern erstellt werden. Besonders einfach gestaltet sich das Verfahren, wenn als Entwicklungsumgebung das kostenlos bereitgestellte Windows-Programm MC-51 verwendet wird. Es vereinigt einen Texteditor zum Bearbeiten von Assemblerprogrammen, ein Über­setzungswerkzeug, das das externe Programm ASEMW.EXE von W. W. Heinz benutzt, und ein Terminal zum Kommunizieren mit dem Monitorprogramm des Mikrocontrollers über die serielle Schnittstelle unter einer Oberfläche. Zusätzlich kann der 8051-Simulator JSIM.EXE von J. Altmann eingebunden werden. Mit dem im Programm MC-51 enthaltenen Programmiermodul können auch die internen Programm- und Datenspeicher des Mikrocontrollers AT89S8251 beschrieben werden (siehe Kap. 5).

Im Texteditor wird zunächst der Quellcode bearbeitet. Mit F9 wird der Assembler aufgerufen. Das Object-Format sollte dabei auf Hex eingestellt sein (siehe Hinweis am unteren Rand des Programmfensters). Eventuell noch vorhandene syntaktische Fehler werden i einem Fenster angezeigt. Durch Klicken auf eine Zeile dieser Fehlerliste gelangt man unmittelbar an die zugehörige Stelle des Quellcodes. Wenn alle Fehler beseitigt sind kann das Programm in den Mikrocontrollerspeicher heruntergeladen werden. Man wechselt in den Terminalmodus und tippt F5.

Einstellungen für das Monitorprogramms

Die Kommunikation zwischen Monitorprogramm und PC erfolgt über die serielle Schnittstelle. Auf der PC-Seite ist in MC-51 oder in einem anderen Terminalprogramm in jedem Fall der benutzte Anschluss COM1 oder COM2 auszuwählen. Bei den Schnittstellenparametern sind folgende Einstellungen vorzunehmen (in MC-51 sind das die Standardeinstellungen):

Die bereitgestellten Monitorprogramme (RMON8252 und PAULMON) besitzen eine automatische Baudratenerkennung. Daher muss nach jedem Einschalten des Mikrocontrollers im Terminalfenster einmal die Enter-Taste getippt werden, damit der Mikrocontroller die am PC eingestellte Baudrate erkennt.

Für den Download von Hex-Dateien sind außerdem geeignete, vom verwendeten Monitorprogramm abhängige Verzögerungszeiten einzustellen (Standardwerte: 0 ms zwischen den einzelnen Zeichen, 50 ms am Zeilenende). Wenn es beim Download Probleme gibt, sollte man diese Zeiten vergrößern.


5 Programmierung über eine serielle Schnittstelle

Zur Programmierung des internen Programmspeichers des AT89S8252 wird der Schalter SCH1 auf dem Experimentierboard in Stellung P gebracht. Im Programm MC-51 wird zunächst der Quelltext des gewünschten Programms übersetzt (F9), um eine Hex-Datei zu erzeugen. Nach Klicken auf das Programmierwerkzeug (oder Datei/Programmieren) öffnet sich ein Fenster. Die dort angezeigten Anweisungen sind zu befolgen. Wenn alle Anschlüsse und Einstellungen stimmen, gelangt man über »Weiter« in das Programmierfenster. Nach Klick auf „Programmieren“ werden die Daten an den Mikrocontroller gesendet. Eine Anzeige informiert über den Fortschritt. Nach Ende der Programmierung gelangt man über »Weiter« in das Überprüfungsfenster. Hier gibt es die Möglichkeit die Programmierung zu verifizieren.


6 Lieferadressen

Reichelt Elektronik Conrad Electronic ELV Elektronik AG
  Elektronikring 1
26452 Sande
Internet
  Klaus-Conrad-Str.1
292240 Hirschau
Internet
  Maiburger Straße 32 - 36
26789 Leer
Internet

Institut für Experimentelle und Angewandte Physik der Universität Kiel