Die zweilagig entflochtene Leiterplatte im Europaformat stellt ein universell einsetzbares und relativ preiswertes Mikrocontrollersystem dar, welches als Basis für verschiedenste Anwendungen auf dem Gebiet der Regelungs- und Steuerungstechnik dient. Die verwendeten passiven und aktiven Bauteile sind in gut sortierten Elektronikläden erhältlich. Die Platine eignet sich dadurch hervorragend für den Nachbau. Das System lässt sich über die Steckerleisten beliebig erweitern, wodurch ein Höchstmaß an Flexibilität erreicht wird.

Herzstück dieser Platine ist der 8bit-Mikrocontroller 80C537 von Siemens. Der SAB80C537 ist ein High-End-Derivat der 8051-Familie. Er besitzt 2KB internes RAM und ist mit einem 8(10)-Bit-A/D-Wandler mit zwölf Eingängen , drei 16-Bit-Timer/Counter sowie einer Capture-/Compare-Einheit ausgestattet. Des weiteren besitzt er eine mathematische Coprozessor-Einheit, zwei serielle Voll-Duplex-Schnittstellen, 7 digitale I/O-Ports, 14 Interrupt-Quellen und einen Energiesparmodus. Der Mikrocontroller arbeitet mit einer maximalen Taktfrequenz von 16 MHz. Alternativ kann der SAB80C517A mit internem 32 KB ROM bestückt werden, welcher maximal mit 18 MHz getaktet werden kann.

Abbildung1  Mikrocontrollerplatine

Auf dem Board ist der Adress-/Datenbus sowie alle freien Portleitungen auf Steckerleisten herausgeführt. Zudem besitzt es einen Steckplatz für den Anschluss eines alphanumerischen Displays mit 1*16 bis 4*20 Zeichen. Der Kontrast des Displays kann über einen Trimmpotentiometer geregelt werden. Die Platine wird von einem Netzteil mit 9V Wechselspannung versorgt und besitzt eine typische Stromaufnahme von 120mA (inkl. Hintergrundbeleuchtung des LCDs). Die 5V-IC-Versorgung wird mit einem Festspannungsregler vom Typ 7805 erzeugt.

Schaltplan

Es wurde im wesentlichen die Standardbeschaltung des SAB80537 übernommen:
Extern ist dem Mikrocontroller ein 32 KB großes SRAM vom Typ 62256 für Daten und das Flash-Eeprom AM29F010 mit einer Kapazität von 128 KB für den Programmcode spendiert. Sie sind an den Port0 und Port2 des Controllers über das Adresslatch 74573 angeschlossen. Die Adressdekodierlogik für die beiden Speicherbausteine und das LC-Display sowie die Erzeugung der Chip-Select-Signale wird mit Logikbausteinen der 74er-TTL-Familie realisiert. Eine Pufferbatterie verhindert den Verlust des Speicherinhaltes des SRAMs beim Abschalten der Versorgungsspannung. Der Resetpin des 80C537 ist low-aktiv. Er wird für den Power-On-Reset standardmäßig mit einem RC-Glied beschaltet.

Das Board besitzt zwei serielle Schnittstellen, eine RS-232-Schnittstelle und eine RS-485-Schnittstelle zur Überbrückung von größeren Verbindungsstrecken. Die Pegelumwandlung für die RS-232-Schnittstelle (V.24) übernimmt der Baustein MAX232 von Maxim, die der RS-485-Schnittstelle das Treiber-IC MAX485. Die Platine besitzt zudem zwölf gemultiplexte Analogeingänge (0..5V) mit 8(10) Bit Auflösung.

Das Mikrocontrollerboard ist zum Zweck einer erhöhten Funktionssicherheit mit dem Spannungsüberwachungsbaustein MAX807 ausgerüstet. Dieser verhindert beim Ausschalten der Versorgungsspannung den unkontrollierten Zugriff des Mikrocontrollers auf das extern angeschlossene RAM und führt einen Power-On-Reset des Mikrocontrollers durch. Gleichzeitig überwacht er die Betriebsspannung und die Batteriespannung. Die Aufgaben des MAX807 sind im einzelnen:

Erzeugung des Power-On-Reset-Signals
manuelle Resetauslösung über Taster
Überwachung der Systemspannung

Management der Pufferbatterie

Programm-Download

Im Flash-Eeprom befindet sich ein Bootladerprogramm, das die Programmierung des Boards über die serielle Schnittstelle eines PCs ermöglicht. Um Verbindung mit dem Board aufzunehmen, wird ein Terminalprogramm (z.B. das Hyperterminal von Windows oder das Freeware-Terminalprogramm TeraTermPro) gestartet. Das Protokoll des COM-Ports muss mit den Einstellungen "19200 Baud, N, 8, 1, no Flow-Control" konfiguriert werden.

