IndexHomepage^

MEGA332 - Handbuch

  1. Einführung
    1. Auslieferungszustand
    2. Inbetriebnahme
    3. Logische Pegel
    4. Numerische Angaben
  2. Baugruppen
    1. Adressbelegung
    2. Interrupts
    3. Stromversorgung
    4. Powerdown-Betriebsarten
    5. RESET
    6. RAM
    7. ROM
    8. FLASH
    9. RTC
    10. Hardwareeinschränkungen
  3. Schnittstellen
    1. Externes Businterface
    2. Peripherie-Interfaces
      1. ADC
      2. CAN
      3. Power- und CPU-Management
      4. Serielle Schnittstellen
      5. QSPI
    3. Parallel I/O
  4. Debugger Support
  5. Bei Problemen
  6. Versionen
  7. Applikationstips

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

Mit dem MEGA332 haben Sie einen Einplatinenrechner mit herausragenden Eigenschaften erworben.
Der grosszügige Ausbau mit Speicher und die hohe Rechenleistung, verbunden mit einer leistungsfähigen Hochsprachen-Entwicklungsumgebung, prädestinieren ihn für anspruchsvolle Projekte.

Die onchip Peripherie des Controllers MC68332 wurde um weitere, vielfach benötigte Baugruppen ergänzt. Die hohe Integrationsdichte und geringe Stromaufnahme des MEGA332 konnte durch die Bestückung mit Surface-Mount Devices in CMOS-Technik und moderne Powersave-Techniken erreicht werden.

Die integrierten Funktionen des MC68332:
Funktionen des MEGA332:
Zusatzbaugruppen erlauben den schnellen Einsatz in unterschiedlichsten Anwendungen:
Last but not least - die Software:
^

1.1 Auslieferungszustand

Der MEGA332 Einplatinenrechner wird in folgender Konfiguration ausgeliefert:

^

1.2 Inbetriebnahme

Foto

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 und COM1 zur Kommunikation mit dem Target verwenden.

^

1.3 Logische Pegel

Wenn in diesem Handbuch auf logische Pegel eines Signals eingegangen wird, werden 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 high-aktive Signale (z.B. FREEZE) bei High-Pegel aktiv bei Low-Pegel inaktiv. Low-aktive Signale (z.B. RESET*) sind bei 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 low-aktiv 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, 0xFFFF entspricht also dem dezimalen Wert 65535.

^

2 Baugruppen

2.1 Adressbelegung

Bei der M68000-Familie werden alle Peripheriebaugruppen in den linearen Adressraum des Prozessors eingeblendet. Beim MEGA332 wird die Adressdekodierung zum Grossteil 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/1/2/3
4
5
5
5
9/10
9/10
9/10
9/10
9/10
0x0FFFA00... 0x0FFFFFF
0x0FFFC14... 0x0FFFD4F
0x0200000... 0x02FFFFF
0x0000000... 0x01FFFFF
0x0300000... 0x030001F
0x0310000... 0x031001F
0x0310200
0x0310300
0x0E00000... 0x0EFFEFF
0x0EFFFC0... 0x0EFFFDF
0x0EFFFA0... 0x0EFFFBF
0x0EFFF60... 0x0EFFF7F
0x0EFFEE0... 0x0EFFEFF
MC68332 Intern
ADC an PCS2 vom QSPI
EPROM/FLASH
SRAM
MC68681
RTC
CAN-Controller
CAN_ALE (write)
Externer Bus
TLX+ 0
TLX+ 1
TLX+ 2
TLX+ 3

Nicht aufgeführte Adressbereiche führen beim Zugriff zu einem Buserror.

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 MEGA332 beim Zugriff auf nicht dekodierte Adressbereiche hängt u.a. von diesen Einstellungen ab. Normalerweise sollte es genügen, den Buserrortimer auf die maximal mögliche Timeoutzeit zu setzen.

^

2.2 Interrupts

Interne Interrupts werden wie im MC68332 User's Manual beschrieben verwendet. An externen Interrupts werden TLXINT* und NMI* sowie der CAN-Controller-Interrupt CANIRQ* und der RTC-Interrupt STDP* verwendet (siehe auch TLX+ Businterface, CAN und RTC).

NMI

Der NMI kann vom Netzteil über den Powerstecker 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 Zustands und Herunterfahren des gesteuerten Prozesses bleiben.

NMI* ist fest auf IRQ7* gelegt. Die Priorität des NMI ist damit auf 7 fixiert.

^

2.3 Stromversorgung

