


MEGA332 - 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
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:
- M68010 aufwärtskompatibler CPU32 Prozessorkern
- Programmierbare Taktfrequenz von 131kHz bis 25MHz
- 2KB internes RAM mit 2 Clocks Zugriffszeit
- Hard- und Software-Watchdogs
- Interrupttimer
- Flexibles Chip-Select-Generatorsystem
- Programmierbare I/O-Ports mit 32Bit Breite
- Lowpower-Stop-Mode für alle integrierten Baugruppen
- Zwei serielle Interfaces (SCI, QSPI)
- Universelles Timersystem (TPU)
- Incircuit Debugging Mode (Background Debugger)
Funktionen des MEGA332:
- TLX+ Businterface für Erweiterungen
- MC68332 Businterface für Erweiterungen herausgeführt
- Maximal 1MB EPROM oder FLASH
- Flash-Memory onboard-programmierbar
- Maximal 2MB RAM (1MB batteriepufferbar)
bei 25MHz Version zusätzlich 256KB schnelles RAM (fast termination mode)- CAN-Controller SJA1000
- Batteriegepufferte Uhr mit Kalender (RTC, optional)
- 3 serielle Schnittstellen, 2 auf Steckverbinder für IF-Module (UART MC68681, optional))
- max. 33 z.T. multifunktionale Parallel-I/O-Leitungen
- 11 analoge Eingänge mit 12Bit Auflösung
- Background-Debug-Interface
- 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 Software:
- Monitor NICO332
- Ein leistungsfähiger K&R / ANSI-C Compiler mit erweiterter ANSI Library (ECO-C)
- Sourceleveldebugger (EDB)
- Urlader für FLASH
![]()
1.1 Auslieferungszustand
Der MEGA332 Einplatinenrechner wird in folgender Konfiguration ausgeliefert:
- Das RAM ist je nach bestellter 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 und COM1 zur Kommunikation mit dem Target verwenden.
Prüfen Sie das Board auf Transportschäden, insbesondere verbogene Pins an den Steckverbindern.
Schliessen Sie die V.24 an. Dazu brauchen Sie ein IF232-Modul oder eine andere, zum IF232-Modul kompatible Treiberschaltung. Das IF232-Modul wird mit einem 10pol. Flachbandkabel an das Target und mit einem Standard-Nullmodemkabel an den PC angeschlossen.
Auf dem PC muss jetzt ein Terminalemulator-Programm gestartet werden. Wenn Sie ECO-C oder WinECO-C installiert haben, rufen Sie TM auf bzw. benutzen Sie das WinECO-C-Terminal.
Sie könenn auch andere Terminalemulatoren verwenden (z.B. das HyperTerminal). Konfigurieren Sie den Terminalemulator auf 19200Baud, 8 Datenbits, no Parity und 1 Stopbit. Schalten Sie alle Handshakeprotokolle ab!
Schliessen Sie die Stromversorgung an. Sie benötigen ein Festspannungsnetzteil mit +5V ±5%. Regelbare Netzteile sollten nur im Notfall verwendet werden.
Auf keinen Fall dürfen ungeregelte Netzteile oder Batterien benutzt werden.Schalten Sie die Stromversorgung ein. Auf dem Bildschirm muss jetzt muss die Startmeldung des NICO-Monitors und anschliessend ein Prompt erscheinen.
![]()
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/100x0FFFA00... 0x0FFFFFF
0x0FFFC14... 0x0FFFD4F
0x0200000... 0x02FFFFF
0x0000000... 0x01FFFFF
0x0300000... 0x030001F
0x0310000... 0x031001F
0x0310200
0x0310300
0x0E00000... 0x0EFFEFF
0x0EFFFC0... 0x0EFFFDF
0x0EFFFA0... 0x0EFFFBF
0x0EFFF60... 0x0EFFF7F
0x0EFFEE0... 0x0EFFEFFMC68332 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+ 3Nicht 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
4VCC
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
0x031001FS1
S10
Mi1
Mi10
H1
H10
D1
D10
Mo1
Mo10
Y1
Y10
W
CtlD
CtlE
CtlFS08
m08
H08
D08
M08
Y08
Y80
ADJ
T1
TSTS04
S40
m04
m40
H04
PAM
D04
M04
Y04
Y40
W4
IRQ
T0
E/US02
S20
m02
m20
H02
H20
D02
D20
M02
Y02
Y20
W2
BSY
I/S
STPS01
S10
m01
m10
H01
H10
D01
D10
M01
M10
Y01
Y10
W1
HLD
MSK
RSTSekunden 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. FBereiche der Zeiteinheiten:
Einheit von bis Kommentar Sekunden
Minuten
Stunden
Monat
Jahr
Wochentag00
00
00
01
00
059
59
23
12
99
6
bis 11 im AM/PM Mode
Sonntag ist 0Die 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
10
1
0
1[1/64] Sekunde
1 Sekunde
1 Minute
1 StundeI/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/CANoben
unten
unten
oben
unten
unten1
55
39
51
23
126
64
48
54
32
1026
10
10
4
10
10Grafik-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
19GND
VCC
CS*9 (WR*)
A5
A2
D0
D2
D4
D6
PE4GND
nc
CS*10 (RD*)
A1
RESET*
D1
D3
D5
D7
A32
4
6
8
10
12
14
16
18
2021
23
25A4
A7
TLXINT*A6
A8
GND22
24
26Beim 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
19GND
VCC
CS*9 (WR*)
A5
A2
D0
D2
D4
D6
PE4GND
VEE
CS*10 (RD*)
A1
RESET*
D1
D3
D5
D7
A32
4
6
8
10
12
14
16
18
2021
23
25A4
A7
TLXINT*A6
A8
GND22
24
2627
29
31
33D8
D10
D12
D14D9
D11
D13
D1528
30
32
34Volles 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:
- Alle Adressleitungen ab A9 bis A19
- A0, SIZ0 und READ um den Bustransfertyp voll zu erkennen
- DSACK0* und DSACK1* um den Transfer als 8 oder 16Bit Transfer zu terminieren
- DS* zur Erkennung von gültigen Daten
- CS7*, CS8*, CS9* und CS10*
- IRQ2*, IRQ4* und IRQ6*
Da nicht alle Signale zur Realisierung des M68000-Busses auf die Stecker geführt sind, ergeben sich folgende Einschränkungen:
- Die Functioncodes fehlen. IACK-Transfers können an der Adresse (0xFFFFFFFx) erkannt bzw. intern behandelt werden. Andere CPUspace-Transfers werden nicht unterstützt und sollten auch nicht nötig sein.
- BERR* fehlt. Die Terminierung von fehlerhaften Zyklen wird vom internen BERR*-Timer erledigt. Retryzyklen werden nicht unterstützt.
- HALT* ist auf der unteren Leiste vorhanden, sollte aber nur in Ausnahmefällen nötig sein.
- AS* ist durch RD* und WR* ersetzt. Die ursprüngliche Funktion von AS* ergibt sich aus (RD* & WR*).
- SIZ1 ist nicht vorhanden. Es existiert ohnehin nur ein 16Bit breiter Bus beim MC68332, so dass für SIZ1 kaum Bedarf besteht.
- BR*, BG* und BGACK* fehlen.
- RMC* und der CPU-Clock liegen auf der unteren Leiste.
Pin Signal Signal Pin 1
3
5
7
9
11
13
15
17
19GND
VCC
CS9* (WR*)
A5 (CS0*)
A2
D0
D2
D4
D6
PE4GND
VEE
CS10* (RD*)
A1
RESET*
D1
D3
D5
D7
A32
4
6
8
10
12
14
16
18
2021
23
25
27
29
31
33A4
A7 (CS2*)
TLXINT*
D8
D10
D12
D14A6 (CS1*)
A8 (CS3*)
GND
D9
D11
D13
D1522
24
26
28
30
32
3435
37
39
41
43
45
47
49A0
A10
A12
A14
A16
A18
CS7*
CS9*A9
A11
A13
A15
A17
A19
CS8*
CS10*36
38
40
42
44
46
48
5051
53RxD2
TxD2CTS2*
RTS2*52
5455
57
59
61
63IRQ2*
DS*
READ
DSACK0*
VCCIRQ4*
IRQ6*
SIZ0
DSACK1*
VCC56
58
60
62
64Die 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:
- ADC Eingänge
- CAN-Interface
- Power- und CPU-Management
- QSPI
- Background Debugging
- Timer-I/O
- Seriell-I/O
Pin Signal Signal Pin 1
3
5
7
9AIN0
AIN2
VCC
CANRxD0 /AIN4
CANRxD1 /AIN6AIN1
AIN3
GND
CANTxD0 /AIN5
CANTxD1 /AIN72
4
6
8
1011
13
15STDP*
NMI*
HALT*VACCU
VRH
RMC*12
14
1617
19
21
23
25
27
29
31T2CLK
PCS3
SCK
CPUCLK
IPPE*
IFETCH*
FREEZE
BKPT*MISO
MOSI
SS
PCS1
VCC
RESET*
GND
GND18
20
22
24
26
28
30
3233
35
37TP14
TP12
TP10TP15
TP13
TP1134
36
3839
41
43
45
47GND
CTS1*
DTR1*
RxD1 /AIN10
DSR1* /AIN8DCD1*
RTS1*
TxD1
RI1* /AIN9
VCC40
42
44
46
4849
51
53TP8
TP6
TP0TP9
TP7
-50
52
5455
57
59
61
63GND
CTS0*
TP3
RxD0
TP1TP4
RTS0*
TxD0
TP2
VCC56
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
9AIN0
AIN2
VCC
CANRxD0 /AIN4
CANRxD1 /AIN6AIN1
AIN3
GND
CANTxD0 /AIN5
CANTxD1 /AIN72
4
6
8
1045
47RxD1 /AIN10
DSR1* /AIN8RI1* /AIN9
VCC46
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
9VCC
CANRxD0 /AIN4
CANRxD1 /AIN6GND
CANTxD0 /AIN5
CANTxD1 /AIN76
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
15STDP*
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
63GND
CTS0*
TP3
RxD0
TP1TP4
RTS0*
TxD0
TP2
VCC56
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
47GND
CTS1*
DTR1*
RxD1/AIN10
DSR1/AIN8DCD1
RTS1*
TxD1
RI1/AIN9
VCC40
42
44
46
48Zweite serielle Schnittstelle des DUART:
Pin Signal Signal Pin 51
53RxD2
TxD2CTS2*
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
23T2CLK
PCS3
SCK
CPUCLKMISO
MOSI
SS*
PCS118
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:
- 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 Flash-Memory
- Abfrage aller Pins des MC68332
Background-Debug-Stecker
Pin Signal Signal Pin 23
25
27
29
31CPUCLK
IPPE*
IFETCH*
FREEZE
BKPT*PCS1
VCC
RESET*
GND
GND24
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
- Der Einplatinenrechner ist am Netzteil und PC angeschlossen, meldet sich aber nicht.
Ist die Stromversorgung in Ordnung?
Messen Sie auf dem Board nach. Bei weniger als 4,75V könnte bereits der Resetgenerator ansprechen.Ist der Terminalemulator wie unter Inbetriebnahme beschrieben konfiguriert?
Problem mit den Handshakeleitungen? Ist der V.24 RESET aktiv?
Benutzen Sie probeweise eine 3-Draht Verbindung zum PC (GND, RxD und TxD gekreuzt).- Interrupts vom TLX+ oder CAN-Controller funktionieren nicht
Sind die Interruptselekt-Jumper korrekt gesetzt?
Im Auslieferungszustand sind die Stiftleisten J5 und J6 ohne Brücken. Damit werden TLXINT* und CANINT* auf keinen der Interrupteingänge geführt und können folglich auch keinen Interrupt auslösen.Sind die Interruptleitungen im Port-F-Pin-Assignment-Register (PFPAR) für Interrupts konfiguriert?
![]()
6 Versionen
MEGA332 Version 2.00
Folgende Änderungen wurden im Vergleich zur Version 1.20 vorgenommen:
Die DIL-Sockel für EPROM und FLASH wurden durch 1MB FLASH in SMD ersetzt. Kunden die seither EPROMs eingesetzt haben, können die FLASH-Entwicklungssoftware für eine Handling-Pauschale von 15,00 EUR bestellen.
Was bei der Version 1.20 Option war (ADC, CAN, DUART) wird nun grundsätzlich bestückt. Als CAN-Controller findet der SJA1000 Einsatz. Dies ist der Nachfolgetyp des PCA82C200. Der SJA100 kann "full CAN" und wird auf dem MEGA332 mit 24MHz getaktet. Ab einer Auflage von 100 Stück und einer Lieferzeit von 2 Monaten können auch hiervon abweichende Varianten geliefert werden.
Es gibt drei Bestückungsversionen des MEGA332
1. 1MB RAM, 1MB FLASH, ADC, CAN, DUART, 16,66MHz Takt
2. 2MB RAM, sonst wie 1.
3. 1MB RAM, 128KB fast termination RAM, 25MHz Takt, sonst wie 1.RTC + Batterie als Option.
Der IRQ3 der seither auf Pin 4/J1 des Stromversorgungssteckers ging geht nun auf J111. Die Verbindung auf Pin 4/J1 muss per Lötkolben hergestellt werden. Der Hintergrund ist, dass bei Einsatz eines PC-kompatiblen Netzteils die 12Volt auf Pin 4 den Controller MC68332 über die IRQ3-Leitung "killen". PC-Netzteile sollten im Übrigen nur dann eingesetzt werden wenn sichergestellt ist, dass Minimallast und Spannungsspitzen in der Spezifikation von 5Volt TTL liegen.
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