IndexHomepage^

provisorisch!

MEGA340 - Handbuch

  1. Einführung
    1. Auslieferungszustand
    2. Inbetriebnahme
    3. Logische Pegel
    4. Numerische Angaben
  2. Baugruppen
    1. Indikator LEDs
    2. Adressbelegung
    3. Interrupts
    4. Stromversorgung
    5. Power Down Betriebsarten
    6. RESET
    7. RAM
    8. ROM
    9. FLASH
    10. RTC
    11. Stromverbrauch
    12. 25MHz Version
  3. Schnittstellen
    1. Festlegungen durch vorgegebene Hardware
    2. Externes Businterface
    3. Parallel Ports
    4. Peripherie Interfaces
  4. Debugger Support
  5. Bei Problemen
  6. Patches, Anderungen, Versionen und Bugs
  7. Applikationstips

Autor: Walter Scherer

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 MEGA340 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 interne Peripherie des Controllers MC68340 wurde durch vielfach benötigte Peripherie ergänzt. Die hohe Integrationsdichte und geringe Stromaufnahme des MEGA340 wurde durch die Bestückung mit Surface Mount Devices in CMOS Technik, kombiniert mit modernen Powersave Techniken erreicht.

Die integrierten Funktionen des MC68340:

Funktionen des MEGA340:

Zusatzbaugruppen erlauben den schnellen Einsatz in unterschiedlichsten Anwendungen:

Last but not least - die Software:

^

1.1 Auslieferungszustand

Der MEGA340 Einplatinenrechner wird in folgender Konfiguration ausgeliefert:

Das Datenbuch zum MC68340 ist nur im Lieferumfang des Entwicklungspakets enthalten.

^

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 verwenden.

Wenn Sie soweit gekommen sind, sollte 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 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 Indikator LEDs

Auf der Platine befinden sich links unterhalb der CPU zwei Indikator LEDs.

Die linke HALT-LED signalisiert einen Double-Fault. Ein Double-Fault tritt nur dann auf, wenn die CPU nach einem Fehler nicht einmal mehr in der Lage ist die Exceptionhandlerroutine anzuspringen. Typischerweise deutet das leuchten der Halt LED auf einen gravierenden Fehler in der Software hin.

Die rechte SOFT-LED kann mit 0 Pegel an PB0 zum Leuchten gebracht werden. Per Software kann die LED also ein- und ausgeschaltet werden. Viel Spass damit...

Der Startupcode von normal übersetzten ECO-C Programmen nutzt die SOFT-LED zum signalisieren von Fehlercodes in einer Art Morsealphabet. Details dazu befinden sich in den mitgelieferten Librarysourcen von ECO-C.

^

2.2 Adressbelegung

Bei der M68000 Familie werden alle Peripheriebaugruppen in den linearen Speicheradressraum des Prozessors gemappt. Beim MEGA340 wird die Adressdekodierung zum Grossteil durch programmierbare Select-Generatoren auf dem MC68340 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
0
1
2
2
2
2
2
3
3
3
3
3
0x04000000... 0x04000FFF
0x01000000... 0x011FFFFF
0x00000000... 0x003FFFFF
0x02000000... 0x02000007
0x02000040... 0x0200005F
0x02000081
0x02000081
0x020000C1
0x80000000... 0xFFFFFEFF
0x80FFFFC0... 0x80FFFFDF
0x80FFFFA0... 0x80FFFFBF
0x80FFFF60... 0x80FFFF7F
0x80FFFEE0... 0x80FFFEFF
MC68340 Intern
EPROM/FLASH
RAM
ADC
RTC
CAN_ALE (write)
MODEMCTRL (read)
CAN Controller
Externer Bus
TLX+ 0
TLX+ 1
TLX+ 2
TLX+ 3

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

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 defaultmässig diese Adressen verwendet.

Der Buserrortimer kann per Software umkonfiguriert werden. Das Verhalten des MEGA340 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.3 Interrupts

Interne Interrupts werden wie im MC68340 Handbuch beschrieben verwendet. An externen Interrupts sind nur der TLXINT* und der CAN-Controller Interrupt CANIRQ* sowie NMI* vorhanden. Wie diese drei Quellen auf die Interruptlevel verteilt sind ist in den Kapiteln zum TLX+ Businterface, CAN-Controller und NMI zu finden.

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 Zustands und Herunterfahren des gesteuerten Prozesses bleiben.

NMI* ist fest auf PB7 gelegt. Die Priorität des NMI ist damit fest auf 7 gelegt. Die Controlregister des Port B müssen entsprechend programmiert werden, um den NMI freizugeben.

^

2.4 Stromversorgung

Der MEGA340 wird über einen 4pol. Floppysteckverbinder versorgt. Die Belegung dieses Steckers entspricht im wesentlichen einem normalen 3½" Floppylaufwerkstecker. 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
4
VCC
GND
Power_Good
Power_Off
+5V ±5%
Referenz
NMI* Eingang am MEGA340
Interrupt*/Alarm* Ausgang der RTC
VCC: +5V ±5% Stromversorgung.
GND: Spannungsreferenz der Stromversorgung.
Power_Good: Dieses Signal liefert vom Netzteil eine Stromausfallsmeldung. Eine negative Flanke löst bei geeigneter Programmierung des Port B einen NMI aus.
Power_Off: Dieses Signal kann verwendet werden, um das Netzteil auszuschalten. Über die Alarmfunktion der RTC kann nach Ablauf einer programmierbaren Zeit das Netzteil wieder eingeschaltet werden.

