


![]() |
ZWERG332 - Handbuch |
- Anhang A NICO-Monitor (ist im SCOTTY08-Handbuch beschrieben)
- Anhang B FLASH-Entwicklungspaket (ist im SCOTTY08-Handbuch beschrieben)
Autoren: Walter Scherer, Oliver Rogall
Copyright © MCT Paul & Scherer Mikrocomputertechnik GmbH. Alle Rechte vorbehalten.
Dieses Handbuch, wie auch das beschriebene Produkt, wurde sorgfältig erstellt und geprüft. Trotzdem können Fehler und Irrtümer nicht ausgeschlossen werden. MCT übernimmt keinerlei Verantwortung für die uneingeschränkte Richtigkeit und Anwendbarkeit des Handbuchs oder des beschriebenen Produkts und für die aus eventuell vorhandenen Fehlern resultierenden Schäden.
Änderungen ohne vorherige Ankündigung vorbehalten.
![]()
1 Einführung
Der ZWERG332 ist ein Einplatinenrechner der sich durch seine recht hohe Integrationsdichte, erreicht durch weitestgehende Verwendung von SM-Technik, und eine hohe Leistungsfähigkeit auszeichnet. Die Platine reiht sich in die bisher von MCT vertriebene "Zwergenfamilie" an der Spitze dieser ein. Durch die Verwendung des MC68332 auf dem ZWERG332 ist dieser für anspruchsvolle Aufgaben im Bereich der Regelung und Steuerung sehr gut einsetzbar. Da der MC68332 über einen Time Prozessor (TPU) verfügt, sind Anwendungen die viele variable Timer voraussetzen für den ZWERG332 geradezu geschaffen.Im folgenden finden Sie die integrierten Funktionen des MC68332:
- M68010 aufwärtskompatibler CPU32 Prozessorkern
- Programmierbare Taktfrequenz von 131 kHz bis 16.67 MHz
- 2KB internes RAM mit 2 Clocks Zugriffszeit und 32Bit breit
- Hard- und Software-Watchdogs
- Interrupttimer
- Flexibles Chip-Select-Generator System
- Programmierbare I/O-Ports mit 32Bit Breite
- Low-Power-Stop-Mode für alle integrierten Baugruppen
- Zwei serielle Kanäle (SCI, QSPI)
- Universelles Timersystem (TPU)
- Incircuit Debugging Mode (Background Debugger)
Funktionen des ZWERG332:
- TLX+ Businterface für Erweiterungen
- MC68332 Businterface für Erweiterungen teilweise herausgeführt (8Bit Daten und Adressen, 4 Chip-Selects)
- Maximal 512KB FLASH
- FLASH onboard-programmierbar
- Maximal 512KB batteriepufferbares SRAM
- Batteriegepufferte Uhr mit Kalender (RTC4553 optional)
- 1 serielle Schnittstelle auf IF-Stecker
- 20 z.T. multifunktionale parallele I/O-Leitungen
- 11 analoge Eingänge mit 12Bit Auflösung (TLC2543 optional)
- Backgrounddebugstecker
- Powerstecker mit Powerdown-Sleep und Powerfail-Funktionen
- Nur eine Versorgungsspannung von +5V ±5%
Zusatzbaugruppen erlauben den schnellen Einsatz in unterschiedlichsten Anwendungen:
- Serielle Treibermodule (IF-Module: RS232, RS422, RS485, Stromschleife, Lichtleiter, ... )
- Netzteile mit Powermanagement-Funktionen
Last but not least - die verfügbare Software:
- Ein leistungsfähiger K&R / ANSI-C Compiler mit erweiterter ANSI Library (ECO-C)
- Sourcelevel-Debugger
- Urlader für FLASH
- Monitor NICO332 als Binärfile für den Urlader
![]()
1.1 Auslieferungszustand
Der ZWERG332-Einplatinenrechner wird in folgender Konfiguration ausgeliefert:
- Die ROM-Typ-Jumper sind auf den bestückten FLASH-Typ eingestellt
- Das RAM ist entsprechend der bestellten Bestückungsoption korrekt konfiguriert und getestet.
- Bereits installierte Software im FLASH (Urlader für FLASH und zusätzlich der NICO-Monitor) verwendet den Kanal 0 mit 19200Baud, 8 Datenbits, 1 Stopbit und no Parity.
- Der V.24 RESET ist nicht aktiv.
![]()
1.2 Inbetriebnahme
Zum ersten Kennenlernen und zum Feststellen eventueller Transportschäden sollten Sie die folgenden Schritte durchgehen. Denken Sie daran, isolierende Unterlagen zu verwenden und Stecker nur im spannungslosen Zustand zu stecken oder zu ziehen. Im folgenden wird immer davon ausgegangen, dass Sie einen PC als Hostrechner verwenden. Andere Konfigurationen, vom Terminal bis zum Grossrechner, sind natürlich auch - wenn auch mit Einschränkungen und sinngemässen Änderungen - benutzbar. Der Ausdruck 'PC' steht eben nur für das gerade verwendete Gerät.
Legen Sie den Einplatinenrechner so hin, dass die Beschriftung der CPU horizontal liegt und auf dem Kopf stehend ist. Die CPU ist der Chip im 132pol. Quad Flatpack mit den enorm vielen kleinen Beinchen auf allen 4 Seiten.
Sehen Sie sich alle Bauteile mal in Ruhe an - checken Sie sie auf Transportschäden, insbesondere verbogene Pins an den Steckverbindern.
Schliessen Sie die Stromversorgung an den Stecker J1 mit dem mitgeliefertem Kabel an. Verwenden Sie dazu die rote Leitung für +5V und die danebenliegende Schwarze für GND.
Sie benötigen ein Festspannungsnetzteil mit +5V ±5%. Regelbare Netzteile sollten nur im Notfall verwendet werden. Ungeregelte Netzteile oder Batteriepakete dürfen nicht verwendet werden.
Schliessen Sie die V.24-Schnittstelle an. Dazu brauchen Sie ein IF232LP Treibermodul oder eine andere, zum IF232LP-Modul kompatible Treiberschaltung. Der IF232LP Treibermodul wird mit einem 10pol. Flachbandkabel an den ZWERG332 und mit einem Standard-Nullmodemkabel an den PC angeschlossen.
- Installieren Sie die beim ZWERG332 Handbuch mitgelieferte Terminalemulator-Software (TM.EXE) auf Ihrem PC. Es ist aber auch ohne weiteres möglich, andere Terminalemulatoren zu verwenden.
- Konfigurieren Sie den verwendeten Terminalemulator auf 19200Baud, 8 Datenbits, no Parity und 1 Stopbit. Bei TM.EXE ist das die Voreinstellung. Starten Sie den Terminalemulator.
- Schalten Sie den ZWERG332 ein. Es muss bei Verwendung des NICO-Monitors eine Copyright Notiz und anschliessend ein Prompt kommen. Return/Enter liefert ein neues Prompt.
Wenn Sie soweit gekommen sind, sollte normalerweise alles in Ordnung sein. Sie können also mit der Entwicklung Ihrer Applikation loslegen.
![]()
1.3 Logische Pegel
Wenn in diesem Handbuch auf logische Pegel eines Signals eingegangen wird, werden die folgenden zwei Konventionen verwendet.
1. High und Low Pegel: Diese Pegel entsprechen den direkt messbaren Spannungen an der physikalisch vorhandenen Leitung. 2. Aktiv und inaktiv: Signale werden, wenn das eine klarere Beschreibung ergibt, als aktiv und inaktiv bezeichnet. Dabei sind highaktive Signale (z.B. FREEZE) im aktiven Zustand bei High Pegel und inaktiv bei Low Pegel. Low aktive Signale (z.B. RESET*) sind im Low Pegel aktiv und bei High Pegel inaktiv. Signale, die mit einem angehängten '*' markiert werden, sind Low aktiv. Für Signale in GAL Gleichungen gilt eine andere Konvention, hier wird Lowaktiv durch ein vorangestelltes '/' markiert. RESET* und /RESET sind äquivalent.
![]()
1.4 Numerische Angaben
Alle Zahlenwerte werden dezimal angegeben. Hexadezimale Werte werden mit einem vorangestellten 0x markiert. Der Wert 65535 entspricht also dem Wert 0xFFFF.
![]()
2 Baugruppen
2.1 Adressbelegung
Bei der M68000-Familie werden alle Peripheriebaugruppen in den linearen Speicheradressraum des Prozessors eingeblendet. Beim ZWERG332 wird die Adressdekodierung durch programmierbare Chip-Select-Generatoren auf dem MC68332 erledigt. Die Programmierung der Chip-Select-Generatoren erfolgt nach untenstehender Tabelle. Abweichende Adressen können zwar eingestellt werden - jedoch wird sich in den meisten Anwendungen kein Vorteil ergeben.
CS # Adresslage Speicher/Funktion Intern
Intern
BOOT
0/2
9/10
9/10
9/10
9/10
9/100x0FFFA00... 0x0FFFFFF
0x0FFFC14... 0x0FFFD4F
0x0200000... 0x027FFFF
0x0000000... 0x007FFFF
0x0E00000... 0x0EFFEFF
0x0EFFFC0... 0x0EFFFDF
0x0EFFFA0... 0x0EFFFBF
0x0EFFF60... 0x0EFFF7F
0x0EFFEE0... 0x0EFFEFFMC68332 Intern
ADC an PCS2 vom QSPI
RTC an PCS3 vom QSPI
EPROM/FLASH
RAM
Externer Bus
TLX+ 0
TLX+ 1
TLX+ 2
TLX+ 3Bei einem Zugriff auf Adressbereiche die in dieser Tabelle nicht aufgeführt sind kommt es zu einem Bus Error.
Die internen Chip-Select-Generatoren erlauben eine Blockgrösse von minimal 2KB, daher sind die über separate Chip-Select-Generatoren angesprochenen Peripheriebausteine jeweils in einem 2KB grossen Block gespiegelt.
Alle Adressen sind über die Basisregister der Chip-Select-Generatoren einstellbar. Deshalb sind die oben angegebenen Adressen lediglich als bequeme Konvention zu sehen. In diesem Handbuch, sowie in allen von MCT angebotenen Softwareprodukten werden standardmässig diese Adressen verwendet.
Der Buserrortimer kann per Software umkonfiguriert werden. Das Verhalten des ZWERG332 beim Zugriff auf nicht dekodierte Adressbereiche hängt von diesen und anderen Einstellungen ab. Normalerweise sollte es genügen den Buserrortimer auf die maximal mögliche Timeoutzeit zu setzen.
![]()
2.2 Interrupts
Die internen Interrupts werden wie im MC68332 Handbuch beschrieben verwendet. Auf dem ZWERG332 sind von den acht möglichen Interrupteingängen des MC68332 nur sechs mit den Stiftleisten verbunden. Die externen Interrupteingänge werden auf dem ZWERG332 von keiner weiteren Baugrupper verwendet. So stehen dem Anwender sechs Eingägne zur Verfügung. Der Interrupteingang NMI am Pin 3 von J1 nimmt eine Sonderstellung ein. Sehen Sie dazu auch den nächsten Punkt.
NMI
Der NMI kann vom Netzteil über den Power-Stecker J1 ausgelöst werden. NMIs vom Netzteil werden beim Ausfall der Versorgungsspannung ausgelöst, wobei je nach Netzteil noch einige Millisekunden bis Minuten zum Retten des aktuellen Zustandes und ein Herunterfahren des gesteuerten Prozesses verbleiben.
NMI* ist fest auf IRQ7* gelegt. Die Priorität des NMI ist damit fest auf sieben gelegt und besitzt im System die höchste Priorität.
![]()
2.3 Stromversorgung
Der ZWERG332 wird über den 4pol. Floppysteckverbinder J1 versorgt. Die Belegung dieses Steckers entspricht im wesentlichen einem normalen 3,5" Floppylaufwerk. Nach Entfernen der Kabel an Pin 3 und 4 kann z.B. die Floppy-Versorgung eines normalen PC-Netzteils verwendet werden.
Pin Signal Beschreibung 1
2
3
4VCC
GND
NMI*
STDP*+5V ±5%
Referenz
NMI*-Eingang am ZWERG332
Ausgang der RTC
VCC: +5V ±5% Stromversorgung. GND: Spannungsreferenz der Stromversorgung. NMI*: Dieses Signal liefert vom Netzteil eine Stromausfallsmeldung. Eine negative Flanke löst bei geeigneter Programmierung einen NMI (IRQ7*) aus. STDP*: An diesem Pin ist der Frequenzausgang der RTC angeschaltet. Darüber ist es möglich eine Frequenz von 1Hz bzw. 1024 Hz für Peripherieschaltungen abzugreifen. Die Stromaufnahme an VCC beträgt typ. 100mA in der Standardversion.
Die Notstromversorgung der RTC und der RAMs ist mit einer Lithiumzelle mit 3V realisiert. Die Lebensdauer der Zelle beträgt 4 Jahre bei maximaler Betriebstemperatur (70 Grad Celsius) und 10 Jahre bei einer Temperatur von 20 Grad Celsius. Zu diesen Zeiten kann die Betriebsdauer des Rechners mit einer externen Stromversorgung addiert werden.
Die Lithiumzelle ist eingelötet. Das Auswechseln sollte nur von qualifiziertem Personal durchgeführt werden.
![]()
2.4 RESET
Der RESET wird auf dem Board mit dem Spannungskomparator MC34064 generiert. Die minimale Versorgungsspannung für die Auslösung des Resets beträgt 4,5... 4,7V. Um eine korrekte Start- und Stopsequenz für den Datenerhalt in RTC und RAM zu garantieren, muss eine minimale Anstiegs- und Abfallzeit an VCC von 10ms eingehalten werden. Diese Zeit wird von praktisch allen üblichen Netzteilen ohne Zusatzmassnahmen garantiert. Bei Verwendung von Schaltern im VCC-Stromversorgungszweig (z.B. Zeitschaltrelais) sollte in Problemfällen ein 500uF Kondensator direkt am ZWERG332 zwischen GND und VCC geschaltet werden. Ausserdem ist es in diesen Fällen besser, eine knapp dimensionierte Stromversorgung zu verwenden (ca. 300mA Maximalstrom) um den Ladestrom des Kondensators zu begrenzen.
Ein RESET kann sowohl von Prozessor als auch von externen Baugruppen generiert werden. Der Prozessor erzeugt einen RESET nur im Fehlerfall. Die auf dem ZWERG332 verwendeten Baugruppen können alle keinen RESET auslösen. Zusätzlich ist es aber möglich über eine Leitung der V.24-Schnittstelle den ZWERG332 zu resetten. Sehen Sie dazu auch V.24 RESET.
![]()
2.5 RAM
Vorgesehen ist der Einsatz von 32, 128 oder 512KB RAM-Typen im Flatpack-Gehäuse. Da die Bausteine eingelötet sind, ist eine nachträgliche Änderung des RAM-Types nicht ohne erheblichen Aufwand möglich.
Die im RAM gespeicherten Daten werden bei bestückter Lithiumzelle auch bei Ausfall der externen Stromversorgung gehalten. Im Interesse einer möglichst langen Lebensdauer der Lithiumzelle muss ein Low-Power-RAM verwendet werden. Die typische Lebensdauer der Lithiumzelle beträgt ca. 4-12 Jahre je nach Betriebstemperatur, Einschaltdauer und Typ der RAMs.
Selektion des RAM-Typs
Da der ZWERG332 nur über einen bestückbaren RAM-Platz verfügt, kann man die Selektion des RAM-Typs über einen Jumper wie in der folgenden Tabelle vornehmen.
RAM-Typ J6 32KB
128KB
512KB1-2
1-2
2-3In der Regel werden Sie aber nie Änderungen an diesem Jumper vornehmen müssen, da dies schon während der Fertigung geschieht.
![]()
2.6 ROM
Das ROM wird ebenfalls wie das RAM von uns schon bestückt. Es ist also keine nachträgliche Änderung der Bestückung mehr möglich. Daher kommen in der Regel nur die beiden FLASH-Typen in Frage, da diese auf der Platine programmierbar sind. Bei grösseren Serien sind wir aber auch gerne bereit die von Ihnen programmierten ROM-Bausteine zu bestücken. Der ROM-Platz kann mit den folgenden Typen bestückt werden:
Typ
Chip-
grösse
KBOnb.
prog.
Onb.
lösch.
J7
J8
271001
272001
274001
29F010
29F040128
256
512
128
512N
N
N
J
JN
N
N
J
JCS3*
CS3*
A18
CS3*
CS3*A18
A18
A18
-
VCCDer ROM-Typ wird über 2 Jumperfelder mit je 3 Pins selektiert, der in der Regel von uns schon eingestellt ist:
Typ J7 J8 271001
272001
274001
29F010
29F0401-2
1-2
2-3
1-2
1-21-2
1-2
1-2
-
2-3![]()
2.7 FLASH
Flash-Memory lässt sich ohne Zusatzhardware direkt in der Schaltung programmieren und wieder löschen. Daraus ergeben sich erhebliche Vorteile für Entwicklung und Fertigung von Produkten auf Basis des ZWERG332. Insbesondere die leichte Reprogrammierung auch im Feld spart Aufwand und ermöglicht Produkteigenschaften, wie sie mit EPROMs nicht denkbar sind. Durch den Einsatz von Flash-Memories von AMD, sowie dazu kompatiblen Typen, kann auf Programmierspannungsgeneratoren und ähnlich problematische Hardware verzichtet werden.
Generelle Hinweise
Je nach Programmierung des Chip-Select-Generators für das FLASH führt Schreiben zu einem Buserror. Vor dem Schreiben muss deshalb im Register "ChipSelectOptionRegisterBoot" (CSORBT) die Option R/*W auf BOTH gesetzt werden. Nach dem Schreiben sollte R/*W wieder auf READ gesetzt werden, um versehentliches Schreiben mit fatalen Folgen für das Programm zu unterdrücken.
Das FLASH-Entwicklungspaket (siehe Anhang) ermöglicht ein komfortables Arbeiten mit Flash-Memories.
![]()
2.8 RTC
Die RTC4553 ist über 16 Register mit einer Breite von 4Bit ansprechbar. Das Interface zur RTC ist über das QSPI des MC68332 realisiert. Write Enable wird über die Portleitung PE6 erzeugt, während das Chip-Select-Signal schon von dem QSPI-Modul über PCS3 erzeugt wird. Zusätzlich verfügt die RTC über zwei Speicherbänke mit der Grösse von 15 x 4Bit. Weiteres dazu bei der Einstellung der Modi.
Die Details der Programmierung des QSPI sind im Datenblatt zum MC68332 beschrieben. In der Regel werden Sie zum Setzen und Lesen der RTC aber die schon vordefinierten Funktionen von ECO-C verwenden können:
Lesen: Liefert die Zeit in Sekunden seit dem 01.01.1970 time_t _gettime(void)
Setzen: Erhält die Zeit in Sekunden seit dem 01.01.1970 void _settime(time_t *p)
Die folgende Tabelle zeigt Adressen, Namen und Funktionen der einzelnen RTC-Register:
Adresse Name D3 D2 D1 D0 Funktion 0x0
0x1
0x2
0x3
0x4
0x5
0x6
0x7
0x8
0x9
0xA
0xB
0xC
0xD
0xE
0xFS1
S10
Mi1
Mi10
H1
H10
W
D1
D10
Mo1
Mo10
Y1
Y10
CtlD
CtlE
CtlFS08
0
m08
0
H08
PAM
0
D08
0
M08
0
Y08
Y80
TPS
BSY
SYSS04
S40
m04
m40
H04
0
W4
D04
0
M04
0
Y04
Y40
ADJ
PON
0S02
S20
m02
m20
H02
H20
W2
D02
D20
M02
0
Y02
Y20
CNT
0
MS1S01
S10
m01
m10
H01
H10
W1
D01
D10
M01
M10
Y01
Y10
E/U
0
MS0Sekunde Einer
Sekunde Zehner
Minute Einer
Minute Zehner
Stunde Einer
Stunde Zehner
Wochentag
Tag Einer
Tag Zehner
Monat Einer
Monat Zehner
Jahr Einer
Jahr Zehner
Control Reg. D
Control Reg. E
Control Reg. FDie Bits in den Kontrollregistern haben im einzelnen folgende Bedeutung:
0: Eine "0" bedeutet, dass beim Lesen immer eine Null erscheint. Beim Schreiben sollte dort immer eine Null stehen. Sekunde - Jahr: BCD Code. PAM: Zeigt PM (0) oder AM (1) an. Nur im 12-Stunden-Mode. ( 00:00 bis 11:59 = AM; 12:00 bis 23:59 = PM ) Wochentag: Der Wochentag wird wie folgt kodiert:
Data 0 1 2 3 4 5 6 Wochentag So Mo Di Mi Do Fr Sa TPS: Mit diesem Bit wird die Frequenz eingestellt die auf den Pin TPout* ausgegeben werden kann.
TPS bit Frequenz 0
11024 Hz
1/10 HzADJ: 30 Sekunden Adjust(1). Die Minuten werden inkrementiert, wenn die Sekunden > 30 sind. Die Sekunden werden auf 00 gesetzt. Nach Setzen von ADJ muss minimal 100 Mikrosekunden gewartet werden. Das Bit wird automatisch wieder gelöscht. CNT: Zähler-Reset MS[0 . . 1 ] : Mit diesem zwei Bit breiten Feld kann einer von drei Modes selektiert werden:
M1 M0 Mode 0
0
1
10
1
0
1Zähler- (Sekunde - Jahr) & Kontrollregister
Zähler- (Sekunde - Jahr) & Kontrollregister
RAM Block 1 & Kontrollregister 3
RAM Block 2 & Kontrollregister 3BSY: Dieses Bit wird beim Lesen und Schreiben benötigt und zeigt an ob ein Übertrag ansteht.D.h. dass z.B. die Sekunden gerade genullt haben und die Minuten dadurch erhöht wurden. Die gelesene Zeit wäre dann falsch.
BYS Bit Mode Funktion 0
1Kein Übertrag
ÜbertragLesen, Schreiben erlaubt
Lesen, Schreiben verbotenPON: Dieses Bit ist 1, wenn die RTC noch nicht initialisiert wurde. E/U: Setzt Europäischen 24 Stunden- (1) oder US AM/PM-Mode (0). SYS: Dieses Bit auf 1 setzt die RTC in einen definierten Anfangszustand: 12:00:00 Uhr und 01.01.00 (Sonntag); AM/PM-Mode Die Bereiche der einzelnen Zeiteinheiten:
Einheit von bis Kommentar Sekunden
Minuten
Stunden
Monate
Jahre
Wochentag00
00
00
01
00
059
59
23
12
99
6
bis 11 im AM/PM Mode
Sonntag ist 0![]()
2.9 ADC
Der auf dem ZWERG332 optional installierbare A/D-Wandler TLC2543 kann auf 11 Kanälen Analogwerte mit 12Bit Auflösung und einer Wandelrate von 12us einlesen.
Die Spannungsreferenz (wir nur zusammen mit dem ADC bestückt) auf der Platine erlaubt einen Eingangsbereich des Wandlers von VRL = 0V bis VRH=4,096V. Wir haben den Wert von 4,096V deshalb gewählt, da dann bei dem 12Bit-Wandler 1 Bit immer 1mV entspricht. Um zusätzlich Strom sparen zu können, lässt sich die Referenzspannungsquelle über den Port E Pin 2 an- (PE2 High) bzw. ausschalten (PE2 Low).
Hinweis: Möchten Sie eine externe Spannung für VRH bzw. VRL anlegen, so darf die onboard Referenz nicht bestückt sein. Die extern angelegte Spannung muss für den TLC2543 folgende Kriterien erfüllen:
- VRL darf nicht kleiner als 0V sein!
- VRH - VRL muss kleiner 5,1V und grösser 2,5V sein!
- VRH - VRL darf niemals kleiner/gleich 0V werden.
Ein Softwarebeispiel zur Ansteuerung des ADC finden Sie bei ECO-C in dem Verzeichnis ..\samples\zwerg332.
![]()
2.10 Hardwareeinschränkungen
Folgende Baugruppen des MC68332 sind durch externe Beschaltung in ihrer Programmierbarkeit eingeschränkt und müssen diesen Vorgaben entsprechend konfiguriert werden:
Port C Bis auf die Leitungen CS*8 und CS*7 sind alle anderen Leitungen als Chip-Select verwendet bzw. nicht verfügbar. Port E Ist nicht herausgeführt. Port F PF0 und PF1 werden für die Signale RTS0* und CTS0* verwendet. Es stehen an den Stiftleisten die restlichen Signale zur verfügung (IRQ*2 = PF2, ...). Clockgenerator für die Taktversorgung der CPU. Dieser Generator verwendet einen externen 32,784kHz-Quarz. Die Konfiguration muss entsprechend gewählt werden. Bus Arbitration Die drei Signale BR*, BG* und BGACK* werden als Chip-Selects verwendet. ADC/TPU Von den 11 verfügbaren Kanälen sind 3 Kanäle mit Signalen von der TPU zusammengeschaltet. Diese TPU-Signale sind also nicht mehr nutzbar wenn diese ADC-Kanäle verwendet werden sollen. Bus des MC68332 Der Bus des MC68332 steht nur mit 8Bit Daten und 8Bit Adressen zur Verfügung. ![]()
3 Schnittstellen
3.1 Serielle Schnittstelle ST1
Auf dem ZWERG332 kommt nur das von dem Prozessor zur Verfügung gestellte asynchrone serielle Interface zur Anwendung. Die Beschreibung zu dessen Programmierung entnehmen Sie bitte dem Datenbuch des MC68332.
Der Steckverbinder ST1 für die serielle Schnittstelle ist ein zweireihiger 10pol. Pfostensteckverbinder wie er für unsere IF-Module (RS232, RS485... ) üblich ist.
Pin Signal Pin Signal 1
3
5
7
9VCC
RI* (TP13)
TXD
RTS*
DCD* (TP10)2
4
6
8
10DSR* (TP15)
RXD
DTR* (TP14)
CTS*
GND
VCC: +5V ±10% Stromversorgung für die Peripherieschaltung. GND: Referenz. DSR*: Data Set Ready. Auf dem Seriellen Kanal 0 ist DSR* über einen Jumper auf RESET* legbar. Details finden sich unter V.24 RESET. Gleichzeitig ist dieses Signal über TP15 einlesbar. RI*: Ring Indikator Eingang vom Modem. Dieses Signal ist mit TP13 verbunden. RXD: Receive Data Eingang. TXD*: Transmit Data Ausgang. DTR*: Data Terminal Ready Ausgang. Mit TP14 verbunden. RTS*: Request To Send Ausgang. Ist an Port F Pin 0 angeschlossen. CTS*: Clear To Send Eingang. Ist an Port F Pin 1 angeschlossen. DCD*: Data Carrier Detect Eingang. Dieser Eingang kann am Pin TP10 ausgelesen werden. Alle an die TPU angeschlossenen Eingänge (TPx) sind durch die TPU auch als Interrupteingänge schaltbar.
V.24 RESET
Das DSR* Signal auf dem seriellen Kanal kann genutzt werden, um vom Hostrechner aus per Software eine RESET auszulösen. Dazu muss DSR* auf Low gepulst werden. Die Pulsbreite sollte minimal ca. 0,1 Sekunden betragen. Der V.24 Reset kann durch Stecken des Jumpers J2 aktiviert werden.
Der Terminalemulator 'TM.EXE' bietet die Möglichkeit, über Kommandozeilenparameter oder interaktiv mit ALT-R einen Reset auszulösen.
Da die Leitung DSR* auch an TP15 der TPU angeschlossen ist, kann man über die TPU auch einen RESET auf dem ZWERG332 auslösen bzw. den Pegel dieser Leitung zurücklesen.
![]()
3.2 TLX+Businterface ST2
Den Kern bildet das TLX+ Businterface. Diese Schnittstelle ist extrem einfach zu benutzen und erlaubt den Anschluss der meisten Intel-buskompatiblen Bausteine ohne zusätzliche Gluelogik. Alle Signale auf dem TLX+ können über Flachbandkabel mit bis zu 25cm Länge geführt werden. Mit einer geeigneter Treiberschaltung können auch noch grössere Distanzen überbrückt werden.
Die Chip-Selects werden direkt über Adressen (siehe Tabelle) erzeugt, wobei die Signale WR* und RD* aus den Prozessorsignalen CS*8 und CS*9 generiert werden. Die entsprechenden Adressen für vier Chip-Selects am TLX+ sind in der Adressmap angegeben.
Im folgenden finden Sie die Belegung eines zweireihigen Pfostensteckverbinders, wie er auf den Erweiterungsboards für den TLX-Bus üblich ist. In Klammern finden Sie die dazugehörigen Signale des ZWERG332 Steckverbinders:
Pin Name Name Pin 1
3
5
7
9
11
13
15
17
19GND (GND)
VCC (VCC)
WR* (CS*9)
TLX*0 (A5)
A2 (A2)
D0 (D8)
D2 (D10)
D4 (D12)
D6 (D14)
- (IRQ*4)GND (GND)
VEE (NC)
RD* (CS*10)
A1 (A1)
RESET*(RESET*)
D1 (D9)
D3 (D11)
D5 (D13)
D7 (D15)
A3 (A3)2
4
6
8
10
12
14
16
18
2021
23
25A4 (A4)
TLX*2 (A7)
TLXINT*(IRQ*5)TLX*1 (A6)
TLX*3 (A8)
GND (GND)22
24
26
GND: Referenz. VCC: +5V ±10% Stromversorgung für die Peripherieschaltung. VEE: Kontrastspannung für LC-Anzeigen. Diese Spannung wird vom ZWERG332 nicht bereit gestellt. TLX*x: Die Chip-Selects des TLX+. Bei dem ZWERG332 werden hierfür Adressleitungen verwendet. DO... D7: Die Datenleitungen D0... D7 des TLX-Busses sind auf dem ZWERG332 mit den Datenleitungen D8... D15 verbunden, da der MC68332 im 8Bit-Mode standardmässig immer die oberen acht Bits seines Datenbusses verwendet für sämtliche Zugriffe nutzt. TLXINT*: Lowaktiver Interrupteingang verbunden mit IRQ*5 RESET* : Resetleitung des ZWERG332. Hiermit kann eine externe Baugruppe den ZWERG332 resetten. -: Dieser Pin wird normalerweise vom TLX-Bus nicht verwendet. Daher wurde an diesem Pin der Interrupteingang vier IRQ*4 angelegt. Beim Anschluss von Grafik-LCDs sind nur die ersten 20 Pins nötig. Beachten Sie bitte, dass bei einigen Anzeigen der Pin 19 zum Invertieren der Anzeige und der Pin 20 für die Zeichengrösse verwendet wird und somit die Anzeige von der Funktion von IRQ*4 bzw. A3 abhängig ist. Sollte IRQ*4 als digitaler Output geschaltet werden, so ist es damit möglich die Invertierung der Anzeige direkt darüber zu steuern. Die Adressleitung A3 darf aber auf keinen Fall an den Pin 20 einer Grafik-LCD angeschlossen werden.
![]()
3.3 Background-Debug Stecker ST3
Der 10pol. Debug-Stecker enthält auf den Pins 1-8 das von Motorola standardisierte 8pol. Background-Debug Interface. Auf Pin 10 liegt liegt der CPU-Takt, Pin 9 wird nicht benutzt.
Pin Name Name Pin 1
3
5
7
9GND
GND
RESET*
VCC
IRQ*2BKPT*
FREEZE
IFETCH*
IPPE*
CPUCLK2
4
6
8
10
VCC: +5V ±10% Stromversorgung für die Debuggerschaltung. GND: Referenz. RESET*: Bidirektionaler Reset. CPUCLK: Interner CPU Takt zur Synchronisation der Debuggerschaltung. BKPT*: Breakpoint / DSCLK Eingang der CPU. FREEZE: Indikator, dass die CPU im Debug-Mode ist. IFETCH*: Instruction-Fetch Ausgang oder serieller Eingang des Debuggerports. IPPE*: Pipeline-Flush oder serieller Ausgang des Debuggerports. IRQ*2: Der Interrupteingang IRQ*2 wird vom Debuggerport nicht benötigt und ist daher frei verwendbar. Mit Hilfe dieses Debug-Interfaces des MC68332 lassen sich folgende Funktionen direkt auf dem ZWERG332 ausführen:
- Laden und Ausführen von Programmen
- Abbrechen von Programmen mit Abfrage und Modifikation aller Register und des Speichers
- Start des Debuggers nach Exceptions
- Programmieren von onboard Flash-Memory
- Abfrage aller Pins am MC68332
Background-Debugging
Die CPU des ZWERG332 hat einen in Microcode realisierten Debugger mit auf dem Chip. Der Background-Debugging-Monitor bietet Zugriff auf alle internen Register der CPU, sowie den gesamten Speicherbereich. Ausserdem können Programme gestartet und zu beliebigen Zeitpunkten abgebrochen werden. Weitere Information zum Background-Debugging-Interface findet sich im Datenbuch zum MC68332.
Programmierung von Flash-Memory
Flash-Memory kann direkt in der Schaltung mit Hilfe des Background-Debug-Interfaces programmiert werden. Die dazu nötigen Speicherzugriffe sind die selben wie bei der Programmierung durch Software auf dem ZWERG332. Da das FLASH nach dem Reset direkt ohne weiteres les- und schreibbar ist, sind keine weiteren Vorbereitungen nötig.
![]()
3.4 Steckverbinder ST4
Der Steckverbinder ST4 stellt einen Teil der TPU-Signale und die notwendigen Signale für den ADC zur Verfügung.
Pin Name Name Pin 1
3
5
7
9
11
13
15
17
19
21
23
25
25
25
25
25TP0/AIN8
TP11/AIN10
CS*8
VRH
VRL
T2CLK
GND
TP3
TP2
TP1
TP9
TP8
TP6
TP5
TP4
GND
PCS1TP7/AIN9
TP12/IRQ*3
CS*7
AIN0
AIN1
AIN2
AIN3
AIN4
AIN5
AIN6
AIN7
MISO
MOSI
SCK
SS*
VCC
IRQ*62
4
6
8
10
12
14
16
18
20
22
24
26
26
26
26
26
GND: Referenz. VCC: +5V ±10% Stromversorgung für die Peripherieschaltung. CS*7, CS*8: Chip-Selects des MC68332 IRQ*3, IRQ*6: Interrupteingänge des MC68332 TPx: TPU-Ein-/Ausgänge des MC68332 T2CLK: Clocksignal der TPU AIN0... AIN10: ADC-Eingänge VRH, VRL: Referenzspannung des ADC MOSI, MISO: Datenleitungen des QSPI SCK: Clockleitung des QSPI PCS1, SS*: Chip-Selectsignale des QSPI QSPI - Serielles Peripherie-Interface
Der ZWERG332 stellt für serielle Peripheriebausteine ein serielles Interface zur Verfügung, das sogenannte QSPI. Die Signale des QSPI sind auf dem Steckverbinder ST4 herausgeführt. Normalerweise verfügt das QSPI über maximal vier Chip-Selects, wobei aber schon PCS2 und PCS3 für den ADC und die RTC4553 verwendet werden. Da sich die Chip-Selects auch kombinieren lassen kann man mit PCS3, SS* und einer Adressdekodierung noch vier weitere SPI-Bausteine extern anschliessen.
![]()
4 Bei Problemen
- Der Einplatinenrechner ist am Netzteil und PC angeschlossen, meldet sich aber nicht oder nicht korrekt.
Checken Sie: Stromversorgung auf dem Rechner (direkt z.B. am EPROM messen). Bei weniger als 4,75V könnte bereits der Resetgenerator ansprechen. Die korrekte Spannung beträgt 5.0V +/- 5% wobei die Spannung nicht unbedingt an der Untergrenze sein sollte.
V.24 Kabel inklusive Handshakeleitungen.
Ist der Terminalemulator korrekt konfiguriert?
Kann die Software auf dem Einplatinenrechner überhaupt mit einem Terminalemulator kommunizieren?
- Die RTC liefert seltsame Werte
Die RTC muss wenigstens einmal korrekt gesetzt werden. Der Monitor bietet ein Kommando an.
- Der NICO-Monitor gibt nach dem Reset seltsame Zeichen aus und geht möglicherweise in eine Endlosschleife
Der Monitor kann per Software konfiguriert werden. Wenn die Konfiguration falsch ist kann der Monitor u.U. nicht mehr korrekt starten.
Schliessen Sie im ausgeschalteten Zustand des Rechners die Stromversorgung direkt an den RAMs kurz. Danach verwendet der Monitor seine Standardeinstellungen wie im Kapitel Inbetriebnahme beschrieben.
![]()
5 Applikationstips
Autostart von Applikationsprogrammen
Der NICO-Monitor erlaubt den automatischen Start von Programmen und generell das Ausführen von Kommandos direkt nach einem Reset. Der prinzipielle Mechanismus ähnelt den Startskripts von MS-DOS (AUTOEXEC.BAT) und UNIX (/etc/rc). Einige Beispiele:
env autoexec h
Nach jedem Reset wird der Help Text des Monitors ausgegeben.
env autoexec "s 0x2020"
Nach dem Reset wird das Programm auf der Adresse 0x2020 gestartet.
Um eine einmal gesetzte autoexec Variable zu löschen, muss entweder das RAM gelöscht werden (ausschalten oder bei Batteriepufferung das RAM von GND nach VCC für ca. 1 Sekunde kurzschliessen) oder es muss ein env autoexec Kommando gegeben werden.
Startup Select
Soll der Monitor durch manuellen Eingriff auf verschiedene Arten gestartet werden, sind die autoexec1..9 Variablen nützlich. Nach jeden Reset wartet Nico für ca. eine halbe Sekunde auf einen erneuten Reset. Durch mehrfaches Resetten kann ein interner Zähler inkrementiert werden. Nachdem der Monitor schliesslich durch die Startphase gelaufen ist wird die Anzahl der gegebenen Resetpulse ausgewertet und die autoexec-Variable mit der angehängen Anzahl der Pulse ausgeführt. Ein Beispiel:
env autoexec1 "sp hello walter"
env autoexec2 hWenn nur ein Resetpuls kommt, wird autoexec1 ausgeführt - es wird also nach einem einzelnen Reset oder nach dem Einschalten das Programm auf 0x2000 mit den Argumenten hello und walter ausgeführt. Wird nach dem Reset der Resettaster ein zweites Mal gedrückt benutzt der Monitor die Variable autoexec2 und bei noch mehr Resets eben sinngemäss die Variable mit der entsprechenden Nummer.
Die autoexec Variable wird, falls gesetzt, vor den autoexec1..9 Variablen ausgeführt.
![]()
Anhang A NICO-Monitor (ist im SCOTTY08-Handbuch beschrieben)
Anhang B FLASH-Entwicklungspaket (ist im SCOTTY08-Handbuch beschrieben)
www.mct.de: Produkte: Einplatinencomputer: ZWERG332