Der MEGA332 wird über den 4pol. Floppysteckverbinder J1 versorgt. Die Belegung dieses Steckers entspricht zwar im wesentlichen dem eines normalen 3,5" Floppylaufwerks, verwenden Sie jedoch keine PC-Netzteile! Diese führen auch 12V auf den Stecker, wodurch der MEGA332 zerstört würde!

Pin Signal
1
2
3
4
VCC
GND
NMI*
STDP*
VCC +5V ±5% Stromversorgung
GND Spannungsreferenz der Stromversorgung
NMI* Dieses Signal liefert vom Netzteil eine Stromausfall-Meldung. Eine negative Flanke löst bei geeigneter Programmierung einen NMI aus.
STDP* Mit diesem Signal lässt sich das Netzteil ausschalten. Über die Alarmfunktion der RTC kann nach Ablauf einer programmierbaren Zeit das Netzteil wieder eingeschaltet werden.

Die Stromaufnahme an VCC beträgt typisch 110mA und maximal 160mA - je nach Version.

Die Notstromversorgung der RTC und des RAM ist mit einer 3V-Lithiumzelle 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 und sollte nur von qualifiziertem Personal ausgetauscht werden.

Da die Lebensdauer der Lithiumzelle für manche Anwendungen zu gering ist, kann ein externer Akku verwendet werden. Die Batteriespannung ist auf den Pin VACCU auf dem unteren Steckverbinder gelegt. Ein Vorwiderstand mit 10kOhm erlaubt den direkten Anschluss von Akkus mit bis zu ca. 100mAh.

Akkus mit höherer Kapazität sollten direkt von VCC über einen geeigneten Vorwiderstand und eine Diode geladen werden. Alternativ kann auch der 10kOhm Widerstand gegen einen kleineren Wert getauscht werden.

^

2.4 Powerdown-Betriebsarten

Neben den Betriebsmodi der CPU ist auf dem MEGA332 ein voller Powerdown mit zeit- oder interruptgesteuertem Betrieb möglich.

Das Netzteil POWER1 ist bereits auf einen solchen extern gesteuerten Betrieb vorbereitet. Es hat einen low-aktiven Power-On Eingang, über den die 5V Versorgung vom Netzteil eingeschaltet werden kann. Weitere Details finden Sie im Kapitel RTC und der Beschreibung von POWER1.

^

2.5 RESET

Der RESET wird auf der Platine mit einem Spannungskomparator generiert. Die minimale Versorgungsspannung für ein Auslösen 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 MEGA332 zwischen GND und VCC geschaltet werden. Ausserdem ist es in diesen Fällen besser, eine knapp dimensionierte Stromversorgung zu verwenden (ca. 400mA Maximalstrom), um den Ladestrom des Kondensators zu begrenzen.

^

2.6 RAM

Vorgesehen ist der Einsatz von 512KB RAMs im Flatpack-Gehäuse. Da die Bausteine eingelötet sind, ist eine nachträgliche Änderung des RAM-Typs nicht ohne erheblichen Aufwand möglich. Noch nicht bestückte RAM-Bausteine können jedoch jederzeit aufgelötet werden.

Die im RAM gespeicherten Daten werden bei installierter 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 25MHz Version verfügt zusätzlich über 256KB schnelles RAM (nicht batteriegepuffert).

^

2.7 ROM

Ab MEGA332 Version 2 ist nur noch Flash-Memory vorgesehen.

^

2.8 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 MEGA332. Insbesondere die leichte Re-Programmierung 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 Programmierspannungs-Generatoren und ähnlich problematische Hardware verzichtet werden.

Generelle Hinweise

Auf dem MEGA332 sind zwei Flash-Memories parallel geschaltet, um auf eine Busbreite von 16Bit zu kommen. Schreibzugriffe müssen immer in einer Breite von 16Bit erfolgen. Damit ist die kleinste programmierbare Einheit ein 2-Byte breites Wort auf einer geraden Adresse.

