uC-Board (8051)

 

Hardware

Spezifikation

Programmbeschreibung

 

 

Document Revision: 2.00

Document Status: Released

Date last changed: 28.7.03

Written by: Sven Freitag

Distribution:

Name Internet Tel. Fax E-Mail
Sven Freitag www.FrydaySoft.de - - Info@FrydaySoft.de

FrydaySoft@gmx.de

SvenFreitag@gmx.de

Inhaltsverzeichnis:

 

1. Einleitung

2. Allgemeines zum uC-Board

3. Was benötigt man zusätzlich

4. Bestückung

5. Jumpereinstellungen

6. Anschlußmöglichkeiten

7. Entwicklungssoftware

 

1 Einleitung

Einplatinencomputer sind kompakte, aber vollwertige Computer. Bild 1 zeigt schematisch die wichtigsten Komponenten von Computern und deren Zusammenspiel.

Bild 1

Externe Speicher und Peripherie sind mit dem Mikroprozessor über zwei verschiedene Bussysteme verbunden, dem Datenbus und dem Adre\'dfbus. Festwertspeicher (ROM) und Schreib/Lese-Speicher (RAM) sind mit beiden Bussystemen gekoppelt. Sie können daher direkt vom Mikroprozessor angesprochen werden. Die Peripherie läßt sich in der Regel nicht direkt adressieren und wird daher über einen Adreßdekoder angesprochen. Damit der Mikroprozessor arbeiten kann, benötigt er noch einen Takt. Dieser wird von dem Taktgenerator erzeugt.

Ein Mikrocontroller, wie z.B. der 8051 von Intel enthält die in Bild 1 gezeigten Komponenten auf einem Chip integriert. Er enthält neben diesen Komponenten eine Serielle Schnittstelle und zwei Timer/Zähler. Da der RAM und ROM auf dem Chip nur sehr klein ist, können über die I/O-Ports externe Speicher angesprochen werden. Beim 8031/32 ist dies sogar erforderlich, da diese Typen keinen internen ROM besitzen.

Wer kennt dieses Problem nicht. Man hat eine Idee, die mit ein paar Bauteilen ausprobiert werden könnte, wenn da nicht die vielen Daten- und Adreßleitungen zu verdrahten wären, damit der Mikroprozessor seine Dienste verrichten kann. Das uC-Board (8051) wurde aus diesem Grund entwickelt. Es bietet ein Basissystem, das sich leicht erweitern läßt. Ein weiterer großer Vorteil ist der integrierte Epromemulator. Das Programm, welches von dem Mikroprozessor ausgeführt werden soll, kann bequem über die parallele Schnittstelle von dem PC aus in das Onboard-RAM geladen werden. Ist der Ladevorgang abgeschlossen wird das Programm sofort ausgeführt. Das uC-Board beinhaltet ebenfalls einige Peripheriekomponenten wie z.B.: serielle Schnittstelle, 8Bit Ein/Ausgabe, Adreßdekoder, LED's & Taster sowie ein LCD zur Ausgabe von Text. Diese Komponenten werden oft benötigt und erleichtern die Softwareentwicklung, da somit sehr einfach Ein- und Ausgaben möglich sind.

 

2 Allgeimenes zum uC-Board (8051)

In Bild 2 werden schematisch die Komponenten des Boards gezeigt.

Bild 2

Das Board kann mit einem einfachen Steckernetzteil betrieben werden oder die Versorgungsspannnung (5V DC) über den Steckverbinder (BUS) erhalten. Es unterstützt zwei Betriebsmodi. Während der Softwareentwicklung kann der Code im Speicher (RAM) ausgeführt werden. Das Programm wird über die parallele Schnittstelle geladen. Da der RAM ohne Spannung seinen Inhalt verliert, können Programme dauerhaft in einen Festwertspeicher wie dem optionalen Flashmodul gesichert werden. Damit Programme nach einem Reset aus dem Festwertspeicher ausgeführt werden, ist das Board für diesen Betriebsmode zu jumpern. Da das Board hauptsächlich zum Experimentieren eingesetzt werden dürfte, sind einige Schaltkreise steckbar, so daß ein defektes IC leicht gewechselt werden kann. An den Adreßdekoder können an die freien Dekoderausgänge weitere Peripheriebausteine angeschlossen werden. Von den 8 Dekoderausgängen sind 3 für die Peripherie auf dem Board genutzt. Zur Anzeige von Text ist bzw. kann ein handelsübliches LCD-Display angeschlossen werden.

 