Die Stromaufnahme an VCC beträgt typ. 150mA und maximal 250mA in der Standardversion.

Die Notstromversorgung der RTC und des RAMs ist mit einer Lithiumzelle mit 3V realisiert. Die Lebensdauer der Zelle beträgt ca. 3 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.

Da die Lebensdauer der Lithiumzelle in manchen Anwendungen zu gering ist kann ein externer Akku verwendet werden. Die Batteriespannung ist auf den VACCU Pin 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.5 Power Down Betriebsarten

Neben den Betriebsmodi der CPU, ist auf dem MEGA340 ein voller Powerdown mit Zeit- oder interruptgesteuertem Betrieb möglich. Das Netzteil POWER1 ist bereits auf einen solchen extern gesteuerten Betrieb vorbereitet. Diese Netzteile haben einen low-aktiven Power-On Eingang, über den die 5V Versorgung vom Netzteil eingeschaltet werden kann. Weitere Details finden sich im Kapitel RTC und der Beschreibung des entsprechenden Netzteils.

^

2.6 RESET

Der RESET wird onboard mit einem Spannungskomparator generiert. Die minimale Versorgungsspannung für die Auslösung des Resets beträgt 4.5... 4.7V. Eine Verzögerungsschaltung garantiert eine minimale Dauer des Resets. Weitere Massnahmen auch bei Verwendung geschalteter Stromversorgungen sind daher nicht erforderlich. "Geschaltet" meint hier nicht etwa ein Schaltnetzteil sondern eine z.B. per Relais abschaltbare 5V Stromversorgung mit der Absicht den Rechner nur dann zu aktivieren wenn wirklich Arbeit ansteht (siehe auch Power Down Betriebsarten).

Batteriegepufferte Systeme haben generell einige spezielle, subtile Probleme. Wenn ein Schreibzugriff von einem Reset unterbrochen wird kann mit geringer Wahrscheinlichkeit ein undefinierter Wert geschrieben werden. Das bedeutet allerdings nicht, dass andere Teile des RAMs unzulässig modifiziert werden. Ein weiteres Problem ist die Möglichkeit, dass zusammenhängend geschriebene Multibyte-Transfers in der Mitte unterbrochen werden.

Eine denkbare Massnahme gegen das undefinierte Schreiben von Daten im Resetzeitpunkt wäre eine Hardwaresperre des Resets. Damit ist es jedoch nicht mehr in jedem Fall möglich die Integrität des RAM-Inhalts beim Power-Down zu garantieren. Das Problem abgebrochener Multibyte-Transfers ist prinzipiell nicht sinnvoll in Hardware lösbar.

Abhilfe gegen die beschriebenen Effekte ist, rein in Hardware, nur schwer möglich. Das Problem partieller Schreibzugriffe mit undefiniertem Resultat kann durch sorgfältiges Design der kritischen Bereiche beseitigt werden. Solche kritischen Variablenblocks sollten ohnehin mit einer Konsistenzprüfung versehen werden und es sollte auch nicht wichtig sein, dass der zuletzt geschriebene Block in jedem Fall korrekt ist. Optimal ist es beim Power-Down einen NMI auszulösen, der für konsistente Datenbereiche sorgt. Nachdem alles aufgeräumt ist kann die CPU z.B. mit einem STOP Kommando angehalten werden.

^

2.7 RAM

Vorgesehen ist der Einsatz von 128KB und 512KB RAM Typen im Flatpack Gehäuse. Da die Bausteine eingelötet sind, ist eine nachträgliche Änderung der Bestückung nicht sinnvoll möglich. Erweiterungen der RAM Kapazität um RAMs gleichen Typs sind natürlich machbar.

Es kann für Anwendungen, die nur maximal 64KB RAM benötigen eine Sonderversion gefertigt werden. Diese Version erspart gegenüber der kleinsten Standardversion mit minimal 256KB RAM geringfügig Kosten. Sollte für Ihre Anwendung die Sonderversion in Frage kommen wenden Sie sich bitte an uns.

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 typische Lebensdauer der Lithiumzelle beträgt ca. 4-12 Jahre je nach Betriebstemperatur, Einschaltdauer, Anzahl und Typ der RAMs.

Konfiguration

Die Grösse des RAMs kann über den Chip-Select Generator 1 in Zweierpotenz Schritten eingestellt werden. Defaultmässig wird als Grösse die maximal bestückbare Grösse angenommen. Dabei ergeben sich folgende Effekte:

Bei korrekter Jumperstellung erkennt die Startup-Routine von ECO-C die Speichergrösse und programmiert den Chip-Select, so dass der Speicher ohne Löcher und Spiegelungen in den Adressraum eingeblendet wird.

Selektion des RAM Typs