Je nach Programmierung des Chip-Select-Generators für das FLASH führt Schreiben zu einem Buserror. Vor dem Schreiben muss deshalb im Chip-Select-Option-Register-Boot (CSORBT) die Option R/*W auf BOTH gesetzt werden. Nach dem Schreiben sollte die Option 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-Memory.

^

2.9 RTC

Die RTC72421 ist über 16 Register mit einer Breite von 4Bit ansprechbar. Diese Register liegen in einem Port von jeweils 8Bit Breite, wobei die obersten 4Bit beim Lesen undefinierte Werte liefern und beim Schreiben irrelevant sind. Die Basisadresse ist 0x0310000. Jedes zweite Byte ist nicht benutzt.

Die folgende Tabelle zeigt Adressen, Namen und Funktionen der einzelnen RTC-Register:

Adresse Register D3 D2 D1 D0 Funktion
0x0310001
0x0310003
0x0310005
0x0310007
0x0310009
0x031000B
0x031000D
0x031000F
0x0310011
0x0310013
0x0310015
0x0310017
0x0310019
0x031001B
0x031001D
0x031001F
S1
S10
Mi1
Mi10
H1
H10
D1
D10
Mo1
Mo10
Y1
Y10
W
CtlD
CtlE
CtlF
S08

m08

H08

D08

M08

Y08
Y80

ADJ
T1
TST
S04
S40
m04
m40
H04
PAM
D04

M04

Y04
Y40
W4
IRQ
T0
E/U
S02
S20
m02
m20
H02
H20
D02
D20
M02

Y02
Y20
W2
BSY
I/S
STP
S01
S10
m01
m10
H01
H10
D01
D10
M01
M10
Y01
Y10
W1
HLD
MSK
RST
Sekunden Einer
Sekunden Zehner
Minuten Einer
Minuten Zehner
Stunden Einer
Stunden Zehner
Tag Einer
Tag Zehner
Monat Einer
Monat Zehner
Jahr Einer
Jahr Zehner
Wochentag
Control Reg. D
Control Reg. E
Control Reg. F

Bereiche der Zeiteinheiten:

Einheit von bis Kommentar
Sekunden
Minuten
Stunden
Monat
Jahr
Wochentag
00
00
00
01
00
0
59
59
23
12
99
6


bis 11 im AM/PM Mode


Sonntag ist 0

Die Bedeutung der Bits in den Kontrollregistern ist im RTC72421 Datenblatt beschrieben, hier eine Übersicht:

PAM PM (0) oder AM (1)
ADJ 30 Sekunden Adjust. Die Minuten werden inkrementiert, wenn die Sekunden > 30 sind. Die Sekunden werden auf 00 gesetzt.
Nach Setzen von ADJ muss minimal 100us gewartet werden. Das Bit wird automatisch gelöscht.
IRQ Dieses Read-Only Bit reflektiert den Zustand des Interruptausgangs der RTC (1 = Interrupt, 0 = kein Interrupt).
Beim Schreiben einer 0 wird ein anstehender Interrupt wieder zurückgenommen.
BSY Zeigt nach dem Setzen von HLD an, ob ein Übertrag zu erwarten ist (1 = Übertrag, 0 = kein Übertrag).
HLD Siehe vorhergehendes Bit
T1/T0 Diese Bits bestimmen die Periodendauer des Interruptausgangs. Die Periodendauer beträgt:
T1 T0 Zeitintervall
0
0
1
1
0
1
0
1
[1/64] Sekunde
1 Sekunde
1 Minute
1 Stunde
I/S Dieses Bit muss auf 1 programmiert werden.
MSK Dieses Bit sperrt den Interruptausgang der RTC.
TST Dieses Bit muss auf 0 programmiert werden.
E/U Europäische 24 Stunden- (1) oder US AM/PM-Zeit (0)
STP STP = 1 stoppt die Uhr.
RST RST = 1 löscht die internen Zähler unterhalb des 1Hz Teilers.
Solange RST = 1 wird die Uhr angehalten.

Programmierung der RTC

Mit folgender Programmsequenz lässt sich die Uhr stellen:

  RTC->ctlf = 7; /* stop, reset, 24 hour mode */

  RTC->sec   = sec;
  RTC->secd  = sec10;
  RTC->min   = min;
  RTC->mind  = min10;
  RTC->hour  = hour;
  RTC->hourd = hour10;
  RTC->day   = day;
  RTC->dayd  = day10;
  RTC->mon   = mon;
  RTC->mond  = mon10;
  RTC->year  = year;
  RTC->yeard = year10;
  RTC->week  = week;

  RTC->ctle  = 0; /* 64Hz, enable stdp output */
  RTC->ctld  = 0;
  RTC->ctlf  = 4; /* 24 hour mode, start clock */

Zum Lesen werden die Zeitregister in einen Buffer kopiert. Wenn sich während des Lesens die Register verändern, wird eine falsche Zeit gelesen. Um dies zu erkennen, wird die RTC zweimal gelesen und die Ergebnisse verglichen. Falls sie ungleich sind wird der Lesevorgang wiederholt.

Zusammen mit dem Netzteil POWER1 kann der Alarmausgang der RTC zum periodischen Einschalten des MEGA332 verwendet werden. Dazu muss die RTC auf periodische Interrupts programmiert, und der dafür vorgesehene Jumper auf POWER1 entfernt werden. Durch Schreiben von 0 auf das IRQ-Bit in der RTC schaltet sich der Rechner selbst aus. Nach Ablauf der (mit T1/T0) programmierten Periode wird der Strom wieder eingeschaltet.