Hält man die Programmiertaste gedrückt und betätigt den Reset-Knopf, so startet der Mikrocontroller aus den oberen 64KB des Flash-Eeproms, wo sich das Bootladerprogramm befindet. Dieses Programm meldet sich über die RS232-Schnittstelle des Boards. Beide Taster können nun losgelassen werden. Über eine Menüsteuerung kann die Firmware in Form einer Intel-Hex-Datei vom Terminalprogramm über die serielle Schnittstelle in die unteren 64 KB des Eeproms programmiert werden. Es können ebenso einzelne Speicherbänke gelöscht sowie Statusinformationen des Flash-Eeproms abgerufen werden. Ist der Download abgeschlossen, kann durch Betätigung des Reset-Tasters die Software gestartet werden. Das Bootladerprogramm befindet sich stets in Bank1 und kann nicht gelöscht werden. Es wurde vollständig in Assembler entwickelt.

Die Programmierung über die serielle Schnittstelle des PCs hat den Vorteil, dass das Flash-Eeprom zum Laden des Programmcodes nicht vom Board entfernt werden muss und demnach kein Eeprom-Programmiergerät erforderlich ist.

In das Liquid Crystal Display (LCD) integriert sind eine LCD-Punkt-Matrix, ein Grafikcontroller, ein Anzeigenspeicher sowie die Ansteuerlogik. Das verwendete LCD besitzt 20*4 Zeichen und ist an den Adress-/Datenbus des Mikrocontrollers angeschlossen. Es kann über zwei Register, einem Befehls- und einem Datenregister, gesteuert werden. Diese sind in den Adressraum des Mikrocontrollers eingeblendet und können wie externer Speicher angesprochen werden. Im Prinzip wird zuerst die Position eines Zeichens auf dem Display in das Befehlsregister des Grafikcontrollers geschrieben und anschließend das darzustellende

Abbildung 2  LCD-Modul mit 20x4 Zeichen

Zeichen im Datenregister abgelegt. Der Grafikcontroller besitzt einen umfangreichen Befehlssatz zur Steuerung des Displays.

Bootladerprogramm

Das Mikrocontrollerboard besitzt 3 Betriebsmodi, die in folgender Tabelle dargestellt sind. Sie lassen sich über zwei Portpins, die mit M1 und M0 bezeichnet sind, auswählen. M1 ist direkt mit der Programmiertaste verbunden und wird durch Betätigung auf 0 geschaltet, um das Bootladerprogramm zu starten. Wird beim Reset die Programmiertaste nicht gedrückt, sind die Portleitungen M1 und M0 standardmäßig auf 1, und der aktuelle Programmcode, der über die serielle Schnittstelle geladen wurde, wird ausgeführt. Der Modus 00 wird nur vom Bootladerprogramm verwendet und dient dem Programmieren des Flash-Bausteins. Hierzu muss das Flash AM29F010 vom Codespeicher in den Datenspeicher des Mikrocontrollers gemapped werden. Das Bootladerprogramm muss sich dazu zunächst in das SRAM kopieren, wovon es letztendlich die Programmierung des Flash über die RS-232-Schnittstelle vornimmt. Es benötigt dafür die unteren 16KB des 32KB großen SRAMs. Die oberen 16KB stehen für die Datenspeicherung frei zur Verfügung. Durch die Pufferung des SRAMs bleiben sie auch nach der Trennung vom Netz erhalten.

M1 M0 Modus
0 0 in diesem Modus kann das Programm in das Flash-Eeprom programmiert werden
0 1 das Bootladerprogramm, das sich in Bank1 (obere 64KB des Flash) befindet, wird gestartet
1 0     --
1 1 User-Programm wird aus Bank0 (untere 64KB des Flash) gestartet

Im folgenden ist die Logik für die verschiedenen Speichermodelle angegeben. Sie erzeugt die einzelnen Chip-Select-Signale sowie Lese- und Schreibleitungen für das Flash, das SRAM und den I/O-Bereich. Für diese Adressdekodierlogik werden 6 AND-Gatter, 8 ODER-Gatter sowie 4 Inverter benötigt. Um auf die Programmierung eines PLDs zu verzichten, wurde diese Logik mit Logik-ICs der 74er Serie aufgebaut.

  /CS_FLASH  =  A15 & (M1 & M0)
  /RD_FLASH  =  (/PSEN v M0) & (/RD v M0)
  /WR_FLASH  =  /WR v M0

  /CS_RAM    =  A15
  /RD_RAM    =  (/PSEN v M1) & (/RD v M0)
  /WR_RAM    =  /WR v M0

  /CS_IO     =  A15
  /RD_IO     =  (/PSEN v M0) & (/RD v M0)
  /WR_IO     =  /WR v M0

  E_LCD      =  (/RD_IO & /WR_IO) v /CS_LCD
  A16_FLASH  =  M1 & M0