Da minimal die ersten 2 RAMs bei der Fertigung des MEGA340 bestückt werden und ein mixen von 128KB und 512KB RAMs nicht vorgesehen ist, sollte die Einstellung des RAM Typs durch den Anwender nicht erforderlich sein. Der RAM Typ wird über 3 Lötjumper mit je 3 Pads auf der Unterseite des Boards eingestellt.

RAM Typ J12 J8 J9
32KB
128KB
512KB
1-2
1-2
2-3
1-2
1-2
2-3
2-3
2-3
1-2

Die Bestückung mit zwei 32KB RAM ist nur für Sonderversionen gedacht. Es können in diesem Fall maximal 64KB RAM insgesamt verwendet werden.

^

2.8 ROM

Die EPROM/ROM Sockel können mit folgenden Typen bestückt werden:

Typ
Grösse
(KB)
Onbrd
prog.
Onbrd
lösch.
ROM
30
ROM
31
ROM
1
27C010
27C020
27C040
27C080

29F010
29F040
128
256
512
1024

128
2*256
N
N
N
N

J
J
N
N
N
N

J
J
-
A18
A18
A18

-
A18
WE*
WE*
A19
A19

WE*
WE*
VCC
VCC
VCC
A20

-
A20

Selektion des ROM Typs

Der Typ wird über 3 Jumperfelder selektiert:

Typ J10 J11 J13
27C010
27C020
27C040
27C080

29F010
29F040
1-2
1-2
2-3
2-3

1-2
1-2
1-2
1-2
1-2
2-3

-
-
-
-
-
-

-
1-2

Die Jumper J11 und J13 dürfen nie gleichzeitig gebrückt werden.

^

2.9 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 MEGA340. 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

Auf dem MEGA340 sind zwei Flash-Memories parallelgeschaltet, 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 das Write-Protect Bit im Mask Register des Chip-Select-Generators 0 gelöscht werden. Nach dem Schreiben sollte das Bit wieder 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.10 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 0x02000040. Jedes zweite Byte ist nicht benutzt.

Zusammen mit dem Netzteil POWER1 kann der Alarmausgang der RTC zum periodischen Einschalten des MEGA340 verwendet werden. Dazu muss lediglich die RTC auf periodische Interrupts programmiert werden, und der dafür vorgesehene Jumper auf den Netzteilen 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.

Adresse Name D3 D2 D1 D0 Funktion
0x02000041
0x02000043
0x02000045
0x02000047
0x02000049
0x0200004B
0x0200004D
0x0200004F
0x02000051
0x02000053
0x02000055
0x02000057
0x02000059
0x0200005B
0x0200005D
0x0200005F
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
Sekunde Einer
Sekunde Zehner
Minute Einer
Minute Zehner
Stunde Einer
Stunde Zehner
Tag Einer
Tag Zehner
Monat Einer
Monat Zehner
Jahr Einer
Jahr Zehner
Wochentag
Control Reg. D
Control Reg. E
Control Reg. F

Die Bits in den Controlregistern haben im einzelnen folgende Bedeutung:

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 100 Mikrosekunden gewartet werden. Das Bit wird automatisch wieder gelöscht.
IRQ: Dieses Read-Only Bit reflektiert den Zustand des Interrupt Ausgangs 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 dienen der Programmierung der Periodendauer des Interruptausgangs der RTC. 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 Interrupt Ausgang der RTC. Es muss auf 0 programmiert werden.
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.

Die Bereiche der einzelnen Zeiteinheiten:

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


bis 11 im AM/PM Mode


Sonntag ist 0

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 std.p output */
RTC->ctld = 0;
RTC->ctlf = 4; /* 24 hour mode, start clock */

Zum Lesen ist nichts weiter nötig, als die Zeitregister in einen Buffer zu kopieren. Wenn sich während des Lesens die Register verändern, wird eine falsche Zeit ausgegeben. Um dies zu erkennen wird die RTC zweimal gelesen und die Ergebnisse verglichen. Falls sie ungleich sind wird der Lesevorgang wiederholt.

RTC63421

Die 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.

Die RTC63421 ist optional verfügbar. Details der Programmierung werden im bei der Option mitgelieferten Datenblatt beschrieben.

^

2.11 Stromverbrauch

Bei dem MEGA340 kann die interne Taktfrequenz per Software eingestellt und somit die Stromaufnahme beeinflusst werden. Dazu müssen lediglich die oberen 8Bit des internen Registers syncr im SIM-Registerblock verändert werden. In dem folgenden Diagramm ist die Abhängigkeit der Stromaufnahme von der Taktfrequenz dargestellt. Für die Messungen wurde ein MEGA340 mit 256KB SRAM, IF-Modul, ohne RTC, ohne ADC und ohne CAN-Controller verwendet.

^

2.12 25MHz Version

Der MEGA340 ist auch in einer 25MHz Version verfügbar. Gegenüber der Standard Version hat der MEGA340-25 folgende Unterschiede:

^

3 Schnittstellen

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

Alle Signale sind auf nach unten gerichteten Pfostensteckern verfügbar. Damit ist der Einsatz des MEGA340 auf einer Basisplatine problemlos möglich. Alle Interfaces, die häufig über Flachbandkabel auf externe Baugruppen geführt werden, sind mit langen Pfostensteckern ausgestattet. Diese langen Pfostenstecker sind nach unten genauso lang wie bei den normalen Signalen. Nach oben sind diese Pfosten lang genug um Buchsenleisten mit angepressten Flachbandkabeln aufstecken zu können. Folgende Interfaces sind auf lange Pfosten gelegt:

Interface Leiste Von Bis # Anschluss an
TLX+
Seriell 0
Seriell 1
BDM Port
ADC/CAN
oben
unten
unten
unten
unten
1
64
48
32
10
26
55
39
17
1
26
10
10
16
10
Grafik LCD, Std Peripherie
Serielle Module
Serielle Module
Background Debug Rüssel
Analog I/O, CAN Bus
^

3.1 Festlegungen durch vorgegebene Hardware

Folgende Baugruppen des MC68340 sind durch externe Beschaltung in Ihrer Programmierbarkeit eingeschränkt und müssen entsprechend diesen Vorgaben konfiguriert werden:

Port B
wird für Chip-Selects und IRQs verwendet. Lediglich PB0 kann als I/O-Port genutzt werden. PB6 dient zum an- und abschalten der ADC-Referenz.
Clockgenerator
für die 32kHz-CPU-Taktversorgung. Dieser Generator verwendet einen externen 32kHz-Quarz. Die Konfiguration muss entsprechend gewählt werden.
^

3.2 Externes Businterface

Alle nötigen Signale für den Anschluss von externen Mikroprozessorbus Bausteinen 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. Details zur Verwendung des Businterfaces als Parallel Port befinden sich im Kapitel Parallel Ports.

TLX+ Businterface

Den Kern bildet das TLX+ Interface. Diese Schnittstelle ist extrem einfach zu benutzen und erlaubt den Anschluss der meisten Intel buskompatiblen Bausteinen ohne zusätzliche Glue Logik. Alle Signale auf diesem Interface sind entweder gepuffert oder unkritisch was Belastung und Leitungslängen angeht. Alle Signale auf dem TLX+ können über Flachbandkabel mit bis zu 25cm Länge geführt werden. Bei geeigneter Terminierung können noch grössere Distanzen überbrückt werden.

Die CSx* Signale werden mit einem Standard Trick generiert. Diese Selects werden über einen Treiber von Adressleitungen gesteuert. Dadurch kann im Prinzip jede Kombination von Selects generiert werden. Meist sind jedoch nur die Kombinationen von Interesse, bei denen nur eine der Leitungen auf Low ist. Die entsprechenden Adressen für 4 Chip-Selects am TLX+ sind in der Adressmap angegeben. Weitere Chip-Selects lassen sich bei Anwendung derselben Methode auf die nachfolgenden Adressbits (OP0... OP7 auf dem Vollinterface) generieren.

Pin Name Name Pin
1
3
5
7
9
11
13
15
17
19
GND
VCC
pWE*
pEN0/A5
ppA2
pD0
pD2
pD4
pD6
-
GND
nc
pRD*
ppA1
RESET*
pD1
pD3
pD5
pD7
ppA3
2
4
6
8
10
12
14
16
18
20
21
23
25
ppA4
pEN2/A7
TLXINT*
pEN1/A6
pEN3/A8
GND
22
24
26

Beim direkten Anschluss von Grafik-LCDs sind nur die ersten 20 Pins nötig.

Interrupts

Der Interruptausgang des TLX+ Businterfaces ist auf ein Lötjumperfeld gelegt. Durch eine Lotbrücke kann der Interrupteingang und damit die Priorität selektiert werden. Die Priorität des TLX-Interrupts ist je nach Wahl von PB3 oder PB5 auf 3 oder 5 festgelegt.

Jumper # Pin Signal Funktion wenn gebrückt
J2 1

2

3
PB5

TLXIRQ*

PB3

TLX+ Interrupt auf PB5

TLX+ Interrupt auf PB3

16Bit Erweiterung des TLX+ Interfaces

Direkt auf das TLX+ Interface folgen weitere 8 Datenleitungen. Diese Datenleitungen sind über Treiber mit D8... 15 am Prozessorbus verbunden. Für die elektrischen Eigenschaften gelten dieselben Regeln wie für die anderen Datenleitungen auf dem TLX+. Es ist nicht möglich beim Zugriff die einzelnen Bytes zu differenzieren. Es werden also immer 16Bit Transfers durchgeführt - unabhängig von der eigentlichen Portbreite des selektierten Registers und der Breite des von der CPU gewünschten Transfers. Diese Einschränkung sollte nie zu Problemen führen, da 16Bit Peripherie mit getrennten Bytes kaum existiert. Sollte diese Funktionalität trotzdem nötig werden, sind die erforderlichen Signale im Vollinterface enthalten.

Pin Name Name Pin
1
3
5
7
9
11
13
15
17
19
GND
VCC
pWE*
pEN0/A5
ppA2
pD0
pD2
pD4
pD6
-
GND
nc
pRD*
ppA1
RESET*
pD1
pD3
pD5
pD7
ppA3
2
4
6
8
10
12
14
16
18
20
21
23
25
ppA4
pEN2/A7
TLXINT*
pEN1/A6
pEN3/A8
GND
22
24
26
27
29
31
33
pD8
pD10
pD12
pD14
pD9
pD11
pD13
pD15
28
30
32
34