Zusätzlich kann der Interruptausgang STDP* auch auf den Interrupteingang IRQ3* gelegt werden, um periodische Interrupts zu erzeugen.

RTC63421

Die optional erhältliche RTC63421 ist eine gegenüber der RTC72421 verbesserte Ausführung. Die beiden RTCs sind pinkompatibel und mit Ausnahme der Controlregister und der zusätzlichen Alarmtimer-Funktion softwarekompatibel. Die RTC63421 hat als wesentliche Verbesserung einen frei programmierbaren Alarmtimer der verwendet werden kann, um nach beliebigen Zeitintervallen die Power-On Funktion des POWER1 Netzteils zu triggern.

^

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
wird für Chip-Selects verwendet.
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
Von den 11 verfügbaren Kanälen sind 7 Kanäle auf Pins mit einer zweiten Funktion gelegt worden.
^

3 Schnittstellen

Mit Ausnahme des Powersteckers sind alle Schnittstellen in die beiden 64pol. Stiftleisten am oberen und unteren Rand integriert. Die beiden Stecker liegen in einem 1/10" Raster. Die vier Befestigungslöcher sind relativ zu den Steckverbindern in einem 1/20" Raster.

Alle Signale sind auf nach oben gerichteten Pfostensteckern verfügbar. Damit ist der Einsatz des MEGA332 auf einer Basisplatine problemlos möglich. Folgende Interfaces sind auf die Pfosten gelegt:

Interface Leiste von bis # Anschluss an
TLX+
Seriell 0
Seriell 1
Seriell 2
BDM-Port
ADC/CAN
oben
unten
unten
oben
unten
unten
1
55
39
51
23
1
26
64
48
54
32
10
26
10
10
4
10
10
Grafik-LCD, Std. Peripherie
Serielles Modul
Serielles Modul
Serielles Modul
Background Debugger
Analog I/O, CAN Bus
^

3.1 Externes Businterface

Alle nötigen Signale für den Anschluss von externen Komponenten an den Mikroprozessorbus sind auf die obere Pfostenleiste gelegt. Die Anordnung der Signale ist hierarchisch strukturiert. Wenn kein Businterface benötigt wird, können die meisten Leitungen als universelle uni- oder bidirektionale Ports verwendet werden.

TLX+ Businterface

Den Kern bildet das TLX+ Interface. Diese Schnittstelle ist extrem einfach zu benutzen und erlaubt den Anschluss der meisten zum Intel-Bus kompatiblen 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 geeigneten Treiberschaltung können noch grössere Distanzen überbrückt werden.

Die Chip-Selects werden direkt über Adressen erzeugt, wobei die Signale WR* und RD* aus den Chip-Selects CS9* und CS10* des MC68332 erzeugt werden. Somit ist Schreiben und Lesen nur auf Basis der Chip-Selects des MC68332 möglich.

Meist sind jedoch nur die Kombinationen von Interesse, bei denen eine der Leitungen auf Low ist. Die entsprechenden Adressen für die vier Chip-Selects am TLX+ sind in der Adressmap im Kapitel Adressbelegung angegeben.

Pin Signal Signal Pin
1
3
5
7
9
11
13
15
17
19
GND
VCC
CS*9 (WR*)
A5
A2
D0
D2
D4
D6
PE4
GND
nc
CS*10 (RD*)
A1
RESET*
D1
D3
D5
D7
A3
2
4
6
8
10
12
14
16
18
20
21
23
25
A4
A7
TLXINT*
A6
A8
GND
22
24
26

Beim Anschluss von Grafik-LCDs werden nur die ersten 20 Pins verwendet. Beachten Sie bitte, dass bei einigen Anzeigen der Pin 19 zum Invertieren der Anzeige verwendet wird und nicht verbunden werden darf!

Interrupts

Der Interrupteingang des TLX+ ist fest auf den Interrupteingang IRQ*3 des MC68332 gelegt und hat damit eine geringe Priorität von 3. Achten Sie darauf, dass auch der Interruptausgang der RTC auf diesen Eingang gelegt wurde. Es kann daher zu unerwünschten Effekten führen, wenn beide Signale gleichzeitig verwendet werden.

16Bit-Erweiterung des TLX+