3 Was benötigt man zusätzlich

Um das Board nutzen zu können, benötigt man zusätzlich ein handelsübliches Steckernetzteil, einen PC mit einem Cross-Assembler sowie einem 1:1-Kabel für die parallele Schnittstelle.Die Ausgangsspannung des Netzteiles sollte im Bereich von 8-12V Gleichspannung liegen und es sollte mindestens 2 Watt Leistung haben. Will man externe Hardware über den internen 5V Regler mitversorgen, so sollte die Leistung des Netzteils dementsprechend höher sein. Die Verlustleistung des 5V-Reglers ist dabei zu beachten!

Der Cross-Assembler der Metalink Cororation kann aus dem Web frei bezogen werden oder alternativ kann unter Windows die Entwicklungsumgebung IDE51 genutzt werden.

 

4 Bestückung

Die Platine ist im Euroformat, verzinnt und mit Lötstoplack. Die Bestückung sollte deshalb keine Probleme bereiten.

In Bild 3 wird die Unterseite der Platine gezeigt.

Bild 3

Positionen:

IC1 SMD 74573
IC6 SMD 74138
R1 (future use) SMD 10K
R6,7,8,9,16,17 SMD 10K
R14 (future use) SMD 47K
C1,2 SMD 33pF

 

In Bild 4 wird die Oberseite der Platine gezeigt.

Bild 4

Positionen:

IC2 DIL40 8031   SL1,2 10-Pin Buchsen-Leiste
IC3 DIL20 74299   SL3,4 14-Pin Buchsen-Leiste
IC4 SMD 74573   R2,3,4,5 SMD 470 Ohm
IC5 SMD 7400   R19 (future use)   1K
IC7 DIL16 Max232   R11 SMD 1K
IC8 DIL20 74574   R10,15   10..33K
IC9 SMD 74157   C11,12,13,14,15,16,17 RM2,5 100nF
IC10 SMD SRAM 32Kx8   C3,4,5,6,7 Max-C 10uF
IC11 DIL20 74245   C8 Reset-C 10uF
IC12   7805   C9 RM5 470uF/25V
X3   WAGO   C10 RM5 470uF/16V
G1 (future use)   3V Batterie   C18 RM5 100nF
P1 Poti 4,7..50K   C19 (future use) SMD 100nF
Q1 Quarz 11.0592 MHz   X1 SUB25 Stecker
D1,2,3,4 3mm LED   X2 SUB9 Buchse
S1,2,3,4,5   Taster   D6,7,9 Diode 1N4148
RN1,2 SIL9 10K   R12   470..560 Ohm
JP1 2x8-Pin Stift-Leiste   R13   8..10K
JP2 2x7-Pin Pfostenstecker   12 Jumper    
JP3 2-Pin Stift-Leiste   ST1 (optional) VG64 Messerleiste
JP4 3-Pin Stift-Leiste        
JP5 3-Pin Stift-Leiste        
JP6 2-Pin Stift-Leiste        

Der Schaltplan ist unter der URL: www.frydaysoft.de abrufbar als gepackte PDF-datei.

 

5. Jumpereinstellungen

Bild 5

Die roten Markierungen zeigen die Defaulteinstellung der Jumper an.

SJx sind Lötjumper, welche nur mit Hilfe eines Lötkolben geändert werden können.

Kurze Erklärung der Jumper/Anschlüsse:

JP1: Die 8 Jumper verbinden die LED’s/Taster mit dem I/O-Port des Controllers