Ein "/" vor den Signalnamen bedeutet, dass diese Signale low-aktiv sind.

Stückliste

Menge Bauteil Typ Gehäuse Bezeichnung
1 Flash-Eeprom 29F010 DIP32 U12
1 SRAM 32K*8 62256 DIP28 U13
1 1 aus 8 Demultiplexer 74HC138 DIP16 U14
1 Adress-Latch 74HC573 DIP20 U10
1 Hex-Inverter 74HCT04 DIP14 U2
1 Spannungsregler 5V/1.5A 7805 78XXV U6
1 80C517A_1 80C517A SOC_PLCC84_P U11
1 Lithium-Batterie 3V BATCR2032PCB B1
1 Diode 1N4001 DIOD1 D1
1 Elektrolytkondensator 47µ ELKO5R2_5 C8
1 Flachbandbuchse 14-polig LC_Display FKV14SN J5
1 Flachbandbuchse 24-polig I/O-Ports FKV24SN J4
1 Flachbandbuchse 28-polig externe Peripherie FKV30SN J7
1 3-fach Jumper HDR_3 HDR1X3 J2
1 Flachbandbuchse 34-polig I/O & Analog FKV34SN J6
1 2*2-fach Jumper Versorgung HDR2X2 J1
1 3-fach Jumper JP_3 HDR1X3 JP3
1 RS485-Schnittstelle SP485CS DIP8 U5
1 RS232-Schnittstelle MAX232 DIP16 U9
1 Spannungsüberwachung MAX807 DIP16 U1
1 Potentiometer 10K TRIPOT10X5H R5
1 2-fach Pfostenstecker HDR_2 MKDS3_2RMI J3
1 Widerstand 10K RES12 R3
1 RS232-Buchse DB9 DB9SL ST1
1 2-fach Jumper Prog.-Taste HDR1X2 SW3
1 2-fach Jumper Reset-Taster HDR1X2 SW1
1 2-fach Jumper SW_SPST HDR1X2 SW2
1 Quarz 18MHz QUARZ_HC49 X1
11 Kondensator 100n CRM5A C2,C12,C13,C5,C6,C7,
C18,C19,C20,C1,C11
2 74HCT08 74HCT08 DIP14 U7,U8
2 74HCT32 74HCT32 DIP14 U3,U4
2 Kondensator 22p CRM5A C14,C16
2 LED gelb u. grün LED3R2_5V D3,D2
2 Widerstand 2.3K RES12 R4,R6
2 Widerstand 560 RES12 R1,R2
5 2-fach Jumper JP_2 HDR1X2 JP1,JP2,JP4,JP5,JP6

7

Elektrolytkondensator 10µ ELKO5R2_5 C3,C4,C15,C17,C9,C10,C21

1

Platine zweiseitig  

 

4

Abstandshalter 1mm    
1 PLCC84-Sockel    

 

1 LCD-Modul 20x4 LED  

 

1 IC-Sockel 32 polig  

 

Schaltplan und Layout des Mikrocontrollerboards liegen als Ultiboard-Dateien (Ultimate Technology) vor und stehen hier zum Download zur Verfügung. Sie können auch als PDF-Dateien heruntergeladen werden:

                      Mikrocontrollerplatine_Schaltplan.pdf
                            Mikrocontrollerplatine_Layout.pdf

Für die Programmierung des Bootladerprogramms in den Flash-Speicher AM29F010 war die Entwicklung eines Eeprom-Programmiergerätes notwendig.

Beispielprogramme für die Displayansteuerung, die Programmierung der seriellen Schnittstelle sowie das Einlesen der Analogkanäle finden Sie Beispiele

Die Mikrocontrollerplatine kommt im Lichtmischpult zum Einsatz, allerdings wird dort der SAB80C517A verwendet. Die Kosten für den Selbstbau dieser Platine können auf diesen Seiten nachgeschlagen werden, wobei das Material zum Entwickeln und Ätzen der Leiterplatte nicht mit einbezogen wurde.

 

zurück

© 2000, Ralph Bräumer