Direkt auf das TLX+ Interface folgen weitere 8 Datenleitungen. Diese Datenleitungen D8... 15 sind direkt mit dem Prozessorbus verbunden. Für die elektrischen Eigenschaften gelten dieselben Regeln wie für die anderen Datenleitungen auf dem TLX+.
Pin Signal Signal Pin
1
3
5
7
9
11
13
15
17
19
GND
VCC
CS*9 (WR*)
A5
A2
D0
D2
D4
D6
PE4
GND
VEE
CS*10 (RD*)
A1
RESET*
D1
D3
D5
D7
A3
2
4
6
8
10
12
14
16
18
20
21
23
25
A4
A7
TLXINT*
A6
A8
GND
22
24
26
27
29
31
33
D8
D10
D12
D14
D9
D11
D13
D15
28
30
32
34

Volles Businterface

Für Applikationen die ein asynchrones Businterface im M68000-Stil oder einen grossen Adressraum erfordern, kann das volle Businterface verwendet werden. Dadurch werden jedoch die im TLX+ Interface enthaltenen Chip-Select-Leitungen CS0*... CS3* zu Adressleitungen umdefiniert und können nicht mehr in ihrer TLX+ Funktion verwendet werden.

Zu den im 16Bit TLX+ enthaltenen Signalen kommen noch folgende Signale hinzu:

Da nicht alle Signale zur Realisierung des M68000-Busses auf die Stecker geführt sind, ergeben sich folgende Einschränkungen:

Pin Signal Signal Pin
1
3
5
7
9
11
13
15
17
19
GND
VCC
CS9* (WR*)
A5 (CS0*)
A2
D0
D2
D4
D6
PE4
GND
VEE
CS10* (RD*)
A1
RESET*
D1
D3
D5
D7
A3
2
4
6
8
10
12
14
16
18
20
21
23
25
27
29
31
33
A4
A7 (CS2*)
TLXINT*
D8
D10
D12
D14
A6 (CS1*)
A8 (CS3*)
GND
D9
D11
D13
D15
22
24
26
28
30
32
34
35
37
39
41
43
45
47
49
A0
A10
A12
A14
A16
A18
CS7*
CS9*
A9
A11
A13
A15
A17
A19
CS8*
CS10*
36
38
40
42
44
46
48
50
51
53
RxD2
TxD2
CTS2*
RTS2*
52
54
55
57
59
61
63
IRQ2*
DS*
READ
DSACK0*
VCC
IRQ4*
IRQ6*
SIZ0
DSACK1*
VCC
56
58
60
62
64

Die in Klammern angegebenen Signale sind keine wirklichen Prozessorsignale, sondern nur Bezeichnungen die wir in Verbindung mit dem TLX+ verwenden.

VCC
+5V ±10% Stromversorgung für die Peripherieschaltung
GND
Referenz
VEE
Kontrastspannung für LCDs - nicht verwendet
CS10* (RD*)
Read-Enable, Strobe für einen Lesezugriff (aktiv low). Adress- und Chip-Enable Leitungen sind stabil wenn RD* aktiv ist. Die Daten müssen beim Übergang in den inaktiven Zustand gültig sein.
Die Pulsbreite ist programmierbar.
CS9* (WR*)
Write-Enable, Strobe für einen Schreibzugriff (aktiv low). Daten-, Adress und Chip-Enable Leitungen sind stabil wenn WR* aktiv ist.
Die Pulsbreite ist programmierbar.
RESET*
RESET dient zum Zurücksetzen der Peripherie und ist direkt mit dem Prozessor-Reset verbunden.
Dieses Signal ist bidirektional.
TLXINT*
Interrupteingang. Hiermit lässt sich ein Interrupt erzeugen (aktiv low). An diesen Eingang lässt sich ein Interruptausgang mit Totempolestruktur oder mehrere Open-Collector-Ausgänge zusammen mit einem Pullupwiderstand anschliessen. Als Interrupteingang wird IRQ3* oder IRQ5* verwendet.
D0... D15
Ungepufferte Adressleitungen D0... D15
A0... A19
Ungepufferte Adressleitungen A0... A19
(CS0*)... (CS3*) / A5... A8
Chip-Enable Signale. Diese Signale sind keine echten Chip-Selects des Prozessors, sondern nur Adressleitungen, die wir für das TLX+ als Chip-Selects verwenden. Hierüber lassen sich verschiedene Baugruppen selektieren.
Daraus ergeben sich zwar recht merkwürdige Adressen, um jeweils nur eins der CSx* Signale je Transfer zu aktivieren, es wird dadurch jedoch ermöglicht, diese Signale auch als reine Adressleitungen zu verwenden.
RxD2, TxD2, CTS2, RTS2
Dritte serielle Schnittstelle
READ
Ungepuffertes R/W* Signal des MC68332
SIZ0
Ungepuffertes SIZ0 Signal des MC68332
DS*
Ungepuffertes DS* Signal des MC68332
DSACK0*, DSACK1*
Ungepufferte DSACKx* Signale des MC68332
^