JP2: Hier wird das LCD-Modul angeschlossen

JP3: Leitet das Schreibsignal /WR an den RAM weiter

JP4: Setzt die Datenrichtung des IC 74245 (1-2 als Input / 2-3 als I/O aber ungepufferter Ausgang)

JP5: Arbeitsmodus des RAM (1-2 virtueller ROM / 2-3 normaler RAM-betrieb)

JP6: future use (Backupstrom G1 zu RAM)

JP7: Anschluß der Signale INT0, INT1, T0, T1

JP8: 4 freie Pins an der VG-Leiste ST1 (sinnvoll JP7 mit JP8 elektrisch zu verbinden)

SJ1: RxD oder TxD (1-2 zu Pin2 / 2-3 zu Pin3 der Sub-D-Buchse F09)

SJ2: TxD oder RxD (1-2 zu Pin3 / 2-3 zu Pin2 der Sub-D-Buchse F09)

SJ3: Wiederstandsnetzwerk als Pull-Up/Down für Input-default-potential (1-2 Pull-Down /2-3 Pull-Up)

SJ4: Geschlossen: ROM-Pin (27) mit A14 verbunden , Offen: ROM-Pin (27) an Pull-Up (R1)

SJ5: Leitet externes TxD-signal an Mikrocontroller weiter, wenn geschlossen

SL1: Gepufferte 8-Bit-Ausgabe mit Betriebsspannung zur Versorgung externer Komponenten

SL2: Ungepufferte 8-Bit-Eingabe mit Betriebsspannung zur Versorgung externer Komponenten

SL3,4: Anschluß für einen ROM-Speicher (EPROM z.B. über Adapterplatine)

X3: Anschluß der Versorgungsspannung / Netzteil (Verpolungsschutz durch Eingangsdiode)

Hinweise:

Die Jumper SJ1 und SJ2 ermöglichen den Anschluß eines 1:1 oder eines Null-Modem-Kabels je nach Jumperstellung. Sie müssen immer kreuzweise gesetzt sein für den normalen Betrieb.

Für Testzwecke können die Lötjumper auf gleicher Position auf der Platine gesetzt werden, um einen

internen LOOP zu erzeugen. Es darf aber in diesem Modus kein Serielles Kabel angeschlossen werden.

Bei einem LOOP werden die gesendeten Daten direkt wieder selbst empfangen.

 

6. Anschlußmöglichkeiten

Über JP1 (siehe Bild5) kann recht einfach externe Hardware angesprochen werden, da der I/O-Port bidirektional und gepuffert ist. Die LED’s und Taster sind in die externe Hardware integrierbar, da sie am Pfostenstecker direkt abgegriffen werden können. Die beiden nebenliegenden Durchkontaktierungen sind für die Spannungsversorgung vorgesehen. Das Signal GND ist fast an eine Durchkontaktierung herangeführt und kann leicht mit einer Zinnbrücke verbunden werden.

Es ist dann nur noch VDD auf die andere Durchkontaktierung zu legen.

Mit einer 20-poligen Pfostenbuchse (18polig gibt es wohl nicht) kann nun die Hardware-Komponente angeschlossen werden und vom uC-Board mitversorgt werden.

 

In Bild 6 sind zwei Schaltplanbeispiele für den Output-Port (SL1) und den Input-Port (SL2) dargestellt,

wobei nicht alle notwendigen Leitungen eingezeichnet sind, sondern nur die erste und letzte Verbindung,

um den Sachverhalt übersichtlich darstellen zu können.

Bild 6

 

Wenn das Programm für die Hardware fertig programmiert und getestet wurde, so will man evtl. das Programm dauerhaft in einen ROM-Speicher sichern. Bei Einsatz eines EPROMs sind alle Pins des EPROM auf das Rastermaß der Leisten SL3,4 zu bringen. Für EPROM's vom Typ 27256, 27128 und 2764 ist /CE auf Low und ggf. Pin1 auf High zu legen. Weiterhin ist der RAM in den normalen RAM-Modus zu setzen, in dem der Jumper JP5 auf Position 2-3 zu stecken ist. Der Jumper JP3 sollte geschlossen sein, wenn der Schreib-Zugriff zum RAM genutzt wird.