Volles Businterface

Für Applikationen, in denen ein asynchrones Businterface im M68000 Stil oder ein grosser Adressraum nötig ist, kann das volle Businterface verwendet werden. Dadurch werden jedoch die im TLX+ Interface enthaltenen Chip-Select Leitungen pEN0... pEN3 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 Name Name Pin
1
3
5
7
9
11
13
15
17
19
GND
VCC
pWE*
EN0 / A5
ppA2
pD0
pD2
pD4
pD6
-
GND
nc
pRD*
ppA1
RESET*
pD1
pD3
pD5
pD7
ppA3
2
4
6
8
10
12
14
16
18
20
21
23
25
27
29
31
33
ppA4
pEN2 / A7
TLXINT*
pD8
pD10
pD12
pD14
pEN1 / A6
pEN3 / A8
GND
pD9
pD11
pD13
pD15
22
24
26
28
30
32
34
35
37
39
41
43
45
47
49
51
53
55
57
59
61
63
ppA0
OA1 / A10
OA3 / A12
OA5 / A14
OA7 / A16
A18
A20
A22
A24 / PA0
A26 / PA2
A28 / PA4
A30 / PA6
READ
DSACK0*
VCC
OA0 / A9
OA2 / A11
OA4 / A13
OA6 / A15
A17
A19
A21
A23
A25 / PA1
A27 / PA3
A29 / PA5
A31 / PA7
SIZ0
DSACK1*
VCC
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
VCC:
+5V ±10% Stromversorgung für die Peripherieschaltung.
GND:
Referenz.
VEE:
Kontrastspannung bei LCDs - nicht verwendet.
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.
WE*:
Write-Enable, Strobe für einen Schreibzugriff (aktiv low). Daten-, Adress- und Chip-Enable Leitungen sind stabil wenn WE* 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 Interrupt Ausgang mit Totempole Struktur oder mehrere Open-Collector Ausgänge zusammen mit einem Pullupwiderstand anschliessen. Als Interrupteingang wird PB3 oder PB5 verwendet.
pD0... pD15:
Diese Datenleitungen sind über einen Bustreiber mit D0... D15 am Prozessorbus verbunden.
ppA1... ppA4:
Die Adressleitungen sind über einen Bustreiber mit entsprechenden Adressen am Prozessorbus verbunden (A3/A4 nur TLX+).
pEN0... pEN3, A5... A8:
Chip-Enable Signale, hierüber lassen sich verschiedene Baugruppen selektieren. Die pENx Signale sind mit den internen Adressleitungen A5... A8 über einen Treiber verbunden. Daraus ergeben sich zwar recht merkwürdige Adressen um jeweils nur eins der pENx Signale je Transfer zu aktivieren. Es wird jedoch möglich diese Signale als zusätzliche Addressleitungen zu verwenden.
READ:
Ungepuffertes R/W* Signal vom MC68340.
SIZ0:
Ungepuffertes SIZE0 Signal vom MC68340.
OA0... OA7, A9... A16:
Gepufferte Adressleitungen A9... A16.
A17... A23:
Ungepufferte Adressleitungen A17... A23.
PA0... PA7, A23... A31:
Ungepufferte Adressleitungen A23... A31 oder je nach Programmierung des MC68340 PA0... PA7.
DSACK0*, DSACK1*:
Ungepufferte DSACKx* Signale vom MC68340.
^

3.3 Parallel Ports

Auf dem MEGA340 sind die Parallel I/O Ports und das Businterface zu grossen Teilen auf die selben Anschlüsse gelegt, wobei die primäre Idee dabei nicht etwa die Einsparung von Pins, sondern die generelle Maximierung der Flexibilität bei gleichzeitig minimalem Hardwareaufwand war.

Die Benutzung der Ports ist zwar auf den ersten Blick mehr als merkwürdig - mit einer einfachen Routine kann der etwas verwinkelte Zugriff auf die Ports jedoch abgekapselt und damit simplifiziert werden.

Die Ports lassen sich in folgenden Gruppen nutzen:

D0... D15:
Wenn das Businterface gar nicht genutzt wird, kann D0... D15 als Input Port verwendet werden.
A1... A4, pEN0... pEN3 / A5... A8, OA0... OA7 / A9... A16:
Beim Lesen vom TLX+ Port wird die Adresse in Latches geschrieben und dauerhaft bis zum nächsten Lesezugriff gehalten. Der OA0 Port kann trotz Benutzung des TLX+ Businterfaces als Output Port Verwendung finden, wenn in die TLX+ Adressen die entsprechenden 8 Datenbits eingeblendet werden.
PA0... PA7 / A23... A31:
Dieser 8Bit I/O Port kann bei entsprechender Programmierung des MC68340 ohne jede Einschränkung verwendet werden.
TLXINT*:
Dieser Interrupteingang kann als I/O Leitung oder als Interrupt Eingang benutzt werden. Interaktionen mit dem Businterface existieren keine.

Parallel I/O Beispielroutinen

Die folgenden Beispielroutinen sind als Beispielfile im Lieferumfang des Entwicklungspakets enthalten.

^