3.2 Peripherie-Interfaces

Der Grossteil der Peripherie-Signale liegt auf dem unteren Pfostenstecker. Es sind folgende Signalgruppen zu unterscheiden:

Pin Signal Signal Pin
1
3
5
7
9
AIN0
AIN2
VCC
CANRxD0 /AIN4
CANRxD1 /AIN6
AIN1
AIN3
GND
CANTxD0 /AIN5
CANTxD1 /AIN7
2
4
6
8
10
11
13
15
STDP*
NMI*
HALT*
VACCU
VRH
RMC*
12
14
16
17
19
21
23
25
27
29
31
T2CLK
PCS3
SCK
CPUCLK
IPPE*
IFETCH*
FREEZE
BKPT*
MISO
MOSI
SS
PCS1
VCC
RESET*
GND
GND
18
20
22
24
26
28
30
32
33
35
37
TP14
TP12
TP10
TP15
TP13
TP11
34
36
38
39
41
43
45
47
GND
CTS1*
DTR1*
RxD1 /AIN10
DSR1* /AIN8
DCD1*
RTS1*
TxD1
RI1* /AIN9
VCC
40
42
44
46
48
49
51
53
TP8
TP6
TP0
TP9
TP7
-
50
52
54
55
57
59
61
63
GND
CTS0*
TP3
RxD0
TP1
TP4
RTS0*
TxD0
TP2
VCC
56
58
60
62
64
^

3.2.1 ADC

Der auf dem MEGA332 optional installierbare A/D-Wandler TLC2543 kann auf 11 Kanälen Analogwerte mit einer Auflösung von 12Bit und einer Wandelrate von 12us einlesen (Die genauen technischen Daten finden Sie im TLC2543 Datenblatt).

Die eingebaute Spannungsreferenz erlaubt einen Eingangsbereich des Wandlers von 0... 4,096V.

Pin Signal Signal Pin
1
3
5
7
9
AIN0
AIN2
VCC
CANRxD0 /AIN4
CANRxD1 /AIN6
AIN1
AIN3
GND
CANTxD0 /AIN5
CANTxD1 /AIN7
2
4
6
8
10
45
47
RxD1 /AIN10
DSR1* /AIN8
RI1* /AIN9
VCC
46
48
VCC +5V ±10% Stromversorgung für die Peripherieschaltung
GND Referenz
AIN[0 . . 10 ] Analoge Eingänge mit einem Spannungsbereich von 0... 4,096V

Wichtig: Beachten Sie bitte die doppelte Belegung einiger Pins. Es sind nicht alle ADC Eingänge sinnvoll nutzbar, wenn der CAN-Controller oder der DUART bestückt ist.

^

3.2.2 CAN

Der optionale CAN-Controller SJA1000 (Full CAN nach CAN2.0B Standard, siehe SJA1000 Datenblatt) erlaubt die Kommunikation von Steuerrechnern untereinander und mit verteilten Messwertaufnehmern und Aktuatoren. Dabei ist die Vernetzung mit minimalem Verkabelungsaufwand und gleichzeitig hoher Störsicherheit möglich. Das Interface zum Netz stellt folgende Signale zur Verfügung:

Pin Signal Signal Pin
5
7
9
VCC
CANRxD0 /AIN4
CANRxD1 /AIN6
GND
CANTxD0 /AIN5
CANTxD1 /AIN7
6
8
10
VCC +5V ±10% Stromversorgung für die Peripherieschaltung
GND Referenz
CANXxXX Diese Signale entsprechen den Transmit- und Receive-Signalen am CAN-Controller.
AINX Dies sind vier Eingänge des ADC.

Wichtig: Auch hier gilt es zu beachten, dass die ADC Eingänge AIN4 bis AIN7 nicht mehr nutzbar sind, wenn der CAN-Controller bestückt ist.

Interrupts

Der Interruptausgang des CAN-Controllers ist direkt auf den Interrupteingang IRQ*5 des MC68332 gelegt und hat damit die feste Priorität 5.

^

3.2.3 Power- und CPU-Management

Pin Signal Signal Pin
11
13
15
STDP*
NMI*
HALT*
VACCU
VRH
RMC*
12
14
16
STDP* Open-Collector-Alarmausgang von der RTC. Mit diesem Signal kann ein externes Netzteil wieder eingeschaltet werden.
VACCU Mit der Notstromversorgung über einen 10kOhm Widerstand verbunden
NMI* Non Maskable Interrupt. Kann bei geeigneter Programmierung mit einer negativen Flanke einen NMI auslösen.
VRH 4,096V Analogreferenz. VREF kann als Referenzspannung für externe Verstärker verwendet werden. Alternativ kann über VREF - nach dem Entfernen der eingebauten Referenz - eine Referenzspannung von aussen eingespeist werden.
HALT* Direkt mit dem Halt*-Pin des MC68332 verbunden
RMC* Direkt mit dem RMC*-Signal des MC68332 verbunden
^