Das LCD-Modul wird an JP2 angeschlossen. Die Pin-Nummern aus Bild 5 entsprechen den Pin-Nummern des LCD-Modules. Die grünen Punkte in Bild 5 stellen die Befestigungslöcher für das LCD-Modul dar. Es ist mit Abstandsbolzen (M2,5) zu befestigen.

Die 64-polige Messerleiste ST1 kann stehend oder liegend eingelötet werden. Wird die stehende Bauform genutzt, so kann die Zusatzplatine mit dem uC-Board in Sandwich-form verbunden werden. Sinnvollerweise wird das uC-Board oben liegen und die Zusatzkarte (mit der Peripherie) wird darunter liegen. Es sind 3 Befestigungslöcher für die Sandwich- bzw. direkte Befestigung vorgesehen.

 

7. Entwicklungssoftware

Das Wichtigste zum Erzeugen des ausführbaren Programmes sind die Tools, die den Quellcode in den Maschinencode übersetzen. Für die 51er-Familie existieren unzählige freie Cross-Assembler. Eleganter und schneller ist die Programmentwicklung mit einem Crosscompiler, wie zB. von der Firma Keil, jedoch sind diese kommerziellen Compiler recht teuer. Die Assembler-Quellfiles für das uC-Board können mit dem Cross-Assembler der "MetaLink Corporation" übersetzt werden. Dieser Assembler ist free, welcher syntax-kompatibel zum Keil-Assembler ist. Der Metalink-Assmbler ist in der IDE51 integriert und kann auch separat von der Homepage herunter geladen werden.

Beim Übersetzen des Quellcodes in den Maschinencode fallen in den Übersetzungsschritten je nach Assembler verschiedene Ausgabedatein an. Die gängigsten sind:

Für den Up/downloader werden die Bin/Rom-files benötigt, welche den reinen Maschinencode für den Microcontroller enthalten. Der Up/downloader ist für 3 Betriebsysteme verfügbar. Für Dos, Windows und Linux gibt es kommandozeilenorientierte Loader und für Windows/Linux sind auch grafische Varianten verfügbar.

 

Der kommandozeilenorientierte Loader:

C:\asm51\ram51 ¿

use: ram51 binaryfile 1/2 0..10

or: ram51 r 1/2

-binaryfile: file for upload

-r : call reset

-1/2 : 1=LPT1(378h) / 2=LPT2(278h)

-0..10 : upload-speed (0=quick..10=slow)

Mit den 3 Parametern kann die Datenübertragung gesteuert werden. Es ist gedacht für einen Aufruf aus einer Entwicklungsumgebung.

Der Loader kann auch so aufgerufen werden, daß ein Reset-impulse am Controller erzeugt wird.

 

Der grafisch-orientierte Loader:

Hier wird alles über die Controls gesteuert.

Der Quellcode für den kommandozeilenorientierte Up/downloader (Win/NT) ist unter www.frydaysoft.de abgelegt. Dieser ist unter Visual-C++ erstellt worden. Der Port-zugriff ist in eine DLL gekapselt.

Für das uC-Board wurde (für Win32) eine Entwicklungsumgebung programmiert. Diese Entwicklungsumgebung (IDE51) umfaßt einen Editor, eine Projektverwaltung sowie eingebundene Softwarekomponenten. Diese Komponenten werden durch entsprechend konfigurierte Parameter gesteuert. Diese sind z.B. der Metalink-Assembler sowie der Uploader. Der interne Editor unterstützt Syntaxcoloring sowie eine einfache Hilfe zu den Assemblerbefehlen.

 

Die aktuellsten Informationen und Programme sind auf der Homepage abgelegt.

 

www.FrydaySoft.de