3.4 Peripherie Interfaces

Sämtliche Peripherie Signale liegen auf dem unteren Pfostenstecker. Es sind folgende Signalgruppen unterscheidbar:

Pin Name Name Pin
1
3
5
7
9
AIN0
AIN2
VCC
CANRxD0
CANRxD1
AIN1
AIN3
GND
CANTxD0
CANTxD1
2
4
6
8
10
11
13
15
STDP*
NMI*
HALT*
VACCU
VREF
PB0/RMC*
12
14
16
17
19
21
23
25
27
29
31
VCC
TMS*
TCK
CPUCLK
IPPE*
IFETCH*
FREEZE
BKPT*
TDO
TDI
GND
-
VCC
RESET*
GND
GND
18
20
22
24
26
28
30
32
33
35
37
TIN1
TGATE1*
TOUT1*
TIN2
TGATE2*
TOUT2*
34
36
38
39
41
43
45
47
GND
CTS1*
DTR1*
RxD1
DSR1*
DCD1*
RTS1*
TxD1
RI1*
VCC
40
42
44
46
48
49
51
53
DREQ1*
DACK1*
DONE1*
DREQ2*
DACK2*
DONE2*
50
52
54
55
57
59
61
63
GND
CTS0*
DTR0*
RxD0
DSR0*
DCD0*
RTS0*
TxD0
RI0*
VCC
56
58
60
62
64

ADC

Der auf dem MEGA340 optional installierbare A/D-Wandler ADC7803 kann auf 4 Kanälen Analogwerte mit 12Bit Auflösung und einer Wandelrate von 9us einlesen.

Die onboard Spannungsreferenz erlaubt einen Eingangsbereich des Wandlers von 0... 2.5V. Alternativ kann die 4.096V Referenzdiode LT1009 anstelle der standardmässigen LM336 installiert werden.

Wenn die RTC nicht verwendet wird kann es sinnvoll sein die Anzahl der Waitstates auf 1 zu reduzieren. Der Unterschied bei den Zugriffszeiten ist zwar nicht sehr gross, kann jedoch bei kritischen Applikationen wichtig sein.

Powerdown Mode

ADC und Spannungsreferenz können in einen stromsparenden Modus geschaltet werden. Beim Wandler wird dazu lediglich das PDown-Bit im SFR gesetzt. Die Spannungsreferenz wird über den Port B6 an- und ausgeschaltet.

Interface

Pin Name Name Pin
1
3
5
AIN0
AIN2
VCC
AIN1
AIN3
GND
2
4
6
VCC: +5V ±10% Stromversorgung für die Peripherieschaltung.
GND: Referenz.
AIN[0 . . 3 ] : Analoge Inputs mit einem Spannungsbereich von 0...2.5V oder bei anderer Referenzspannung bis Vref.

Register

Die Tabelle zeigt die Register des ADC mit ihrem Bit-Layout. Die angegebenen Offsets sind relativ zur Basisadresse 0x02000000 des ADC.

Off. Name D7 D6 D5 D4 D3 D2 D1 D0
1
3
7
Low
High
SFR
AD7
Busy
Busy
..

Cerr
..

Pfail
..

0
..
AD11
Pdown
..
..
0
..
..
Cal
AD0
AD8
Mode
AD[0 . . 11 ] : Daten vom Wandler. Diese Daten können nur gelesen werden.
Busy: Der Wandler ist intern mit einer Konversion oder Kalibrierung beschäftigt oder in einem Fehlerstatus.
Cerr: Während des Kalibrierens trat ein Overflow auf.
Pfail: Die Versorgungsspannung ist unter 3V gefallen. Der Wandler muss neu kalibriert werden.
Pdown: Mit diesem Bit kann der Wandler in einen Power Down Mode geschaltet werden. Nach dem wiederaktivieren muss erneut kalibriert werden.
Cal: Zeigt eine laufende Kalibrierung an.
Mode: Mode zeigt den selektierten Mode der Output Latches an.
Mode Funktion
0
1
Transparent Mode
Latched Mode

Im Transparent Mode werden die Daten sichtbar, so wie die Wandlung die Bits liefert. Im Latched Mode werden die alten Daten bis zum Abschluss der Wandlung stabil gehalten und dann komplett durch den neuen Wert ersetzt.

Initialisierung

Das SF-Register muss vor der ersten Konversion initialisiert werden. Ausserdem sollte beim Auftreten von Fehlern - im wesentlichen Power Fail - erneut initialisiert werden. Initialisiert wird durch Schreiben von 0x02 ins SFR.

Referenz

Die Referenz auf dem MEGA340 kann über Port B6 ein- und ausgeschaltet werden. Die Referenz auszuschalten ist immer dann sinnvoll, wenn Strom gespart werden soll. Um die Referenz einzuschalten, müssen die Bits 6 im PBDR und PBDDR auf 1 gesetzt werden. Zum Ausschalten sind lediglich die beiden Bits auf 0 zu setzen. Nach dem Wiedereinschalten ist wieder zu initialisieren.

Einleiten einer Konversion

Die Konversion wird durch Schreiben der Kanalnummer (0... 3) auf das Low Register eingeleitet. Nach ca. 10us oder nachdem BUSY wieder inaktiv ist kann der gewandelte Wert aus den Datenregistern gelesen werden.