3.2.4 Serielle Schnittstellen

Die drei seriellen Schnittstellen des MEGA332 sind mit dem MC68332 und dem DUART MC68681 realisiert.

MC68332 - Serielle Schnittstelle

Die erste serielle Schnittstelle wird vom MC68332-internen QSM zur Verfügung gestellt. Dieses Modul verfügt leider nicht über Modemsteuerleitungen. Daher werden diese Signale durch Ports des MC68332 bzw. durch TPU-Pins ersetzt und müssen dementsprechend von Hand gesetzt werden.

Belegung:

Pin Signal Signal Pin
55
57
59
61
63
GND
CTS0*
TP3
RxD0
TP1
TP4
RTS0*
TxD0
TP2
VCC
56
58
60
62
64
VCC +5V ±10% Stromversorgung für die Peripherieschaltung
GND Referenz
TP1 DSR* Data Set Ready. Auf dem seriellen Kanal 0 kann DSR* über einen Jumper mit RESET* verbunden werden. Details finden sich unter V.24 RESET.
TP2 RI* Ring Indikator Eingang vom Modem
RxD0 Receive Data Eingang des MC68332
TxD0* Transmit Data Ausgang des MC68332
TP3 DTR* Data Terminal Ready Ausgang
RTS0* Request To Send Ausgang, realisiert über den Port F Bit 0 (MODCLK)
CTS0* Clear To Send Eingang, realisiert über den Port F Bit 1 (IRQ*1)
TP4 DCD* Data Carrier Detect Eingang
Dieser Eingang ist interruptfähig.

Alle Anschlüsse mit TPx (TPU-Signale) können individuell als Ein- bzw. Ausgang geschaltet werden. Die Signalbedeutungen beziehen sich auf die Funktionalität als Steckverbinder von IF-Modulen. Dem Anwender steht es natürlich völlig frei, wie diese Signale verwendet werden sollen. Es ist durchaus möglich, diese Leitungen z.B. als zusätzliche Interrupteingänge zu verwenden.

V.24 RESET

Das DSR*-Signal (TP1) auf dem seriellen Kanal 0 kann genutzt werden, um vom Hostrechner aus per Software einen RESET auszulösen. Dazu muss DSR* auf Low gepulst werden. Die Pulsbreite sollte minimal ca. 0,1s betragen. Der V.24-Reset kann durch Stecken des Jumpers J9 aktiviert werden.

Der Terminalemulator TM bietet die Möglichkeit, über Kommandozeilenparameter oder interaktiv mit ALT-R einen Reset auszulösen.

DUART

Der optional bestückbare DUART MC68681 stellt dem Anwender noch zwei zusätzliche serielle Schnittstellen zur Verfügung. Der DUART besitzt alle Modemsteuerleitungen, die für einen vollen Handshakebetrieb notwendig sind. Bei der zweiten Schnittstelle des DUART wurde jedoch auf die Modemsteuerleitungen mangels I/O-Stiftleisten verzichtet. Auch wollten wir keine weiteren doppelt belegte Stifte einführen. Die zweite Schnittstelle des DUART ist daher auf einen Steckverbinder geführt, der nicht direkt 1:1 mit einem IF-Modul verbunden werden kann.

Der DUART stellt folgende Signale zur Verfügung:

Erste serielle Schnittstelle des DUART:

Pin Signal Signal Pin
39
41
43
45
47
GND
CTS1*
DTR1*
RxD1/AIN10
DSR1/AIN8
DCD1
RTS1*
TxD1
RI1/AIN9
VCC
40
42
44
46
48

Zweite serielle Schnittstelle des DUART:

Pin Signal Signal Pin
51
53
RxD2
TxD2
CTS2*
RTS2*
52
54
VCC +5V ±10% Stromversorgung für die Peripherieschaltung
GND Referenz
DSR1 Data Set Ready
RI1 RI* Ring Indikator Eingang vom Modem
RxDx Receive Data Eingänge des DUART
TxDx Transmit Data Ausgänge des DUART
DTR1* Data Terminal Ready Ausgang
RTSx* Request To Send Ausgänge
CTSx* Clear To Send Eingänge
DCD1* Data Carrier Detect Eingang

Wichtig: Beachten Sie die doppelte Belegung der Pins an der ersten Schnittstelle des DUARTs. Ist der DUART und der ADC bestückt, so können die Eingänge AIN8 bis AIN9 nicht mehr sinnvoll genutzt werden.

^

3.2.5 QSPI

Das QSPI ist ein Interface für serielle Peripheriebausteine. Einzelheiten finden Sie im MC68332 User's Manual und QSM Reference Manual.

Pin Signal Signal Pin
17
19
21
23
T2CLK
PCS3
SCK
CPUCLK
MISO
MOSI
SS*
PCS1
18
20
22
24
MISO Serieller Eingang im Mastermode
MOSI Serieller Ausgang im Mastermode
SS* Selektiert den Master- bzw. Slavemode
PCS1,PCS3 Chip-Selects für SPI-Bausteine
^

3.3 Parallel I/O

Verwendung der Ports E und F

  PE0   frei    J3.61   (Pullup)
  PE1   belegt  J3.62   DSACK DUART
  PE2   belegt          SoftLED
  PE3   frei    J2.16
  PE4   frei    J3.19
  PE5   frei    J3.57
  PE6   frei    J3.60
  PE7   belegt  	Referenz ein/aus

  PF0   belegt  J2.58   RTS0
  PF1   belegt  J2.57   CTS0
  PF2   frei    J3.55
  PF3   belegt  J3.25   TLXINT, RTCINT
  PF4   belegt  J3.56   DUARTINT
  PF5   belegt          CANINT
  PF6   frei    J3.58
  PF7   frei    J2.13   (Pullup)

Verwendung der TPU-Leitungen TP0-TP15

TP0, TP5-TP15 können ohne Einschränkung benutzt werden. TP1-TP4 werden als Handshake-Leitungen für die RS232 verwendet.

^

4 Debugger Support

Auf dem MEGA332 steht ein Debugging-Interface direkt in Hardware zur Verfügung. Dieses Interface umfasst folgende Grundfunktionen:

Background-Debug-Stecker

Pin Signal Signal Pin
23
25
27
29
31
CPUCLK
IPPE*
IFETCH*
FREEZE
BKPT*
PCS1
VCC
RESET*
GND
GND
24
26
28
30
32
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 des MC68332
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

Background Debugging

Die CPU des MEGA332 hat einen in Microcode realisierten Debugger mit auf dem Chip. Der Background-Debug-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-Debug-Interface finden Sie im MC68332 User's Manual.

4.3 Programmierung von Flash-Memory

Flash-Memory kann direkt in der Schaltung über das Background-Debug-Interface programmiert werden. Die dazu nötigen Speicherzugriffe sind dieselben wie bei der Programmierung durch Software auf dem MEGA332. Da das FLASH nach dem Reset direkt ohne weiteres les- und schreibbar ist, sind keine weiteren Vorbereitungen nötig.

^

5 Bei Problemen

^

6 Versionen

MEGA332 Version 2.00

Folgende Änderungen wurden im Vergleich zur Version 1.20 vorgenommen:

Die Steckerbelegungen wurden nicht verändert.

^

7 Applikationstips

Autostart von Applikationsprogrammen

Der NICO-Monitor erlaubt den automatischen Start von Programmen und generell das Ausführen von Kommandos direkt nach einem Reset. Einige Beispiele:

env autoexec h
Nach jedem Reset wird der Hilfe-Text des Monitors ausgegeben.
env autoexec 's 0x2020'
Nach jedem Reset wird das Programm an der Adresse 0x2020 gestartet.

Um eine einmal gesetzte autoexec Variable zu löschen, muss entweder das Kommando env autoexec ausgeführt oder das RAM gelöscht werden (Ausschalten oder - bei Batteriepufferung - das RAM von GND nach VCC für ca. 1s kurzschliessen).

Startup Select

Mit den autoexec1... 9 Variablen kann der Monitor auf verschiedene Arten gestartet werden. Nach jedem Reset wartet NICO für ca. 0,5s auf einen erneuten Reset. Durch mehrfaches Resetten wird ein interner Zähler inkrementiert. Nachdem der Monitor schliesslich durch die Startphase gelaufen ist, wird die Anzahl der gegebenen Resetpulse ausgewertet und die autoexecN Variable bei der N mit der mit der Anzahl der Pulse übereinstimmt ausgeführt. Ein Beispiel:

env autoexec1 sp
env autoexec2 h
env autoexec3...

Wenn nur ein Resetpuls kommt, wird autoexec1 ausgeführt - es wird also das Programm an 0x2000 gestartet. Wird sofort nach dem Reset ein zweites Mal resettet, benutzt der Monitor die Variable autoexec2 und gibt den Hilfetext aus, bei drei Resets autoexec3 usw.

Die autoexec Variable wird - falls gesetzt - vor der 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: MEGA332
IndexHomepage^