CAN Controller

Der optionale CAN-Controller SJA1000 (Full CAN nach CAN2.0B Standard) 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 Name Name Pin
5
7
9
VCC
CANRxD0
CANRxD1
GND
CANTxD0
CANTxD1
6
8
10
VCC: +5V ±10% Stromversorgung für die Peripherieschaltung.
GND: Referenz.
CANRxXX: Diese Signale entsprechen den Transmit- und Receive-Signalen am CAN-Controller.

Interrupts

Der Interruptausgang des CAN-Controllers ist auf ein Lötjumperfeld gelegt. Durch eine Lotbrücke kann der Interrupteingang und damit die Priorität selektiert werden. Die Priorität des CAN-Interrupts ist je nach Wahl von PB3 oder PB5 auf 3 oder 5 festgelegt.

Jumper # Pin Signal Funktion wenn gebrückt


J3

1

2

3
PB3

CANIRQ*

PB5

CAN Interrupt auf PB3

CAN Interrupt auf PB5

Power und CPU Management

Pin Name Name Pin
11
13
15
STDP*
NMI*
HALT*
VACCU
VREF
PB0/RMC*
12
14
16
VCC: +5V ±10% Stromversorgung für die Peripherieschaltung.
GND: Referenz.
STDP*: Open Collector Alarmausgang von der Real-Time-Clock. Mit diesem Signal kann ein externes Netzteil wiedereingeschaltet 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.
VREF: 2.5V oder 4.096V Analogreferenz. VREF kann als Referenzspannung für externe Verstärker verwendet werden. Alternativ kann über VREF - nach dem Entfernen der onboard Referenz - eine Referenzspannung mit 2.5V...4.75V von aussen eingespeist werden.
HALT*: Direkt mit dem Halt* Pin der CPU verbunden.
PB0: Port B - Bit 0.

Timer

Die beiden universal Timer sind frei einsetzbar. Alle externen Signale sind auf die untere Steckerleiste gelegt. Der Ausgang des Timer 1 ist mit dem externen Takteingang des integrierten DUART verbunden. Wenn der DUART nicht auf den externen Takteingang programmiert wird, kann der Timer 1 ohne Einschränkung benutzt werden.

Pin Name Name Pin
33
35
37
TIN1
TGATE1*
TOUT1*
TIN2
TGATE2*
TOUT2*
34
36
38
VCC: +5V ±10% Stromversorgung für die Peripherieschaltung.
GND: Referenz.
TINx: Timer x Input.
TGATEx*: Timer x Gate Input.
TOUTx*: Timer x Output.

Wie die Timer programmiert werden ist im Datenbuch zum MC68340 detailliert beschrieben.

DMA

Die beiden Onboard DMA Kanäle sind voll verwendbar. Die Signale DMA Request (DREQx*), DMA Acknowledge (DACKx*) und Done (DONEx*) sind auf die untere Steckerleiste gelegt. Um Störungen zu verhindern, sind die DONEx* Leitungen über einen 10k Pullup-Widerstand gegen VCC auf inaktiv Potential gezogen.

Der 32Bit Mode des DMA Controllers kann bei geeignetem Design der Hardware verwendet werden, da beide DSACKx* Signale verfügbar sind.

Pin Name Name Pin
49
51
53
DREQ1*
DACK1*
DONE1*
DREQ2*
DACK2*
DONE2*
50
52
54
VCC: +5V ±10% Stromversorgung für die Peripherieschaltung.
GND: Referenz.
DREQx*: DMA Request x.
DACKx*: DMA Acknowledge x.
DONEx*: DMA Done x.

Serielle Schnittstellen

Die seriellen Schnittstellen 0 und 1 sind praktisch funktionsgleich. Die Programmierung erfolgt wie im Handbuch des MC68340 beschrieben. Die Frequenz des Taktoszillators beträgt 3.6864MHz - damit sind die im Datenbuch zum MC68340 angegebenen Baudrate-Tabellen voll anwendbar.

Die externe Taktfrequenz des DUARTs wird vom Timer 1 geliefert. Damit sind auch ungewöhnliche Baudraten oder die externe Einspeisung der Baudrate möglich. Wenn der externe Takteingang des DUART nicht selektiert wird, kann der Timer 1 ohne Einschränkung verwendet werden.

Die Modem Control Signale sind vollständig vorhanden. RTS* und DTR* werden direkt über die Modemcontrol Ausgänge des DUART gesteuert. RTS* funktioniert so wie im Datenbuch beschrieben. DTR* ist auf die Output Ports OP6 (Kanal 0) und OP4 (Kanal 1) gelegt. CTS* ist direkt mit den CTS* Pins des DUARTS verbunden. Alle anderen Modem Control Signale sind über einen Multiplexer lesbar. Dabei liegen die Modemcontrolsignale für den Kanal 0 immer auf der Datenleitung D0 und das entsprechende Signal für den Kanal 1 auf der Datenleitung D1. Die nachstehende Tabelle listet die Belegung des MODEMCTRL-Multiplexers auf:

Adresse Signal D1 D0
0x02000081
0x02000083
0x02000085
0x02000087
DSR*
RI*
DCD*
RxD*
DSR1*
RI1*
DCD1*
RxD1*
DSR0*
RI0*
DCD0*
RxD0*

Die MODEMCTRL-Ports können nur gelesen werden. Beim Schreiben würde das Adressregister des CAN-Controllers überschrieben werden, was meist nicht das gewünschte Ergebnis liefern wird.

Die Steckverbinder für die seriellen Schnittstellen sind in dem äusseren Steckverbinder J6 integriert. Beachten Sie bitte, dass die beiden integrierten 10pol. Blöcke für die seriellen Schnittstellen verdreht in den Peripherie-Steckverbinder eingefügt sind (durchaus mit Absicht).

Belegung der ersten seriellen Schnittstelle:

Pin Signal Signal Pin
56
58
60
62
64
DCD0
RTS0*
TxD0
RI0
VCC
GND
CTS0*
DTR0*
RxD0
DRS0
55
57
59
61
63

Belegung der zweiten seriellen Schnittstelle:

Pin Signal Signal Pin
40
42
44
46
48
DCD1
RTS1*
TxD1
RI1
VCC
GND
CTS1*
DTR1*
RxD1
DSR1
39
41
43
45
47
VCC: +5V ±10% Stromversorgung für die Peripherieschaltung.
GND: Referenz.
DSRx: Data Set Ready. Auf dem Seriellen Kanal 0 ist DSR über einen Jumper auf RESET* legbar. Details befinden sich unter V.24 RESET.
RIx: Ring Indikator Eingang vom Modem.
RXDx: Receive Data Eingang.
TXDx: Transmit Data Ausgang.
DTRx*: Data Terminal Ready Ausgang.
RTSx*: Request To Send Ausgang.
CTSx*: Clear To Send Eingang.
DCDx: Data Carrier Detect Eingang. Dieser Eingang ist interruptfähig.

V.24 RESET

Das DSR* Signal auf dem seriellen Kanal 0 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 J5 aktiviert werden.

Der Terminal-Emulator 'TM.EXE' bietet die Möglichkeit über Kommandozeilenparameter oder interaktiv mit ALT-R einen Reset auszulösen.

^

4 Debugger Support

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

Background-Debug_Stecker

Der 16pol. Debug Stecker enthält das von Motorola standardisierte 8pol. Background-Debug Interface, sowie einige zusätzliche Signale und den JTAG Port. Dieser Steckverbinder ist aufwärtskompatibel zum von Motorola vorgeschlagenen BDM Stecker mit nur 8 Pins.

Pin Name Name Pin
17
19
21
23
25
27
29
31
33
TDO
TMS*
TCK
CPUCLK

IPPE*
IFETCH*
FREEZE
BKPT*
VCC
TDI
GND
-

VCC
RESET*
GND
GND
18
20
22
24
26
28
30
32
34
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.
TCK: JTAG Port Clock Eingang.
TMS: JTAG Port Mode Eingang.
TDI: JTAG Port Daten Eingang.
TDO: JTAG Port Daten Ausgang.

Background Debugging

Die CPU des MEGA340 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 MC68340.

Programmierung von Flash-Memories

Flash-Memories können direkt in der Schaltung mit Hilfe des Background-Debugging Interfaces programmiert werden. Die dazu nötigen Speicherzugriffe sind dieselben wie bei der Programmierung durch Software auf dem MEGA340. Da das FLASH nach dem Reset direkt ohne weiteres les- und schreibbar ist, sind keine weiteren Vorbereitungen nötig.

JTAG Port

Der Boundary Scan Port der CPU auf dem MEGA340 ist über den Debugging Stecker zugänglich. Dieser Port erlaubt das Auslesen der Pintreiber-Daten aller relevanter Pins am MC68340. Details befinden sich im Handbuch zum MC68340.

^

5 Bei Problemen

^

6 Patches, Änderungen, Versionen und Bugs

Version 1.00

Die Platinen der Version 1.00 enthalten folgende, bekannte Fehler. Alle Fehler sind auf allen ausgelieferten Platinen gepatcht.

Hinweis: Die folgende Tabelle dient lediglich Ihrer Information! Es ist nicht erforderlich oder sinnvoll diese Patches auszuführen, da dies bereits geschehen ist!

Version 1.10

Die Version 1.10 korrigiert alle Fehler der Version 1.00. Ausserdem wurden folgende, weitestgehend kompatible Erweiterungen eingebaut:

^

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. Der prinzipielle Mechanismus ähnelt den Start Skripts 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 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 Reset Pulse ausgewertet und die autoexec Variable mit der angehängen Anzahl der Pulse ausgeführt. Ein Beispiel:

env autoexec1 "sp hello walter"
env autoexec2 h

Wenn nur ein Resetpuls kommt, wird autoexec1 ausgeführt - es wird also nach einem einzelnen Reset oder nach dem Einschaltendas Programm auf 0x2000 mit den Argumenten hello und walter ausgeführt. Wird nach dem Reset der Reset Taster ein zweites mal gedrückt, benutzt der Monitor die Variable autoexec2 und bei noch mehr Resets eben sinngemäss

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: MEGA340
IndexHomepage^